Merge pull request #2813 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to a1ddaa9ee9
This commit is contained in:
commit
d84453796b
15
.github/renovate.json5
vendored
15
.github/renovate.json5
vendored
@ -87,6 +87,7 @@
|
||||
},
|
||||
{
|
||||
// Update devDependencies every week, with one grouped PR
|
||||
matchManagers: ['npm'],
|
||||
matchDepTypes: 'devDependencies',
|
||||
matchUpdateTypes: ['patch', 'minor'],
|
||||
groupName: 'devDependencies (non-major)',
|
||||
@ -95,8 +96,7 @@
|
||||
{
|
||||
// Group all eslint-related packages with `eslint` in the same PR
|
||||
matchManagers: ['npm'],
|
||||
matchPackageNames: ['eslint'],
|
||||
matchPackagePrefixes: ['eslint-', '@typescript-eslint/'],
|
||||
matchPackageNames: ['eslint', 'eslint-*', '@typescript-eslint/*'],
|
||||
matchUpdateTypes: ['patch', 'minor'],
|
||||
groupName: 'eslint (non-major)',
|
||||
},
|
||||
@ -112,7 +112,8 @@
|
||||
},
|
||||
{
|
||||
// Update @types/* packages every week, with one grouped PR
|
||||
matchPackagePrefixes: '@types/',
|
||||
matchManagers: ['npm'],
|
||||
matchPackageNames: '@types/*',
|
||||
matchUpdateTypes: ['patch', 'minor'],
|
||||
groupName: 'DefinitelyTyped types (non-major)',
|
||||
extends: ['schedule:weekly'],
|
||||
@ -129,23 +130,21 @@
|
||||
{
|
||||
// Group all RuboCop packages with `rubocop` in the same PR
|
||||
matchManagers: ['bundler'],
|
||||
matchPackageNames: ['rubocop'],
|
||||
matchPackagePrefixes: ['rubocop-'],
|
||||
matchPackageNames: ['rubocop', 'rubocop-*'],
|
||||
matchUpdateTypes: ['patch', 'minor'],
|
||||
groupName: 'RuboCop (non-major)',
|
||||
},
|
||||
{
|
||||
// Group all RSpec packages with `rspec` in the same PR
|
||||
matchManagers: ['bundler'],
|
||||
matchPackageNames: ['rspec'],
|
||||
matchPackagePrefixes: ['rspec-'],
|
||||
matchPackageNames: ['rspec', 'rspec-*'],
|
||||
matchUpdateTypes: ['patch', 'minor'],
|
||||
groupName: 'RSpec (non-major)',
|
||||
},
|
||||
{
|
||||
// Group all opentelemetry-ruby packages in the same PR
|
||||
matchManagers: ['bundler'],
|
||||
matchPackagePrefixes: ['opentelemetry-'],
|
||||
matchPackageNames: ['opentelemetry-*'],
|
||||
matchUpdateTypes: ['patch', 'minor'],
|
||||
groupName: 'opentelemetry-ruby (non-major)',
|
||||
},
|
||||
|
2
.github/workflows/build-container-image.yml
vendored
2
.github/workflows/build-container-image.yml
vendored
@ -85,7 +85,7 @@ jobs:
|
||||
tags: ${{ inputs.tags }}
|
||||
labels: ${{ inputs.labels }}
|
||||
|
||||
- uses: docker/build-push-action@v5
|
||||
- uses: docker/build-push-action@v6
|
||||
with:
|
||||
context: .
|
||||
file: ${{ inputs.file_to_build }}
|
||||
|
2
.github/workflows/crowdin-download.yml
vendored
2
.github/workflows/crowdin-download.yml
vendored
@ -26,7 +26,7 @@ jobs:
|
||||
|
||||
# Download the translation files from Crowdin
|
||||
- name: crowdin action
|
||||
uses: crowdin/github-action@v1
|
||||
uses: crowdin/github-action@v2
|
||||
with:
|
||||
config: crowdin-glitch.yml
|
||||
upload_sources: false
|
||||
|
2
.github/workflows/crowdin-upload.yml
vendored
2
.github/workflows/crowdin-upload.yml
vendored
@ -26,7 +26,7 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: crowdin action
|
||||
uses: crowdin/github-action@v1
|
||||
uses: crowdin/github-action@v2
|
||||
with:
|
||||
config: crowdin-glitch.yml
|
||||
upload_sources: true
|
||||
|
1
.github/workflows/rebase-needed.yml
vendored
1
.github/workflows/rebase-needed.yml
vendored
@ -10,6 +10,7 @@ permissions:
|
||||
jobs:
|
||||
label-rebase-needed:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'mastodon/mastodon'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
|
@ -40,7 +40,6 @@ Style/FetchEnvVar:
|
||||
- 'config/environments/production.rb'
|
||||
- 'config/initializers/2_limited_federation_mode.rb'
|
||||
- 'config/initializers/3_omniauth.rb'
|
||||
- 'config/initializers/blacklists.rb'
|
||||
- 'config/initializers/cache_buster.rb'
|
||||
- 'config/initializers/devise.rb'
|
||||
- 'config/initializers/paperclip.rb'
|
||||
|
@ -191,7 +191,7 @@ FROM build AS libvips
|
||||
|
||||
# libvips version to compile, change with [--build-arg VIPS_VERSION="8.15.2"]
|
||||
# renovate: datasource=github-releases depName=libvips packageName=libvips/libvips
|
||||
ARG VIPS_VERSION=8.15.2
|
||||
ARG VIPS_VERSION=8.15.3
|
||||
# libvips download URL, change with [--build-arg VIPS_URL="https://github.com/libvips/libvips/releases/download"]
|
||||
ARG VIPS_URL=https://github.com/libvips/libvips/releases/download
|
||||
|
||||
|
10
Gemfile.lock
10
Gemfile.lock
@ -168,7 +168,7 @@ GEM
|
||||
climate_control (1.2.0)
|
||||
cocoon (1.2.15)
|
||||
color_diff (0.1)
|
||||
concurrent-ruby (1.3.3)
|
||||
concurrent-ruby (1.3.4)
|
||||
connection_pool (2.4.1)
|
||||
cose (1.3.0)
|
||||
cbor (~> 0.5.9)
|
||||
@ -460,8 +460,9 @@ GEM
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
sidekiq (>= 3.5)
|
||||
statsd-ruby (~> 1.4, >= 1.4.0)
|
||||
oj (3.16.4)
|
||||
oj (3.16.5)
|
||||
bigdecimal (>= 3.0)
|
||||
ostruct (>= 0.2)
|
||||
omniauth (2.1.2)
|
||||
hashie (>= 3.4.6)
|
||||
rack (>= 2.2.3)
|
||||
@ -582,6 +583,7 @@ GEM
|
||||
opentelemetry-semantic_conventions (1.10.1)
|
||||
opentelemetry-api (~> 1.0)
|
||||
orm_adapter (0.5.0)
|
||||
ostruct (0.6.0)
|
||||
ox (2.14.18)
|
||||
parallel (1.25.1)
|
||||
parser (3.3.4.0)
|
||||
@ -601,7 +603,7 @@ GEM
|
||||
actionmailer (>= 3)
|
||||
net-smtp
|
||||
premailer (~> 1.7, >= 1.7.9)
|
||||
propshaft (0.9.0)
|
||||
propshaft (0.9.1)
|
||||
actionpack (>= 7.0.0)
|
||||
activesupport (>= 7.0.0)
|
||||
rack
|
||||
@ -904,7 +906,7 @@ GEM
|
||||
xorcist (1.1.3)
|
||||
xpath (3.2.0)
|
||||
nokogiri (~> 1.8)
|
||||
zeitwerk (2.6.16)
|
||||
zeitwerk (2.6.17)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
@ -187,4 +187,15 @@ class Auth::SessionsController < Devise::SessionsController
|
||||
def second_factor_attempts_key(user)
|
||||
"2fa_auth_attempts:#{user.id}:#{Time.now.utc.hour}"
|
||||
end
|
||||
|
||||
def respond_to_on_destroy
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
render json: {
|
||||
redirect_to: after_sign_out_path_for(resource_name),
|
||||
}, status: 200
|
||||
end
|
||||
format.all { super }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -47,7 +47,7 @@ function dispatchAssociatedRecords(
|
||||
fetchedAccounts.push(notification.moderation_warning.target_account);
|
||||
}
|
||||
|
||||
if ('status' in notification) {
|
||||
if ('status' in notification && notification.status) {
|
||||
fetchedStatuses.push(notification.status);
|
||||
}
|
||||
});
|
||||
@ -119,7 +119,7 @@ export const processNewNotificationForGroups = createAppAsyncThunk(
|
||||
|
||||
if (
|
||||
(notification.type === 'mention' || notification.type === 'update') &&
|
||||
notification.status.filtered
|
||||
notification.status?.filtered
|
||||
) {
|
||||
const filters = notification.status.filtered.filter((result) =>
|
||||
result.filter.context.includes('notifications'),
|
||||
|
@ -60,12 +60,12 @@ export interface BaseNotificationGroupJSON {
|
||||
|
||||
interface NotificationGroupWithStatusJSON extends BaseNotificationGroupJSON {
|
||||
type: NotificationWithStatusType;
|
||||
status_id: string;
|
||||
status_id: string | null;
|
||||
}
|
||||
|
||||
interface NotificationWithStatusJSON extends BaseNotificationJSON {
|
||||
type: NotificationWithStatusType;
|
||||
status: ApiStatusJSON;
|
||||
status: ApiStatusJSON | null;
|
||||
}
|
||||
|
||||
interface ReportNotificationGroupJSON extends BaseNotificationGroupJSON {
|
||||
|
@ -1,12 +1,15 @@
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import classNames from 'classnames';
|
||||
|
||||
interface Props {
|
||||
resource: JSX.Element;
|
||||
url: string;
|
||||
className?: string;
|
||||
}
|
||||
|
||||
export const TimelineHint: React.FC<Props> = ({ resource, url }) => (
|
||||
<div className='timeline-hint'>
|
||||
export const TimelineHint: React.FC<Props> = ({ className, resource, url }) => (
|
||||
<div className={classNames('timeline-hint', className)}>
|
||||
<strong>
|
||||
<FormattedMessage
|
||||
id='timeline_hint.remote_resource_not_displayed'
|
||||
|
@ -47,14 +47,18 @@ class ColumnSettings extends PureComponent {
|
||||
|
||||
return (
|
||||
<div className='column-settings'>
|
||||
{alertsEnabled && browserSupport && browserPermission === 'denied' && (
|
||||
<span className='warning-hint'><FormattedMessage id='notifications.permission_denied' defaultMessage='Desktop notifications are unavailable due to previously denied browser permissions request' /></span>
|
||||
)}
|
||||
|
||||
<section>
|
||||
<ClearColumnButton onClick={onClear} />
|
||||
</section>
|
||||
|
||||
{alertsEnabled && browserSupport && browserPermission === 'denied' && (
|
||||
<section>
|
||||
<span className='warning-hint'>
|
||||
<FormattedMessage id='notifications.permission_denied' defaultMessage='Desktop notifications are unavailable due to previously denied browser permissions request' />
|
||||
</span>
|
||||
</section>
|
||||
)}
|
||||
|
||||
{alertsEnabled && browserSupport && browserPermission === 'default' && (
|
||||
<section>
|
||||
<span className='warning-hint'>
|
||||
|
@ -37,7 +37,11 @@ export const NotificationMention: React.FC<{
|
||||
unread: boolean;
|
||||
}> = ({ notification, unread }) => {
|
||||
const [isDirect, isReply] = useAppSelector((state) => {
|
||||
const status = state.statuses.get(notification.statusId) as Status;
|
||||
const status = state.statuses.get(notification.statusId) as
|
||||
| Status
|
||||
| undefined;
|
||||
|
||||
if (!status) return [false, false] as const;
|
||||
|
||||
return [
|
||||
status.get('visibility') === 'direct',
|
||||
|
@ -26,7 +26,7 @@ export const NotificationWithStatus: React.FC<{
|
||||
icon: IconProp;
|
||||
iconId: string;
|
||||
accountIds: string[];
|
||||
statusId: string;
|
||||
statusId: string | undefined;
|
||||
count: number;
|
||||
labelRenderer: LabelRenderer;
|
||||
unread: boolean;
|
||||
@ -80,6 +80,8 @@ export const NotificationWithStatus: React.FC<{
|
||||
[dispatch, statusId],
|
||||
);
|
||||
|
||||
if (!statusId) return null;
|
||||
|
||||
return (
|
||||
<HotKeys handlers={handlers}>
|
||||
<div
|
||||
|
@ -655,7 +655,7 @@ class Status extends ImmutablePureComponent {
|
||||
const isIndexable = !status.getIn(['account', 'noindex']);
|
||||
|
||||
if (!isLocal) {
|
||||
remoteHint = <TimelineHint url={status.get('url')} resource={<FormattedMessage id='timeline_hint.resources.replies' defaultMessage='Some replies' />} />;
|
||||
remoteHint = <TimelineHint className={classNames(!!descendants && 'timeline-hint--with-descendants')} url={status.get('url')} resource={<FormattedMessage id='timeline_hint.resources.replies' defaultMessage='Some replies' />} />;
|
||||
}
|
||||
|
||||
const handlers = {
|
||||
|
@ -25,7 +25,7 @@ export const ConfirmLogOutModal: React.FC<BaseConfirmationModalProps> = ({
|
||||
const intl = useIntl();
|
||||
|
||||
const onConfirm = useCallback(() => {
|
||||
logOut();
|
||||
void logOut();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
|
@ -21,7 +21,7 @@ interface BaseNotificationGroup
|
||||
interface BaseNotificationWithStatus<Type extends NotificationWithStatusType>
|
||||
extends BaseNotificationGroup {
|
||||
type: Type;
|
||||
statusId: string;
|
||||
statusId: string | undefined;
|
||||
}
|
||||
|
||||
interface BaseNotification<Type extends NotificationType>
|
||||
@ -126,7 +126,7 @@ export function createNotificationGroupFromJSON(
|
||||
case 'update': {
|
||||
const { status_id: statusId, ...groupWithoutStatus } = group;
|
||||
return {
|
||||
statusId,
|
||||
statusId: statusId ?? undefined,
|
||||
sampleAccountIds,
|
||||
...groupWithoutStatus,
|
||||
};
|
||||
@ -183,7 +183,7 @@ export function createNotificationGroupFromNotificationJSON(
|
||||
case 'mention':
|
||||
case 'poll':
|
||||
case 'update':
|
||||
return { ...group, statusId: notification.status.id };
|
||||
return { ...group, statusId: notification.status?.id };
|
||||
case 'admin.report':
|
||||
return { ...group, report: createReportFromJSON(notification.report) };
|
||||
case 'severed_relationships':
|
||||
|
@ -718,7 +718,7 @@ body,
|
||||
top: 15px;
|
||||
|
||||
.avatar {
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
@ -769,7 +769,7 @@ body,
|
||||
top: 15px;
|
||||
|
||||
.avatar {
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
@ -893,6 +893,7 @@ a.name-tag,
|
||||
|
||||
.account {
|
||||
padding: 0;
|
||||
border: none;
|
||||
|
||||
&__avatar-wrapper {
|
||||
margin-inline-start: 0;
|
||||
@ -1616,7 +1617,7 @@ a.sparkline {
|
||||
position: absolute;
|
||||
inset-inline-start: 15px;
|
||||
top: 15px;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
@ -1990,6 +1990,7 @@ body > [data-popper-placement] {
|
||||
|
||||
.account {
|
||||
padding: 10px; // glitch: reduced padding
|
||||
border-bottom: 1px solid var(--background-border-color);
|
||||
|
||||
.account__display-name {
|
||||
flex: 1 1 auto;
|
||||
@ -2178,13 +2179,14 @@ body > [data-popper-placement] {
|
||||
.account__avatar {
|
||||
display: block;
|
||||
position: relative;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
}
|
||||
|
||||
&-inline {
|
||||
@ -3018,7 +3020,7 @@ $ui-header-logo-wordmark-width: 99px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@media screen and (width >= 631px) {
|
||||
@media screen and (width > $mobile-breakpoint) {
|
||||
.columns-area {
|
||||
padding: 0;
|
||||
}
|
||||
@ -4453,6 +4455,10 @@ a.status-card {
|
||||
}
|
||||
}
|
||||
|
||||
.timeline-hint--with-descendants {
|
||||
border-top: 1px solid var(--background-border-color);
|
||||
}
|
||||
|
||||
.regeneration-indicator {
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
@ -4742,10 +4748,19 @@ a.status-card {
|
||||
opacity: 1;
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
border-left: 1px solid var(--background-border-color);
|
||||
border-right: 1px solid var(--background-border-color);
|
||||
border-bottom: 1px solid var(--background-border-color);
|
||||
|
||||
@media screen and (max-width: $no-gap-breakpoint) {
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
&.collapsed {
|
||||
max-height: 0;
|
||||
opacity: 0.5;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
&.animating {
|
||||
@ -4772,13 +4787,7 @@ a.status-card {
|
||||
}
|
||||
|
||||
.column-header__collapsible-inner {
|
||||
border: 1px solid var(--background-border-color);
|
||||
border-top: 0;
|
||||
|
||||
@media screen and (max-width: $no-gap-breakpoint) {
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.column-header__setting-btn {
|
||||
@ -6197,7 +6206,7 @@ a.status-card {
|
||||
user-select: text;
|
||||
display: flex;
|
||||
|
||||
@media screen and (width <= 630px) {
|
||||
@media screen and (width <= $mobile-breakpoint) {
|
||||
margin-top: auto;
|
||||
}
|
||||
}
|
||||
@ -6556,7 +6565,7 @@ a.status-card {
|
||||
border-radius: 0 0 16px 16px;
|
||||
border-top: 0;
|
||||
|
||||
@media screen and (max-width: $no-gap-breakpoint) {
|
||||
@media screen and (max-width: $mobile-breakpoint) {
|
||||
border-radius: 0;
|
||||
border-bottom: 0;
|
||||
padding-bottom: 32px;
|
||||
@ -8522,7 +8531,7 @@ noscript {
|
||||
.account__avatar {
|
||||
background: var(--background-color);
|
||||
border: 1px solid var(--background-border-color);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -9649,8 +9658,9 @@ noscript {
|
||||
backdrop-filter: var(--background-filter);
|
||||
border: 1px solid var(--modal-border-color);
|
||||
padding: 24px;
|
||||
box-sizing: border-box;
|
||||
|
||||
@media screen and (max-width: $no-gap-breakpoint) {
|
||||
@media screen and (max-width: $mobile-breakpoint) {
|
||||
border-radius: 16px 16px 0 0;
|
||||
border-bottom: 0;
|
||||
padding-bottom: 32px;
|
||||
|
@ -81,7 +81,7 @@
|
||||
height: 100%;
|
||||
display: block;
|
||||
margin: 0;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -313,7 +313,7 @@ code {
|
||||
margin-bottom: 10px;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
background: url('images/void.png');
|
||||
|
||||
&[src$='missing.png'] {
|
||||
|
@ -54,40 +54,21 @@ table {
|
||||
}
|
||||
|
||||
html {
|
||||
scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);
|
||||
scrollbar-color: var(--background-border-color);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: lighten($ui-base-color, 4%);
|
||||
border: 0px none $base-border-color;
|
||||
border-radius: 50px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: lighten($ui-base-color, 6%);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:active {
|
||||
background: lighten($ui-base-color, 4%);
|
||||
background-color: $ui-highlight-color;
|
||||
opacity: .25;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
border: 0px none $base-border-color;
|
||||
border-radius: 0;
|
||||
background: rgba($base-overlay-background, 0.1);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track:hover {
|
||||
background: $ui-base-color;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track:active {
|
||||
background: $ui-base-color;
|
||||
background-color: var(--background-border-color);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-corner {
|
||||
|
@ -88,6 +88,7 @@ $media-modal-media-max-width: 100%;
|
||||
$media-modal-media-max-height: 80%;
|
||||
|
||||
$no-gap-breakpoint: 1175px;
|
||||
$mobile-breakpoint: 630px;
|
||||
|
||||
$font-sans-serif: 'mastodon-font-sans-serif' !default;
|
||||
$font-display: 'mastodon-font-display' !default;
|
||||
@ -114,4 +115,5 @@ $dismiss-overlay-width: 4rem;
|
||||
--surface-background-color: #{darken($ui-base-color, 4%)};
|
||||
--surface-variant-background-color: #{$ui-base-color};
|
||||
--surface-variant-active-background-color: #{lighten($ui-base-color, 4%)};
|
||||
--avatar-border-radius: 8px;
|
||||
}
|
||||
|
@ -1,38 +1,20 @@
|
||||
import { signOutLink } from 'flavours/glitch/utils/backend_links';
|
||||
import api from 'flavours/glitch/api';
|
||||
|
||||
export const logOut = () => {
|
||||
const form = document.createElement('form');
|
||||
export async function logOut() {
|
||||
try {
|
||||
const response = await api(false).delete<{ redirect_to?: string }>(
|
||||
'/auth/sign_out',
|
||||
{ headers: { Accept: 'application/json' }, withCredentials: true },
|
||||
);
|
||||
|
||||
const methodInput = document.createElement('input');
|
||||
methodInput.setAttribute('name', '_method');
|
||||
methodInput.setAttribute('value', 'delete');
|
||||
methodInput.setAttribute('type', 'hidden');
|
||||
form.appendChild(methodInput);
|
||||
|
||||
const csrfToken = document.querySelector<HTMLMetaElement>(
|
||||
'meta[name=csrf-token]',
|
||||
);
|
||||
|
||||
const csrfParam = document.querySelector<HTMLMetaElement>(
|
||||
'meta[name=csrf-param]',
|
||||
);
|
||||
|
||||
if (csrfParam && csrfToken) {
|
||||
const csrfInput = document.createElement('input');
|
||||
csrfInput.setAttribute('name', csrfParam.content);
|
||||
csrfInput.setAttribute('value', csrfToken.content);
|
||||
csrfInput.setAttribute('type', 'hidden');
|
||||
form.appendChild(csrfInput);
|
||||
if (response.status === 200 && response.data.redirect_to)
|
||||
window.location.href = response.data.redirect_to;
|
||||
else
|
||||
console.error(
|
||||
'Failed to log out, got an unexpected non-redirect response from the server',
|
||||
response,
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('Failed to log out, response was an error', error);
|
||||
}
|
||||
|
||||
const submitButton = document.createElement('input');
|
||||
submitButton.setAttribute('type', 'submit');
|
||||
form.appendChild(submitButton);
|
||||
|
||||
form.method = 'post';
|
||||
form.action = signOutLink;
|
||||
form.style.display = 'none';
|
||||
|
||||
document.body.appendChild(form);
|
||||
submitButton.click();
|
||||
};
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ function dispatchAssociatedRecords(
|
||||
fetchedAccounts.push(notification.moderation_warning.target_account);
|
||||
}
|
||||
|
||||
if ('status' in notification) {
|
||||
if ('status' in notification && notification.status) {
|
||||
fetchedStatuses.push(notification.status);
|
||||
}
|
||||
});
|
||||
@ -119,7 +119,7 @@ export const processNewNotificationForGroups = createAppAsyncThunk(
|
||||
|
||||
if (
|
||||
(notification.type === 'mention' || notification.type === 'update') &&
|
||||
notification.status.filtered
|
||||
notification.status?.filtered
|
||||
) {
|
||||
const filters = notification.status.filtered.filter((result) =>
|
||||
result.filter.context.includes('notifications'),
|
||||
|
@ -60,12 +60,12 @@ export interface BaseNotificationGroupJSON {
|
||||
|
||||
interface NotificationGroupWithStatusJSON extends BaseNotificationGroupJSON {
|
||||
type: NotificationWithStatusType;
|
||||
status_id: string;
|
||||
status_id: string | null;
|
||||
}
|
||||
|
||||
interface NotificationWithStatusJSON extends BaseNotificationJSON {
|
||||
type: NotificationWithStatusType;
|
||||
status: ApiStatusJSON;
|
||||
status: ApiStatusJSON | null;
|
||||
}
|
||||
|
||||
interface ReportNotificationGroupJSON extends BaseNotificationGroupJSON {
|
||||
|
@ -1,12 +1,15 @@
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import classNames from 'classnames';
|
||||
|
||||
interface Props {
|
||||
resource: JSX.Element;
|
||||
url: string;
|
||||
className?: string;
|
||||
}
|
||||
|
||||
export const TimelineHint: React.FC<Props> = ({ resource, url }) => (
|
||||
<div className='timeline-hint'>
|
||||
export const TimelineHint: React.FC<Props> = ({ className, resource, url }) => (
|
||||
<div className={classNames('timeline-hint', className)}>
|
||||
<strong>
|
||||
<FormattedMessage
|
||||
id='timeline_hint.remote_resource_not_displayed'
|
||||
|
@ -45,14 +45,18 @@ class ColumnSettings extends PureComponent {
|
||||
|
||||
return (
|
||||
<div className='column-settings'>
|
||||
{alertsEnabled && browserSupport && browserPermission === 'denied' && (
|
||||
<span className='warning-hint'><FormattedMessage id='notifications.permission_denied' defaultMessage='Desktop notifications are unavailable due to previously denied browser permissions request' /></span>
|
||||
)}
|
||||
|
||||
<section>
|
||||
<ClearColumnButton onClick={onClear} />
|
||||
</section>
|
||||
|
||||
{alertsEnabled && browserSupport && browserPermission === 'denied' && (
|
||||
<section>
|
||||
<span className='warning-hint'>
|
||||
<FormattedMessage id='notifications.permission_denied' defaultMessage='Desktop notifications are unavailable due to previously denied browser permissions request' />
|
||||
</span>
|
||||
</section>
|
||||
)}
|
||||
|
||||
{alertsEnabled && browserSupport && browserPermission === 'default' && (
|
||||
<section>
|
||||
<span className='warning-hint'>
|
||||
|
@ -37,7 +37,11 @@ export const NotificationMention: React.FC<{
|
||||
unread: boolean;
|
||||
}> = ({ notification, unread }) => {
|
||||
const [isDirect, isReply] = useAppSelector((state) => {
|
||||
const status = state.statuses.get(notification.statusId) as Status;
|
||||
const status = state.statuses.get(notification.statusId) as
|
||||
| Status
|
||||
| undefined;
|
||||
|
||||
if (!status) return [false, false] as const;
|
||||
|
||||
return [
|
||||
status.get('visibility') === 'direct',
|
||||
|
@ -23,7 +23,7 @@ export const NotificationWithStatus: React.FC<{
|
||||
icon: IconProp;
|
||||
iconId: string;
|
||||
accountIds: string[];
|
||||
statusId: string;
|
||||
statusId: string | undefined;
|
||||
count: number;
|
||||
labelRenderer: LabelRenderer;
|
||||
unread: boolean;
|
||||
@ -76,6 +76,8 @@ export const NotificationWithStatus: React.FC<{
|
||||
[dispatch, statusId],
|
||||
);
|
||||
|
||||
if (!statusId) return null;
|
||||
|
||||
return (
|
||||
<HotKeys handlers={handlers}>
|
||||
<div
|
||||
|
@ -629,7 +629,7 @@ class Status extends ImmutablePureComponent {
|
||||
const isIndexable = !status.getIn(['account', 'noindex']);
|
||||
|
||||
if (!isLocal) {
|
||||
remoteHint = <TimelineHint url={status.get('url')} resource={<FormattedMessage id='timeline_hint.resources.replies' defaultMessage='Some replies' />} />;
|
||||
remoteHint = <TimelineHint className={classNames(!!descendants && 'timeline-hint--with-descendants')} url={status.get('url')} resource={<FormattedMessage id='timeline_hint.resources.replies' defaultMessage='Some replies' />} />;
|
||||
}
|
||||
|
||||
const handlers = {
|
||||
|
@ -25,7 +25,7 @@ export const ConfirmLogOutModal: React.FC<BaseConfirmationModalProps> = ({
|
||||
const intl = useIntl();
|
||||
|
||||
const onConfirm = useCallback(() => {
|
||||
logOut();
|
||||
void logOut();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
|
@ -482,6 +482,8 @@
|
||||
"notification.favourite": "{name} направи любима публикацията ви",
|
||||
"notification.follow": "{name} ви последва",
|
||||
"notification.follow_request": "{name} поиска да ви последва",
|
||||
"notification.label.mention": "Споменаване",
|
||||
"notification.mention": "Споменаване",
|
||||
"notification.moderation-warning.learn_more": "Научете повече",
|
||||
"notification.moderation_warning": "Получихте предупреждение за модериране",
|
||||
"notification.moderation_warning.action_delete_statuses": "Някои от публикациите ви са премахнати.",
|
||||
@ -503,12 +505,15 @@
|
||||
"notification.update": "{name} промени публикация",
|
||||
"notification_requests.accept": "Приемам",
|
||||
"notification_requests.dismiss": "Отхвърлям",
|
||||
"notification_requests.enter_selection_mode": "Изберете",
|
||||
"notification_requests.exit_selection_mode": "Отказ",
|
||||
"notification_requests.explainer_for_limited_account": "Известията от този акаунт са прецедени, защото акаунтът е ограничен от модератор.",
|
||||
"notification_requests.explainer_for_limited_remote_account": "Известията от този акаунт са прецедени, защото акаунтът или сървърът му е ограничен от модератор.",
|
||||
"notification_requests.maximize": "Максимизиране",
|
||||
"notification_requests.minimize_banner": "Минимизиране на банера за филтрирани известия",
|
||||
"notification_requests.notifications_from": "Известия от {name}",
|
||||
"notification_requests.title": "Филтрирани известия",
|
||||
"notification_requests.view": "Преглед на известията",
|
||||
"notifications.clear": "Изчистване на известията",
|
||||
"notifications.clear_confirmation": "Наистина ли искате да изчистите завинаги всичките си известия?",
|
||||
"notifications.clear_title": "Изчиствате ли известията?",
|
||||
@ -545,6 +550,9 @@
|
||||
"notifications.permission_denied": "Известията на работния плот не са налични поради предварително отказана заявка за разрешение в браузъра",
|
||||
"notifications.permission_denied_alert": "Известията на работния плот не могат да се включат, тъй като разрешението на браузъра е отказвано преди",
|
||||
"notifications.permission_required": "Известията на работния плот ги няма, щото няма дадено нужното позволение.",
|
||||
"notifications.policy.accept": "Приемам",
|
||||
"notifications.policy.accept_hint": "Показване в известия",
|
||||
"notifications.policy.filter": "Филтър",
|
||||
"notifications.policy.filter_limited_accounts_hint": "Ограничено от модераторите на сървъра",
|
||||
"notifications.policy.filter_limited_accounts_title": "Модерирани акаунти",
|
||||
"notifications.policy.filter_new_accounts.hint": "Сътворено през {days, plural, one {последния ден} other {последните # дена}}",
|
||||
|
@ -11,6 +11,7 @@
|
||||
"about.not_available": "Nid yw'r wybodaeth hon ar gael ar y gweinydd hwn.",
|
||||
"about.powered_by": "Cyfrwng cymdeithasol datganoledig wedi ei yrru gan {mastodon}",
|
||||
"about.rules": "Rheolau'r gweinydd",
|
||||
"account.account_note_header": "Nodyn personol",
|
||||
"account.add_or_remove_from_list": "Ychwanegu neu Ddileu o'r rhestrau",
|
||||
"account.badges.bot": "Bot",
|
||||
"account.badges.group": "Grŵp",
|
||||
@ -299,6 +300,7 @@
|
||||
"filter_modal.select_filter.subtitle": "Defnyddiwch gategori sy'n bodoli eisoes neu crëu un newydd",
|
||||
"filter_modal.select_filter.title": "Hidlo'r postiad hwn",
|
||||
"filter_modal.title.status": "Hidlo postiad",
|
||||
"filtered_notifications_banner.pending_requests": "Gan {count, plural, =0 {no one} one {un person} two {# berson} few {# pherson} other {# person}} efallai eich bod yn eu hadnabod",
|
||||
"filtered_notifications_banner.title": "Hysbysiadau wedi'u hidlo",
|
||||
"firehose.all": "Popeth",
|
||||
"firehose.local": "Gweinydd hwn",
|
||||
@ -354,6 +356,17 @@
|
||||
"home.pending_critical_update.link": "Gweld y diweddariadau",
|
||||
"home.pending_critical_update.title": "Mae diweddariad diogelwch hanfodol ar gael!",
|
||||
"home.show_announcements": "Dangos cyhoeddiadau",
|
||||
"ignore_notifications_modal.disclaimer": "Ni all Mastodon hysbysu defnyddwyr eich bod wedi anwybyddu eu hysbysiadau. Ni fydd anwybyddu hysbysiadau yn atal y negeseuon eu hunain rhag cael eu hanfon.",
|
||||
"ignore_notifications_modal.filter_instead": "Hidlo yn lle hynny",
|
||||
"ignore_notifications_modal.filter_to_act_users": "Byddwch yn dal i allu derbyn, gwrthod neu adrodd ar ddefnyddwyr",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "Mae hidlo yn helpu i osgoi dryswch posibl",
|
||||
"ignore_notifications_modal.filter_to_review_separately": "Gallwch adolygu hysbysiadau wedi'u hidlo ar wahân",
|
||||
"ignore_notifications_modal.ignore": "Anwybyddu hysbysiadau",
|
||||
"ignore_notifications_modal.limited_accounts_title": "Anwybyddu hysbysiadau o gyfrifon wedi'u cymedroli?",
|
||||
"ignore_notifications_modal.new_accounts_title": "Anwybyddu hysbysiadau o gyfrifon newydd?",
|
||||
"ignore_notifications_modal.not_followers_title": "Anwybyddu hysbysiadau gan bobl nad ydynt yn eich dilyn?",
|
||||
"ignore_notifications_modal.not_following_title": "Anwybyddu hysbysiadau gan bobl nad ydych yn eu dilyn?",
|
||||
"ignore_notifications_modal.private_mentions_title": "Anwybyddu hysbysiadau o Grybwylliadau Preifat digymell?",
|
||||
"interaction_modal.description.favourite": "Gyda chyfrif ar Mastodon, gallwch chi hoffi'r postiad hwn er mwyn roi gwybod i'r awdur eich bod chi'n ei werthfawrogi ac yn ei gadw ar gyfer nes ymlaen.",
|
||||
"interaction_modal.description.follow": "Gyda chyfrif ar Mastodon, gallwch ddilyn {name} i dderbyn eu postiadau yn eich llif cartref.",
|
||||
"interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r postiad hwn i'w rannu â'ch dilynwyr.",
|
||||
@ -472,6 +485,7 @@
|
||||
"navigation_bar.security": "Diogelwch",
|
||||
"not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.",
|
||||
"notification.admin.report": "Adroddwyd ar {name} {target}",
|
||||
"notification.admin.report_account": "{name} reported {count, plural, one {un post} other {# postsiadau}} from {target} for {category}",
|
||||
"notification.admin.report_account_other": "Adroddodd {name} {count, plural, one {un post} two {# bost} few {# phost} other {# post}} gan {target}",
|
||||
"notification.admin.report_statuses": "Adroddodd {name} {target} ar gyfer {category}",
|
||||
"notification.admin.report_statuses_other": "Adroddodd {name} {target}",
|
||||
@ -479,6 +493,11 @@
|
||||
"notification.favourite": "Hoffodd {name} eich postiad",
|
||||
"notification.follow": "Dilynodd {name} chi",
|
||||
"notification.follow_request": "Mae {name} wedi gwneud cais i'ch dilyn",
|
||||
"notification.label.mention": "Crybwyll",
|
||||
"notification.label.private_mention": "Crybwyll preifat",
|
||||
"notification.label.private_reply": "Ateb preifat",
|
||||
"notification.label.reply": "Ateb",
|
||||
"notification.mention": "Crybwyll",
|
||||
"notification.moderation-warning.learn_more": "Dysgu mwy",
|
||||
"notification.moderation_warning": "Rydych wedi derbyn rhybudd gan gymedrolwr",
|
||||
"notification.moderation_warning.action_delete_statuses": "Mae rhai o'ch postiadau wedi'u dileu.",
|
||||
@ -499,10 +518,26 @@
|
||||
"notification.status": "{name} newydd ei bostio",
|
||||
"notification.update": "Golygodd {name} bostiad",
|
||||
"notification_requests.accept": "Derbyn",
|
||||
"notification_requests.accept_all": "Derbyn y cyfan",
|
||||
"notification_requests.accept_multiple": "{count, plural, one {Derbyn # cais} other {Derbyn # cais}}",
|
||||
"notification_requests.confirm_accept_all.button": "Derbyn y cyfan",
|
||||
"notification_requests.confirm_accept_all.message": "Rydych ar fin derbyn {count, plural, one {un cais hysbysu} other {# cais hysbysiad}}. A ydych yn siŵr eich bod am fwrw ymlaen?",
|
||||
"notification_requests.confirm_accept_all.title": "Derbyn ceisiadau hysbysu?",
|
||||
"notification_requests.confirm_dismiss_all.button": "Diystyru pob un",
|
||||
"notification_requests.confirm_dismiss_all.message": "Rydych ar fin diystyru {count, plural, one {un cais hysbysu} other {# cais hysbysiad}}. Ni fyddwch yn gallu cyrchu {count, plural, one {it} other {them}} yn hawdd eto. A ydych yn siŵr eich bod am fwrw ymlaen?",
|
||||
"notification_requests.confirm_dismiss_all.title": "Diystyru ceisiadau hysbysu?",
|
||||
"notification_requests.dismiss": "Cau",
|
||||
"notification_requests.dismiss_all": "Diystyru pob un",
|
||||
"notification_requests.dismiss_multiple": "{count, plural, one {Diystyru # cais} other {Diystyru # cais}}",
|
||||
"notification_requests.enter_selection_mode": "Dewis",
|
||||
"notification_requests.exit_selection_mode": "Canslo",
|
||||
"notification_requests.explainer_for_limited_account": "Mae hysbysiadau o'r cyfrif hwn wedi'u hidlo oherwydd bod y cyfrif wedi'i gyfyngu gan gymedrolwr.",
|
||||
"notification_requests.explainer_for_limited_remote_account": "Mae hysbysiadau o'r cyfrif hwn wedi'u hidlo oherwydd bod y cyfrif neu ei weinydd wedi'i gyfyngu gan gymedrolwr.",
|
||||
"notification_requests.maximize": "Mwyhau",
|
||||
"notification_requests.minimize_banner": "Lleihau baner hysbysiadau wedi'u hidlo",
|
||||
"notification_requests.notifications_from": "Hysbysiadau gan {name}",
|
||||
"notification_requests.title": "Hysbysiadau wedi'u hidlo",
|
||||
"notification_requests.view": "Gweld hysbysiadau",
|
||||
"notifications.clear": "Clirio hysbysiadau",
|
||||
"notifications.clear_confirmation": "Ydych chi'n siŵr eich bod am glirio'ch holl hysbysiadau am byth?",
|
||||
"notifications.clear_title": "Clirio hysbysiadau?",
|
||||
@ -539,6 +574,14 @@
|
||||
"notifications.permission_denied": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd cais am ganiatâd porwr a wrthodwyd yn flaenorol",
|
||||
"notifications.permission_denied_alert": "Nid oes modd galluogi hysbysiadau bwrdd gwaith, gan fod caniatâd porwr wedi'i wrthod o'r blaen",
|
||||
"notifications.permission_required": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd na roddwyd y caniatâd gofynnol.",
|
||||
"notifications.policy.accept": "Derbyn",
|
||||
"notifications.policy.accept_hint": "Dangos mewn hysbysiadau",
|
||||
"notifications.policy.drop": "Anwybyddu",
|
||||
"notifications.policy.drop_hint": "Anfon i'r gwagle, byth i'w gweld eto",
|
||||
"notifications.policy.filter": "Hidlo",
|
||||
"notifications.policy.filter_hint": "Anfon i flwch derbyn hysbysiadau wedi'u hidlo",
|
||||
"notifications.policy.filter_limited_accounts_hint": "Cyfyngedig gan gymedrolwyr gweinydd",
|
||||
"notifications.policy.filter_limited_accounts_title": "Cyfrifon wedi'u cymedroli",
|
||||
"notifications.policy.filter_new_accounts.hint": "Crëwyd o fewn {days, lluosog, un {yr un diwrnod} arall {y # diwrnod}} diwethaf",
|
||||
"notifications.policy.filter_new_accounts_title": "Cyfrifon newydd",
|
||||
"notifications.policy.filter_not_followers_hint": "Gan gynnwys pobl sydd wedi bod yn eich dilyn am llai {days, plural, un {nag un diwrnod} arall {na # diwrnod}}",
|
||||
@ -547,19 +590,20 @@
|
||||
"notifications.policy.filter_not_following_title": "Pobl nad ydych yn eu dilyn",
|
||||
"notifications.policy.filter_private_mentions_hint": "Wedi'i hidlo oni bai ei fod mewn ymateb i'ch crybwylliad eich hun neu os ydych yn dilyn yr anfonwr",
|
||||
"notifications.policy.filter_private_mentions_title": "Crybwylliadau preifat digymell",
|
||||
"notifications.policy.title": "Rheoli hysbysiadau gan…",
|
||||
"notifications_permission_banner.enable": "Galluogi hysbysiadau bwrdd gwaith",
|
||||
"notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddan nhw wedi'u galluogi.",
|
||||
"notifications_permission_banner.title": "Peidiwch â cholli dim",
|
||||
"onboarding.action.back": "Ewch â fi yn ôl",
|
||||
"onboarding.actions.back": "Ewch â fi yn ôl",
|
||||
"onboarding.actions.go_to_explore": "Gweld beth yw'r tuedd",
|
||||
"onboarding.action.back": "Ewch â fi nôl",
|
||||
"onboarding.actions.back": "Ewch â fi nôl",
|
||||
"onboarding.actions.go_to_explore": "Gweld beth sy'n trendio",
|
||||
"onboarding.actions.go_to_home": "Ewch i'ch ffrwd gartref",
|
||||
"onboarding.compose.template": "Helo, #Mastodon!",
|
||||
"onboarding.follows.empty": "Yn anffodus, nid oes modd dangos unrhyw ganlyniadau ar hyn o bryd. Gallwch geisio defnyddio chwilio neu bori'r dudalen archwilio i ddod o hyd i bobl i'w dilyn, neu ceisio eto yn nes ymlaen.",
|
||||
"onboarding.follows.lead": "Rydych chi'n curadu eich ffrwd gartref eich hun. Po fwyaf o bobl y byddwch chi'n eu dilyn, y mwyaf egnïol a diddorol fydd hi. Gall y proffiliau hyn fod yn fan cychwyn da - gallwch chi bob amser eu dad-ddilyn yn nes ymlaen:",
|
||||
"onboarding.follows.title": "Yn boblogaidd ar Mastodon",
|
||||
"onboarding.profile.discoverable": "Gwnewch fy mhroffil yn un y gellir ei ddarganfod",
|
||||
"onboarding.profile.discoverable_hint": "Pan fyddwch yn optio i mewn i ddarganfodadwyedd ar Mastodon, gall eich postiadau ymddangos mewn canlyniadau chwilio a thueddiadau, ac efallai y bydd eich proffil yn cael ei awgrymu i bobl sydd â diddordebau tebyg i chi.",
|
||||
"onboarding.profile.discoverable_hint": "Pan fyddwch yn optio i mewn i ddarganfodadwyedd ar Mastodon, gall eich postiadau ymddangos mewn canlyniadau chwilio a threndiau, ac efallai y bydd eich proffil yn cael ei awgrymu i bobl sydd â diddordebau tebyg i chi.",
|
||||
"onboarding.profile.display_name": "Enw dangos",
|
||||
"onboarding.profile.display_name_hint": "Eich enw llawn neu'ch enw hwyl…",
|
||||
"onboarding.profile.lead": "Gallwch chi bob amser gwblhau hyn yn ddiweddarach yn y gosodiadau, lle mae hyd yn oed mwy o ddewisiadau cyfaddasu ar gael.",
|
||||
@ -787,6 +831,7 @@
|
||||
"timeline_hint.remote_resource_not_displayed": "Nid yw {resource} o weinyddion eraill yn cael ei ddangos.",
|
||||
"timeline_hint.resources.followers": "Dilynwyr",
|
||||
"timeline_hint.resources.follows": "Yn dilyn",
|
||||
"timeline_hint.resources.replies": "Rhai atebion",
|
||||
"timeline_hint.resources.statuses": "Postiadau hŷn",
|
||||
"trends.counter_by_accounts": "{count, plural, zero {neb} one {{counter} person} two {{counter} berson} few {{counter} pherson} other {{counter} o bobl}} yn y {days, plural, one {diwrnod diwethaf} two {ddeuddydd diwethaf} other {{days} diwrnod diwethaf}}",
|
||||
"trends.trending_now": "Yn trendio nawr",
|
||||
|
@ -11,6 +11,7 @@
|
||||
"about.not_available": "Zerbitzari honek ez du informazio hau eskuragarri jarri.",
|
||||
"about.powered_by": "{mastodon} erabiltzen duen sare sozial deszentralizatua",
|
||||
"about.rules": "Zerbitzariaren arauak",
|
||||
"account.account_note_header": "Ohar pertsonala",
|
||||
"account.add_or_remove_from_list": "Gehitu edo kendu zerrendetatik",
|
||||
"account.badges.bot": "Bot-a",
|
||||
"account.badges.group": "Taldea",
|
||||
@ -34,7 +35,9 @@
|
||||
"account.follow_back": "Jarraitu bueltan",
|
||||
"account.followers": "Jarraitzaileak",
|
||||
"account.followers.empty": "Ez du inork erabiltzaile hau jarraitzen oraindik.",
|
||||
"account.followers_counter": "{count, plural, one {{counter} jarraitzaile} other {{counter} jarraitzaile}}",
|
||||
"account.following": "Jarraitzen",
|
||||
"account.following_counter": "{count, plural, one {{counter} jarraitzen} other {{counter} jarraitzen}}",
|
||||
"account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.",
|
||||
"account.go_to_profile": "Joan profilera",
|
||||
"account.hide_reblogs": "Ezkutatu @{name} erabiltzailearen bultzadak",
|
||||
@ -60,6 +63,7 @@
|
||||
"account.requested_follow": "{name}-(e)k zu jarraitzeko eskaera egin du",
|
||||
"account.share": "Partekatu @{name} erabiltzailearen profila",
|
||||
"account.show_reblogs": "Erakutsi @{name} erabiltzailearen bultzadak",
|
||||
"account.statuses_counter": "{count, plural, one {{counter} bidalketa} other {{counter} bidalketa}}",
|
||||
"account.unblock": "Desblokeatu @{name}",
|
||||
"account.unblock_domain": "Berriz erakutsi {domain}",
|
||||
"account.unblock_short": "Desblokeatu",
|
||||
@ -175,6 +179,7 @@
|
||||
"confirmations.discard_edit_media.message": "Multimediaren deskribapen edo aurrebistan gorde gabeko aldaketak daude, baztertu nahi dituzu?",
|
||||
"confirmations.edit.confirm": "Editatu",
|
||||
"confirmations.edit.message": "Orain editatzen baduzu, une honetan idazten ari zaren mezua gainidatziko da. Ziur jarraitu nahi duzula?",
|
||||
"confirmations.edit.title": "Gainidatzi bidalketa?",
|
||||
"confirmations.logout.confirm": "Amaitu saioa",
|
||||
"confirmations.logout.message": "Ziur saioa amaitu nahi duzula?",
|
||||
"confirmations.logout.title": "Itxi saioa?",
|
||||
@ -184,8 +189,10 @@
|
||||
"confirmations.redraft.title": "Ezabatu eta berridatzi bidalketa?",
|
||||
"confirmations.reply.confirm": "Erantzun",
|
||||
"confirmations.reply.message": "Orain erantzuteak idazten ari zaren mezua gainidatziko du. Ziur jarraitu nahi duzula?",
|
||||
"confirmations.reply.title": "Gainidatzi bidalketa?",
|
||||
"confirmations.unfollow.confirm": "Utzi jarraitzeari",
|
||||
"confirmations.unfollow.message": "Ziur {name} jarraitzeari utzi nahi diozula?",
|
||||
"confirmations.unfollow.title": "Erabiltzailea jarraitzeari utzi?",
|
||||
"conversation.delete": "Ezabatu elkarrizketa",
|
||||
"conversation.mark_as_read": "Markatu irakurrita bezala",
|
||||
"conversation.open": "Ikusi elkarrizketa",
|
||||
@ -348,6 +355,12 @@
|
||||
"home.pending_critical_update.link": "Ikusi eguneraketak",
|
||||
"home.pending_critical_update.title": "Segurtasun eguneraketa kritikoa eskuragarri!",
|
||||
"home.show_announcements": "Erakutsi iragarpenak",
|
||||
"ignore_notifications_modal.filter_instead": "Iragazi ez ikusiarena egin beharrean",
|
||||
"ignore_notifications_modal.ignore": "Ezikusi jakinarazpenak",
|
||||
"ignore_notifications_modal.limited_accounts_title": "Moderatutako kontuen jakinarazpenei ez ikusiarena egin?",
|
||||
"ignore_notifications_modal.new_accounts_title": "Kontu berrien jakinarazpenei ez ikusiarena egin?",
|
||||
"ignore_notifications_modal.not_followers_title": "Jarraitzen ez zaituzten pertsonen jakinarazpenei ez ikusiarena egin?",
|
||||
"ignore_notifications_modal.not_following_title": "Jarraitzen ez dituzun pertsonen jakinarazpenei ez ikusiarena egin?",
|
||||
"interaction_modal.description.favourite": "Mastodon kontu batekin bidalketa hau gogoko egin dezakezu, egileari eskertzeko eta gerorako gordetzeko.",
|
||||
"interaction_modal.description.follow": "Mastodon kontu batekin {name} jarraitu dezakezu bere bidalketak zure hasierako denbora lerroan jasotzeko.",
|
||||
"interaction_modal.description.reblog": "Mastodon kontu batekin bidalketa hau bultzatu dezakezu, zure jarraitzaileekin partekatzeko.",
|
||||
@ -466,6 +479,11 @@
|
||||
"notification.favourite": "{name}(e)k zure bidalketa gogoko du",
|
||||
"notification.follow": "{name}(e)k jarraitzen dizu",
|
||||
"notification.follow_request": "{name}(e)k zu jarraitzeko eskaera egin du",
|
||||
"notification.label.mention": "Aipamena",
|
||||
"notification.label.private_mention": "Aipamen pribatua",
|
||||
"notification.label.private_reply": "Erantzun pribatua",
|
||||
"notification.label.reply": "Erantzuna",
|
||||
"notification.mention": "Aipamena",
|
||||
"notification.moderation-warning.learn_more": "Informazio gehiago",
|
||||
"notification.moderation_warning": "Moderazio-abisu bat jaso duzu",
|
||||
"notification.moderation_warning.action_delete_statuses": "Argitalpen batzuk kendu dira.",
|
||||
@ -476,6 +494,7 @@
|
||||
"notification.moderation_warning.action_silence": "Kontua murriztu egin da.",
|
||||
"notification.moderation_warning.action_suspend": "Kontua itxi da.",
|
||||
"notification.own_poll": "Zure inkesta amaitu da",
|
||||
"notification.poll": "Zuk erantzun duzun inkesta bat bukatu da",
|
||||
"notification.reblog": "{name}(e)k bultzada eman dio zure bidalketari",
|
||||
"notification.relationships_severance_event": "{name} erabiltzailearekin galdutako konexioak",
|
||||
"notification.relationships_severance_event.account_suspension": "{from} zerbitzariko administratzaile batek {target} bertan behera utzi du, hau da, ezin izango dituzu jaso hango eguneratzerik edo hangoekin elkarreragin.",
|
||||
@ -483,9 +502,19 @@
|
||||
"notification.status": "{name} erabiltzaileak bidalketa egin berri du",
|
||||
"notification.update": "{name} erabiltzaileak bidalketa bat editatu du",
|
||||
"notification_requests.accept": "Onartu",
|
||||
"notification_requests.accept_all": "Onartu dena",
|
||||
"notification_requests.confirm_accept_all.button": "Onartu dena",
|
||||
"notification_requests.confirm_accept_all.title": "Onartu jakinarazpen-eskaerak?",
|
||||
"notification_requests.confirm_dismiss_all.button": "Baztertu guztiak",
|
||||
"notification_requests.confirm_dismiss_all.title": "Baztertu jakinarazpen-eskaerak?",
|
||||
"notification_requests.dismiss": "Baztertu",
|
||||
"notification_requests.dismiss_all": "Baztertu guztiak",
|
||||
"notification_requests.enter_selection_mode": "Hautatu",
|
||||
"notification_requests.exit_selection_mode": "Utzi",
|
||||
"notification_requests.maximize": "Maximizatu",
|
||||
"notification_requests.notifications_from": "{name} erabiltzailearen jakinarazpenak",
|
||||
"notification_requests.title": "Iragazitako jakinarazpenak",
|
||||
"notification_requests.view": "Ikusi jakinarazpenak",
|
||||
"notifications.clear": "Garbitu jakinarazpenak",
|
||||
"notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?",
|
||||
"notifications.clear_title": "Garbitu jakinarazpenak?",
|
||||
@ -522,6 +551,14 @@
|
||||
"notifications.permission_denied": "Mahaigaineko jakinarazpenak ez daude erabilgarri, nabigatzaileari baimen eskaera ukatu zitzaiolako",
|
||||
"notifications.permission_denied_alert": "Mahaigaineko jakinarazpenak ezin dira gaitu, nabigatzaileari baimena ukatu zitzaiolako",
|
||||
"notifications.permission_required": "Mahaigaineko jakinarazpenak ez daude erabilgarri, horretarako behar den baimena ez delako eman.",
|
||||
"notifications.policy.accept": "Onartu",
|
||||
"notifications.policy.accept_hint": "Erakutsi jakinarazpenetan",
|
||||
"notifications.policy.drop": "Ezikusi",
|
||||
"notifications.policy.drop_hint": "Hutsera bidali, ez erakutsi inoiz gehiago",
|
||||
"notifications.policy.filter": "Iragazi",
|
||||
"notifications.policy.filter_hint": "Bidali filtratutako jakinarazpenen sarrerako ontzira",
|
||||
"notifications.policy.filter_limited_accounts_hint": "Zerbitzariaren moderatzaileek mugatuta",
|
||||
"notifications.policy.filter_limited_accounts_title": "Moderatutako kontuak",
|
||||
"notifications.policy.filter_new_accounts.hint": "Azken {days, plural, one {egunean} other {# egunetan}} sortua",
|
||||
"notifications.policy.filter_new_accounts_title": "Kontu berriak",
|
||||
"notifications.policy.filter_not_followers_hint": "{days, plural, one {Egun batez} other {# egunez}} baino gutxiago jarraitu zaituen jendea barne",
|
||||
@ -530,6 +567,7 @@
|
||||
"notifications.policy.filter_not_following_title": "Jarraitzen ez duzun jendea",
|
||||
"notifications.policy.filter_private_mentions_hint": "Iragazita, baldin eta zure aipamenaren erantzuna bada edo bidaltzailea jarraitzen baduzu",
|
||||
"notifications.policy.filter_private_mentions_title": "Eskatu gabeko aipamen pribatuak",
|
||||
"notifications.policy.title": "Kudeatu honen jakinarazpaenak…",
|
||||
"notifications_permission_banner.enable": "Gaitu mahaigaineko jakinarazpenak",
|
||||
"notifications_permission_banner.how_to_control": "Mastodon irekita ez dagoenean jakinarazpenak jasotzeko, gaitu mahaigaineko jakinarazpenak. Mahaigaineko jakinarazpenak ze elkarrekintzak eragingo dituzten zehazki kontrolatu dezakezu goiko {icon} botoia erabiliz, gaituta daudenean.",
|
||||
"notifications_permission_banner.title": "Ez galdu ezer inoiz",
|
||||
@ -656,6 +694,7 @@
|
||||
"report.unfollow_explanation": "Kontu hau jarraitzen ari zara. Zure denbora-lerro nagusian bere bidalketak ez ikusteko, jarraitzeari utzi.",
|
||||
"report_notification.attached_statuses": "{count, plural, one {Bidalketa {count}} other {{count} bidalketa}} erantsita",
|
||||
"report_notification.categories.legal": "Legala",
|
||||
"report_notification.categories.legal_sentence": "eduki ilegala",
|
||||
"report_notification.categories.other": "Bestelakoak",
|
||||
"report_notification.categories.other_sentence": "bestelakoak",
|
||||
"report_notification.categories.spam": "Spam",
|
||||
@ -691,6 +730,7 @@
|
||||
"server_banner.administered_by": "Administratzailea(k):",
|
||||
"server_banner.server_stats": "Zerbitzariaren estatistikak:",
|
||||
"sign_in_banner.create_account": "Sortu kontua",
|
||||
"sign_in_banner.mastodon_is": "Mastodon gertatzen ari denari buruz egunean egoteko modurik onena da.",
|
||||
"sign_in_banner.sign_in": "Hasi saioa",
|
||||
"sign_in_banner.sso_redirect": "Hasi saioa edo izena eman",
|
||||
"status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea",
|
||||
@ -766,6 +806,7 @@
|
||||
"timeline_hint.remote_resource_not_displayed": "Beste zerbitzarietako {resource} ez da bistaratzen.",
|
||||
"timeline_hint.resources.followers": "Jarraitzaileak",
|
||||
"timeline_hint.resources.follows": "Jarraitzen",
|
||||
"timeline_hint.resources.replies": "Erantzun batzuk",
|
||||
"timeline_hint.resources.statuses": "Bidalketa zaharragoak",
|
||||
"trends.counter_by_accounts": "{count, plural, one {Pertsona {counter}} other {{counter} pertsona}} azken {days, plural, one {egunean} other {{days} egunetan}}",
|
||||
"trends.trending_now": "Joera orain",
|
||||
|
@ -358,7 +358,7 @@
|
||||
"home.show_announcements": "Vís kunngerðir",
|
||||
"ignore_notifications_modal.disclaimer": "Mastodon kann ikki upplýsa brúkarar um, at tú hevur latið sum um, at tú ikki hevur sæð teirra fráboðanir. At lata sum um, at tú ikki sær fráboðanir, forðar ikki, at boðini sjálv verða send.",
|
||||
"ignore_notifications_modal.filter_instead": "Filtrera ístaðin",
|
||||
"ignore_notifications_modal.filter_to_act_users": "Tú kann framvegis góðtaka, avvísa og melda brúkarar",
|
||||
"ignore_notifications_modal.filter_to_act_users": "Tú kanst framvegis góðtaka, avvísa og melda brúkarar",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "Filtrering ger tað lættari at sleppa undan møguligum misskiljingum",
|
||||
"ignore_notifications_modal.filter_to_review_separately": "Tú kanst kanna filtreraðar fráboðanir fyri seg",
|
||||
"ignore_notifications_modal.ignore": "Lat sum um tú ikki sær fráboðanir",
|
||||
|
@ -11,6 +11,7 @@
|
||||
"about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.",
|
||||
"about.powered_by": "Réseau social décentralisé propulsé par {mastodon}",
|
||||
"about.rules": "Règles du serveur",
|
||||
"account.account_note_header": "Note personnelle",
|
||||
"account.add_or_remove_from_list": "Ajouter ou enlever de listes",
|
||||
"account.badges.bot": "Bot",
|
||||
"account.badges.group": "Groupe",
|
||||
|
@ -11,6 +11,7 @@
|
||||
"about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.",
|
||||
"about.powered_by": "Réseau social décentralisé propulsé par {mastodon}",
|
||||
"about.rules": "Règles du serveur",
|
||||
"account.account_note_header": "Note personnelle",
|
||||
"account.add_or_remove_from_list": "Ajouter ou retirer des listes",
|
||||
"account.badges.bot": "Bot",
|
||||
"account.badges.group": "Groupe",
|
||||
|
@ -284,15 +284,15 @@
|
||||
"explore.trending_links": "חדשות",
|
||||
"explore.trending_statuses": "הודעות",
|
||||
"explore.trending_tags": "תגיות",
|
||||
"filter_modal.added.context_mismatch_explanation": "קטגוריית הסנן הזאת לא חלה על ההקשר שממנו הגעת אל ההודעה הזו. אם תרצה/י שההודעה תסונן גם בהקשר זה, תצטרך/י לערוך את הסנן.",
|
||||
"filter_modal.added.context_mismatch_explanation": "קטגוריית המסנן הזאת לא חלה על ההקשר שממנו הגעת אל ההודעה הזו. אם תרצה/י שההודעה תסונן גם בהקשר זה, תצטרך/י לערוך את הסנן.",
|
||||
"filter_modal.added.context_mismatch_title": "אין התאמה להקשר!",
|
||||
"filter_modal.added.expired_explanation": "פג תוקפה של קטגוריית הסינון הזו, יש צורך לשנות את תאריך התפוגה כדי שהסינון יוחל.",
|
||||
"filter_modal.added.expired_title": "פג תוקף הפילטר!",
|
||||
"filter_modal.added.expired_title": "פג תוקף המסנן!",
|
||||
"filter_modal.added.review_and_configure": "לסקירה והתאמה מתקדמת של קטגוריית הסינון הזו, לכו ל{settings_link}.",
|
||||
"filter_modal.added.review_and_configure_title": "אפשרויות סינון",
|
||||
"filter_modal.added.settings_link": "דף הגדרות",
|
||||
"filter_modal.added.short_explanation": "ההודעה הזו הוספה לקטגוריית הסינון הזו: {title}.",
|
||||
"filter_modal.added.title": "הפילטר הוסף!",
|
||||
"filter_modal.added.title": "המסנן הוסף!",
|
||||
"filter_modal.select_filter.context_mismatch": "לא חל בהקשר זה",
|
||||
"filter_modal.select_filter.expired": "פג התוקף",
|
||||
"filter_modal.select_filter.prompt_new": "קטגוריה חדשה {name}",
|
||||
@ -356,8 +356,16 @@
|
||||
"home.pending_critical_update.link": "צפיה בעדכונים",
|
||||
"home.pending_critical_update.title": "יצא עדכון אבטחה חשוב!",
|
||||
"home.show_announcements": "הצג הכרזות",
|
||||
"ignore_notifications_modal.filter_instead": "לסנן במקום",
|
||||
"ignore_notifications_modal.filter_to_act_users": "עדיין ביכולתך לקבל, לדחות ולדווח על משתמשים אחרים",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "סינון מסייע למניעת בלבולים אפשריים",
|
||||
"ignore_notifications_modal.filter_to_review_separately": "ניתן לסקור התראות מפולטרות בנפרד",
|
||||
"ignore_notifications_modal.ignore": "להתעלם מהתראות",
|
||||
"ignore_notifications_modal.limited_accounts_title": "להתעלם מהתראות מחשבונות תחת פיקוח?",
|
||||
"ignore_notifications_modal.new_accounts_title": "להתעלם מהתראות מחשבונות חדשים?",
|
||||
"ignore_notifications_modal.not_followers_title": "להתעלם מהתראות מא.נשים שאינם עוקביך?",
|
||||
"ignore_notifications_modal.not_following_title": "להתעלם מהתראות מא.נשים שאינם נעקביך?",
|
||||
"ignore_notifications_modal.private_mentions_title": "להתעלם מהתראות מאיזכורים פרטיים?",
|
||||
"interaction_modal.description.favourite": "עם חשבון מסטודון, ניתן לחבב את ההודעה כדי לומר למחבר/ת שהערכת את תוכנו או כדי לשמור אותו לקריאה בעתיד.",
|
||||
"interaction_modal.description.follow": "עם חשבון מסטודון, ניתן לעקוב אחרי {name} כדי לקבל את הפוסטים שלו/ה בפיד הבית.",
|
||||
"interaction_modal.description.reblog": "עם חשבון מסטודון, ניתן להדהד את החצרוץ ולשתף עם עוקבים.",
|
||||
@ -509,13 +517,26 @@
|
||||
"notification.status": "{name} הרגע פרסמו",
|
||||
"notification.update": "{name} ערכו הודעה",
|
||||
"notification_requests.accept": "לקבל",
|
||||
"notification_requests.accept_all": "לקבל את כל הבקשות",
|
||||
"notification_requests.accept_multiple": "{count, plural,one {לאשר קבלת בקשה}other {לאשר קבלת # בקשות}}",
|
||||
"notification_requests.confirm_accept_all.button": "לקבל את כל הבקשות",
|
||||
"notification_requests.confirm_accept_all.message": "אתם עומדים לאשר {count, plural,one {בקשת התראה אחת}other {# בקשות התראה}}. להמשיך?",
|
||||
"notification_requests.confirm_accept_all.title": "לקבל בקשות התראה?",
|
||||
"notification_requests.confirm_dismiss_all.button": "דחיית כל הבקשות",
|
||||
"notification_requests.confirm_dismiss_all.message": "אתם עומדים לדחות {count, plural,one {בקשת התראה}other {# בקשות התראה}}. לא תוכלו למצוא {count, plural,one {אותה}other {אותן}} בקלות אחר כך. להמשיך?",
|
||||
"notification_requests.confirm_dismiss_all.title": "לדחות בקשות התראה?",
|
||||
"notification_requests.dismiss": "לבטל",
|
||||
"notification_requests.dismiss_all": "דחיית כל הבקשות",
|
||||
"notification_requests.dismiss_multiple": "{count, plural,one {לדחות בקשה}other {לדחות # בקשות}} לקבלת התראה",
|
||||
"notification_requests.enter_selection_mode": "בחירה",
|
||||
"notification_requests.exit_selection_mode": "ביטול",
|
||||
"notification_requests.explainer_for_limited_account": "התראות על פעולות חשבון זה סוננו כי חשבון זה הוגבל על ידי מנהלי הדיונים.",
|
||||
"notification_requests.explainer_for_limited_remote_account": "התראות על פעולות חשבון זה סוננו כי חשבון זה או השרת שלו הוגבלו על ידי מנהלי הדיונים.",
|
||||
"notification_requests.maximize": "הגדלה למקסימום",
|
||||
"notification_requests.minimize_banner": "להקטין את כותרת ההודעות המפולטרות",
|
||||
"notification_requests.minimize_banner": "להקטין את כותרת ההודעות המסוננות",
|
||||
"notification_requests.notifications_from": "התראות מ־ {name}",
|
||||
"notification_requests.title": "התראות מסוננות",
|
||||
"notification_requests.view": "הצגת ההתראות",
|
||||
"notifications.clear": "הסרת התראות",
|
||||
"notifications.clear_confirmation": "להסיר את כל ההתראות לצמיתות ? ",
|
||||
"notifications.clear_title": "לנקות התראות?",
|
||||
@ -552,6 +573,12 @@
|
||||
"notifications.permission_denied": "לא ניתן להציג התראות מסך כיוון כיוון שהרשאות דפדפן נשללו בעבר",
|
||||
"notifications.permission_denied_alert": "לא ניתן לאפשר נוטיפיקציות מסך שכן הדפדפן סורב הרשאה בעבר",
|
||||
"notifications.permission_required": "לא ניתן לאפשר נוטיפיקציות מסך כיוון שהרשאה דרושה לא ניתנה.",
|
||||
"notifications.policy.accept": "אישור",
|
||||
"notifications.policy.accept_hint": "הצגה בהתראות",
|
||||
"notifications.policy.drop": "להתעלם",
|
||||
"notifications.policy.drop_hint": "שליחה אל מצולות הנשיה, ולא יוודעו אודותיה לעולם",
|
||||
"notifications.policy.filter": "מסנן",
|
||||
"notifications.policy.filter_hint": "שליחה לתיבה נכנסת מסוננת",
|
||||
"notifications.policy.filter_limited_accounts_hint": "הוגבל על ידי מנהלי הדיונים",
|
||||
"notifications.policy.filter_limited_accounts_title": "חשבון מוגבל",
|
||||
"notifications.policy.filter_new_accounts.hint": "נוצר {days, plural,one {ביום האחרון} two {ביומיים האחרונים} other {ב־# הימים האחרונים}}",
|
||||
@ -562,6 +589,7 @@
|
||||
"notifications.policy.filter_not_following_title": "משתמשים שאינך עוקב(ת) אחריהםן",
|
||||
"notifications.policy.filter_private_mentions_hint": "מסונן אלא אם זו תשובה למינשון שלך או אם אתם עוקבים אחרי העונה",
|
||||
"notifications.policy.filter_private_mentions_title": "מינשונים בפרטי שלא הוזמנו",
|
||||
"notifications.policy.title": "ניהול התראות מ…",
|
||||
"notifications_permission_banner.enable": "לאפשר נוטיפיקציות מסך",
|
||||
"notifications_permission_banner.how_to_control": "כדי לקבל התראות גם כאשר מסטודון סגור יש לאפשר התראות מסך. ניתן לשלוט בדיוק איזה סוג של אינטראקציות יביא להתראות מסך דרך כפתור ה- {icon} מרגע שהן מאופשרות.",
|
||||
"notifications_permission_banner.title": "לעולם אל תחמיץ דבר",
|
||||
@ -802,6 +830,7 @@
|
||||
"timeline_hint.remote_resource_not_displayed": "{resource} משרתים אחרים לא מוצגים.",
|
||||
"timeline_hint.resources.followers": "עוקבים",
|
||||
"timeline_hint.resources.follows": "נעקבים",
|
||||
"timeline_hint.resources.replies": "מספר תשובות",
|
||||
"timeline_hint.resources.statuses": "הודעות ישנות יותר",
|
||||
"trends.counter_by_accounts": "{count, plural, one {אדם אחד} other {{count} א.נשים}} {days, plural, one {מאז אתמול} two {ביומיים האחרונים} other {במשך {days} הימים האחרונים}}",
|
||||
"trends.trending_now": "נושאים חמים",
|
||||
|
@ -358,7 +358,7 @@
|
||||
"home.show_announcements": "Közlemények megjelenítése",
|
||||
"ignore_notifications_modal.disclaimer": "A Mastodon nem tudja értesíteni azokat a felhasználókat, akiknek figyelmen kívül hagytad az értesítéseit. Az értesítések figyelmen kívül hagyása nem állítja meg az üzenetek elküldését.",
|
||||
"ignore_notifications_modal.filter_instead": "Inkább szűrés",
|
||||
"ignore_notifications_modal.filter_to_act_users": "Továbbra is el tudja fogadni, el tudja utasítani vagy jelenteni tudja a felhasználókat",
|
||||
"ignore_notifications_modal.filter_to_act_users": "Továbbra is el tudod fogadni, el tudod utasítani vagy tudod jelenteni a felhasználókat",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "A szűrés segít elkerülni a lehetséges félreértéseket",
|
||||
"ignore_notifications_modal.filter_to_review_separately": "A szűrt értesítések külön tekinthetők át",
|
||||
"ignore_notifications_modal.ignore": "Értesítések figyelmen kívül hagyása",
|
||||
|
@ -358,7 +358,9 @@
|
||||
"home.show_announcements": "Mostra annunci",
|
||||
"ignore_notifications_modal.disclaimer": "Mastodon non può informare gli utenti che hai ignorato le loro notifiche. Ignorare le notifiche non impedirà l'invio dei messaggi stessi.",
|
||||
"ignore_notifications_modal.filter_instead": "Filtra invece",
|
||||
"ignore_notifications_modal.filter_to_act_users": "Potrai comunque accettare, rifiutare o segnalare gli utenti",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "Il filtraggio aiuta a evitare potenziali confusioni",
|
||||
"ignore_notifications_modal.filter_to_review_separately": "Puoi rivedere le notifiche filtrate separatamente",
|
||||
"ignore_notifications_modal.ignore": "Ignora le notifiche",
|
||||
"ignore_notifications_modal.limited_accounts_title": "Ignorare le notifiche dagli account moderati?",
|
||||
"ignore_notifications_modal.new_accounts_title": "Ignorare le notifiche dai nuovi account?",
|
||||
@ -575,6 +577,8 @@
|
||||
"notifications.policy.accept": "Accetta",
|
||||
"notifications.policy.accept_hint": "Mostra nelle notifiche",
|
||||
"notifications.policy.drop": "Ignora",
|
||||
"notifications.policy.drop_hint": "Scarta definitivamente, per non essere mai più visto",
|
||||
"notifications.policy.filter": "Filtrare",
|
||||
"notifications.policy.filter_hint": "Invia alla casella in arrivo delle notifiche filtrate",
|
||||
"notifications.policy.filter_limited_accounts_hint": "Limitato dai moderatori del server",
|
||||
"notifications.policy.filter_limited_accounts_title": "Account moderati",
|
||||
|
@ -486,7 +486,7 @@
|
||||
"privacy.private.short": "Imeḍfaren",
|
||||
"privacy.public.long": "Kra n win yellan deg Masṭudun neɣ berra-s",
|
||||
"privacy.public.short": "Azayez",
|
||||
"privacy.unlisted.long": "Kra kan n ilguritmen",
|
||||
"privacy.unlisted.long": "Kra kan yiwarzimen",
|
||||
"privacy_policy.last_updated": "Aleqqem aneggaru {date}",
|
||||
"privacy_policy.title": "Tasertit tabaḍnit",
|
||||
"recommended": "Yettuwelleh",
|
||||
@ -629,6 +629,7 @@
|
||||
"timeline_hint.remote_resource_not_displayed": "{resource} seg yiqeddacen-nniḍen ur d-ttwaskanent ara.",
|
||||
"timeline_hint.resources.followers": "Imeḍfaṛen",
|
||||
"timeline_hint.resources.follows": "T·Yeṭafaṛ",
|
||||
"timeline_hint.resources.replies": "Kra tririyin",
|
||||
"timeline_hint.resources.statuses": "Tisuffaɣ tiqdimin",
|
||||
"trends.counter_by_accounts": "{count, plural, one {{counter} wemdan} other {{counter} medden}} deg {days, plural, one {ass} other {{days} wussan}} iɛeddan",
|
||||
"trends.trending_now": "Ayen mucaɛen tura",
|
||||
|
@ -503,6 +503,8 @@
|
||||
"notification.update": "{name} 님이 게시물을 수정했습니다",
|
||||
"notification_requests.accept": "수락",
|
||||
"notification_requests.dismiss": "지우기",
|
||||
"notification_requests.enter_selection_mode": "선택",
|
||||
"notification_requests.exit_selection_mode": "취소",
|
||||
"notification_requests.maximize": "최대화",
|
||||
"notification_requests.minimize_banner": "걸러진 알림 배너 최소화",
|
||||
"notification_requests.notifications_from": "{name} 님으로부터의 알림",
|
||||
@ -543,6 +545,9 @@
|
||||
"notifications.permission_denied": "권한이 거부되었기 때문에 데스크탑 알림을 활성화할 수 없음",
|
||||
"notifications.permission_denied_alert": "이전에 브라우저 권한이 거부되었기 때문에, 데스크탑 알림이 활성화 될 수 없습니다.",
|
||||
"notifications.permission_required": "필요한 권한이 승인되지 않아 데스크탑 알림을 사용할 수 없습니다.",
|
||||
"notifications.policy.accept": "허용",
|
||||
"notifications.policy.drop": "무시",
|
||||
"notifications.policy.filter": "필터",
|
||||
"notifications.policy.filter_limited_accounts_hint": "서버 중재자에 의해 제한됨",
|
||||
"notifications.policy.filter_limited_accounts_title": "중재된 계정",
|
||||
"notifications.policy.filter_new_accounts.hint": "{days, plural, one {하루} other {#일}} 안에 만들어진",
|
||||
@ -793,6 +798,7 @@
|
||||
"timeline_hint.remote_resource_not_displayed": "다른 서버의 {resource} 표시는 할 수 없습니다.",
|
||||
"timeline_hint.resources.followers": "팔로워",
|
||||
"timeline_hint.resources.follows": "팔로우",
|
||||
"timeline_hint.resources.replies": "몇몇 답글",
|
||||
"timeline_hint.resources.statuses": "이전 게시물",
|
||||
"trends.counter_by_accounts": "이전 {days}일 동안 {counter} 명의 사용자",
|
||||
"trends.trending_now": "지금 유행 중",
|
||||
|
@ -40,7 +40,7 @@
|
||||
"compose_form.direct_message_warning_learn_more": "Discere plura",
|
||||
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
|
||||
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
|
||||
"compose_form.lock_disclaimer": "Tua ratio non est {clausa}. Quisquis te sequi potest ut visum accipiat nuntios tuos tantum pro sectatoribus.",
|
||||
"compose_form.lock_disclaimer": "Tua ratio non est {locked}. Quisquis te sequi potest ut visum accipiat nuntios tuos tantum pro sectatoribus.",
|
||||
"compose_form.lock_disclaimer.lock": "clausum",
|
||||
"compose_form.placeholder": "What is on your mind?",
|
||||
"compose_form.publish_form": "Barrire",
|
||||
@ -128,6 +128,7 @@
|
||||
"lightbox.next": "Secundum",
|
||||
"lists.account.add": "Adde ad tabellās",
|
||||
"lists.new.create": "Addere tabella",
|
||||
"lists.subheading": "Tuae tabulae",
|
||||
"load_pending": "{count, plural, one {# novum item} other {# nova itema}}",
|
||||
"media_gallery.toggle_visible": "{number, plural, one {Cēla imaginem} other {Cēla imagines}}",
|
||||
"moved_to_account_banner.text": "Tua ratione {disabledAccount} interdum reposita est, quod ad {movedToAccount} migrāvisti.",
|
||||
@ -146,7 +147,7 @@
|
||||
"notification.moderation_warning.action_sensitive": "Tua nuntia hinc sensibiliter notabuntur.",
|
||||
"notification.moderation_warning.action_silence": "Ratio tua est limitata.",
|
||||
"notification.moderation_warning.action_suspend": "Ratio tua suspensus est.",
|
||||
"notification.own_poll": "Suffragium tuum terminatum est.",
|
||||
"notification.own_poll": "Suffragium tuum terminatum est",
|
||||
"notification.reblog": "{name} tuum nuntium amplificavit.",
|
||||
"notification.relationships_severance_event.account_suspension": "Admin ab {from} {target} suspendit, quod significat nōn iam posse tē novitātēs ab eīs accipere aut cum eīs interagere.",
|
||||
"notification.relationships_severance_event.domain_block": "Admin ab {from} {target} obsēcāvit, includēns {followersCount} ex tuīs sectātōribus et {followingCount, plural, one {# ratione} other {# rationibus}} quās sequeris.",
|
||||
@ -161,7 +162,7 @@
|
||||
"onboarding.actions.go_to_home": "Go to your home feed",
|
||||
"onboarding.follows.lead": "Tua domus feed est principalis via Mastodon experīrī. Quō plūrēs persōnas sequeris, eō actīvior et interessantior erit. Ad tē incipiendum, ecce quaedam suāsiones:",
|
||||
"onboarding.follows.title": "Popular on Mastodon",
|
||||
"onboarding.profile.display_name_hint": "Tuum nomen completum aut tuum nomen ludens...",
|
||||
"onboarding.profile.display_name_hint": "Tuum nomen completum aut tuum nomen ludens…",
|
||||
"onboarding.start.lead": "Nunc pars es Mastodonis, singularis, socialis medii platformae decentralis ubi—non algorismus—tuam ipsius experientiam curas. Incipiāmus in nova hac socialis regione:",
|
||||
"onboarding.start.skip": "Want to skip right ahead?",
|
||||
"onboarding.start.title": "Perfecisti eam!",
|
||||
|
@ -358,7 +358,9 @@
|
||||
"home.show_announcements": "Rodyti skelbimus",
|
||||
"ignore_notifications_modal.disclaimer": "„Mastodon“ negali informuoti naudotojų, kad ignoravai jų pranešimus. Ignoravus pranešimus, pačių pranešimų siuntimas nebus sustabdytas.",
|
||||
"ignore_notifications_modal.filter_instead": "Filtruoti vietoj to",
|
||||
"ignore_notifications_modal.filter_to_act_users": "Vis dar galėsi priimti, atmesti arba pranešti naudotojus.",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "Filtravimas padeda išvengti galimos painiavos.",
|
||||
"ignore_notifications_modal.filter_to_review_separately": "Filtruotus pranešimus gali peržiūrėti atskirai.",
|
||||
"ignore_notifications_modal.ignore": "Ignoruoti pranešimus",
|
||||
"ignore_notifications_modal.limited_accounts_title": "Ignoruoti pranešimus iš prižiūrėmų paskyrų?",
|
||||
"ignore_notifications_modal.new_accounts_title": "Ignoruoti pranešimus iš naujų paskyrų?",
|
||||
@ -514,13 +516,26 @@
|
||||
"notification.status": "{name} ką tik paskelbė",
|
||||
"notification.update": "{name} redagavo įrašą",
|
||||
"notification_requests.accept": "Priimti",
|
||||
"notification_requests.accept_all": "Priimti visus",
|
||||
"notification_requests.accept_multiple": "{count, plural, one {Priimti # prašymą} few {Priimti # prašymus} many {Priimti # prašymo} other {Priimti # prašymų}}",
|
||||
"notification_requests.confirm_accept_all.button": "Priimti visus",
|
||||
"notification_requests.confirm_accept_all.message": "Ketini priimti {count, plural, one {# pranešimo prašymą} few {# pranešimų prašymus} many {# pranešimo prašymo} other {# pranešimų prašymų}}. Ar tikrai nori tęsti?",
|
||||
"notification_requests.confirm_accept_all.title": "Priimti pranešimų prašymus?",
|
||||
"notification_requests.confirm_dismiss_all.button": "Atmesti visus",
|
||||
"notification_requests.confirm_dismiss_all.message": "Ketini atmesti {count, plural, one {# pranešimo prašymą} few {# pranešimų prašymus} many {# pranešimo prašymo} other {# pranešimų prašymų}}. Daugiau negalėsi lengvai pasiekti {count, plural, one {jo} few {jų} many {juos} other {jų}}. Ar tikrai nori tęsti?",
|
||||
"notification_requests.confirm_dismiss_all.title": "Atmesti pranešimų prašymus?",
|
||||
"notification_requests.dismiss": "Atmesti",
|
||||
"notification_requests.dismiss_all": "Atmesti visus",
|
||||
"notification_requests.dismiss_multiple": "{count, plural, one {Atmesti # prašymą} few {Atmesti # prašymus} many {Atmesti # prašymo} other {Atmesti # prašymų}}",
|
||||
"notification_requests.enter_selection_mode": "Pasirinkti",
|
||||
"notification_requests.exit_selection_mode": "Atšaukti",
|
||||
"notification_requests.explainer_for_limited_account": "Pranešimai iš šios paskyros buvo filtruojami, nes prižiūrėtojas (-a) apribojo paskyrą.",
|
||||
"notification_requests.explainer_for_limited_remote_account": "Pranešimai iš šios paskyros buvo filtruojami, nes prižiūrėtojas (-a) apribojo paskyrą arba serverį.",
|
||||
"notification_requests.maximize": "Padidinti",
|
||||
"notification_requests.minimize_banner": "Mažinti filtruotų pranešimų reklamjuostę",
|
||||
"notification_requests.notifications_from": "Pranešimai iš {name}",
|
||||
"notification_requests.title": "Filtruojami pranešimai",
|
||||
"notification_requests.view": "Peržiūrėti pranešimus",
|
||||
"notifications.clear": "Išvalyti pranešimus",
|
||||
"notifications.clear_confirmation": "Ar tikrai nori visam laikui išvalyti visus pranešimus?",
|
||||
"notifications.clear_title": "Valyti pranešimus?",
|
||||
@ -810,6 +825,7 @@
|
||||
"timeline_hint.remote_resource_not_displayed": "{resource} iš kitų serverių nerodomi.",
|
||||
"timeline_hint.resources.followers": "Sekėjai",
|
||||
"timeline_hint.resources.follows": "Seka",
|
||||
"timeline_hint.resources.replies": "Kai kurie atsakymai",
|
||||
"timeline_hint.resources.statuses": "Senesni įrašai",
|
||||
"trends.counter_by_accounts": "{count, plural, one {{counter} žmogus} few {{counter} žmonės} many {{counter} žmogus} other {{counter} žmonių}} per {days, plural, one {dieną} few {{days} dienas} many {{days} dienas} other {{days} dienų}}",
|
||||
"trends.trending_now": "Tendencinga dabar",
|
||||
|
@ -358,7 +358,9 @@
|
||||
"home.show_announcements": "Vis kunngjeringar",
|
||||
"ignore_notifications_modal.disclaimer": "Mastodon kan ikkje informera brukarane at du overser varsla deira. Å oversjå varsel vil ikkje hindra at meldingane blir sende.",
|
||||
"ignore_notifications_modal.filter_instead": "Filtrer i staden",
|
||||
"ignore_notifications_modal.filter_to_act_users": "Du kan framleis godta, avvisa eller rapportera brukarar",
|
||||
"ignore_notifications_modal.filter_to_avoid_confusion": "Å filtrera hjelper til å unngå mogleg forvirring",
|
||||
"ignore_notifications_modal.filter_to_review_separately": "Du kan gå gjennom filtrerte varslingar for seg",
|
||||
"ignore_notifications_modal.ignore": "Oversjå varsel",
|
||||
"ignore_notifications_modal.limited_accounts_title": "Oversjå varsel frå modererte kontoar?",
|
||||
"ignore_notifications_modal.new_accounts_title": "Oversjå varsel frå nye kontoar?",
|
||||
|
@ -21,7 +21,7 @@ interface BaseNotificationGroup
|
||||
interface BaseNotificationWithStatus<Type extends NotificationWithStatusType>
|
||||
extends BaseNotificationGroup {
|
||||
type: Type;
|
||||
statusId: string;
|
||||
statusId: string | undefined;
|
||||
}
|
||||
|
||||
interface BaseNotification<Type extends NotificationType>
|
||||
@ -126,7 +126,7 @@ export function createNotificationGroupFromJSON(
|
||||
case 'update': {
|
||||
const { status_id: statusId, ...groupWithoutStatus } = group;
|
||||
return {
|
||||
statusId,
|
||||
statusId: statusId ?? undefined,
|
||||
sampleAccountIds,
|
||||
...groupWithoutStatus,
|
||||
};
|
||||
@ -183,7 +183,7 @@ export function createNotificationGroupFromNotificationJSON(
|
||||
case 'mention':
|
||||
case 'poll':
|
||||
case 'update':
|
||||
return { ...group, statusId: notification.status.id };
|
||||
return { ...group, statusId: notification.status?.id };
|
||||
case 'admin.report':
|
||||
return { ...group, report: createReportFromJSON(notification.report) };
|
||||
case 'severed_relationships':
|
||||
|
@ -1,36 +1,20 @@
|
||||
export const logOut = () => {
|
||||
const form = document.createElement('form');
|
||||
import api from 'mastodon/api';
|
||||
|
||||
const methodInput = document.createElement('input');
|
||||
methodInput.setAttribute('name', '_method');
|
||||
methodInput.setAttribute('value', 'delete');
|
||||
methodInput.setAttribute('type', 'hidden');
|
||||
form.appendChild(methodInput);
|
||||
export async function logOut() {
|
||||
try {
|
||||
const response = await api(false).delete<{ redirect_to?: string }>(
|
||||
'/auth/sign_out',
|
||||
{ headers: { Accept: 'application/json' }, withCredentials: true },
|
||||
);
|
||||
|
||||
const csrfToken = document.querySelector<HTMLMetaElement>(
|
||||
'meta[name=csrf-token]',
|
||||
);
|
||||
|
||||
const csrfParam = document.querySelector<HTMLMetaElement>(
|
||||
'meta[name=csrf-param]',
|
||||
);
|
||||
|
||||
if (csrfParam && csrfToken) {
|
||||
const csrfInput = document.createElement('input');
|
||||
csrfInput.setAttribute('name', csrfParam.content);
|
||||
csrfInput.setAttribute('value', csrfToken.content);
|
||||
csrfInput.setAttribute('type', 'hidden');
|
||||
form.appendChild(csrfInput);
|
||||
if (response.status === 200 && response.data.redirect_to)
|
||||
window.location.href = response.data.redirect_to;
|
||||
else
|
||||
console.error(
|
||||
'Failed to log out, got an unexpected non-redirect response from the server',
|
||||
response,
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('Failed to log out, response was an error', error);
|
||||
}
|
||||
|
||||
const submitButton = document.createElement('input');
|
||||
submitButton.setAttribute('type', 'submit');
|
||||
form.appendChild(submitButton);
|
||||
|
||||
form.method = 'post';
|
||||
form.action = '/auth/sign_out';
|
||||
form.style.display = 'none';
|
||||
|
||||
document.body.appendChild(form);
|
||||
submitButton.click();
|
||||
};
|
||||
}
|
||||
|
@ -713,7 +713,7 @@ body,
|
||||
top: 15px;
|
||||
|
||||
.avatar {
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
@ -764,7 +764,7 @@ body,
|
||||
top: 15px;
|
||||
|
||||
.avatar {
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
@ -888,6 +888,7 @@ a.name-tag,
|
||||
|
||||
.account {
|
||||
padding: 0;
|
||||
border: none;
|
||||
|
||||
&__avatar-wrapper {
|
||||
margin-inline-start: 0;
|
||||
@ -1611,7 +1612,7 @@ a.sparkline {
|
||||
position: absolute;
|
||||
inset-inline-start: 15px;
|
||||
top: 15px;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
@ -1808,6 +1808,7 @@ body > [data-popper-placement] {
|
||||
|
||||
.account {
|
||||
padding: 16px;
|
||||
border-bottom: 1px solid var(--background-border-color);
|
||||
|
||||
.account__display-name {
|
||||
flex: 1 1 auto;
|
||||
@ -1996,13 +1997,14 @@ body > [data-popper-placement] {
|
||||
.account__avatar {
|
||||
display: block;
|
||||
position: relative;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
}
|
||||
|
||||
&-inline {
|
||||
@ -2836,7 +2838,7 @@ $ui-header-logo-wordmark-width: 99px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@media screen and (width >= 631px) {
|
||||
@media screen and (width > $mobile-breakpoint) {
|
||||
.columns-area {
|
||||
padding: 0;
|
||||
}
|
||||
@ -4248,6 +4250,10 @@ a.status-card {
|
||||
}
|
||||
}
|
||||
|
||||
.timeline-hint--with-descendants {
|
||||
border-top: 1px solid var(--background-border-color);
|
||||
}
|
||||
|
||||
.regeneration-indicator {
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
@ -4498,10 +4504,19 @@ a.status-card {
|
||||
opacity: 1;
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
border-left: 1px solid var(--background-border-color);
|
||||
border-right: 1px solid var(--background-border-color);
|
||||
border-bottom: 1px solid var(--background-border-color);
|
||||
|
||||
@media screen and (max-width: $no-gap-breakpoint) {
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
&.collapsed {
|
||||
max-height: 0;
|
||||
opacity: 0.5;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
&.animating {
|
||||
@ -4518,13 +4533,7 @@ a.status-card {
|
||||
}
|
||||
|
||||
.column-header__collapsible-inner {
|
||||
border: 1px solid var(--background-border-color);
|
||||
border-top: 0;
|
||||
|
||||
@media screen and (max-width: $no-gap-breakpoint) {
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.column-header__setting-btn {
|
||||
@ -5731,7 +5740,7 @@ a.status-card {
|
||||
user-select: text;
|
||||
display: flex;
|
||||
|
||||
@media screen and (width <= 630px) {
|
||||
@media screen and (width <= $mobile-breakpoint) {
|
||||
margin-top: auto;
|
||||
}
|
||||
}
|
||||
@ -6090,7 +6099,7 @@ a.status-card {
|
||||
border-radius: 0 0 16px 16px;
|
||||
border-top: 0;
|
||||
|
||||
@media screen and (max-width: $no-gap-breakpoint) {
|
||||
@media screen and (max-width: $mobile-breakpoint) {
|
||||
border-radius: 0;
|
||||
border-bottom: 0;
|
||||
padding-bottom: 32px;
|
||||
@ -7971,7 +7980,7 @@ noscript {
|
||||
.account__avatar {
|
||||
background: var(--background-color);
|
||||
border: 1px solid var(--background-border-color);
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -9092,8 +9101,9 @@ noscript {
|
||||
backdrop-filter: var(--background-filter);
|
||||
border: 1px solid var(--modal-border-color);
|
||||
padding: 24px;
|
||||
box-sizing: border-box;
|
||||
|
||||
@media screen and (max-width: $no-gap-breakpoint) {
|
||||
@media screen and (max-width: $mobile-breakpoint) {
|
||||
border-radius: 16px 16px 0 0;
|
||||
border-bottom: 0;
|
||||
padding-bottom: 32px;
|
||||
|
@ -81,7 +81,7 @@
|
||||
height: 100%;
|
||||
display: block;
|
||||
margin: 0;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -312,7 +312,7 @@ code {
|
||||
margin-bottom: 10px;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 4px;
|
||||
border-radius: var(--avatar-border-radius);
|
||||
background: url('images/void.png');
|
||||
|
||||
&[src$='missing.png'] {
|
||||
|
@ -54,40 +54,21 @@ table {
|
||||
}
|
||||
|
||||
html {
|
||||
scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1);
|
||||
scrollbar-color: var(--background-border-color);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: lighten($ui-base-color, 4%);
|
||||
border: 0px none $base-border-color;
|
||||
border-radius: 50px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: lighten($ui-base-color, 6%);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:active {
|
||||
background: lighten($ui-base-color, 4%);
|
||||
background-color: $ui-highlight-color;
|
||||
opacity: .25;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
border: 0px none $base-border-color;
|
||||
border-radius: 0;
|
||||
background: rgba($base-overlay-background, 0.1);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track:hover {
|
||||
background: $ui-base-color;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track:active {
|
||||
background: $ui-base-color;
|
||||
background-color: var(--background-border-color);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-corner {
|
||||
|
@ -88,6 +88,7 @@ $media-modal-media-max-width: 100%;
|
||||
$media-modal-media-max-height: 80%;
|
||||
|
||||
$no-gap-breakpoint: 1175px;
|
||||
$mobile-breakpoint: 630px;
|
||||
|
||||
$font-sans-serif: 'mastodon-font-sans-serif' !default;
|
||||
$font-display: 'mastodon-font-display' !default;
|
||||
@ -108,4 +109,5 @@ $font-monospace: 'mastodon-font-monospace' !default;
|
||||
--surface-background-color: #{darken($ui-base-color, 4%)};
|
||||
--surface-variant-background-color: #{$ui-base-color};
|
||||
--surface-variant-active-background-color: #{lighten($ui-base-color, 4%)};
|
||||
--avatar-border-radius: 8px;
|
||||
}
|
||||
|
@ -422,7 +422,7 @@ class MediaAttachment < ApplicationRecord
|
||||
attachment = public_send(attachment_name)
|
||||
styles = DEFAULT_STYLES | attachment.styles.keys
|
||||
styles.map { |style| attachment.path(style) }
|
||||
end
|
||||
end.compact
|
||||
rescue => e
|
||||
# We really don't want any error here preventing media deletion
|
||||
Rails.logger.warn "Error #{e.class} busting cache: #{e.message}"
|
||||
|
@ -100,7 +100,7 @@ class User < ApplicationRecord
|
||||
|
||||
validates :email, presence: true, email_address: true
|
||||
|
||||
validates_with BlacklistedEmailValidator, if: -> { ENV['EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION'] == 'true' || !confirmed? }
|
||||
validates_with UserEmailValidator, if: -> { ENV['EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION'] == 'true' || !confirmed? }
|
||||
validates_with EmailMxValidator, if: :validate_email_dns?
|
||||
validates :agreement, acceptance: { allow_nil: false, accept: [true, 'true', '1'] }, on: :create
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
class AcceptNotificationRequestService < BaseService
|
||||
def call(request)
|
||||
NotificationPermission.create!(account: request.account, from_account: request.from_account)
|
||||
UnfilterNotificationsWorker.perform_async(request.id)
|
||||
UnfilterNotificationsWorker.perform_async(request.account_id, request.from_account_id)
|
||||
request.destroy!
|
||||
end
|
||||
end
|
||||
|
@ -5,6 +5,7 @@ class NotifyService < BaseService
|
||||
|
||||
MAXIMUM_GROUP_SPAN_HOURS = 12
|
||||
|
||||
# TODO: the severed_relationships type probably warrants email notifications
|
||||
NON_EMAIL_TYPES = %i(
|
||||
admin.report
|
||||
admin.sign_up
|
||||
@ -12,7 +13,6 @@ class NotifyService < BaseService
|
||||
poll
|
||||
status
|
||||
moderation_warning
|
||||
# TODO: this probably warrants an email notification
|
||||
severed_relationships
|
||||
).freeze
|
||||
|
||||
|
@ -15,7 +15,7 @@ class EmailMxValidator < ActiveModel::Validator
|
||||
|
||||
if resolved_ips.empty?
|
||||
user.errors.add(:email, :unreachable)
|
||||
elsif on_blacklist?(resolved_domains, user.sign_up_ip)
|
||||
elsif email_domain_blocked?(resolved_domains, user.sign_up_ip)
|
||||
user.errors.add(:email, :blocked)
|
||||
end
|
||||
end
|
||||
@ -34,9 +34,9 @@ class EmailMxValidator < ActiveModel::Validator
|
||||
end
|
||||
|
||||
def on_allowlist?(domain)
|
||||
return false if Rails.configuration.x.email_domains_whitelist.blank?
|
||||
return false if Rails.configuration.x.email_domains_allowlist.blank?
|
||||
|
||||
Rails.configuration.x.email_domains_whitelist.include?(domain)
|
||||
Rails.configuration.x.email_domains_allowlist.include?(domain)
|
||||
end
|
||||
|
||||
def resolve_mx(domain)
|
||||
@ -58,7 +58,7 @@ class EmailMxValidator < ActiveModel::Validator
|
||||
[ips, records]
|
||||
end
|
||||
|
||||
def on_blacklist?(domains, attempt_ip)
|
||||
def email_domain_blocked?(domains, attempt_ip)
|
||||
EmailDomainBlock.block?(domains, attempt_ip: attempt_ip)
|
||||
end
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class BlacklistedEmailValidator < ActiveModel::Validator
|
||||
class UserEmailValidator < ActiveModel::Validator
|
||||
def validate(user)
|
||||
return if user.valid_invitation? || user.email.blank?
|
||||
|
||||
@ -23,18 +23,18 @@ class BlacklistedEmailValidator < ActiveModel::Validator
|
||||
end
|
||||
|
||||
def not_allowed_through_configuration?(email)
|
||||
return false if Rails.configuration.x.email_domains_whitelist.blank?
|
||||
return false if Rails.configuration.x.email_domains_allowlist.blank?
|
||||
|
||||
domains = Rails.configuration.x.email_domains_whitelist.gsub('.', '\.')
|
||||
domains = Rails.configuration.x.email_domains_allowlist.gsub('.', '\.')
|
||||
regexp = Regexp.new("@(.+\\.)?(#{domains})$", true)
|
||||
|
||||
email !~ regexp
|
||||
end
|
||||
|
||||
def disallowed_through_configuration?(email)
|
||||
return false if Rails.configuration.x.email_domains_blacklist.blank?
|
||||
return false if Rails.configuration.x.email_domains_denylist.blank?
|
||||
|
||||
domains = Rails.configuration.x.email_domains_blacklist.gsub('.', '\.')
|
||||
domains = Rails.configuration.x.email_domains_denylist.gsub('.', '\.')
|
||||
regexp = Regexp.new("@(.+\\.)?(#{domains})", true)
|
||||
|
||||
regexp.match?(email)
|
@ -11,7 +11,7 @@ class Scheduler::AutoCloseRegistrationsScheduler
|
||||
OPEN_REGISTRATIONS_MODERATOR_THRESHOLD = 1.week + UserTrackingConcern::SIGN_IN_UPDATE_FREQUENCY
|
||||
|
||||
def perform
|
||||
return if Rails.configuration.x.email_domains_whitelist.present? || ENV['DISABLE_AUTOMATIC_SWITCHING_TO_APPROVED_REGISTRATIONS'] == 'true'
|
||||
return if Rails.configuration.x.email_domains_allowlist.present? || ENV['DISABLE_AUTOMATIC_SWITCHING_TO_APPROVED_REGISTRATIONS'] == 'true'
|
||||
return unless Setting.registrations_mode == 'open'
|
||||
|
||||
switch_to_approval_mode! unless active_moderators?
|
||||
|
@ -3,8 +3,19 @@
|
||||
class UnfilterNotificationsWorker
|
||||
include Sidekiq::Worker
|
||||
|
||||
def perform(notification_request_id)
|
||||
@notification_request = NotificationRequest.find(notification_request_id)
|
||||
# Earlier versions of the feature passed a `notification_request` ID
|
||||
# If `to_account_id` is passed, the first argument is an account ID
|
||||
# TODO for after 4.3.0: drop the single-argument case
|
||||
def perform(notification_request_or_account_id, from_account_id = nil)
|
||||
if from_account_id.present?
|
||||
@notification_request = nil
|
||||
@from_account = Account.find(from_account_id)
|
||||
@recipient = Account.find(notification_request_or_account_id)
|
||||
else
|
||||
@notification_request = NotificationRequest.find(notification_request_or_account_id)
|
||||
@from_account = @notification_request.from_account
|
||||
@recipient = @notification_request.account
|
||||
end
|
||||
|
||||
push_to_conversations!
|
||||
unfilter_notifications!
|
||||
@ -16,7 +27,7 @@ class UnfilterNotificationsWorker
|
||||
private
|
||||
|
||||
def push_to_conversations!
|
||||
notifications_with_private_mentions.find_each { |notification| AccountConversation.add_status(@notification_request.account, notification.target_status) }
|
||||
notifications_with_private_mentions.reorder(nil).find_each(order: :desc) { |notification| AccountConversation.add_status(@recipient, notification.target_status) }
|
||||
end
|
||||
|
||||
def unfilter_notifications!
|
||||
@ -24,11 +35,11 @@ class UnfilterNotificationsWorker
|
||||
end
|
||||
|
||||
def remove_request!
|
||||
@notification_request.destroy!
|
||||
@notification_request&.destroy!
|
||||
end
|
||||
|
||||
def filtered_notifications
|
||||
Notification.where(account: @notification_request.account, from_account: @notification_request.from_account, filtered: true)
|
||||
Notification.where(account: @recipient, from_account: @from_account, filtered: true)
|
||||
end
|
||||
|
||||
def notifications_with_private_mentions
|
||||
|
@ -1,6 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
Rails.application.configure do
|
||||
config.x.email_domains_blacklist = (ENV['EMAIL_DOMAIN_DENYLIST'] || ENV['EMAIL_DOMAIN_BLACKLIST']) || ''
|
||||
config.x.email_domains_whitelist = (ENV['EMAIL_DOMAIN_ALLOWLIST'] || ENV['EMAIL_DOMAIN_WHITELIST']) || ''
|
||||
end
|
@ -147,7 +147,7 @@ Doorkeeper.configure do
|
||||
force_ssl_in_redirect_uri false
|
||||
|
||||
# Specify what redirect URI's you want to block during Application creation.
|
||||
# Any redirect URI is whitelisted by default.
|
||||
# Any redirect URI is allowed by default.
|
||||
#
|
||||
# You can use this option in order to forbid URI's with 'javascript' scheme
|
||||
# for example.
|
||||
|
6
config/initializers/email_domains_lists.rb
Normal file
6
config/initializers/email_domains_lists.rb
Normal file
@ -0,0 +1,6 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
Rails.application.configure do
|
||||
config.x.email_domains_denylist = ENV.fetch('EMAIL_DOMAIN_DENYLIST', nil) || ENV.fetch('EMAIL_DOMAIN_BLACKLIST', '')
|
||||
config.x.email_domains_allowlist = ENV.fetch('EMAIL_DOMAIN_ALLOWLIST', nil) || ENV.fetch('EMAIL_DOMAIN_WHITELIST', '')
|
||||
end
|
@ -21,7 +21,7 @@ cy:
|
||||
link_verified_on: Gwiriwyd perchnogaeth y ddolen yma ar %{date}
|
||||
nothing_here: Does dim byd yma!
|
||||
pin_errors:
|
||||
following: Rhaid i chi fod yn dilyn y person rydych am ei gymeradwyo, yn barod.
|
||||
following: Rhaid i chi fod yn dilyn y person rydych am ei gymeradwyo, yn barod
|
||||
posts:
|
||||
few: Postiadau
|
||||
many: Postiadau
|
||||
@ -39,6 +39,7 @@ cy:
|
||||
created_msg: Crëwyd nodyn cymedroli'n llwyddiannus!
|
||||
destroyed_msg: Dinistriwyd nodyn cymedroli yn llwyddiannus!
|
||||
accounts:
|
||||
add_email_domain_block: Rhwystro parth e-bost
|
||||
approve: Cymeradwyo
|
||||
approved_msg: Wedi llwyddo i gymeradwyo cais cofrestru %{username}
|
||||
are_you_sure: Ydych chi'n siŵr?
|
||||
@ -65,6 +66,7 @@ cy:
|
||||
demote: Diraddio
|
||||
destroyed_msg: Mae data %{username} bellach mewn ciw i gael ei ddileu yn fuan
|
||||
disable: Rhewi
|
||||
disable_sign_in_token_auth: Analluogi dilysu tocyn e-bost
|
||||
disable_two_factor_authentication: Diffodd 2FA
|
||||
disabled: Wedi rhewi
|
||||
display_name: Enw sgrin
|
||||
@ -73,6 +75,7 @@ cy:
|
||||
email: E-bost
|
||||
email_status: Statws e-bost
|
||||
enable: Dadrewi
|
||||
enable_sign_in_token_auth: Galluogi dilysu tocyn e-bost
|
||||
enabled: Wedi ei alluogi
|
||||
enabled_msg: Wedi dadrewi cyfrif %{username} yn llwyddiannus
|
||||
followers: Dilynwyr
|
||||
@ -141,6 +144,7 @@ cy:
|
||||
resubscribe: Ail danysgrifio
|
||||
role: Rôl
|
||||
search: Chwilio
|
||||
search_same_email_domain: Defnyddwyr eraill gyda'r un parth e-bost
|
||||
search_same_ip: Defnyddwyr eraill gyda'r un IP
|
||||
security: Diogelwch
|
||||
security_measures:
|
||||
@ -181,21 +185,26 @@ cy:
|
||||
approve_appeal: Cymeradwyo'r Apêl
|
||||
approve_user: Cymeradwyo Defnyddiwr
|
||||
assigned_to_self_report: Neilltuo Adroddiad
|
||||
change_email_user: Newid E-bost ar gyfer Defnyddiwr
|
||||
change_role_user: Newid Rôl y Defnyddiwr
|
||||
confirm_user: Cadarnhau Defnyddiwr
|
||||
create_account_warning: Creu Rhybydd
|
||||
create_announcement: Creu Cyhoeddiad
|
||||
create_canonical_email_block: Creu Rhwystr E-bost
|
||||
create_custom_emoji: Creu Emoji Addasedig
|
||||
create_domain_allow: Creu Caniatáu Parth
|
||||
create_domain_block: Creu Gwaharddiad Parth
|
||||
create_email_domain_block: Creu Rhwystr Parth E-bost
|
||||
create_ip_block: Creu rheol IP
|
||||
create_unavailable_domain: Creu Parth Ddim ar Gael
|
||||
create_user_role: Creu Rôl
|
||||
demote_user: Diraddio Defnyddiwr
|
||||
destroy_announcement: Dileu Cyhoeddiad
|
||||
destroy_canonical_email_block: Dileu Rhwystr E-bost
|
||||
destroy_custom_emoji: Dileu Emoji Addasedig
|
||||
destroy_domain_allow: Dileu Caniatáu Parth
|
||||
destroy_domain_block: Dileu Gwaharddiad Parth
|
||||
destroy_email_domain_block: Dileu Rhwystr Parth E-bost
|
||||
destroy_instance: Clirio Parth
|
||||
destroy_ip_block: Dileu rheol IP
|
||||
destroy_status: Dileu Postiad
|
||||
@ -203,8 +212,10 @@ cy:
|
||||
destroy_user_role: Dileu Rôl
|
||||
disable_2fa_user: Diffodd 2FA
|
||||
disable_custom_emoji: Analluogi Emoji Addasedig
|
||||
disable_sign_in_token_auth_user: Analluogi Dilysu Tocyn E-bost Defnyddiwr
|
||||
disable_user: Analluogi Defnyddiwr
|
||||
enable_custom_emoji: Galluogi Emoji Addasedig
|
||||
enable_sign_in_token_auth_user: Galluogi Dilysu Tocyn E-bost Defnyddiwr
|
||||
enable_user: Galluogi Defnyddiwr
|
||||
memorialize_account: Cofadeilio Cyfrif
|
||||
promote_user: Dyrchafu Defnyddiwr
|
||||
@ -234,20 +245,26 @@ cy:
|
||||
approve_appeal_html: Mae %{name} wedi cymeradwyo penderfyniad cymedroli gan %{target}
|
||||
approve_user_html: Mae %{name} wedi cymeradwyo cofrestru gan %{target}
|
||||
assigned_to_self_report_html: Mae %{name} wedi neilltuo adroddiad %{target} iddyn nhw eu hunain
|
||||
change_email_user_html: Mae %{name} wedi newid cyfeiriad e-bost defnyddiwr %{target}
|
||||
change_role_user_html: Mae %{name} wedi newid rôl %{target}
|
||||
confirm_user_html: Mae %{name} wedi cadarnhau cyfeiriad e-bost defnyddiwr %{target}
|
||||
create_account_warning_html: Mae %{name} wedi anfon rhybudd at %{target}
|
||||
create_announcement_html: Mae %{name} wedi creu cyhoeddiad newydd %{target}
|
||||
create_canonical_email_block_html: Mae %{name} wedi'i rwystro e-bost gyda'r hash %{target}
|
||||
create_custom_emoji_html: Mae %{name} wedi llwytho emoji newydd %{target}
|
||||
create_domain_allow_html: Mae %{name} wedi caniatáu ffedereiddio â pharth %{target}
|
||||
create_domain_block_html: Mae %{name} wedi rhwystro parth %{target}
|
||||
create_email_domain_block_html: Mae %{name} wedi rhwystro parth e-bost %{target}
|
||||
create_ip_block_html: Mae %{name} wedi creu rheol ar gyfer IP %{target}
|
||||
create_unavailable_domain_html: Mae %{name} wedi stopio danfon i barth %{target}
|
||||
create_user_role_html: Mae %{name} wedi creu rôl %{target}
|
||||
demote_user_html: Mae %{name} wedi israddio defnyddiwr %{target}
|
||||
destroy_announcement_html: Mae %{name} wedi dileu cyhoeddiad %{target}
|
||||
destroy_canonical_email_block_html: Mae %{name} wedi dad-rwystro parth e-bost %{target}
|
||||
destroy_custom_emoji_html: Mae %{name} wedi dileu emoji %{target}
|
||||
destroy_domain_allow_html: Mae %{name} wedi gwrthod ffederasiwn gyda pharth %{target}
|
||||
destroy_domain_block_html: Mae %{name} wedi dad rwystro parth %{target}
|
||||
destroy_email_domain_block_html: Mae %{name} wedi dad-rwystro parth e-bost %{target}
|
||||
destroy_instance_html: Mae %{name} wedi dileu parth %{target}
|
||||
destroy_ip_block_html: Mae %{name} dileu rheol ar gyfer IP %{target}
|
||||
destroy_status_html: Mae %{name} wedi tynnu postiad gan %{target}
|
||||
@ -255,8 +272,10 @@ cy:
|
||||
destroy_user_role_html: Mae %{name} wedi dileu rôl %{target}
|
||||
disable_2fa_user_html: Mae %{name} wedi analluogi gofyniad dau ffactor ar gyfer defnyddiwr %{target}
|
||||
disable_custom_emoji_html: Mae %{name} wedi analluogi emoji %{target}
|
||||
disable_sign_in_token_auth_user_html: Mae %{name} wedi analluogi dilysiad tocyn e-bost %{target}
|
||||
disable_user_html: Mae %{name} wedi analluogi mewngofnodi defnyddiwr %{target}
|
||||
enable_custom_emoji_html: Mae %{name} wedi analluogi emoji %{target}
|
||||
enable_sign_in_token_auth_user_html: Mae %{name} wedi galluogi dilysiad tocyn e-bost %{target}
|
||||
enable_user_html: Mae %{name} wedi galluogi mewngofnodi defnyddiwr %{target}
|
||||
memorialize_account_html: Newidiodd %{name} gyfrif %{target} i dudalen memoriam
|
||||
promote_user_html: Mae %{name} wedi hyrwyddo defnyddiwr %{target}
|
||||
@ -264,6 +283,7 @@ cy:
|
||||
reject_user_html: Mae %{name} wedi gwrthod cofrestriad gan %{target}
|
||||
remove_avatar_user_html: Mae %{name} wedi tynnu afatar %{target}
|
||||
reopen_report_html: Mae %{name} wedi ailagor adroddiad %{target}
|
||||
resend_user_html: Mae %{name} wedi ail anfon e-bost cadarnhau i%{target}
|
||||
reset_password_user_html: Mae %{name} wedi ailosod cyfrinair defnyddiwr %{target}
|
||||
resolve_report_html: Mae %{name} wedi datrys adroddiad %{target}
|
||||
sensitive_account_html: Mae %{name} wedi marcio cyfrwng %{target} fel un sensitif
|
||||
@ -444,6 +464,7 @@ cy:
|
||||
other: "%{count} ymgais i gofrestru dros yr wythnos ddiwethaf"
|
||||
two: "%{count} ymgais i gofrestru dros yr wythnos ddiwethaf"
|
||||
zero: "%{count} o ymgeisiadau i gofrestru dros yr wythnos ddiwethaf"
|
||||
created_msg: Parth e-bost wedi'i rwystro'n llwyddiannus
|
||||
delete: Dileu
|
||||
dns:
|
||||
types:
|
||||
@ -452,8 +473,12 @@ cy:
|
||||
new:
|
||||
create: Ychwanegu parth
|
||||
resolve: Datrys parth
|
||||
title: Rhwystro parth e-bost newydd
|
||||
no_email_domain_block_selected: Ni newidiwyd unrhyw rwystro parth e-bost gan na ddewiswyd yr un ohonyn nhw
|
||||
not_permitted: Dim caniatâd
|
||||
resolved_dns_records_hint_html: Mae'r enw parth yn cyd-fynd â'r parthau MX canlynol, sy'n gyfrifol yn y pen draw am dderbyn e-bost. Bydd rhwystro parth MX yn rhwystro cofrestriadau o unrhyw gyfeiriad e-bost sy'n defnyddio'r un parth MX, hyd yn oed os yw'r enw parth gweladwy yn wahanol. <strong>Byddwch yn ofalus i beidio â rhwystro'r prif ddarparwyr e-bost.</strong>
|
||||
resolved_through_html: Wedi'i ddatrys trwy %{domain}
|
||||
title: Parthau e-bost wedi'u rhwystro
|
||||
export_domain_allows:
|
||||
new:
|
||||
title: Mewnforio parth yn caniatáu
|
||||
@ -623,6 +648,7 @@ cy:
|
||||
resolve_description_html: Ni fydd unrhyw gamau yn cael eu cymryd yn erbyn y cyfrif a adroddwyd, ni chofnodwyd rhybudd, a bydd yr adroddiad yn cael ei gau.
|
||||
silence_description_html: Bydd y cyfrif yn weladwy i'r rhai sydd eisoes yn ei ddilyn neu'n edrych arno â llaw, gan gyfyngu'n ddifrifol ar ei gyrhaeddiad. Mae modd ei ddychwelyd bob amser. Yn cau pob adroddiad yn erbyn y cyfrif hwn.
|
||||
suspend_description_html: Bydd y cyfrif a'i holl gynnwys yn anhygyrch ac yn cael ei ddileu yn y pen draw, a bydd rhyngweithio ag ef yn amhosibl. Yn gildroadwy o fewn 30 diwrnod. Yn cau pob adroddiad yn erbyn y cyfrif hwn.
|
||||
actions_description_html: Penderfynwch pa gamau i'w cymryd i delio gyda'r adroddiad hwn. Os cymerwch gamau cosbi yn erbyn y cyfrif a adroddwyd, bydd hysbysiad e-bost yn cael ei anfon atyn nhw, ac eithrio pan fydd y categori <strong>Sbam</strong> yn cael ei ddewis.
|
||||
actions_description_remote_html: Penderfynwch pa gamau i'w cymryd i ddatrys yr adroddiad hwn. Bydd hyn ond yn effeithio ar sut <strong>mae'ch</strong> gweinydd yn cyfathrebu â'r cyfrif hwn o bell ac yn trin ei gynnwys.
|
||||
add_to_report: Ychwanegu rhagor i adroddiad
|
||||
already_suspended_badges:
|
||||
@ -687,6 +713,7 @@ cy:
|
||||
delete_data_html: Dileu proffil a chynnwys <strong>@%{acct}</strong> 30 diwrnod o nawr oni bai ei b/fod heb ei h/atal yn y cyfamser
|
||||
preview_preamble_html: 'Bydd <strong>@%{acct}</strong> yn derbyn rhybudd gyda''r cynnwys canlynol:'
|
||||
record_strike_html: Recordio rhybudd yn erbyn <strong>@%{acct}</strong> i'ch helpu i ddwysáu ar achosion o dorri rheolau yn y dyfodol o'r cyfrif hwn
|
||||
send_email_html: Anfon e-bost rhybuddio <strong>at @%{acct}</strong>
|
||||
warning_placeholder: Rhesymeg ychwanegol dewisol ar gyfer y cam cymedroli.
|
||||
target_origin: Tarddiad y cyfrif a adroddwyd
|
||||
title: Adroddiadau
|
||||
@ -734,6 +761,7 @@ cy:
|
||||
manage_appeals: Rheoli Apeliadau
|
||||
manage_appeals_description: Yn caniatáu i ddefnyddwyr adolygu apeliadau yn erbyn camau cymedroli
|
||||
manage_blocks: Rheoli Blociau
|
||||
manage_blocks_description: Yn caniatáu i ddefnyddwyr rwystro darparwyr e-bost a chyfeiriadau IP
|
||||
manage_custom_emojis: Rheoli Emojis Cyfaddas
|
||||
manage_custom_emojis_description: Yn caniatáu i ddefnyddwyr reoli emojis cyfaddas ar y gweinydd
|
||||
manage_federation: Rheoli Ffederasiwn
|
||||
@ -751,6 +779,7 @@ cy:
|
||||
manage_taxonomies: Rheoli Tacsonomeg
|
||||
manage_taxonomies_description: Yn caniatáu i ddefnyddwyr adolygu cynnwys sy'n trendio a diweddaru gosodiadau hashnodau
|
||||
manage_user_access: Rheoli Mynediad Defnyddwyr
|
||||
manage_user_access_description: Yn caniatáu i ddefnyddwyr analluogi dilysiad dau ffactor defnyddwyr eraill, newid eu cyfeiriad e-bost, ac ailosod eu cyfrinair
|
||||
manage_users: Rheoli Defnyddwyr
|
||||
manage_users_description: Yn caniatáu i ddefnyddwyr weld manylion defnyddwyr eraill a chyflawni camau cymedroli yn eu herbyn
|
||||
manage_webhooks: Rheoli Bachau Gwe
|
||||
@ -825,6 +854,7 @@ cy:
|
||||
destroyed_msg: Llwytho i fyny i'r wefan wedi'i dileu yn llwyddiannus!
|
||||
software_updates:
|
||||
critical_update: Hanfodol - diweddarwch yn fuan
|
||||
description: Argymhellir cadw'ch gosodiad Mastodon yn gyfredol i elwa o'r atgyweiriadau a'r nodweddion diweddaraf. Hefyd, weithiau mae'n hanfodol diweddaru Mastodon mewn modd amserol er mwyn osgoi materion diogelwch. Am y rhesymau hyn, mae Mastodon yn gwirio am ddiweddariadau bob 30 munud, a bydd yn eich hysbysu yn unol â'ch dewisiadau hysbysu e-bost.
|
||||
documentation_link: Dysgu rhagor
|
||||
release_notes: Nodiadau ryddhau
|
||||
title: Diweddariadau ar gael
|
||||
@ -912,13 +942,13 @@ cy:
|
||||
message_html: "<strong>Mae eich storfa gwrthrychau wedi'i cham ffurfweddu. Mae preifatrwydd eich defnyddwyr mewn perygl.</strong>"
|
||||
tags:
|
||||
moderation:
|
||||
not_trendable: Ddim yn dueddol
|
||||
not_trendable: Ddim yn trendio
|
||||
not_usable: Ddim yn ddefnyddiadwy
|
||||
pending_review: O dan ystyriaeth
|
||||
review_requested: Gofynnwyd am adolygiad
|
||||
reviewed: Adolygwyd
|
||||
title: Statws
|
||||
trendable: Tueddadwy
|
||||
trendable: Trendadwy
|
||||
unreviewed: Heb ei adolygu
|
||||
usable: Defnyddiadwy
|
||||
name: Enw
|
||||
@ -933,10 +963,16 @@ cy:
|
||||
trends:
|
||||
allow: Caniatáu
|
||||
approved: Cymeradwywyd
|
||||
confirm_allow: Ydych chi'n siŵr eich bod am ganiatáu'r tagiau a ddewiswyd?
|
||||
confirm_disallow: Ydych chi'n siŵr eich bod am wrthod y tagiau hyn?
|
||||
disallow: Gwrthod
|
||||
links:
|
||||
allow: Caniatáu dolen
|
||||
allow_provider: Caniatáu cyhoeddwr
|
||||
confirm_allow: Ydych chi'n siŵr eich bod am ganiatáu'r dolenni hyn?
|
||||
confirm_allow_provider: Ydych chi'n siŵr eich bod am ganiatáu'r darparwyr hyn?
|
||||
confirm_disallow: Ydych chi'n siŵr eich bod am wrthod y dolenni hyn?
|
||||
confirm_disallow_provider: A ydych yn siŵr eich bod am wrthod y darparwyr hyn?
|
||||
description_html: Mae'r rhain yn ddolenni sy'n cael eu rhannu llawer ar hyn o bryd gan gyfrifon y mae eich gweinydd yn gweld postiadau ohonyn nhw. Gall helpu eich defnyddwyr i ddarganfod beth sy'n digwydd yn y byd. Ni chaiff unrhyw ddolenni eu dangos yn gyhoeddus nes i chi gymeradwyo'r cyhoeddwr. Gallwch hefyd ganiatáu neu wrthod dolenni unigol.
|
||||
disallow: Gwrthod dolen
|
||||
disallow_provider: Gwrthod y cyhoeddwr
|
||||
@ -952,18 +988,22 @@ cy:
|
||||
zero: Wedi'i rannu gan %{count} o bobl dros yr wythnos ddiwethaf
|
||||
title: Dolenni sy'n trendio
|
||||
usage_comparison: Wedi'i rannu %{today} gwaith heddiw, o'i gymharu â %{yesterday} ddoe
|
||||
not_allowed_to_trend: Dim caniatâd i dueddu
|
||||
not_allowed_to_trend: Dim caniatâd i trendio
|
||||
only_allowed: Derbyniwyd yn unig
|
||||
pending_review: Yn aros am adolygiad
|
||||
preview_card_providers:
|
||||
allowed: Gall dolenni gan y cyhoeddwr hwn greu tuedd
|
||||
allowed: Gall dolenni gan y cyhoeddwr hwn greu trend
|
||||
description_html: Mae'r rhain yn barthau lle mae dolenni'n cael eu rhannu'n aml ar eich gweinydd. Ni fydd dolenni'n trendio'n gyhoeddus oni bai bod parth y ddolen yn cael ei gymeradwyo. Mae eich cymeradwyaeth (neu eich gwrthodiad) yn ymestyn i is-barthau.
|
||||
rejected: Ni fydd dolenni gan y cyhoeddwr hwn yn creu tuedd
|
||||
rejected: Ni fydd dolenni gan y cyhoeddwr hwn yn creu trend
|
||||
title: Cyhoeddwyr
|
||||
rejected: Gwrthodwyd
|
||||
statuses:
|
||||
allow: Caniatáu postiad
|
||||
allow_account: Caniatáu awdur
|
||||
confirm_allow: Ydych chi'n siŵr eich bod am ganiatáu'r statws hyn?
|
||||
confirm_allow_account: Ydych chi'n siŵr eich bod am ganiatáu'r cyfrifon hyn?
|
||||
confirm_disallow: A ydych yn siŵr eich bod am wrthod y statws hyn?
|
||||
confirm_disallow_account: A ydych yn siŵr eich bod am wrthod y cyfrifon hyn?
|
||||
description_html: Mae'r rhain yn bostiadau y mae eich gweinydd yn gwybod amdanyn nhw sy'n cael eu rhannu a'u ffafrio llawer ar hyn o bryd. Gall helpu eich defnyddwyr newydd a'ch defnyddwyr sy'n dychwelyd i ddod o hyd i fwy o bobl i'w dilyn. Ni chaiff unrhyw bostiadau eu dangos yn gyhoeddus nes i chi gymeradwyo'r awdur, ac mae'r awdur yn caniatáu i'w cyfrif gael ei awgrymu i eraill. Gallwch hefyd ganiatáu neu wrthod postiadau unigol.
|
||||
disallow: Gwrthod postiad
|
||||
disallow_account: Gwrthod awdur
|
||||
@ -1004,6 +1044,7 @@ cy:
|
||||
other: Wedi'i ddefnyddio gan %{count} o bobl dros yr wythnos ddiwethaf
|
||||
two: Wedi'i ddefnyddio gan %{count} o bobl dros yr wythnos ddiwethaf
|
||||
zero: Wedi'i ddefnyddio gan %{count} o bobl dros yr wythnos ddiwethaf
|
||||
title: Argymhellion a Threndiau
|
||||
trending: Trendio
|
||||
warning_presets:
|
||||
add_new: Ychwanegu newydd
|
||||
@ -1092,7 +1133,9 @@ cy:
|
||||
guide_link_text: Gall pawb gyfrannu.
|
||||
sensitive_content: Cynnwys sensitif
|
||||
application_mailer:
|
||||
notification_preferences: Newid dewisiadau e-bost
|
||||
salutation: "%{name},"
|
||||
settings: 'Newid dewisiadau e-bost: %{link}'
|
||||
unsubscribe: Dad-danysgrifio
|
||||
view: 'Gweld:'
|
||||
view_profile: Gweld proffil
|
||||
@ -1112,6 +1155,7 @@ cy:
|
||||
hint_html: Un peth arall! Mae angen i ni gadarnhau eich bod yn ddynol (mae hyn er mwyn i ni allu cadw'r sbam allan!). Datryswch y CAPTCHA isod a chliciwch "Parhau".
|
||||
title: Gwiriad diogelwch
|
||||
confirmations:
|
||||
awaiting_review: Mae eich cyfeiriad e-bost wedi'i gadarnhau! Mae aelod o staff %{domain} bellach yn adolygu'ch cofrestriad. Byddwch yn derbyn e-bost os ydyn nhw'n cymeradwyo eich cyfrif!
|
||||
awaiting_review_title: Mae eich cofrestriad yn cael ei adolygu
|
||||
clicking_this_link: clicio ar y ddolen hon
|
||||
login_link: mewngofnodi
|
||||
@ -1119,6 +1163,7 @@ cy:
|
||||
redirect_to_app_html: Dylech fod wedi cael eich ailgyfeirio i ap <strong>%{app_name}</strong>. Os na ddigwyddodd hynny, rhowch gynnig ar %{clicking_this_link} neu ewch eich hun i'r ap.
|
||||
registration_complete: Mae eich cofrestriad ar %{domain} bellach wedi'i gwblhau!
|
||||
welcome_title: Croeso, %{name}!
|
||||
wrong_email_hint: Os nad yw'r cyfeiriad e-bost hwnnw'n gywir, gallwch ei newid yng ngosodiadau'r cyfrif.
|
||||
delete_account: Dileu cyfrif
|
||||
delete_account_html: Os hoffech chi ddileu eich cyfrif, mae modd <a href="%{path}">parhau yma</a>. Bydd gofyn i chi gadarnhau.
|
||||
description:
|
||||
@ -1139,6 +1184,7 @@ cy:
|
||||
or_log_in_with: Neu mewngofnodwch gyda
|
||||
privacy_policy_agreement_html: Rwyf wedi darllen ac yn cytuno i'r <a href="%{privacy_policy_path}" target="_blank">polisi preifatrwydd</a>
|
||||
progress:
|
||||
confirm: Cadarnhau'r e-bost
|
||||
details: Eich manylion
|
||||
review: Ein hadolygiad
|
||||
rules: Derbyn rheolau
|
||||
@ -1160,8 +1206,10 @@ cy:
|
||||
security: Diogelwch
|
||||
set_new_password: Gosod cyfrinair newydd
|
||||
setup:
|
||||
email_below_hint_html: Gwiriwch eich ffolder sbam, neu gofynnwch am un arall. Gallwch gywiro eich cyfeiriad e-bost os yw'n anghywir.
|
||||
email_settings_hint_html: Cliciwch ar y ddolen a anfonwyd atoch i wirio %{email}. Byddwn yn aros yma amdanoch.
|
||||
link_not_received: Heb gael dolen?
|
||||
new_confirmation_instructions_sent: Byddwch yn derbyn e-bost newydd gyda'r ddolen gadarnhau ymhen ychydig funudau!
|
||||
title: Gwiriwch eich blwch derbyn
|
||||
sign_in:
|
||||
preamble_html: Mewngofnodwch gyda'ch manylion <strong>%{domain}</strong>. Os yw eich cyfrif yn cael ei gynnal ar weinydd gwahanol, ni fydd modd i chi fewngofnodi yma.
|
||||
@ -1172,7 +1220,9 @@ cy:
|
||||
title: Gadewch i ni eich gosod ar %{domain}.
|
||||
status:
|
||||
account_status: Statws cyfrif
|
||||
confirming: Wrthi'n aros i gadarnhad e-bost gael ei gwblhau.
|
||||
functional: Mae eich cyfrif nawr yn weithredol.
|
||||
pending: Mae eich cais yn aros i gael ei adolygu gan ein staff. Gall hyn gymryd peth amser. Byddwch yn derbyn e-bost os caiff eich cais ei gymeradwyo.
|
||||
redirecting_to: Mae eich cyfrif yn anweithredol oherwydd ei fod ar hyn o bryd yn ailgyfeirio i %{acct}.
|
||||
self_destruct: Gab fod parth %{domain} yn cau, dim ond mynediad cyfyngedig fyddwch yn ei gael i'ch cyfrif.
|
||||
view_strikes: Gweld rybuddion y gorffennol yn erbyn eich cyfrif
|
||||
@ -1215,6 +1265,9 @@ cy:
|
||||
before: 'Cyn bwrw ymlaen, darllenwch y nodiadau hyn yn ofalus:'
|
||||
caches: Efallai bydd cynnwys sydd wedi'i storio dros dro gan weinyddion eraill yn parhau
|
||||
data_removal: Bydd eich postiadau a data arall yn cael eu dileu'n barhaol
|
||||
email_change_html: Gallwch <a href="%{path}">newid eich cyfeiriad e-bost</a> heb ddileu eich cyfrif
|
||||
email_contact_html: Os nad yw byth wedi cyrraedd, gallwch anfon e-bost at <a href="mailto:%{email}">%{email}</a> am help
|
||||
email_reconfirmation_html: Os nad ydych yn derbyn yr e-bost cadarnhau, gallwch <a href="%{path}">ofyn amdano eto</a>
|
||||
irreversible: Fyddwch chi ddim yn gallu adfer nac ail-greu eich cyfrif
|
||||
more_details_html: Am fwy o fanylion, darllenwch y <a href="%{terms_path}">polisi preifatrwydd</a>.
|
||||
username_available: Bydd eich enw defnyddiwr ar gael eto
|
||||
@ -1479,6 +1532,7 @@ cy:
|
||||
authentication_methods:
|
||||
otp: ap dilysu dau ffactor
|
||||
password: cyfrinair
|
||||
sign_in_token: cod diogelwch e-bost
|
||||
webauthn: allweddi diogelwch
|
||||
description_html: Os ydych yn gweld gweithgaredd nad ydych yn ei adnabod, ystyriwch newid eich cyfrinair a galluogi dilysu dau ffactor.
|
||||
empty: Dim hanes dilysu ar gael
|
||||
@ -1489,6 +1543,16 @@ cy:
|
||||
unsubscribe:
|
||||
action: Iawn, dad-danysgrifio
|
||||
complete: Dad-danysgrifiwyd
|
||||
confirmation_html: Ydych chi'n siŵr eich bod am ddad-danysgrifio rhag derbyn %{type} Mastodon ar %{domain} i'ch e-bost yn %{email}? Gallwch ail-danysgrifio o'ch <a href="%{settings_path}">gosodiadau hysbysu e-bost</a> rhywbryd eto .
|
||||
emails:
|
||||
notification_emails:
|
||||
favourite: e-bost hysbysu hoffi
|
||||
follow: e-byst hysbysu dilyn
|
||||
follow_request: e-byst ceisiadau dilyn
|
||||
mention: e-byst hysbysu crybwylliadau
|
||||
reblog: e-byst hysbysiadau hybu
|
||||
resubscribe_html: Os ydych wedi dad-danysgrifio trwy gamgymeriad, gallwch ail-danysgrifio drwy'ch <a href="%{settings_path}">gosodiadau hysbysu e-bost</a> .
|
||||
success_html: Ni fyddwch bellach yn derbyn %{type} ar gyfer Mastodon ar %{domain} i'ch e-bost am %{email}.
|
||||
title: Dad-danysgrifio
|
||||
media_attachments:
|
||||
validations:
|
||||
@ -1569,6 +1633,8 @@ cy:
|
||||
update:
|
||||
subject: Golygodd %{name} bostiad
|
||||
notifications:
|
||||
administration_emails: E-byst hysbysiadau gweinyddol
|
||||
email_events: Digwyddiadau ar gyfer hysbysiadau e-bost
|
||||
email_events_hint: 'Dewiswch ddigwyddiadau yr ydych am dderbyn hysbysiadau ar eu cyfer:'
|
||||
number:
|
||||
human:
|
||||
@ -1727,6 +1793,7 @@ cy:
|
||||
import: Mewnforio
|
||||
import_and_export: Mewnforio ac allforio
|
||||
migrate: Mudo cyfrif
|
||||
notifications: Hysbysiadau e-bost
|
||||
preferences: Dewisiadau
|
||||
profile: Proffil cyhoeddus
|
||||
relationships: Yn dilyn a dilynwyr
|
||||
@ -1983,9 +2050,9 @@ cy:
|
||||
other: "%{people} o bobl yn y 2 ddiwrnod diwethaf"
|
||||
two: "%{people} o bobl yn y 2 ddiwrnod diwethaf"
|
||||
zero: "%{people} o bobl yn y 2 ddiwrnod diwethaf"
|
||||
hashtags_subtitle: Gweld beth sy'n tueddu dros y 2 ddiwrnod diwethaf
|
||||
hashtags_title: Hashnodau tuedd
|
||||
hashtags_view_more: Gweld mwy o hashnodau tuedd
|
||||
hashtags_subtitle: Gweld beth sy'n trendio dros y 2 ddiwrnod diwethaf
|
||||
hashtags_title: Hashnodau trendio
|
||||
hashtags_view_more: Gweld mwy o hashnodau trendio
|
||||
post_action: Creu
|
||||
post_step: Dywedwch helo wrth y byd gyda thestun, lluniau, fideos neu arolygon barn.
|
||||
post_title: Creu'ch postiad cyntaf
|
||||
@ -2001,6 +2068,7 @@ cy:
|
||||
invalid_otp_token: Côd dau-ffactor annilys
|
||||
otp_lost_help_html: Os colloch chi fynediad i'r ddau, mae modd i chi gysylltu a %{email}
|
||||
rate_limited: Gormod o geisiadau dilysu, ceisiwch eto yn nes ymlaen.
|
||||
seamless_external_login: Rydych chi wedi mewngofnodi trwy wasanaeth allanol, felly nid yw gosodiadau cyfrinair ac e-bost ar gael.
|
||||
signed_in_as: 'Wedi mewngofnodi fel:'
|
||||
verification:
|
||||
extra_instructions_html: <strong>Awgrym:</strong> Gall y ddolen ar eich gwefan fod yn anweledig. Y rhan bwysig yw <code>rel="me"</code> sy'n atal dynwarediad ar wefannau gyda chynnwys sy'n cael ei gynyrchu gan ddefnyddwyr. Gallwch hyd yn oed ddefnyddio tag <code>link</code> ym mhennyn y dudalen yn lle <code>a</code>, ond rhaid i'r HTML fod yn hygyrch heb weithredu JavaScript.
|
||||
|
@ -686,7 +686,7 @@ da:
|
||||
moderation: Moderering
|
||||
special: Speciel
|
||||
delete: Slet
|
||||
description_html: Med <strong>brugerroller</strong>kan man tilpasse sine brugeres adgang til Mastodon-funktioner og -områder.
|
||||
description_html: Med <strong>brugerroller</strong> kan man tilpasse sine brugeres adgang til Mastodon-funktioner og -områder.
|
||||
edit: Redigér rolle for '%{name}
|
||||
everyone: Standardtilladelser
|
||||
everyone_full_description_html: Dette er <strong>basisrollen</strong> med indvirkning på <strong>alle brugere</strong>, selv dem uden rolletildeling. Alle øvrige rolletilladelser nedarves herfra.
|
||||
|
@ -31,6 +31,7 @@ fo:
|
||||
created_msg: Umsjónarviðmerking stovnað!
|
||||
destroyed_msg: Umsjónarviðmerking strikað!
|
||||
accounts:
|
||||
add_email_domain_block: Forða t-post økisnavni
|
||||
approve: Vátta
|
||||
approved_msg: Góðkent tilmeldingarumbøn hjá %{username}
|
||||
are_you_sure: Ert tú vís/ur?
|
||||
@ -129,6 +130,7 @@ fo:
|
||||
resubscribe: Tegna teg umaftur
|
||||
role: Leiklutur
|
||||
search: Leita
|
||||
search_same_email_domain: Aðrir brúkarar við sama t-post-økisnavni
|
||||
search_same_ip: Aðrir brúkarar við somu IP
|
||||
security: Trygd
|
||||
security_measures:
|
||||
@ -169,21 +171,26 @@ fo:
|
||||
approve_appeal: Góðkenn kæru
|
||||
approve_user: Góðkenn brúkara
|
||||
assigned_to_self_report: Tilluta melding
|
||||
change_email_user: Broyt t-post hjá brúkara
|
||||
change_role_user: Broyt leiklut hjá brúkara
|
||||
confirm_user: Vátta brúkara
|
||||
create_account_warning: Stovna ávaring
|
||||
create_announcement: Stovna kunngerð
|
||||
create_canonical_email_block: Stovna t-post-blokk
|
||||
create_custom_emoji: Stovna serligt kenslutekn
|
||||
create_domain_allow: Stovna navnaøkjaloyvi
|
||||
create_domain_block: Stovna navnaøkjablokering
|
||||
create_email_domain_block: Stovna t-post-økisnavnablokk
|
||||
create_ip_block: Stovna IP reglu
|
||||
create_unavailable_domain: Stovna navnaøki, sum ikki er tøkt
|
||||
create_user_role: Stovna leiklut
|
||||
demote_user: Lækka brúkara í tign
|
||||
destroy_announcement: Strika kunngerð
|
||||
destroy_canonical_email_block: Strika t-postablokk
|
||||
destroy_custom_emoji: Strika serligt kenslutekn
|
||||
destroy_domain_allow: Strika navnaøkjaloyvi
|
||||
destroy_domain_block: Strika navnaøkjablokering
|
||||
destroy_email_domain_block: Strika t-posta-økisnavnablokk
|
||||
destroy_instance: Reinsa navnaøki
|
||||
destroy_ip_block: Strika IP reglu
|
||||
destroy_status: Strika post
|
||||
@ -222,7 +229,9 @@ fo:
|
||||
approve_appeal_html: "%{name} góðkendi umsjónaráheitan frá %{target}"
|
||||
approve_user_html: "%{name} góðtók umsókn frá %{target}"
|
||||
assigned_to_self_report_html: "%{name} tillutaði frágreiðing %{target} til sín sjálvs"
|
||||
change_email_user_html: "%{name} broytti t-postin hjá brúkara %{target}"
|
||||
change_role_user_html: "%{name} broytti leiklutin hjá %{target}"
|
||||
confirm_user_html: "%{name} váttaði t-post hjá brúkara %{target}"
|
||||
create_account_warning_html: "%{name} sendi eina ávaring til %{target}"
|
||||
create_announcement_html: "%{name} stovnaði eina fráboðan %{target}"
|
||||
create_custom_emoji_html: "%{name} legði upp nýtt kenslutekn %{target}"
|
||||
|
@ -35,6 +35,7 @@ he:
|
||||
created_msg: הודעת מנחה נוצרה בהצלחה!
|
||||
destroyed_msg: הודעת מנחה נמחקה בהצלחה!
|
||||
accounts:
|
||||
add_email_domain_block: חסימת מתחם דוא"ל
|
||||
approve: אשר
|
||||
approved_msg: בקשת %{username} להירשם אושרה בהצלחה
|
||||
are_you_sure: בטוח?
|
||||
@ -905,10 +906,16 @@ he:
|
||||
trends:
|
||||
allow: לאפשר
|
||||
approved: אישור
|
||||
confirm_allow: 'וידוא: האם לאשר את התגיות שנבחרו?'
|
||||
confirm_disallow: 'וידוא: האם לאסור את התגיות שנבחרו?'
|
||||
disallow: לא לאשר
|
||||
links:
|
||||
allow: אישור קישורית
|
||||
allow_provider: אישור מפרסם
|
||||
confirm_allow: 'וידוא: האם לאשר את הקישורים שנבחרו?'
|
||||
confirm_allow_provider: 'וידוא: האם לאשר את הספקים שנבחרו?'
|
||||
confirm_disallow: 'וידוא: האם לאסור את הקישורים שנבחרו?'
|
||||
confirm_disallow_provider: 'וידוא: האם לאסור את הספקים שנבחרו?'
|
||||
description_html: בקישוריות אלה נעשה כרגע שימוש על ידי חשבונות רבים שהשרת שלך רואה הודעות מהם. זה עשוי לסייע למשתמשיך לברר מה קורה בעולם. שום קישוריות לא יוצגו עד שתאשרו את המפרסם. ניתן גם לאפשר או לדחות קישוריות ספציפיות.
|
||||
disallow: לא לאשר קישורית
|
||||
disallow_provider: לא לאשר מפרסם
|
||||
@ -934,6 +941,10 @@ he:
|
||||
statuses:
|
||||
allow: הרשאת הודעה
|
||||
allow_account: הרשאת מחבר/ת
|
||||
confirm_allow: 'וידוא: האם לאשר את הסטטוסים שנבחרו?'
|
||||
confirm_allow_account: 'וידוא: האם לאשר את החשבונות שנבחרו?'
|
||||
confirm_disallow: 'וידוא: האם לאסור את הסטטוסים שנבחרו?'
|
||||
confirm_disallow_account: 'וידוא: האם לאסור את החשבונות שנבחרו?'
|
||||
description_html: אלו הן הודעות שהשרת שלך מכיר וזוכות להדהודים וחיבובים רבים כרגע. זה עשוי למשתמשיך החדשים והחוזרים למצוא עוד נעקבים. ההודעות לא מוצגות עד שיאושר המחבר/ת, והמחבר/ת יאשרו שחשבונים יומלץ לאחרים. ניתן לאשר או לדחות הודעות ספציפיות.
|
||||
disallow: לדחות הודעה
|
||||
disallow_account: לא לאשר מחבר/ת
|
||||
@ -1301,7 +1312,7 @@ he:
|
||||
statuses:
|
||||
back_to_filter: חזרה לפילטר
|
||||
batch:
|
||||
remove: הסרה מפילטר
|
||||
remove: הסרה ממסנן
|
||||
index:
|
||||
hint: סנן זה חל באופן של בחירת הודעות בודדות ללא תלות בקריטריונים אחרים. תוכלו להוסיף עוד הודעות לסנן זה ממנשק הווב.
|
||||
title: הודעות שסוננו
|
||||
|
@ -907,16 +907,16 @@ it:
|
||||
trends:
|
||||
allow: Consenti
|
||||
approved: Approvato
|
||||
confirm_allow: Si è sicuri di voler consentire i tag selezionati?
|
||||
confirm_disallow: Si è sicuri di non voler consentire i tag selezionati?
|
||||
confirm_allow: Sei sicuro di voler consentire i tag selezionati?
|
||||
confirm_disallow: Sei sicuro di non voler consentire i tag selezionati?
|
||||
disallow: Non consentire
|
||||
links:
|
||||
allow: Consenti link
|
||||
allow_provider: Consenti editore
|
||||
confirm_allow: Si è sicuri di voler consentire i link selezionati?
|
||||
confirm_allow_provider: Si è sicuri di voler consentire i provider selezionati?
|
||||
confirm_disallow: Si è sicuri di non voler consentire i link selezionati?
|
||||
confirm_disallow_provider: Si è sicuri di non voler consentire i provider selezionati?
|
||||
confirm_allow: Sei sicuro di voler consentire i link selezionati?
|
||||
confirm_allow_provider: Sei sicuro di voler consentire i provider selezionati?
|
||||
confirm_disallow: Sei sicuro di non voler consentire i link selezionati?
|
||||
confirm_disallow_provider: Sei sicuro di non voler consentire i provider selezionati?
|
||||
description_html: Questi sono collegamenti che attualmente vengono molto condivisi dagli account di cui il server vede i post. Può aiutare i tuoi utenti a scoprire cosa sta succedendo nel mondo. Nessun link viene visualizzato pubblicamente finché non si approva chi lo pubblica. È anche possibile permettere o rifiutare i singoli collegamenti.
|
||||
disallow: Non consentire link
|
||||
disallow_provider: Non consentire editore
|
||||
@ -940,10 +940,10 @@ it:
|
||||
statuses:
|
||||
allow: Consenti post
|
||||
allow_account: Consenti autore
|
||||
confirm_allow: Si è sicuri di voler consentire gli stati selezionati?
|
||||
confirm_allow_account: Si è sicuri di voler consentire gli account selezionati?
|
||||
confirm_disallow: Si è sicuri di non voler consentire gli stati selezionati?
|
||||
confirm_disallow_account: Si è sicuri di non voler consentire gli account selezionati?
|
||||
confirm_allow: Sei sicuro di voler consentire gli stati selezionati?
|
||||
confirm_allow_account: Sei sicuro di voler consentire gli account selezionati?
|
||||
confirm_disallow: Sei sicuro di non voler consentire gli stati selezionati?
|
||||
confirm_disallow_account: Sei sicuro di non voler consentire gli account selezionati?
|
||||
description_html: Questi sono post noti al tuo server che sono attualmente molto condivisi e preferiti. Può aiutare i tuoi utenti (nuovi e non) a trovare più persone da seguire. Nessun post viene visualizzato pubblicamente fino a quando si approva l'autore, e l'autore permette che il suo account sia suggerito ad altri. È anche possibile permettere o rifiutare singoli post.
|
||||
disallow: Non consentire post
|
||||
disallow_account: Non consentire autore
|
||||
@ -976,7 +976,7 @@ it:
|
||||
used_by_over_week:
|
||||
one: Usato da una persona nell'ultima settimana
|
||||
other: Usato da %{count} persone nell'ultima settimana
|
||||
title: Raccomandazioni e Tendenze
|
||||
title: Raccomandazioni & Tendenze
|
||||
trending: Di tendenza
|
||||
warning_presets:
|
||||
add_new: Aggiungi nuovo
|
||||
|
@ -414,8 +414,10 @@ ko:
|
||||
new:
|
||||
create: 도메인 추가하기
|
||||
resolve: 도메인 검사
|
||||
title: 새 이메일 도메인 차단
|
||||
not_permitted: 허용하지 않음
|
||||
resolved_through_html: "%{domain}을 통해 리졸빙됨"
|
||||
title: 차단된 이메일 도메인
|
||||
export_domain_allows:
|
||||
new:
|
||||
title: 도메인 허용 목록 불러오기
|
||||
@ -1004,7 +1006,9 @@ ko:
|
||||
guide_link_text: 누구나 기여할 수 있습니다.
|
||||
sensitive_content: 민감한 내용
|
||||
application_mailer:
|
||||
notification_preferences: 이메일 설정 변경
|
||||
salutation: "%{name} 님,"
|
||||
settings: '이메일 설정 변경: %{link}'
|
||||
unsubscribe: 구독 해제
|
||||
view: '보기:'
|
||||
view_profile: 프로필 보기
|
||||
@ -1024,6 +1028,7 @@ ko:
|
||||
hint_html: 하나만 더! 당신이 사람인지 확인이 필요합니다 (스팸 계정을 거르기 위해서 필요한 과정입니다). 아래에 있는 CAPTCHA를 풀고 "계속"을 누르세요
|
||||
title: 보안 체크
|
||||
confirmations:
|
||||
awaiting_review: 이메일 주소가 확인되었습니다! 이제 %{domain} 스태프가 가입을 검토할 것입니다. 계정이 승인되면 이메일을 받게 됩니다!
|
||||
awaiting_review_title: 가입 신청을 검토 중입니다
|
||||
clicking_this_link: 이 링크를 클릭
|
||||
login_link: 로그인
|
||||
@ -1051,6 +1056,7 @@ ko:
|
||||
or_log_in_with: 다른 방법으로 로그인 하려면
|
||||
privacy_policy_agreement_html: <a href="%{privacy_policy_path}" target="_blank">개인정보처리방침</a>을 읽고 동의합니다
|
||||
progress:
|
||||
confirm: 이메일 확인
|
||||
details: 세부사항
|
||||
review: 심사 결과
|
||||
rules: 규정을 수락합니다.
|
||||
@ -1072,6 +1078,7 @@ ko:
|
||||
security: 보안
|
||||
set_new_password: 새 암호 설정
|
||||
setup:
|
||||
email_below_hint_html: 스팸 폴더를 체크해보거나, 새로 요청할 수 있습니다. 이메일을 잘못 입력한 경우 수정할 수 있습니다.
|
||||
email_settings_hint_html: "%{email}을 인증하기 위해 우리가 보낸 링크를 누르세요. 여기서 기다리겠습니다."
|
||||
link_not_received: 링크를 못 받으셨나요?
|
||||
title: 수신함 확인하기
|
||||
@ -1351,6 +1358,7 @@ ko:
|
||||
authentication_methods:
|
||||
otp: 2단계 인증 앱
|
||||
password: 암호
|
||||
sign_in_token: 이메일 보안 코드
|
||||
webauthn: 보안 키
|
||||
description_html: 확인되지 않은 활동이 보인다면, 암호를 바꾸거나 2단계 인증을 활성화 하는 것을 고려해 보세요.
|
||||
empty: 인증 이력이 존재하지 않습니다
|
||||
|
@ -669,6 +669,7 @@ lt:
|
||||
title: Tendencingos saitažodžiai
|
||||
trendable: Gali pasirodyti tendencijose
|
||||
trending_rank: 'Tendencinga #%{rank}'
|
||||
title: Rekomendacijos ir tendencijos
|
||||
trending: Tendencinga
|
||||
warning_presets:
|
||||
add_new: Pridėti naują
|
||||
@ -887,7 +888,7 @@ lt:
|
||||
errors:
|
||||
too_large: Failas per didelis.
|
||||
modes:
|
||||
merge: Sulieti
|
||||
merge: Sujungti
|
||||
merge_long: Išsaugoti esančius įrašus ir pridėti naujus
|
||||
overwrite: Perrašyti
|
||||
overwrite_long: Pakeisti senus įrašus naujais
|
||||
@ -931,6 +932,9 @@ lt:
|
||||
description_html: Jei pastebėjei neatpažįstamą veiklą, apsvarstyk galimybę pakeisti slaptažodį ir įjungti dvigubą tapatybės nustatymą.
|
||||
empty: Tapatybės nustatymas istorijos nėra
|
||||
title: Tapatybės nustatymo istorija
|
||||
mail_subscriptions:
|
||||
unsubscribe:
|
||||
success_html: Daugiau negausi %{type} „Mastodon“ domene %{domain} į savo el. paštą %{email}.
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Negalima pridėti video prie statuso, kuris jau turi nuotrauką
|
||||
@ -964,6 +968,8 @@ lt:
|
||||
subject: "%{name} pakėlė tavo įrašą"
|
||||
title: Naujas pakėlimas
|
||||
notifications:
|
||||
administration_emails: Administratoriaus el. laiško pranešimai
|
||||
email_events: Įvykiai, skirti el. laiško pranešimams
|
||||
email_events_hint: 'Pasirink įvykius, apie kuriuos nori gauti pranešimus:'
|
||||
number:
|
||||
human:
|
||||
@ -1061,6 +1067,7 @@ lt:
|
||||
featured_tags: Rodomi saitažodžiai
|
||||
import: Importuoti
|
||||
migrate: Paskyros migracija
|
||||
notifications: El. laiško pranešimai
|
||||
preferences: Nuostatos
|
||||
profile: Viešas profilis
|
||||
relationships: Sekimai ir sekėjai
|
||||
@ -1205,6 +1212,7 @@ lt:
|
||||
invalid_otp_token: Netinkamas dviejų veiksnių kodas
|
||||
otp_lost_help_html: Jei praradai prieigą prie abiejų, gali susisiek su %{email}
|
||||
rate_limited: Per daug tapatybės nustatymo bandymų. Bandyk dar kartą vėliau.
|
||||
seamless_external_login: Esi prisijungęs (-usi) per išorinę paslaugą, todėl slaptažodžio ir el. pašto nustatymai nepasiekiami.
|
||||
signed_in_as: 'Prisijungta kaip:'
|
||||
verification:
|
||||
extra_instructions_html: <strong>Patarimas:</strong> nuoroda tavo svetainėje gali būti nematoma. Svarbi dalis – tai, kad <code>rel="me"</code> neleidžia apsimesti interneto svetainėse, kuriose yra naudotojų sukurto turinio. Vietoj to gali naudoti net <code>nuorodą</code> puslapio antraštėje esančią žymę <code>a</code>, tačiau HTML turi būti pasiekiamas nevykdant JavaScript.
|
||||
|
@ -1448,6 +1448,7 @@ nn:
|
||||
mention: e-postar om omtaler
|
||||
reblog: e-postar om framhevingar
|
||||
resubscribe_html: Om du har avslutta abonnementet ved ein feil, kan du abonnera på nytt i <a href="%{settings_path}">innstillingar for e-postvarsling</a>.
|
||||
success_html: Du vil ikkje lenger få %{type} frå Mastodon på %{domain} til e-posten på %{email}.
|
||||
title: Meld av
|
||||
media_attachments:
|
||||
validations:
|
||||
@ -1528,6 +1529,8 @@ nn:
|
||||
update:
|
||||
subject: "%{name} redigerte et innlegg"
|
||||
notifications:
|
||||
administration_emails: Epostvarsel for administrator
|
||||
email_events: Hendingar for epostvarsel
|
||||
email_events_hint: 'Velg hendelser som du vil motta varslinger for:'
|
||||
number:
|
||||
human:
|
||||
@ -1686,6 +1689,7 @@ nn:
|
||||
import: Hent inn
|
||||
import_and_export: Importer og eksporter
|
||||
migrate: Kontoflytting
|
||||
notifications: Epostvarsel
|
||||
preferences: Innstillingar
|
||||
profile: Profil
|
||||
relationships: Fylgjar og fylgjarar
|
||||
@ -1932,6 +1936,7 @@ nn:
|
||||
invalid_otp_token: Ugyldig tostegskode
|
||||
otp_lost_help_html: Hvis du mistet tilgangen til begge deler, kan du komme i kontakt med %{email}
|
||||
rate_limited: For mange autentiseringsforsøk, prøv igjen seinare.
|
||||
seamless_external_login: Du er logga inn gjennom ei ekstern tenest, så passord- og epostinnstillingar er ikkje tilgjengelege.
|
||||
signed_in_as: 'Logga inn som:'
|
||||
verification:
|
||||
extra_instructions_html: <strong>Tips:</strong> Linken på nettsida di kan vera usynleg. Den viktige delen er <code>rel="me"</code>, som på nettstader med brukargenerert innhald vil hindra at andre kan låst som dei er deg. Du kan til og med bruka <code>link</code> i staden for <code>a</code> i toppteksten til sida, men HTML-koden må vera tilgjengeleg utan å måtte køyra JavaScript.
|
||||
|
@ -73,8 +73,8 @@ he:
|
||||
filters:
|
||||
action: בחרו איזו פעולה לבצע כאשר הודעה מתאימה למסנן
|
||||
actions:
|
||||
hide: הסתר את התוכן המסונן, כאילו לא היה קיים
|
||||
warn: הסתר את התוכן המסונן מאחורי אזהרה עם כותרת המסנן
|
||||
hide: הסתרת התוכן המסונן, כאילו לא היה קיים
|
||||
warn: הסתרת התוכן המסונן מאחורי אזהרה עם כותרת המסנן
|
||||
form_admin_settings:
|
||||
activity_api_enabled: מספר ההודעות שפורסמו מקומית, משתמשים פעילים, והרשמות חדשות בדליים שבועיים
|
||||
app_icon: WEBP, PNG, GIF או JPG. גובר על אייקון ברירת המחדל ביישומון על מכשירים ניידים ומחליף אותו באייקון נבחר.
|
||||
|
@ -31,6 +31,7 @@ tr:
|
||||
created_msg: Denetim notu başarıyla oluşturuldu!
|
||||
destroyed_msg: Denetim notu başarıyla yok edildi!
|
||||
accounts:
|
||||
add_email_domain_block: E-posta alan adını engelle
|
||||
approve: Onayla
|
||||
approved_msg: "%{username} adlı kullanıcının kayıt başvurusu başarıyla onaylandı"
|
||||
are_you_sure: Emin misin?
|
||||
@ -57,6 +58,7 @@ tr:
|
||||
demote: Düşür
|
||||
destroyed_msg: "%{username} adlı kullanıcının verilerinin silinmesi sıraya alındı"
|
||||
disable: Dondur
|
||||
disable_sign_in_token_auth: E-posta token doğrulamayı devre dışı bırak
|
||||
disable_two_factor_authentication: 2 aşamalı doğrulamayı kapat
|
||||
disabled: Kapalı
|
||||
display_name: Görünen isim
|
||||
@ -65,6 +67,7 @@ tr:
|
||||
email: E-posta
|
||||
email_status: E-posta durumu
|
||||
enable: Etkinleştir
|
||||
enable_sign_in_token_auth: E-posta token doğrulamayı etkinleştir
|
||||
enabled: Etkin
|
||||
enabled_msg: "%{username} hesabı başarıyla çözüldü"
|
||||
followers: Takipçi
|
||||
@ -129,6 +132,7 @@ tr:
|
||||
resubscribe: Yeniden abone ol
|
||||
role: Rol
|
||||
search: Ara
|
||||
search_same_email_domain: Aynı e-posta alan adına sahip diğer kullanıcılar
|
||||
search_same_ip: Aynı IP adresine sahip diğer kullanıcılar
|
||||
security: Güvenlik
|
||||
security_measures:
|
||||
@ -169,21 +173,26 @@ tr:
|
||||
approve_appeal: İtirazı Onayla
|
||||
approve_user: Kullanıcıyı Onayla
|
||||
assigned_to_self_report: Raporu Ata
|
||||
change_email_user: Kullanıcı E-postasını Değiştir
|
||||
change_role_user: Kullanıcının Rolünü Değiştir
|
||||
confirm_user: Kullanıcıyı Onayla
|
||||
create_account_warning: Uyarı Oluştur
|
||||
create_announcement: Duyuru Oluştur
|
||||
create_canonical_email_block: E-posta Engeli Oluştur
|
||||
create_custom_emoji: Özel İfade Oluştur
|
||||
create_domain_allow: İzin Verilen Alan Adı Oluştur
|
||||
create_domain_block: Engellenen Alan Adı Oluştur
|
||||
create_email_domain_block: E-Posta Alan Adı Engeli Oluştur
|
||||
create_ip_block: IP kuralı oluştur
|
||||
create_unavailable_domain: Mevcut Olmayan Alan Adı Oluştur
|
||||
create_user_role: Rol Oluştur
|
||||
demote_user: Kullanıcıyı Düşür
|
||||
destroy_announcement: Duyuru Sil
|
||||
destroy_canonical_email_block: E-Posta Engelini Sil
|
||||
destroy_custom_emoji: Özel İfadeyi Sil
|
||||
destroy_domain_allow: İzin Verilen Alan Adını Sil
|
||||
destroy_domain_block: Engellenen Alan Adını Sil
|
||||
destroy_email_domain_block: E-posta Alan Adı Engelini Sil
|
||||
destroy_instance: Alan adını temizle
|
||||
destroy_ip_block: IP kuralını sil
|
||||
destroy_status: Durumu Sil
|
||||
@ -191,8 +200,10 @@ tr:
|
||||
destroy_user_role: Rolü Kaldır
|
||||
disable_2fa_user: 2AD Kapat
|
||||
disable_custom_emoji: Özel İfadeyi Devre Dışı Bırak
|
||||
disable_sign_in_token_auth_user: Kullanıcı için E-posta Token Doğrulamayı Devre Dışı Bırak
|
||||
disable_user: Kullanıcıyı Devre Dışı Bırak
|
||||
enable_custom_emoji: Özel İfadeyi Etkinleştir
|
||||
enable_sign_in_token_auth_user: Kullanıcı için E-posta Token Doğrulamayı Etkinleştir
|
||||
enable_user: Kullanıcıyı Etkinleştir
|
||||
memorialize_account: Hesabı Anıtlaştır
|
||||
promote_user: Kullanıcıyı Yükselt
|
||||
@ -222,20 +233,26 @@ tr:
|
||||
approve_appeal_html: "%{name}, %{target} kullanıcısının yönetim kararına itirazını kabul etti"
|
||||
approve_user_html: "%{name}, %{target} konumundan kaydı onayladı"
|
||||
assigned_to_self_report_html: "%{name} kendilerine %{target} adlı raporu verdi"
|
||||
change_email_user_html: "%{name}, %{target} kullanıcısının e-posta adresini değiştirdi"
|
||||
change_role_user_html: "%{name}, %{target} kişisinin rolünü değiştirdi"
|
||||
confirm_user_html: "%{name} %{target} kullanıcısının e-posta adresini onayladı"
|
||||
create_account_warning_html: "%{name} %{target} 'a bir uyarı gönderdi"
|
||||
create_announcement_html: "%{name}, yeni %{target} duyurusunu oluşturdu"
|
||||
create_canonical_email_block_html: "%{name}, %{target} karmasıyla e-posta engelledi"
|
||||
create_custom_emoji_html: "%{name} yeni %{target} ifadesini yükledi"
|
||||
create_domain_allow_html: "%{name}, %{target} alan adıyla birliğe izin verdi"
|
||||
create_domain_block_html: "%{name}, %{target} alan adını engelledi"
|
||||
create_email_domain_block_html: "%{name}, %{target} e-posta alan adını engelledi"
|
||||
create_ip_block_html: "%{name}, %{target} IP adresi için kural oluşturdu"
|
||||
create_unavailable_domain_html: "%{name}, %{target} alan adına teslimatı durdurdu"
|
||||
create_user_role_html: "%{name}, %{target} rolünü oluşturdu"
|
||||
demote_user_html: "%{name}, %{target} kullanıcısını düşürdü"
|
||||
destroy_announcement_html: "%{name}, %{target} duyurusunu sildi"
|
||||
destroy_canonical_email_block_html: "%{name}, %{target} karmasıyla e-posta engelini kaldırdı"
|
||||
destroy_custom_emoji_html: "%{name}, %{target} ifadesini sildi"
|
||||
destroy_domain_allow_html: "%{name}, %{target} alan adıyla birlik iznini kaldırdı"
|
||||
destroy_domain_block_html: "%{name}, %{target} alan adı engelini kaldırdı"
|
||||
destroy_email_domain_block_html: "%{name}, %{target} e-posta alan adı engelini kaldırdı"
|
||||
destroy_instance_html: "%{name}, %{target} alan adını temizledi"
|
||||
destroy_ip_block_html: "%{name}, %{target} IP adresi kuralını sildi"
|
||||
destroy_status_html: "%{name}, %{target} kullanıcısının gönderisini kaldırdı"
|
||||
@ -243,8 +260,10 @@ tr:
|
||||
destroy_user_role_html: "%{name}, %{target} rolünü sildi"
|
||||
disable_2fa_user_html: "%{name}, %{target} kullanıcısının iki aşamalı doğrulama gereksinimini kapattı"
|
||||
disable_custom_emoji_html: "%{name}, %{target} emojisini devre dışı bıraktı"
|
||||
disable_sign_in_token_auth_user_html: "%{name}, %{target} için e-posta token doğrulamayı devre dışı bıraktı"
|
||||
disable_user_html: "%{name}, %{target} kullanıcısı için oturum açmayı devre dışı bıraktı"
|
||||
enable_custom_emoji_html: "%{name}, %{target} emojisini etkinleştirdi"
|
||||
enable_sign_in_token_auth_user_html: "%{name}, %{target} için e-posta token doğrulamayı etkinleştirdi"
|
||||
enable_user_html: "%{name}, %{target} kullanıcısı için oturum açmayı etkinleştirdi"
|
||||
memorialize_account_html: "%{name}, %{target} kullanıcısının hesabını bir anıt sayfaya dönüştürdü"
|
||||
promote_user_html: "%{name}, %{target} kullanıcısını yükseltti"
|
||||
@ -252,6 +271,7 @@ tr:
|
||||
reject_user_html: "%{name}, %{target} konumundan kaydı reddetti"
|
||||
remove_avatar_user_html: "%{name}, %{target} kullanıcısının avatarını kaldırdı"
|
||||
reopen_report_html: "%{name}, %{target} şikayetini yeniden açtı"
|
||||
resend_user_html: "%{name}, %{target} için doğrulama e-postasını tekrar gönderdi"
|
||||
reset_password_user_html: "%{name}, %{target} kullanıcısının parolasını sıfırladı"
|
||||
resolve_report_html: "%{name}, %{target} şikayetini çözdü"
|
||||
sensitive_account_html: "%{name}, %{target} kullanıcısının medyasını hassas olarak işaretledi"
|
||||
@ -412,6 +432,7 @@ tr:
|
||||
attempts_over_week:
|
||||
one: Son haftada %{count} deneme
|
||||
other: Son haftada %{count} kayıt denemesi
|
||||
created_msg: E-posta alan adı kara listeye başarıyla eklendi
|
||||
delete: Sil
|
||||
dns:
|
||||
types:
|
||||
@ -420,8 +441,12 @@ tr:
|
||||
new:
|
||||
create: Alan adı ekle
|
||||
resolve: Alan adı çözümleme
|
||||
title: Yeni e-posta kara liste girişi
|
||||
no_email_domain_block_selected: Seçim yapılmadığından hiç bir e-posta alan adı engeli değiştirilmedi
|
||||
not_permitted: İzin verilmedi
|
||||
resolved_dns_records_hint_html: Alan adı aşağıdaki MX alan adlarına çözümleniyor, ancak hiç biri nihayetinde e-posta kabulünden sorum değil. Bir MX alan adını engellemek, görünen alan adı farklı osa bile aynı MX alan adını kullanan e-posta adreslerinden gelen kayıtları engelleyecektir. <strong>Başlıca e-posta sağlayıcıları engellememek için dikkatli olun.</strong>
|
||||
resolved_through_html: "%{domain} aracılığıyla çözümlendi"
|
||||
title: Engelli e-posta alan adları
|
||||
export_domain_allows:
|
||||
new:
|
||||
title: Alan adı engellerini içe aktar
|
||||
@ -575,6 +600,7 @@ tr:
|
||||
resolve_description_html: Bildirilen hesap için bir şey yapılmayacak, eylem kaydedilmeyecek ve bildirim kapatılacak.
|
||||
silence_description_html: Bu hesap sadece halihazırda takip edenler ve elle bakanlarca görünecek, böylece erişimi ciddi bir şekilde kısıtlanacak. Her zaman geri alınabilir. Bu hesaba yönelik tüm bildirimleri kapatır.
|
||||
suspend_description_html: Bu hesap ve tüm içeriği erişilmez olacak ve nihayetinde silinecek ve bu hesapla etkileşim mümkün olmayacaktır. 30 gün içinde geri alınabilir. Bu hesaba yönelik tüm bildiriimleri kapatır.
|
||||
actions_description_html: Bu bildirimi çözmek için ne yapılması gerektiğine karar verin. Bildirilen hesap için ceza işlemi yaparsanız, <strong>İstenmeyen</strong> kategorisi seçilmemişse, onlara bir e-posta duyurusu gönderilecektir.
|
||||
actions_description_remote_html: Bu bildirimi çözmek için hangi eylemi yapmak istediğinize karar verin. Bu yalnızca <strong>sizin</strong> sunucunuzun bu uzak hesapla nasıl etkileşeğini ve içeriğiyle ne yapacağını etkiler.
|
||||
add_to_report: Bildirime daha fazlasını ekle
|
||||
already_suspended_badges:
|
||||
@ -639,6 +665,7 @@ tr:
|
||||
delete_data_html: İlgili sürede askıdan alınması kaldırılmazsa <strong>@%{acct}</strong> hesabının profilini ve içeriğini şu andan itibaren 30 gün içinde sil
|
||||
preview_preamble_html: "<strong>@%{acct}</strong> aşağıdaki içerikle bir uyarı alacaktır:"
|
||||
record_strike_html: "<strong>@%{acct}</strong> hesabına karşı bir eylem kaydet, böylece bu hesabın gelecekteki ihlallerini üst makama taşımanıza yardımcı olacaktır"
|
||||
send_email_html: "<strong>@%{acct}</strong> adlı kullanıcıya uyarı e-maili gönder"
|
||||
warning_placeholder: İsteğe bağlı ek nedenden denetim eylemi.
|
||||
target_origin: Şikayet edilen hesabın kökeni
|
||||
title: Şikayetler
|
||||
@ -678,6 +705,7 @@ tr:
|
||||
manage_appeals: İtirazları Yönetme
|
||||
manage_appeals_description: Kullanıcıların denetleme eylemlerine itirazları gözden geçirmesine izin verir
|
||||
manage_blocks: Engelleri Yönetme
|
||||
manage_blocks_description: Kullanıcıların e-posta sağlayıcıları ve IP adreslerini engellemesine izin verir
|
||||
manage_custom_emojis: Özel İfadeleri Yönetme
|
||||
manage_custom_emojis_description: Kullanıcıların sunucudaki özel ifadeleri yönetmesine izin verir
|
||||
manage_federation: Birleştirme Yönetme
|
||||
@ -695,6 +723,7 @@ tr:
|
||||
manage_taxonomies: Kategorileri Yönetme
|
||||
manage_taxonomies_description: Kullanıcıların öne çıkan içeriği incelemesine ve etiket ayarlarını güncellemesine izin verir
|
||||
manage_user_access: Kullanıcı Erişimini Yönetme
|
||||
manage_user_access_description: Kullanıcıların, diğer kullanıcıların iki aşamalı yetkilendirme, e-posta adreslerini değiştirme ve parolalarını sıfırlama eylemlerini etkisizleştirmesine izin verir
|
||||
manage_users: Kullanıcıları Yönetme
|
||||
manage_users_description: Kullanıcıların, diğer kullanıcıların ayrıntılarını görüntülemesine ve onlara karşı denetim eylemleri gerçekleştirmesine izin verir
|
||||
manage_webhooks: Webhookları Yönetme
|
||||
@ -769,6 +798,7 @@ tr:
|
||||
destroyed_msg: Site yüklemesi başarıyla silindi!
|
||||
software_updates:
|
||||
critical_update: Kritik — lütfen hemen güncelleyin
|
||||
description: Son düzeltme ve özelliklerden yararlanmak için Mastodon kurulumunu güncel tutmanızı öneriyoruz. Üstelik güvenlik sorunlarından kaçınmak için Mastodon'u zamanında güncellemek kritiktir. Bu nedenlerle Mastodon her 30 dakikada bir güncellemeleri denetler ve e-posta bildirim seçeneğinize göre size haber verir.
|
||||
documentation_link: Daha fazlası
|
||||
release_notes: Sürüm notları
|
||||
title: Mevcut güncellemeler
|
||||
@ -1031,7 +1061,9 @@ tr:
|
||||
guide_link_text: Herkes katkıda bulunabilir.
|
||||
sensitive_content: Hassas içerik
|
||||
application_mailer:
|
||||
notification_preferences: E-posta tercihlerini değiştir
|
||||
salutation: "%{name},"
|
||||
settings: 'E-posta tercihlerini değiştir: %{link}'
|
||||
unsubscribe: Abonelikten çık
|
||||
view: 'Görüntüle:'
|
||||
view_profile: Profili görüntüle
|
||||
@ -1051,6 +1083,7 @@ tr:
|
||||
hint_html: Sadece bir şey daha! Sizin bir insan olduğunuzu doğrulamamız gerekiyor (bu, spam'i dışarıda tutabilmemiz içindir!). Aşağıdaki CAPTCHA'yı çözün ve "Devam Et" düğmesini tıklayın.
|
||||
title: Güvenlik denetimi
|
||||
confirmations:
|
||||
awaiting_review: E-posta adresiniz doğrulandı! %{domain} çalışanları şimdi kaydınızı inceliyorlar. Hesabınızı onayladıklarında bir e-posta alacaksınız!
|
||||
awaiting_review_title: Kaydınız inceleniyor
|
||||
clicking_this_link: bu bağlantıyı tıklamayı
|
||||
login_link: oturum aç
|
||||
@ -1058,6 +1091,7 @@ tr:
|
||||
redirect_to_app_html: "<strong>%{app_name}</strong> uygulamasına yönlendirileceksiniz. Eğer yönlendirme olmazsa, %{clicking_this_link} veya uygulamaya geri dönmeyi deneyin."
|
||||
registration_complete: "%{domain} sunucusunda kaydınız şimdi tamamlandı!"
|
||||
welcome_title: Hoşgeldin %{name}!
|
||||
wrong_email_hint: Eğer bu e-posta adresi doğru değilse, hesap ayarlarında değiştirebilirsiniz.
|
||||
delete_account: Hesabı sil
|
||||
delete_account_html: Hesabını silmek istersen, <a href="%{path}">buradan devam edebilirsin</a>. Onay istenir.
|
||||
description:
|
||||
@ -1078,6 +1112,7 @@ tr:
|
||||
or_log_in_with: 'Veya şununla oturum açın:'
|
||||
privacy_policy_agreement_html: <a href="%{privacy_policy_path}" target="_blank">Gizlilik politikasını</a> okudum ve kabul ettim
|
||||
progress:
|
||||
confirm: E-postanızı onaylayın
|
||||
details: Ayrıntılarınız
|
||||
review: İncelememiz
|
||||
rules: Kabul kuralları
|
||||
@ -1099,8 +1134,10 @@ tr:
|
||||
security: Güvenlik
|
||||
set_new_password: Yeni parola belirle
|
||||
setup:
|
||||
email_below_hint_html: İstenmeyenler dizininize bakın veya başka bir onay bağlantısı isteyin. Eğer yanlışsa e-posta adresinizi de düzeltebilirsiniz.
|
||||
email_settings_hint_html: "%{email} adresinizi doğrulamak için size gönderdiğimiz bağlantıya tıklayın. Biz burada bekliyoruz."
|
||||
link_not_received: Bağlantı gelmedi mi?
|
||||
new_confirmation_instructions_sent: Birkaç dakika içerisinde onaylama bağlantısını içeren yeni bir e-posta alacaksınız!
|
||||
title: Gelen kutunuzu kontrol edin
|
||||
sign_in:
|
||||
preamble_html: "<strong>%{domain}</strong> kimlik bilgilerinizi kullanarak giriş yapın. Eğer hesabınız başka bir sunucuda barındırılıyorsa, burada giriş yapamazsınız."
|
||||
@ -1111,7 +1148,9 @@ tr:
|
||||
title: "%{domain} için kurulumunuzu yapalım."
|
||||
status:
|
||||
account_status: Hesap durumu
|
||||
confirming: E-posta onaylamanın tamamlanması bekleniyor.
|
||||
functional: Hesabınız tamamen kullanıma hazır.
|
||||
pending: Başvurunuz personelimiz tarafından gözden geçirilmeyi beklemektedir. Bu biraz zaman alabilir. Başvurunuz onaylanırsa bir e-posta alacaksınız.
|
||||
redirecting_to: Hesabınız aktif değil çünkü şu anda %{acct} adresine yönlendirilmektedir.
|
||||
self_destruct: "%{domain} kapandığı için, hesabınıza sadece kısıtlı erişiminiz olacak."
|
||||
view_strikes: Hesabınıza yönelik eski eylemleri görüntüleyin
|
||||
@ -1154,6 +1193,9 @@ tr:
|
||||
before: 'Devam etmeden önce, lütfen bu notları dikkatlice okuyun:'
|
||||
caches: Diğer sunucular tarafından ön belleğe alınan içerik kalabilir
|
||||
data_removal: Gönderileriniz ve diğer verileriniz kalıcı olarak silinecektir
|
||||
email_change_html: Hesabınızı silmeden <a href="%{path}">e-posta adresinizi değiştirebilirsiniz</a>
|
||||
email_contact_html: Eğer hala ulaşmazsa, yardım almak için <a href="mailto:%{email}">%{email}</a> adresine e-posta gönderebilirsiniz
|
||||
email_reconfirmation_html: Eğer onaylama e-postası ulaşmıyorsa, <a href="%{path}">tekrar talep edebilirsiniz</a>
|
||||
irreversible: Hesabınızı geri yükleyemeyecek ya da yeniden etkinleştiremeyeceksiniz
|
||||
more_details_html: Daha fazla ayrıntı için, <a href="%{terms_path}">gizlilik politikası</a>na göz atın.
|
||||
username_available: Kullanıcı adınız tekrar kullanılabilir olacaktır
|
||||
@ -1386,6 +1428,7 @@ tr:
|
||||
authentication_methods:
|
||||
otp: iki aşamalı kimlik doğrulama uygulaması
|
||||
password: parola
|
||||
sign_in_token: e-posta güvenlik kodu
|
||||
webauthn: güvenlik anahtarları
|
||||
description_html: Eğer tanımadığınız bir faaliyet görüyorsanız, parolanızı değiştirmeyi ve iki aşamalı kimlik doğrulamayı etkinleştirmeyi düşünün.
|
||||
empty: Kimlik doğrulama geçmişi yok
|
||||
@ -1396,6 +1439,16 @@ tr:
|
||||
unsubscribe:
|
||||
action: Evet, abonelikten çık
|
||||
complete: Abonelikten çık
|
||||
confirmation_html: '%{domain} üzerindeki Mastodon için %{type} almayı durdurarak %{email} adresinize aboneliğinizi iptal etmek istediğinizden emin misiniz? <a href="%{settings_path}">e-posta bildirim ayarlarınızdan</a> her zaman yeniden abone olabilirsiniz.'
|
||||
emails:
|
||||
notification_emails:
|
||||
favourite: favori bildirim e-postaları
|
||||
follow: takip bildirim e-postaları
|
||||
follow_request: takip isteği bildirim e-postaları
|
||||
mention: bahsetme bildirim e-postaları
|
||||
reblog: öne çıkanlar bildirim e-postaları
|
||||
resubscribe_html: Abonelikten yanlışlıkla çıktıysanız, <a href="%{settings_path}">e-posta bildirim ayarlarınızdan</a> yeniden abone olabilirsiniz.
|
||||
success_html: Artık %{email} adresindeki e-postanıza %{domain} üzerindeki Mastodon için %{type} almayacaksınız.
|
||||
title: Abonelikten çık
|
||||
media_attachments:
|
||||
validations:
|
||||
@ -1476,6 +1529,8 @@ tr:
|
||||
update:
|
||||
subject: "%{name} bir gönderiyi düzenledi"
|
||||
notifications:
|
||||
administration_emails: Yönetici e-posta bildirimleri
|
||||
email_events: E-posta bildirimi etkinlikleri
|
||||
email_events_hint: 'Bildirim almak istediğiniz olayları seçin:'
|
||||
number:
|
||||
human:
|
||||
@ -1634,6 +1689,7 @@ tr:
|
||||
import: İçe aktar
|
||||
import_and_export: İçe ve dışa aktar
|
||||
migrate: Hesap taşıma
|
||||
notifications: E-posta bildirimleri
|
||||
preferences: Tercihler
|
||||
profile: Profil
|
||||
relationships: Takip edilenler ve takipçiler
|
||||
@ -1880,6 +1936,7 @@ tr:
|
||||
invalid_otp_token: Geçersiz iki adımlı doğrulama kodu
|
||||
otp_lost_help_html: Her ikisine de erişiminizi kaybettiyseniz, %{email} ile irtibata geçebilirsiniz
|
||||
rate_limited: Çok fazla kimlik doğrulama denemesi. Daha sonra tekrar deneyin.
|
||||
seamless_external_login: Harici bir servis aracılığıyla oturum açtınız, bu nedenle parola ve e-posta ayarları mevcut değildir.
|
||||
signed_in_as: 'Oturum açtı:'
|
||||
verification:
|
||||
extra_instructions_html: <strong>İpucu:</strong> Web sitenizdeki bağlantı görünmez olabilir. Önemli olan, kullanıcı tarafından oluşturulan içeriğe sahip web sitelerinde kimliğe bürünmeyi önleyen <code>rel="me"</code>'dir. Sayfa başlığında <code>a</code> yerine bir <code>bağlantı</code> etiketi de kullanabilirsiniz, ancak HTML'ye JavaScript çalıştırılmadan erişilebilir olmalıdır.
|
||||
|
@ -302,12 +302,10 @@ RSpec.describe MediaAttachment, :attachment_processing do
|
||||
it 'queues CacheBusterWorker jobs' do
|
||||
original_path = media.file.path(:original)
|
||||
small_path = media.file.path(:small)
|
||||
thumbnail_path = media.thumbnail.path(:original)
|
||||
|
||||
expect { media.destroy }
|
||||
.to enqueue_sidekiq_job(CacheBusterWorker).with(original_path)
|
||||
.and enqueue_sidekiq_job(CacheBusterWorker).with(small_path)
|
||||
.and enqueue_sidekiq_job(CacheBusterWorker).with(thumbnail_path)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -182,30 +182,30 @@ RSpec.describe User do
|
||||
end
|
||||
end
|
||||
|
||||
describe 'blacklist' do
|
||||
describe 'email domains denylist integration' do
|
||||
around do |example|
|
||||
old_blacklist = Rails.configuration.x.email_blacklist
|
||||
original = Rails.configuration.x.email_domains_denylist
|
||||
|
||||
Rails.configuration.x.email_domains_blacklist = 'mvrht.com'
|
||||
Rails.configuration.x.email_domains_denylist = 'mvrht.com'
|
||||
|
||||
example.run
|
||||
|
||||
Rails.configuration.x.email_domains_blacklist = old_blacklist
|
||||
Rails.configuration.x.email_domains_denylist = original
|
||||
end
|
||||
|
||||
it 'allows a non-blacklisted user to be created' do
|
||||
it 'allows a user with an email domain that is not on the denylist to be created' do
|
||||
user = described_class.new(email: 'foo@example.com', account: account, password: password, agreement: true)
|
||||
|
||||
expect(user).to be_valid
|
||||
end
|
||||
|
||||
it 'does not allow a blacklisted user to be created' do
|
||||
it 'does not allow a user with an email domain on the deylist to be created' do
|
||||
user = described_class.new(email: 'foo@mvrht.com', account: account, password: password, agreement: true)
|
||||
|
||||
expect(user).to_not be_valid
|
||||
end
|
||||
|
||||
it 'does not allow a subdomain blacklisted user to be created' do
|
||||
it 'does not allow a user with an email where the subdomain is on the denylist to be created' do
|
||||
user = described_class.new(email: 'foo@mvrht.com.topdomain.tld', account: account, password: password, agreement: true)
|
||||
|
||||
expect(user).to_not be_valid
|
||||
@ -374,43 +374,43 @@ RSpec.describe User do
|
||||
end
|
||||
end
|
||||
|
||||
describe 'whitelist' do
|
||||
describe 'allowlist integration' do
|
||||
around do |example|
|
||||
old_whitelist = Rails.configuration.x.email_domains_whitelist
|
||||
original = Rails.configuration.x.email_domains_allowlist
|
||||
|
||||
Rails.configuration.x.email_domains_whitelist = 'mastodon.space'
|
||||
Rails.configuration.x.email_domains_allowlist = 'mastodon.space'
|
||||
|
||||
example.run
|
||||
|
||||
Rails.configuration.x.email_domains_whitelist = old_whitelist
|
||||
Rails.configuration.x.email_domains_allowlist = original
|
||||
end
|
||||
|
||||
it 'does not allow a user to be created unless they are whitelisted' do
|
||||
it 'does not allow a user to be created when their email is not on the allowlist' do
|
||||
user = described_class.new(email: 'foo@example.com', account: account, password: password, agreement: true)
|
||||
expect(user).to_not be_valid
|
||||
end
|
||||
|
||||
it 'allows a user to be created if they are whitelisted' do
|
||||
it 'allows a user to be created when their email is on the allowlist' do
|
||||
user = described_class.new(email: 'foo@mastodon.space', account: account, password: password, agreement: true)
|
||||
expect(user).to be_valid
|
||||
end
|
||||
|
||||
it 'does not allow a user with a whitelisted top domain as subdomain in their email address to be created' do
|
||||
it 'does not allow a user with an email subdomain included on the top level domain allowlist to be created' do
|
||||
user = described_class.new(email: 'foo@mastodon.space.userdomain.com', account: account, password: password, agreement: true)
|
||||
expect(user).to_not be_valid
|
||||
end
|
||||
|
||||
context 'with a blacklisted subdomain' do
|
||||
context 'with a subdomain on the denylist' do
|
||||
around do |example|
|
||||
old_blacklist = Rails.configuration.x.email_blacklist
|
||||
original = Rails.configuration.x.email_domains_denylist
|
||||
example.run
|
||||
Rails.configuration.x.email_domains_blacklist = old_blacklist
|
||||
Rails.configuration.x.email_domains_denylist = original
|
||||
end
|
||||
|
||||
it 'does not allow a user to be created with a specific blacklisted subdomain even if the top domain is whitelisted' do
|
||||
Rails.configuration.x.email_domains_blacklist = 'blacklisted.mastodon.space'
|
||||
it 'does not allow a user to be created with an email subdomain on the denylist even if the top domain is on the allowlist' do
|
||||
Rails.configuration.x.email_domains_denylist = 'denylisted.mastodon.space'
|
||||
|
||||
user = described_class.new(email: 'foo@blacklisted.mastodon.space', account: account, password: password)
|
||||
user = described_class.new(email: 'foo@denylisted.mastodon.space', account: account, password: password)
|
||||
expect(user).to_not be_valid
|
||||
end
|
||||
end
|
||||
|
30
spec/requests/log_out_spec.rb
Normal file
30
spec/requests/log_out_spec.rb
Normal file
@ -0,0 +1,30 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Log Out' do
|
||||
include RoutingHelper
|
||||
|
||||
describe 'DELETE /auth/sign_out' do
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
||||
before do
|
||||
sign_in user
|
||||
end
|
||||
|
||||
it 'Logs out the user and redirect' do
|
||||
delete '/auth/sign_out'
|
||||
|
||||
expect(response).to redirect_to('/auth/sign_in')
|
||||
end
|
||||
|
||||
it 'Logs out the user and return a page to redirect to with a JSON request' do
|
||||
delete '/auth/sign_out', headers: { 'HTTP_ACCEPT' => 'application/json' }
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(response.media_type).to eq 'application/json'
|
||||
|
||||
expect(body_as_json[:redirect_to]).to eq '/auth/sign_in'
|
||||
end
|
||||
end
|
||||
end
|
19
spec/services/accept_notification_request_service_spec.rb
Normal file
19
spec/services/accept_notification_request_service_spec.rb
Normal file
@ -0,0 +1,19 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe AcceptNotificationRequestService do
|
||||
subject { described_class.new }
|
||||
|
||||
let(:notification_request) { Fabricate(:notification_request) }
|
||||
|
||||
describe '#call' do
|
||||
it 'destroys the notification request, creates a permission, and queues a worker' do
|
||||
expect { subject.call(notification_request) }
|
||||
.to change { NotificationRequest.exists?(notification_request.id) }.to(false)
|
||||
.and change { NotificationPermission.exists?(account_id: notification_request.account_id, from_account_id: notification_request.from_account_id) }.to(true)
|
||||
|
||||
expect(UnfilterNotificationsWorker).to have_enqueued_sidekiq_job(notification_request.account_id, notification_request.from_account_id)
|
||||
end
|
||||
end
|
||||
end
|
43
spec/system/log_out_spec.rb
Normal file
43
spec/system/log_out_spec.rb
Normal file
@ -0,0 +1,43 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe 'Log out' do
|
||||
include ProfileStories
|
||||
|
||||
before do
|
||||
as_a_logged_in_user
|
||||
end
|
||||
|
||||
describe 'Logging out from the preferences' do
|
||||
it 'logs the user out' do
|
||||
visit settings_path
|
||||
|
||||
within '.sidebar' do
|
||||
click_on 'Logout'
|
||||
end
|
||||
|
||||
expect(page).to have_title(I18n.t('auth.login'))
|
||||
expect(page).to have_current_path('/auth/sign_in')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Logging out from the JS app', :js, :streaming do
|
||||
it 'logs the user out' do
|
||||
visit root_path
|
||||
|
||||
within '.navigation-bar' do
|
||||
click_on 'Menu'
|
||||
end
|
||||
|
||||
within '.dropdown-menu' do
|
||||
click_on 'Logout'
|
||||
end
|
||||
|
||||
click_on 'Log out'
|
||||
|
||||
expect(page).to have_title(I18n.t('auth.login'))
|
||||
expect(page).to have_current_path('/auth/sign_in')
|
||||
end
|
||||
end
|
||||
end
|
@ -9,10 +9,10 @@ describe EmailMxValidator do
|
||||
|
||||
context 'with an e-mail domain that is explicitly allowed' do
|
||||
around do |block|
|
||||
tmp = Rails.configuration.x.email_domains_whitelist
|
||||
Rails.configuration.x.email_domains_whitelist = 'example.com'
|
||||
tmp = Rails.configuration.x.email_domains_allowlist
|
||||
Rails.configuration.x.email_domains_allowlist = 'example.com'
|
||||
block.call
|
||||
Rails.configuration.x.email_domains_whitelist = tmp
|
||||
Rails.configuration.x.email_domains_allowlist = tmp
|
||||
end
|
||||
|
||||
it 'does not add errors if there are no DNS records' do
|
||||
@ -69,7 +69,7 @@ describe EmailMxValidator do
|
||||
expect(user.errors).to have_received(:add)
|
||||
end
|
||||
|
||||
it 'adds an error if the MX record is blacklisted' do
|
||||
it 'adds an error if the MX record has an email domain block' do
|
||||
EmailDomainBlock.create!(domain: 'mail.example.com')
|
||||
|
||||
configure_resolver(
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe BlacklistedEmailValidator do
|
||||
RSpec.describe UserEmailValidator do
|
||||
describe '#validate' do
|
||||
subject { described_class.new.validate(user) }
|
||||
|
46
spec/workers/unfilter_notifications_worker_spec.rb
Normal file
46
spec/workers/unfilter_notifications_worker_spec.rb
Normal file
@ -0,0 +1,46 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe UnfilterNotificationsWorker do
|
||||
let(:recipient) { Fabricate(:account) }
|
||||
let(:sender) { Fabricate(:account) }
|
||||
|
||||
before do
|
||||
# Populate multiple kinds of filtered notifications
|
||||
private_message = Fabricate(:status, account: sender, visibility: :direct)
|
||||
mention = Fabricate(:mention, account: recipient, status: private_message)
|
||||
Fabricate(:notification, filtered: true, from_account: sender, account: recipient, type: :mention, activity: mention)
|
||||
follow_request = sender.request_follow!(recipient)
|
||||
Fabricate(:notification, filtered: true, from_account: sender, account: recipient, type: :follow_request, activity: follow_request)
|
||||
end
|
||||
|
||||
shared_examples 'shared behavior' do
|
||||
it 'unfilters notifications and adds private messages to conversations' do
|
||||
expect { subject }
|
||||
.to change { recipient.notifications.where(from_account_id: sender.id).pluck(:filtered) }.from([true, true]).to([false, false])
|
||||
.and change { recipient.conversations.exists?(last_status_id: sender.statuses.first.id) }.to(true)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#perform' do
|
||||
context 'with single argument (prerelease behavior)' do
|
||||
subject { described_class.new.perform(notification_request.id) }
|
||||
|
||||
let(:notification_request) { Fabricate(:notification_request, from_account: sender, account: recipient) }
|
||||
|
||||
it_behaves_like 'shared behavior'
|
||||
|
||||
it 'destroys the notification request' do
|
||||
expect { subject }
|
||||
.to change { NotificationRequest.exists?(notification_request.id) }.to(false)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with two arguments' do
|
||||
subject { described_class.new.perform(recipient.id, sender.id) }
|
||||
|
||||
it_behaves_like 'shared behavior'
|
||||
end
|
||||
end
|
||||
end
|
402
yarn.lock
402
yarn.lock
@ -1579,10 +1579,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@csstools/color-helpers@npm:^4.2.1":
|
||||
version: 4.2.1
|
||||
resolution: "@csstools/color-helpers@npm:4.2.1"
|
||||
checksum: 10c0/72e11b186ad0f6019a9b4b3752e620fa798c2a40cf47e8cad565dff46e572c9342eb8cf804542d7886344a1e540555d77f20119ace6b2d8a45b6e5ef8a41685c
|
||||
"@csstools/color-helpers@npm:^5.0.1":
|
||||
version: 5.0.1
|
||||
resolution: "@csstools/color-helpers@npm:5.0.1"
|
||||
checksum: 10c0/77fa3b7236eaa3f36dea24708ac0d5e53168903624ac5aed54615752a0730cd20773fda50e742ce868012eca8c000cc39688e05869e79f34714230ab6968d1e6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -1596,16 +1596,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@csstools/css-color-parser@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "@csstools/css-color-parser@npm:3.0.0"
|
||||
"@csstools/css-color-parser@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "@csstools/css-color-parser@npm:3.0.1"
|
||||
dependencies:
|
||||
"@csstools/color-helpers": "npm:^4.2.1"
|
||||
"@csstools/color-helpers": "npm:^5.0.1"
|
||||
"@csstools/css-calc": "npm:^2.0.0"
|
||||
peerDependencies:
|
||||
"@csstools/css-parser-algorithms": ^3.0.0
|
||||
"@csstools/css-tokenizer": ^3.0.0
|
||||
checksum: 10c0/9b56ba3b56691d2133f1d9b881131bfd9745024a79f825284109adac05578e15ae3eed0e99c98db162932d69770fc970b5b005996c32cdf7167af3418da263c3
|
||||
checksum: 10c0/8890a621f916cbbf49e749d4e85e934ce55c9f9c339abcc5f4a64bc165605a6e8dd3cad9d3bbc994d2419a3b38981dca84b93ae50aa91d492fb5f0f4c9d95969
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -1673,33 +1673,33 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@csstools/postcss-color-function@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "@csstools/postcss-color-function@npm:4.0.0"
|
||||
"@csstools/postcss-color-function@npm:^4.0.1":
|
||||
version: 4.0.1
|
||||
resolution: "@csstools/postcss-color-function@npm:4.0.1"
|
||||
dependencies:
|
||||
"@csstools/css-color-parser": "npm:^3.0.0"
|
||||
"@csstools/css-color-parser": "npm:^3.0.1"
|
||||
"@csstools/css-parser-algorithms": "npm:^3.0.0"
|
||||
"@csstools/css-tokenizer": "npm:^3.0.0"
|
||||
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
|
||||
"@csstools/utilities": "npm:^2.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/ff0c0c44f5d17bc5e7ea287eff9c10ca334a84d086998a6b243a209f1795d32ba872357935f4176e5206b88dc8d2a204f452c13bc940540b7122e9e807511ac6
|
||||
checksum: 10c0/f0d3dd0677d381df54987d13ea63a59e911816d98a22eda7a5e55ca2908f52afc42fbffb73a8d25a18632b936dc38f6ada9f3e2dd7911cf775ce3718657420f4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@csstools/postcss-color-mix-function@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "@csstools/postcss-color-mix-function@npm:3.0.0"
|
||||
"@csstools/postcss-color-mix-function@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "@csstools/postcss-color-mix-function@npm:3.0.1"
|
||||
dependencies:
|
||||
"@csstools/css-color-parser": "npm:^3.0.0"
|
||||
"@csstools/css-color-parser": "npm:^3.0.1"
|
||||
"@csstools/css-parser-algorithms": "npm:^3.0.0"
|
||||
"@csstools/css-tokenizer": "npm:^3.0.0"
|
||||
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
|
||||
"@csstools/utilities": "npm:^2.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/120e96581834b2363df1fb653959dc243d93c01bcd70bf2e34418c20cd418a75f8b4e2e81da6955345619dcbb246e7d023f395521522bacb455583c15f61c677
|
||||
checksum: 10c0/ff76400d132c42d70f58b0908ab602b550b43720320288eb4ca1f185e7340c6f232b2a789ac94be255fc7bedc3c6125314d564297d23606fb2c91a1e2d79c40b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -1742,46 +1742,46 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@csstools/postcss-gamut-mapping@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "@csstools/postcss-gamut-mapping@npm:2.0.0"
|
||||
"@csstools/postcss-gamut-mapping@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "@csstools/postcss-gamut-mapping@npm:2.0.1"
|
||||
dependencies:
|
||||
"@csstools/css-color-parser": "npm:^3.0.0"
|
||||
"@csstools/css-color-parser": "npm:^3.0.1"
|
||||
"@csstools/css-parser-algorithms": "npm:^3.0.0"
|
||||
"@csstools/css-tokenizer": "npm:^3.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/be1d7f4c96f3bbcb69ed4ccc2ff406a884ae7129e6542ab6800782fbfe4e077159352409961f2da8054ec9fabbf6ed211288f1004c96632a1f6b10bef332d880
|
||||
checksum: 10c0/3415c420463dd481a3ddf5b104f15661492d9aa3613c109f9b7354b2664965a92036045e157945348cf2c06e075b89a0c0c4f49c8a00d41c827c5b61de297cd0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@csstools/postcss-gradients-interpolation-method@npm:^5.0.0":
|
||||
version: 5.0.0
|
||||
resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.0"
|
||||
"@csstools/postcss-gradients-interpolation-method@npm:^5.0.1":
|
||||
version: 5.0.1
|
||||
resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.1"
|
||||
dependencies:
|
||||
"@csstools/css-color-parser": "npm:^3.0.0"
|
||||
"@csstools/css-color-parser": "npm:^3.0.1"
|
||||
"@csstools/css-parser-algorithms": "npm:^3.0.0"
|
||||
"@csstools/css-tokenizer": "npm:^3.0.0"
|
||||
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
|
||||
"@csstools/utilities": "npm:^2.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/04e29fd877a499b9570665aea5b23cd70635b538dd903b9f9706ddd85a2d9c93445aea4b6b7dbcf8986ab58b45bb502ec5060044d945096d0af2eb6cebadb88e
|
||||
checksum: 10c0/a1c5d6bf308ff9e1972cb39030859cd135246f8f697e5d1278ddd8ed27ce53eb76b3e628acc64145290006f45140d0a4a65e5df71f131d3e6447f0e5d3301088
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@csstools/postcss-hwb-function@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "@csstools/postcss-hwb-function@npm:4.0.0"
|
||||
"@csstools/postcss-hwb-function@npm:^4.0.1":
|
||||
version: 4.0.1
|
||||
resolution: "@csstools/postcss-hwb-function@npm:4.0.1"
|
||||
dependencies:
|
||||
"@csstools/css-color-parser": "npm:^3.0.0"
|
||||
"@csstools/css-color-parser": "npm:^3.0.1"
|
||||
"@csstools/css-parser-algorithms": "npm:^3.0.0"
|
||||
"@csstools/css-tokenizer": "npm:^3.0.0"
|
||||
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
|
||||
"@csstools/utilities": "npm:^2.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/1aff69ca364417ac2b7ef1c737f88567f441bfd54d93d7b635e0ad605c61edcc2282bc0e2df73c83d1c6a24487e0acec34a4585d27d5f6027402aaea71696190
|
||||
checksum: 10c0/3247c3ab75d3cdb0ca80f7bb63d944ce933694ee9d7ee68aea11e727e883e0d35936b4a29e28700bda5eea2be26917a6c95c22a6b244e945cc558669f88b8a6e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -1819,9 +1819,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@csstools/postcss-light-dark-function@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "@csstools/postcss-light-dark-function@npm:2.0.0"
|
||||
"@csstools/postcss-light-dark-function@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "@csstools/postcss-light-dark-function@npm:2.0.1"
|
||||
dependencies:
|
||||
"@csstools/css-parser-algorithms": "npm:^3.0.0"
|
||||
"@csstools/css-tokenizer": "npm:^3.0.0"
|
||||
@ -1829,7 +1829,7 @@ __metadata:
|
||||
"@csstools/utilities": "npm:^2.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/d0eb1e04854c4ae425c6aff51ce9d0db90e9457aea3307d3ed916f500d2b5a3314a25d3487ea893e7b006a34c0d155462566d6066c8c54baec33eb104891c6db
|
||||
checksum: 10c0/4caf23781daa72f036a830b7fc2c07cde1122afd7bc7c6a291992b5264ea92c1fb22ec2ed684c5ce50e6e848f6d0ea39ef34a5679ea37a546b8db6eb555e3f80
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -1933,18 +1933,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@csstools/postcss-oklab-function@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "@csstools/postcss-oklab-function@npm:4.0.0"
|
||||
"@csstools/postcss-oklab-function@npm:^4.0.1":
|
||||
version: 4.0.1
|
||||
resolution: "@csstools/postcss-oklab-function@npm:4.0.1"
|
||||
dependencies:
|
||||
"@csstools/css-color-parser": "npm:^3.0.0"
|
||||
"@csstools/css-color-parser": "npm:^3.0.1"
|
||||
"@csstools/css-parser-algorithms": "npm:^3.0.0"
|
||||
"@csstools/css-tokenizer": "npm:^3.0.0"
|
||||
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
|
||||
"@csstools/utilities": "npm:^2.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/9e228049645e6a6baa77d6e7e35b3862f3e2e4836fbf2de43fa246d91f0efa36e7f18eae3f2b224c61e72628aaf14d4bff86c555fb06378d5e05e71dca92f9ec
|
||||
checksum: 10c0/b4450fb792c505936e1f9290e8df5420e98ccba78fa1badc9261ff99bebff8cc3b1f050e518728de791acadba08b5e8c213d97b479f551b72b4f8a5793625998
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -1959,18 +1959,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@csstools/postcss-relative-color-syntax@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.0"
|
||||
"@csstools/postcss-relative-color-syntax@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.1"
|
||||
dependencies:
|
||||
"@csstools/css-color-parser": "npm:^3.0.0"
|
||||
"@csstools/css-color-parser": "npm:^3.0.1"
|
||||
"@csstools/css-parser-algorithms": "npm:^3.0.0"
|
||||
"@csstools/css-tokenizer": "npm:^3.0.0"
|
||||
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
|
||||
"@csstools/utilities": "npm:^2.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/d7ae180d746bd9778d8b9f74f8d644f4c6a98b29659423d4ee2b48f461e90a3e30b44dcf44a181ade083b6c6d1b0346b7b3e62fe67fdeaba59a13f050a19c7d1
|
||||
checksum: 10c0/95a0001549b0fcae6add7db6264d16183734a9dd94e54e9b606b0dcefbd96540d8917707eef2525a5024e4078ef039acfa05c2c1b309fe444a7fc1f1c05d6594
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -1998,15 +1998,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@csstools/postcss-text-decoration-shorthand@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "@csstools/postcss-text-decoration-shorthand@npm:4.0.0"
|
||||
"@csstools/postcss-text-decoration-shorthand@npm:^4.0.1":
|
||||
version: 4.0.1
|
||||
resolution: "@csstools/postcss-text-decoration-shorthand@npm:4.0.1"
|
||||
dependencies:
|
||||
"@csstools/color-helpers": "npm:^4.2.1"
|
||||
"@csstools/color-helpers": "npm:^5.0.1"
|
||||
postcss-value-parser: "npm:^4.2.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/dedc98134648d5306e795e4176b2c39a578a237669562e7d934d0b0ac7411d37bab4065c8b0adfc075b57250daba62f045b86c79286b5f9be55502acef0d88c6
|
||||
checksum: 10c0/81950e248d6019c0066353895e0fa2a5c684b754c9af349218cb919534f5ebf79e5e9c7a10b3af1e9c56de2f246968de3b87a00d8c4102e5f88e0f05c04f9889
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -4132,8 +4132,8 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@types/webpack@npm:^4.41.33":
|
||||
version: 4.41.38
|
||||
resolution: "@types/webpack@npm:4.41.38"
|
||||
version: 4.41.39
|
||||
resolution: "@types/webpack@npm:4.41.39"
|
||||
dependencies:
|
||||
"@types/node": "npm:*"
|
||||
"@types/tapable": "npm:^1"
|
||||
@ -4141,7 +4141,7 @@ __metadata:
|
||||
"@types/webpack-sources": "npm:*"
|
||||
anymatch: "npm:^3.0.0"
|
||||
source-map: "npm:^0.6.0"
|
||||
checksum: 10c0/5a0a7465d45a0e7701a8c863e88c6cba7660b37e4aeab851c71baf505dbab2e178be1cac82488c2e7d0ea11fb703ceddb53476daec3ec9a004e2fc1554233483
|
||||
checksum: 10c0/740420d092abb80b70263b02609bde209801b060d8e6f3a399a129945cb09182c2ce63dc816908bfbcdb123b35dc4c4fb51367aac2b5974537694cac2631db21
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -5198,13 +5198,13 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"axios@npm:^1.4.0":
|
||||
version: 1.7.3
|
||||
resolution: "axios@npm:1.7.3"
|
||||
version: 1.7.4
|
||||
resolution: "axios@npm:1.7.4"
|
||||
dependencies:
|
||||
follow-redirects: "npm:^1.15.6"
|
||||
form-data: "npm:^4.0.0"
|
||||
proxy-from-env: "npm:^1.1.0"
|
||||
checksum: 10c0/a18cbe559203efa05fb1fec2d1898e23bf6329bd2575784ee32aa11b5bbe1d54b9f472c49a261294125519cf62aa4fe5ef6e647bb7482eafc15bffe15ab314ce
|
||||
checksum: 10c0/5ea1a93140ca1d49db25ef8e1bd8cfc59da6f9220159a944168860ad15a2743ea21c5df2967795acb15cbe81362f5b157fdebbea39d53117ca27658bab9f7f17
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -5701,17 +5701,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"browserslist@npm:^4.0.0, browserslist@npm:^4.23.0, browserslist@npm:^4.23.1":
|
||||
version: 4.23.1
|
||||
resolution: "browserslist@npm:4.23.1"
|
||||
"browserslist@npm:^4.0.0, browserslist@npm:^4.23.0, browserslist@npm:^4.23.1, browserslist@npm:^4.23.3":
|
||||
version: 4.23.3
|
||||
resolution: "browserslist@npm:4.23.3"
|
||||
dependencies:
|
||||
caniuse-lite: "npm:^1.0.30001629"
|
||||
electron-to-chromium: "npm:^1.4.796"
|
||||
node-releases: "npm:^2.0.14"
|
||||
update-browserslist-db: "npm:^1.0.16"
|
||||
caniuse-lite: "npm:^1.0.30001646"
|
||||
electron-to-chromium: "npm:^1.5.4"
|
||||
node-releases: "npm:^2.0.18"
|
||||
update-browserslist-db: "npm:^1.1.0"
|
||||
bin:
|
||||
browserslist: cli.js
|
||||
checksum: 10c0/eb47c7ab9d60db25ce2faca70efeb278faa7282a2f62b7f2fa2f92e5f5251cf65144244566c86559419ff4f6d78f59ea50e39911321ad91f3b27788901f1f5e9
|
||||
checksum: 10c0/3063bfdf812815346447f4796c8f04601bf5d62003374305fd323c2a463e42776475bcc5309264e39bcf9a8605851e53560695991a623be988138b3ff8c66642
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -5913,10 +5913,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001599, caniuse-lite@npm:^1.0.30001629":
|
||||
version: 1.0.30001636
|
||||
resolution: "caniuse-lite@npm:1.0.30001636"
|
||||
checksum: 10c0/e5f965b4da7bae1531fd9f93477d015729ff9e3fa12670ead39a9e6cdc4c43e62c272d47857c5cc332e7b02d697cb3f2f965a1030870ac7476da60c2fc81ee94
|
||||
"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001599, caniuse-lite@npm:^1.0.30001646":
|
||||
version: 1.0.30001651
|
||||
resolution: "caniuse-lite@npm:1.0.30001651"
|
||||
checksum: 10c0/7821278952a6dbd17358e5d08083d258f092e2a530f5bc1840657cb140fbbc5ec44293bc888258c44a18a9570cde149ed05819ac8320b9710cf22f699891e6ad
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -6781,43 +6781,43 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cssnano-preset-default@npm:^7.0.4":
|
||||
version: 7.0.4
|
||||
resolution: "cssnano-preset-default@npm:7.0.4"
|
||||
"cssnano-preset-default@npm:^7.0.5":
|
||||
version: 7.0.5
|
||||
resolution: "cssnano-preset-default@npm:7.0.5"
|
||||
dependencies:
|
||||
browserslist: "npm:^4.23.1"
|
||||
browserslist: "npm:^4.23.3"
|
||||
css-declaration-sorter: "npm:^7.2.0"
|
||||
cssnano-utils: "npm:^5.0.0"
|
||||
postcss-calc: "npm:^10.0.0"
|
||||
postcss-colormin: "npm:^7.0.1"
|
||||
postcss-convert-values: "npm:^7.0.2"
|
||||
postcss-discard-comments: "npm:^7.0.1"
|
||||
postcss-discard-duplicates: "npm:^7.0.0"
|
||||
postcss-calc: "npm:^10.0.1"
|
||||
postcss-colormin: "npm:^7.0.2"
|
||||
postcss-convert-values: "npm:^7.0.3"
|
||||
postcss-discard-comments: "npm:^7.0.2"
|
||||
postcss-discard-duplicates: "npm:^7.0.1"
|
||||
postcss-discard-empty: "npm:^7.0.0"
|
||||
postcss-discard-overridden: "npm:^7.0.0"
|
||||
postcss-merge-longhand: "npm:^7.0.2"
|
||||
postcss-merge-rules: "npm:^7.0.2"
|
||||
postcss-merge-longhand: "npm:^7.0.3"
|
||||
postcss-merge-rules: "npm:^7.0.3"
|
||||
postcss-minify-font-values: "npm:^7.0.0"
|
||||
postcss-minify-gradients: "npm:^7.0.0"
|
||||
postcss-minify-params: "npm:^7.0.1"
|
||||
postcss-minify-selectors: "npm:^7.0.2"
|
||||
postcss-minify-params: "npm:^7.0.2"
|
||||
postcss-minify-selectors: "npm:^7.0.3"
|
||||
postcss-normalize-charset: "npm:^7.0.0"
|
||||
postcss-normalize-display-values: "npm:^7.0.0"
|
||||
postcss-normalize-positions: "npm:^7.0.0"
|
||||
postcss-normalize-repeat-style: "npm:^7.0.0"
|
||||
postcss-normalize-string: "npm:^7.0.0"
|
||||
postcss-normalize-timing-functions: "npm:^7.0.0"
|
||||
postcss-normalize-unicode: "npm:^7.0.1"
|
||||
postcss-normalize-unicode: "npm:^7.0.2"
|
||||
postcss-normalize-url: "npm:^7.0.0"
|
||||
postcss-normalize-whitespace: "npm:^7.0.0"
|
||||
postcss-ordered-values: "npm:^7.0.1"
|
||||
postcss-reduce-initial: "npm:^7.0.1"
|
||||
postcss-reduce-initial: "npm:^7.0.2"
|
||||
postcss-reduce-transforms: "npm:^7.0.0"
|
||||
postcss-svgo: "npm:^7.0.1"
|
||||
postcss-unique-selectors: "npm:^7.0.1"
|
||||
postcss-unique-selectors: "npm:^7.0.2"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/0083821e778bdf7b8aa9589408a01a717be730f73584e7b81756a6fcf87af05b8f17342025e666572a8d573cc30783f2d817b0f7ad63670398bc3135b017ccad
|
||||
checksum: 10c0/ffa7c6fa16c6ad98b7732fc563de74d492e6ad6d243a9f00431c0cbdbc576bcd49226d2695d881465d32dea0a2916add40ac10e7560dd7b5de9fd0fa25ee081b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -6831,14 +6831,14 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"cssnano@npm:^7.0.0":
|
||||
version: 7.0.4
|
||||
resolution: "cssnano@npm:7.0.4"
|
||||
version: 7.0.5
|
||||
resolution: "cssnano@npm:7.0.5"
|
||||
dependencies:
|
||||
cssnano-preset-default: "npm:^7.0.4"
|
||||
cssnano-preset-default: "npm:^7.0.5"
|
||||
lilconfig: "npm:^3.1.2"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/3939a0b37b11cb4bae92f7916517c7ba21257551f92517b49a640d5df32e855fb7e73321f4be44d2c2de578309c05d711cdcb1976e95607b1b7f92bd4cbd1350
|
||||
checksum: 10c0/cb43ed964787dca33efb44d8f4fea8a49c495db44d1d12940493f0dd5d63db78e01c5b140fe42b480b332733602a25f4c85186d00977eb3070b29f7422761985
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -7479,10 +7479,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"electron-to-chromium@npm:^1.4.796":
|
||||
version: 1.4.806
|
||||
resolution: "electron-to-chromium@npm:1.4.806"
|
||||
checksum: 10c0/44f925ba64bb623d0482cd2f14fcfb27017cec1f11ee642e0d49cb128cd714ba5e074c2cd8756dfc18010aa66d3c64039cdea891905f7c17160a8963db574fab
|
||||
"electron-to-chromium@npm:^1.5.4":
|
||||
version: 1.5.7
|
||||
resolution: "electron-to-chromium@npm:1.5.7"
|
||||
checksum: 10c0/be4460bbe3d2186a16d53a03da67fde6fd06ad41943553ce517a45d52e03424732a982f75528e8a2d5fb042d6afde64186aa482caec0fb925daa5a74cf5ef060
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -12402,10 +12402,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"node-releases@npm:^2.0.14":
|
||||
version: 2.0.14
|
||||
resolution: "node-releases@npm:2.0.14"
|
||||
checksum: 10c0/199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9
|
||||
"node-releases@npm:^2.0.18":
|
||||
version: 2.0.18
|
||||
resolution: "node-releases@npm:2.0.18"
|
||||
checksum: 10c0/786ac9db9d7226339e1dc84bbb42007cb054a346bd9257e6aa154d294f01bc6a6cddb1348fa099f079be6580acbb470e3c048effd5f719325abd0179e566fd27
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -13347,15 +13347,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-calc@npm:^10.0.0":
|
||||
version: 10.0.0
|
||||
resolution: "postcss-calc@npm:10.0.0"
|
||||
"postcss-calc@npm:^10.0.1":
|
||||
version: 10.0.1
|
||||
resolution: "postcss-calc@npm:10.0.1"
|
||||
dependencies:
|
||||
postcss-selector-parser: "npm:^6.0.16"
|
||||
postcss-selector-parser: "npm:^6.1.1"
|
||||
postcss-value-parser: "npm:^4.2.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.38
|
||||
checksum: 10c0/d4d529f2f71b49f17441eed74a7564ccd2779c72ed8648d4bb2530261a27c0ca01fe6a07260e7bf57e55f46dd68dea07e52fd1a6b538db7bc13015124be258a5
|
||||
checksum: 10c0/5e38cc6f082f87e82067497b41684410784223ecd3701bf52242ea9f2f467f1fad6b5a561f8aa3be307d89435b4060f58aeb27c4064003586daf653cc4d91fef
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -13370,18 +13370,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-color-functional-notation@npm:^7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "postcss-color-functional-notation@npm:7.0.0"
|
||||
"postcss-color-functional-notation@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "postcss-color-functional-notation@npm:7.0.1"
|
||||
dependencies:
|
||||
"@csstools/css-color-parser": "npm:^3.0.0"
|
||||
"@csstools/css-color-parser": "npm:^3.0.1"
|
||||
"@csstools/css-parser-algorithms": "npm:^3.0.0"
|
||||
"@csstools/css-tokenizer": "npm:^3.0.0"
|
||||
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
|
||||
"@csstools/utilities": "npm:^2.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/6afe7b681a16783a27fa9600db348f995dfdbc9c945f6cdcec94ee2419e09cfd1c6e533264b830207f130e19ae18ff689ad9b48bced338f27f898eaecd61f844
|
||||
checksum: 10c0/0cdfae4d85cb34425c8363b699b5da6f0c8cc43e7ce3b7fdd1fd39429ee81a4af75f973cd5c8293b1072688064da17a0a633827f23667e8cc0ff16217f0004eb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -13409,29 +13409,29 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-colormin@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "postcss-colormin@npm:7.0.1"
|
||||
"postcss-colormin@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "postcss-colormin@npm:7.0.2"
|
||||
dependencies:
|
||||
browserslist: "npm:^4.23.1"
|
||||
browserslist: "npm:^4.23.3"
|
||||
caniuse-api: "npm:^3.0.0"
|
||||
colord: "npm:^2.9.3"
|
||||
postcss-value-parser: "npm:^4.2.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/e01e9e129ce39320cf10bb09ee2a3ab5b44b77805d3f7827eea07297644838b85c33b78996eeae0a1aba327ffd72a6ab1d24949ebc831523e310e916d5500371
|
||||
checksum: 10c0/76d09fb7e0218698e622a7c2cfc9087985f48f3a7e44f2655d5eefac4ae9c04198ae9d408dc7ace15d3aa5bde80e7031e462b0cb9b5bd50cfa76bbb1503c755b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-convert-values@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "postcss-convert-values@npm:7.0.2"
|
||||
"postcss-convert-values@npm:^7.0.3":
|
||||
version: 7.0.3
|
||||
resolution: "postcss-convert-values@npm:7.0.3"
|
||||
dependencies:
|
||||
browserslist: "npm:^4.23.1"
|
||||
browserslist: "npm:^4.23.3"
|
||||
postcss-value-parser: "npm:^4.2.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/beb59faf6aae97e6d3c233c5e6ed06cc60d65c49eec576036e3d0da1a831a1e827e3d41f5e81d016440b4f0bdf1406268ae069c4d5b38a6667b310c3da079d22
|
||||
checksum: 10c0/dbb6278bd8d8b11e448933d823426c883bff3f6abeaa23c7530cc4668b9da6f714e073840f280273f8a14022c3a99eb461ec732f7539e062b32f5281e1be6526
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -13489,23 +13489,23 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-discard-comments@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "postcss-discard-comments@npm:7.0.1"
|
||||
"postcss-discard-comments@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "postcss-discard-comments@npm:7.0.2"
|
||||
dependencies:
|
||||
postcss-selector-parser: "npm:^6.1.0"
|
||||
postcss-selector-parser: "npm:^6.1.1"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/64de3fced7e0e49dfea6aede8a5ca495b81dcd01c3c47734a5fbc86a3cb2b1ae39e1958e34e9bea64ecabd5fb4d8c287ec1d6189cf175c2434c6b6582da79948
|
||||
checksum: 10c0/c01632e643b6ec1f61ad59efe06a9e8dfc7fcedeb1551ae48fc33fa801353f6222e31954286cd97171c694f34c2b4c7f7a2213fd0f913e37c34d0353258ed234
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-discard-duplicates@npm:^7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "postcss-discard-duplicates@npm:7.0.0"
|
||||
"postcss-discard-duplicates@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "postcss-discard-duplicates@npm:7.0.1"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/37d568dc18d47b8b9f0fd6d5115b1faf96c2bf429fc4586508a773533479e18627d6260cad6a3ca7d3bfc2f220fd9448410aee40e07f2ec6c6f96bbe3595dbc8
|
||||
checksum: 10c0/5cc2cac249f68004864865ea2ec38b7d5e28184f33e904e531ff57b533aacb73ec49e4a7d83219184001b8d167e5bcabc1673248134468d7ebaa0bfb9ff78f0a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -13592,18 +13592,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-lab-function@npm:^7.0.0":
|
||||
version: 7.0.0
|
||||
resolution: "postcss-lab-function@npm:7.0.0"
|
||||
"postcss-lab-function@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "postcss-lab-function@npm:7.0.1"
|
||||
dependencies:
|
||||
"@csstools/css-color-parser": "npm:^3.0.0"
|
||||
"@csstools/css-color-parser": "npm:^3.0.1"
|
||||
"@csstools/css-parser-algorithms": "npm:^3.0.0"
|
||||
"@csstools/css-tokenizer": "npm:^3.0.0"
|
||||
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
|
||||
"@csstools/utilities": "npm:^2.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/f3647bcdd8d6140631b97276ecf51f40df2c7564610262a20c608c37c8ab79bf6e02888419dc657afc4720a7378e3ad19f4fdf811a69363424160d548ac68daf
|
||||
checksum: 10c0/8a6f3f465911c5c608650e3ebec01097d274109eea0fceb925f1ca52213c67a6496570ff2ba9af0a6c2153e208ef1d10cc43ad81f38405f5d39639680f7150a9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -13641,29 +13641,29 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-merge-longhand@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "postcss-merge-longhand@npm:7.0.2"
|
||||
"postcss-merge-longhand@npm:^7.0.3":
|
||||
version: 7.0.3
|
||||
resolution: "postcss-merge-longhand@npm:7.0.3"
|
||||
dependencies:
|
||||
postcss-value-parser: "npm:^4.2.0"
|
||||
stylehacks: "npm:^7.0.2"
|
||||
stylehacks: "npm:^7.0.3"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/71d22418e5850e134bfcf2038acb1c91eeb48d9b6f9e4c0252fee757e11dc4ae351097a855c327fbc38dc7658fa6edc7cc7f458c08bb4044b82c6005dc565fcb
|
||||
checksum: 10c0/b968c3d16f3edc6075b20219a1165c089dc454a6a42951dcdfc94adb932fb96ef7bcd465c6cd21b0e5b55ac08921355ddbbbc7cdcf87a345e4bef8b3cdd2e7e9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-merge-rules@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "postcss-merge-rules@npm:7.0.2"
|
||||
"postcss-merge-rules@npm:^7.0.3":
|
||||
version: 7.0.3
|
||||
resolution: "postcss-merge-rules@npm:7.0.3"
|
||||
dependencies:
|
||||
browserslist: "npm:^4.23.1"
|
||||
browserslist: "npm:^4.23.3"
|
||||
caniuse-api: "npm:^3.0.0"
|
||||
cssnano-utils: "npm:^5.0.0"
|
||||
postcss-selector-parser: "npm:^6.1.0"
|
||||
postcss-selector-parser: "npm:^6.1.1"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/fbad20382ca45f1b3b5ff704c075f899cc9ba8418ae6effbdeb9e7c1f9b5c24996d1941ad36cd0936d60cbf127a72f235b2cbb0c44d9239a8a61042406d95b4a
|
||||
checksum: 10c0/3cd20484ab6d15c62eded408248d5eeaba52a573935943f933865680e070a0e75b3a7447802c575bc86e1fae667cf51d9d5766537835d9b8c090337b5adf928e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -13691,28 +13691,28 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-minify-params@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "postcss-minify-params@npm:7.0.1"
|
||||
"postcss-minify-params@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "postcss-minify-params@npm:7.0.2"
|
||||
dependencies:
|
||||
browserslist: "npm:^4.23.1"
|
||||
browserslist: "npm:^4.23.3"
|
||||
cssnano-utils: "npm:^5.0.0"
|
||||
postcss-value-parser: "npm:^4.2.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/84e1c4de5af47178c1f48e10ce16341560f32bb2becf5ec9b014103f6c706174bc70885e2e13ced4de9b4f1959fb970193261cbd4751c8b87d5159e859e8c5ec
|
||||
checksum: 10c0/0e041f70554bae9d4a66c8ab2f2f3ed8bf73862c9d5ff9972ac7f1a596badd1544f093fa2362dd33e96c038af9e10287cdbfec9f480c49bffdcbaca9fdcb1e4e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-minify-selectors@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "postcss-minify-selectors@npm:7.0.2"
|
||||
"postcss-minify-selectors@npm:^7.0.3":
|
||||
version: 7.0.3
|
||||
resolution: "postcss-minify-selectors@npm:7.0.3"
|
||||
dependencies:
|
||||
cssesc: "npm:^3.0.0"
|
||||
postcss-selector-parser: "npm:^6.1.0"
|
||||
postcss-selector-parser: "npm:^6.1.1"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/87e0c21a0135b6c61b58d62c4c1e0cbd3cfb516ff8105db714c6a33a5edc477846ae220399d368e4ef6518529c711aa2dee9ff49e9befd93e83d5c939f3084a1
|
||||
checksum: 10c0/5211f63a1672f646a1bab57bd8eac0816d42adacb5e286ad5e6e342a795bb0d086bd6044a1b338311ca28f33f2c1833165ee611eaa671287379821ba3c5d68ad
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -13837,15 +13837,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-normalize-unicode@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "postcss-normalize-unicode@npm:7.0.1"
|
||||
"postcss-normalize-unicode@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "postcss-normalize-unicode@npm:7.0.2"
|
||||
dependencies:
|
||||
browserslist: "npm:^4.23.1"
|
||||
browserslist: "npm:^4.23.3"
|
||||
postcss-value-parser: "npm:^4.2.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/fcabac738765f608cb211ac01a19f9a7d784f99d223ef6f31352f37b9bcf008e0ca7849414c9e77116be8660d78b01dba6fc4a87cee7c9a977d3c2741d6a222d
|
||||
checksum: 10c0/0df1aac932cc2340715178fd024e0f6d872ea5a4bee1bc8357317a75a7b2c904d885f754cc162af001aa2a9ded7c54fac7cbcd701e21e995c1ace92dc08f2b9d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -13924,22 +13924,22 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"postcss-preset-env@npm:^10.0.0":
|
||||
version: 10.0.0
|
||||
resolution: "postcss-preset-env@npm:10.0.0"
|
||||
version: 10.0.1
|
||||
resolution: "postcss-preset-env@npm:10.0.1"
|
||||
dependencies:
|
||||
"@csstools/postcss-cascade-layers": "npm:^5.0.0"
|
||||
"@csstools/postcss-color-function": "npm:^4.0.0"
|
||||
"@csstools/postcss-color-mix-function": "npm:^3.0.0"
|
||||
"@csstools/postcss-color-function": "npm:^4.0.1"
|
||||
"@csstools/postcss-color-mix-function": "npm:^3.0.1"
|
||||
"@csstools/postcss-content-alt-text": "npm:^2.0.0"
|
||||
"@csstools/postcss-exponential-functions": "npm:^2.0.0"
|
||||
"@csstools/postcss-font-format-keywords": "npm:^4.0.0"
|
||||
"@csstools/postcss-gamut-mapping": "npm:^2.0.0"
|
||||
"@csstools/postcss-gradients-interpolation-method": "npm:^5.0.0"
|
||||
"@csstools/postcss-hwb-function": "npm:^4.0.0"
|
||||
"@csstools/postcss-gamut-mapping": "npm:^2.0.1"
|
||||
"@csstools/postcss-gradients-interpolation-method": "npm:^5.0.1"
|
||||
"@csstools/postcss-hwb-function": "npm:^4.0.1"
|
||||
"@csstools/postcss-ic-unit": "npm:^4.0.0"
|
||||
"@csstools/postcss-initial": "npm:^2.0.0"
|
||||
"@csstools/postcss-is-pseudo-class": "npm:^5.0.0"
|
||||
"@csstools/postcss-light-dark-function": "npm:^2.0.0"
|
||||
"@csstools/postcss-light-dark-function": "npm:^2.0.1"
|
||||
"@csstools/postcss-logical-float-and-clear": "npm:^3.0.0"
|
||||
"@csstools/postcss-logical-overflow": "npm:^2.0.0"
|
||||
"@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0"
|
||||
@ -13949,12 +13949,12 @@ __metadata:
|
||||
"@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.0"
|
||||
"@csstools/postcss-nested-calc": "npm:^4.0.0"
|
||||
"@csstools/postcss-normalize-display-values": "npm:^4.0.0"
|
||||
"@csstools/postcss-oklab-function": "npm:^4.0.0"
|
||||
"@csstools/postcss-oklab-function": "npm:^4.0.1"
|
||||
"@csstools/postcss-progressive-custom-properties": "npm:^4.0.0"
|
||||
"@csstools/postcss-relative-color-syntax": "npm:^3.0.0"
|
||||
"@csstools/postcss-relative-color-syntax": "npm:^3.0.1"
|
||||
"@csstools/postcss-scope-pseudo-class": "npm:^4.0.0"
|
||||
"@csstools/postcss-stepped-value-functions": "npm:^4.0.0"
|
||||
"@csstools/postcss-text-decoration-shorthand": "npm:^4.0.0"
|
||||
"@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1"
|
||||
"@csstools/postcss-trigonometric-functions": "npm:^4.0.0"
|
||||
"@csstools/postcss-unset-value": "npm:^4.0.0"
|
||||
autoprefixer: "npm:^10.4.19"
|
||||
@ -13965,7 +13965,7 @@ __metadata:
|
||||
cssdb: "npm:^8.1.0"
|
||||
postcss-attribute-case-insensitive: "npm:^7.0.0"
|
||||
postcss-clamp: "npm:^4.1.0"
|
||||
postcss-color-functional-notation: "npm:^7.0.0"
|
||||
postcss-color-functional-notation: "npm:^7.0.1"
|
||||
postcss-color-hex-alpha: "npm:^10.0.0"
|
||||
postcss-color-rebeccapurple: "npm:^10.0.0"
|
||||
postcss-custom-media: "npm:^11.0.0"
|
||||
@ -13978,7 +13978,7 @@ __metadata:
|
||||
postcss-font-variant: "npm:^5.0.0"
|
||||
postcss-gap-properties: "npm:^6.0.0"
|
||||
postcss-image-set-function: "npm:^7.0.0"
|
||||
postcss-lab-function: "npm:^7.0.0"
|
||||
postcss-lab-function: "npm:^7.0.1"
|
||||
postcss-logical: "npm:^8.0.0"
|
||||
postcss-nesting: "npm:^13.0.0"
|
||||
postcss-opacity-percentage: "npm:^2.0.0"
|
||||
@ -13990,7 +13990,7 @@ __metadata:
|
||||
postcss-selector-not: "npm:^8.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
checksum: 10c0/0b61c44233ee7fd17e32912ce028edc19998f30183f1ff2186523c4f9eac4a2a36513af31670e13ceb05f2146c4549a0b870ba0de0e3a08e77a9d57d8de72654
|
||||
checksum: 10c0/5849915d040413f68ab71b3489daaa5b6687b4d4710da47a0d1420df0890858f0b53c9ec6755d872dbe38a2695ab12584be654456e3d6ce311b88927209c02b2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -14005,15 +14005,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-reduce-initial@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "postcss-reduce-initial@npm:7.0.1"
|
||||
"postcss-reduce-initial@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "postcss-reduce-initial@npm:7.0.2"
|
||||
dependencies:
|
||||
browserslist: "npm:^4.23.1"
|
||||
browserslist: "npm:^4.23.3"
|
||||
caniuse-api: "npm:^3.0.0"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/3e7c6c1d0cc4ace38f44971f02d0dd98131af678cf114aa05cfa0c066420019d5329c221ef8507644b8a79d0e76534303f747c97860ac777fe17f57110edefe1
|
||||
checksum: 10c0/1e6fafaf5fac52b351c8de156ed62e4e1f48da7eb07f9ce90da54b45dca61da9af1e954b8a343271cb3e4ec99e0c5f18d7f9f96da0ca144511fca04498fac78c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -14073,7 +14073,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.16, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.0, postcss-selector-parser@npm:^6.1.1":
|
||||
"postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.0, postcss-selector-parser@npm:^6.1.1":
|
||||
version: 6.1.1
|
||||
resolution: "postcss-selector-parser@npm:6.1.1"
|
||||
dependencies:
|
||||
@ -14095,14 +14095,14 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"postcss-unique-selectors@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "postcss-unique-selectors@npm:7.0.1"
|
||||
"postcss-unique-selectors@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "postcss-unique-selectors@npm:7.0.2"
|
||||
dependencies:
|
||||
postcss-selector-parser: "npm:^6.1.0"
|
||||
postcss-selector-parser: "npm:^6.1.1"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/6352d71ce2f65265f545831c2ce3686bd71961d08a2247c545d717d93d23b1eb08bb986efc11194d31970eea4cb42207b9aa9a3f4666d75492a6cbf1493cf466
|
||||
checksum: 10c0/cc54c57cd1c5a6e3e166ec63cc036d9e2df80b05e508d9ce754ca4193bf8c1bfcc16b3c6f0d81b8352a3282201d249b90bb87abacfcfb9065c9e3705ea5d110e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -14114,13 +14114,13 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"postcss@npm:^8.2.15, postcss@npm:^8.4.24, postcss@npm:^8.4.40":
|
||||
version: 8.4.40
|
||||
resolution: "postcss@npm:8.4.40"
|
||||
version: 8.4.41
|
||||
resolution: "postcss@npm:8.4.41"
|
||||
dependencies:
|
||||
nanoid: "npm:^3.3.7"
|
||||
picocolors: "npm:^1.0.1"
|
||||
source-map-js: "npm:^1.2.0"
|
||||
checksum: 10c0/65ed67573e5443beaeb582282ff27a6be7c7fe3b4d9fa15761157616f2b97510cb1c335023c26220b005909f007337026d6e3ff092f25010b484ad484e80ea7f
|
||||
checksum: 10c0/c1828fc59e7ec1a3bf52b3a42f615dba53c67960ed82a81df6441b485fe43c20aba7f4e7c55425762fd99c594ecabbaaba8cf5b30fd79dfec5b52a9f63a2d690
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -16627,15 +16627,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"stylehacks@npm:^7.0.2":
|
||||
version: 7.0.2
|
||||
resolution: "stylehacks@npm:7.0.2"
|
||||
"stylehacks@npm:^7.0.3":
|
||||
version: 7.0.3
|
||||
resolution: "stylehacks@npm:7.0.3"
|
||||
dependencies:
|
||||
browserslist: "npm:^4.23.1"
|
||||
postcss-selector-parser: "npm:^6.1.0"
|
||||
browserslist: "npm:^4.23.3"
|
||||
postcss-selector-parser: "npm:^6.1.1"
|
||||
peerDependencies:
|
||||
postcss: ^8.4.31
|
||||
checksum: 10c0/552299e869ac430e1076c025ace6c80bdfd5b672632435625eb1bd45ff5611aad7f3ee810e72edc04dc0fc3761e08dec40d27b72c50b95690eea2de43238b8d8
|
||||
checksum: 10c0/5030334b06ef705b5700444dab120b540b09159e935e75b60f25bd56db1d85f0d11755f0b0f64ce3f12c5a72ff1b6f57fea49c26d18eb0de2334d6a143b94f8d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -17576,9 +17576,9 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"update-browserslist-db@npm:^1.0.16":
|
||||
version: 1.0.16
|
||||
resolution: "update-browserslist-db@npm:1.0.16"
|
||||
"update-browserslist-db@npm:^1.1.0":
|
||||
version: 1.1.0
|
||||
resolution: "update-browserslist-db@npm:1.1.0"
|
||||
dependencies:
|
||||
escalade: "npm:^3.1.2"
|
||||
picocolors: "npm:^1.0.1"
|
||||
@ -17586,7 +17586,7 @@ __metadata:
|
||||
browserslist: ">= 4.21.0"
|
||||
bin:
|
||||
update-browserslist-db: cli.js
|
||||
checksum: 10c0/5995399fc202adbb51567e4810e146cdf7af630a92cc969365a099150cb00597e425cc14987ca7080b09a4d0cfd2a3de53fbe72eebff171aed7f9bb81f9bf405
|
||||
checksum: 10c0/a7452de47785842736fb71547651c5bbe5b4dc1e3722ccf48a704b7b34e4dcf633991eaa8e4a6a517ffb738b3252eede3773bef673ef9021baa26b056d63a5b9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -18293,9 +18293,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"wicg-inert@npm:^3.1.2":
|
||||
version: 3.1.2
|
||||
resolution: "wicg-inert@npm:3.1.2"
|
||||
checksum: 10c0/5b20eaedcb30f1093fb6afd0480a059e40814da56c6052469c6fe95dd2d288b89c55ed1bdbfae4db70fd5ec8148dda8dd3b671a27a26870c8f77626b13cedd1b
|
||||
version: 3.1.3
|
||||
resolution: "wicg-inert@npm:3.1.3"
|
||||
checksum: 10c0/160b981584e40d3a568af16a93b70dca847d9fce6d6704b40c60a9a1435f77406cc1abc56aa1bb5a63669c6cb819f09d51d7f27c16f3829cb86052e3fd27f2b0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user