mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-17 04:55:42 +09:00
feat(enforcement): record decisions and send notices (#3492)
This commit is contained in:
1 parent
da1842ecab
commit
f5c30fdf8f
383 files changed
+29692
-4139
No files matched your search
@@ -46,6 +46,8 @@ export const AdminACLs = {
|
||||
BULK_UPDATE_USER_FLAGS: 'bulk:update:user_flags',
|
||||
DISCOVERY_REMOVE: 'discovery:remove',
|
||||
DISCOVERY_REVIEW: 'discovery:review',
|
||||
ENFORCEMENT_ANNOTATE: 'enforcement:annotate',
|
||||
ENFORCEMENT_VIEW: 'enforcement:view',
|
||||
GATEWAY_MEMORY_STATS: 'gateway:memory_stats',
|
||||
GATEWAY_RELOAD_ALL: 'gateway:reload_all',
|
||||
GIFT_CODES_GENERATE: 'gift_codes:generate',
|
||||
|
||||
@@ -67,6 +67,11 @@ export const APIErrorCodes = {
|
||||
EMAIL_UNAVAILABLE_ON_INSTANCE: 'EMAIL_UNAVAILABLE_ON_INSTANCE',
|
||||
EMAIL_VERIFICATION_REQUIRED: 'EMAIL_VERIFICATION_REQUIRED',
|
||||
DIRECT_MESSAGE_EMAIL_VERIFICATION_REQUIRED: 'DIRECT_MESSAGE_EMAIL_VERIFICATION_REQUIRED',
|
||||
ENFORCEMENT_ACCOUNT_CLOSED: 'ENFORCEMENT_ACCOUNT_CLOSED',
|
||||
ENFORCEMENT_DECISION_ENDED: 'ENFORCEMENT_DECISION_ENDED',
|
||||
ENFORCEMENT_DECISION_OWNS_STATE: 'ENFORCEMENT_DECISION_OWNS_STATE',
|
||||
ENFORCEMENT_DECISION_REPLACED: 'ENFORCEMENT_DECISION_REPLACED',
|
||||
ENFORCEMENT_DELETION_STARTED: 'ENFORCEMENT_DELETION_STARTED',
|
||||
FOLLOW_TARGET_CONTENT_WARNING_REQUIRED: 'FOLLOW_TARGET_CONTENT_WARNING_REQUIRED',
|
||||
FOLLOW_TARGET_NOT_AGE_RESTRICTED: 'FOLLOW_TARGET_NOT_AGE_RESTRICTED',
|
||||
FRIEND_REQUEST_EMAIL_VERIFICATION_REQUIRED: 'FRIEND_REQUEST_EMAIL_VERIFICATION_REQUIRED',
|
||||
@@ -144,6 +149,7 @@ export const APIErrorCodes = {
|
||||
GLOBAL_IP_BANNED: 'GLOBAL_IP_BANNED',
|
||||
GLOBAL_IP_TEMPORARILY_BANNED: 'GLOBAL_IP_TEMPORARILY_BANNED',
|
||||
IP_BAN_DECLINED: 'IP_BAN_DECLINED',
|
||||
IP_BAN_LINKED_TO_DECISION: 'IP_BAN_LINKED_TO_DECISION',
|
||||
MAX_APPLICATIONS: 'MAX_APPLICATIONS',
|
||||
MAX_BOOKMARKS: 'MAX_BOOKMARKS',
|
||||
MAX_ACTIVE_THREADS: 'MAX_ACTIVE_THREADS',
|
||||
@@ -258,6 +264,7 @@ export const APIErrorCodes = {
|
||||
UNCLAIMED_ACCOUNT_CANNOT_SUBMIT_REPORTS: 'UNCLAIMED_ACCOUNT_CANNOT_SUBMIT_REPORTS',
|
||||
UNKNOWN_CHANNEL: 'UNKNOWN_CHANNEL',
|
||||
UNKNOWN_EMOJI: 'UNKNOWN_EMOJI',
|
||||
UNKNOWN_ENFORCEMENT_DECISION: 'UNKNOWN_ENFORCEMENT_DECISION',
|
||||
UNKNOWN_FAVORITE_MEME: 'UNKNOWN_FAVORITE_MEME',
|
||||
UNKNOWN_FORUM_TAG: 'UNKNOWN_FORUM_TAG',
|
||||
UNKNOWN_GIFT_CODE: 'UNKNOWN_GIFT_CODE',
|
||||
|
||||
@@ -27,4 +27,13 @@ export const DeletionReasons = {
|
||||
HATE_SPEECH_OR_EXTREMIST_CONTENT: 20,
|
||||
MALICIOUS_LINKS_OR_MALWARE: 21,
|
||||
IMPERSONATION_OR_FAKE_IDENTITY: 22,
|
||||
THREATS_OR_VIOLENT_SPEECH: 23,
|
||||
VIOLENT_EXTREMISM: 24,
|
||||
SELF_HARM_PROMOTION: 25,
|
||||
SEXUAL_CONTENT_PLACEMENT: 26,
|
||||
ILLEGAL_GOODS_OR_ACTIVITY: 27,
|
||||
HARMFUL_DECEPTION: 28,
|
||||
REPORTING_ABUSE: 29,
|
||||
UNDERAGE_ACCOUNT: 30,
|
||||
COPYRIGHT: 31,
|
||||
} as const;
|
||||
@@ -0,0 +1,170 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {DeletionReasons} from '@fluxer/constants/src/Core';
|
||||
import {
|
||||
ACCOUNT_DELETION_MIN_DAYS,
|
||||
ENFORCEMENT_APPEAL_WINDOW_DAYS,
|
||||
ENFORCEMENT_CLOSURE_MIN_DAYS,
|
||||
ENFORCEMENT_REASONS,
|
||||
ENFORCEMENT_RULES,
|
||||
type EnforcementKind,
|
||||
type EnforcementLimit,
|
||||
type EnforcementReasonCode,
|
||||
isEnforcementKindAllowed,
|
||||
isEnforcementLimitAllowed,
|
||||
} from '@fluxer/constants/src/EnforcementReasons';
|
||||
import {describe, expect, it} from 'vitest';
|
||||
|
||||
const ALL_KINDS: ReadonlyArray<EnforcementKind> = [
|
||||
'warning',
|
||||
'suspension',
|
||||
'closure',
|
||||
'feature_limit',
|
||||
'content_removal',
|
||||
'profile_reset',
|
||||
'community_removal',
|
||||
];
|
||||
|
||||
const ALL_LIMITS: ReadonlyArray<EnforcementLimit> = ['direct_messages', 'reports', 'purchases'];
|
||||
|
||||
const RULE_TABLE = [
|
||||
['spam', 'guidelines', '6-spam-and-service-abuse', true, true],
|
||||
['service_abuse', 'guidelines', '6-spam-and-service-abuse', true, true],
|
||||
['raids', 'guidelines', '1-harassment-threats-and-privacy', true, true],
|
||||
['automation', 'guidelines', '6-spam-and-service-abuse', true, true],
|
||||
['intimate_images', 'guidelines', '1-harassment-threats-and-privacy', true, false],
|
||||
['fraud', 'guidelines', '5-illegal-and-dangerous-activity', true, false],
|
||||
['child_safety', 'guidelines', '4-sexual-content-and-protection-of-minors', true, false],
|
||||
['privacy', 'guidelines', '1-harassment-threats-and-privacy', true, false],
|
||||
['harassment', 'guidelines', '1-harassment-threats-and-privacy', true, false],
|
||||
['payments', 'terms', '4-4-failed-payments-and-disputes', true, false],
|
||||
['unwanted_sexual_content', 'guidelines', '1-harassment-threats-and-privacy', true, false],
|
||||
['violent_content', 'guidelines', '3-violence-extremism-and-self-harm', true, true],
|
||||
['ban_evasion', 'guidelines', '6-spam-and-service-abuse', true, false],
|
||||
['hate', 'guidelines', '2-hate-and-discrimination', true, false],
|
||||
['malware', 'guidelines', '5-illegal-and-dangerous-activity', true, false],
|
||||
['impersonation', 'guidelines', '6-spam-and-service-abuse', true, true],
|
||||
['threats', 'guidelines', '1-harassment-threats-and-privacy', true, false],
|
||||
['violent_extremism', 'guidelines', '3-violence-extremism-and-self-harm', true, false],
|
||||
['self_harm', 'guidelines', '3-violence-extremism-and-self-harm', true, false],
|
||||
['adult_content', 'guidelines', '4-sexual-content-and-protection-of-minors', true, true],
|
||||
['illegal_activity', 'guidelines', '5-illegal-and-dangerous-activity', true, false],
|
||||
['harmful_deception', 'guidelines', '7-harmful-deception-and-manipulated-media', true, false],
|
||||
['report_abuse', 'guidelines', '8-reporting', true, true],
|
||||
['age_requirement', 'terms', '1-agreement-and-eligibility', false, false],
|
||||
['copyright', 'terms', '3-4-copyright', true, true],
|
||||
] as const;
|
||||
|
||||
const CODE_TABLE = [
|
||||
[3, 'spam', 'standard', 'any'],
|
||||
[4, 'service_abuse', 'standard', 'any'],
|
||||
[5, 'raids', 'standard', 'any'],
|
||||
[6, 'automation', 'standard', 'any'],
|
||||
[7, 'intimate_images', 'protected', 'any'],
|
||||
[8, 'fraud', 'standard', 'any'],
|
||||
[9, 'child_safety', 'restricted', ['suspension', 'content_removal']],
|
||||
[10, 'privacy', 'protected', 'any'],
|
||||
[11, 'harassment', 'protected', 'any'],
|
||||
[12, 'payments', 'standard', ['warning', 'suspension', 'closure', 'feature_limit']],
|
||||
[13, 'child_safety', 'restricted', ['suspension', 'content_removal']],
|
||||
[14, 'payments', 'standard', ['warning', 'suspension', 'closure', 'feature_limit']],
|
||||
[15, 'unwanted_sexual_content', 'protected', 'any'],
|
||||
[16, 'violent_content', 'standard', 'any'],
|
||||
[17, 'ban_evasion', 'standard', ['warning', 'suspension', 'closure']],
|
||||
[18, 'fraud', 'standard', 'any'],
|
||||
[20, 'hate', 'standard', 'any'],
|
||||
[21, 'malware', 'standard', 'any'],
|
||||
[22, 'impersonation', 'standard', 'any'],
|
||||
[23, 'threats', 'protected', 'any'],
|
||||
[24, 'violent_extremism', 'restricted', ['suspension', 'content_removal']],
|
||||
[25, 'self_harm', 'standard', ['warning', 'suspension', 'content_removal', 'profile_reset', 'community_removal']],
|
||||
[26, 'adult_content', 'standard', 'any'],
|
||||
[27, 'illegal_activity', 'standard', 'any'],
|
||||
[28, 'harmful_deception', 'standard', 'any'],
|
||||
[29, 'report_abuse', 'standard', ['warning', 'feature_limit', 'suspension']],
|
||||
[30, 'age_requirement', 'standard', ['closure']],
|
||||
[31, 'copyright', 'standard', ['warning', 'content_removal', 'profile_reset', 'community_removal']],
|
||||
] as const;
|
||||
|
||||
const LIMIT_TABLE: ReadonlyArray<readonly [EnforcementLimit, ReadonlyArray<number>]> = [
|
||||
['direct_messages', [3, 6, 8, 18, 21]],
|
||||
['reports', [29]],
|
||||
['purchases', [12, 14]],
|
||||
];
|
||||
|
||||
const enforcementCodes = Object.keys(ENFORCEMENT_REASONS).map(Number) as Array<EnforcementReasonCode>;
|
||||
|
||||
describe('ENFORCEMENT_REASONS', () => {
|
||||
it('classifies every deletion reason except the three non-enforcement codes', () => {
|
||||
const expected = Object.values(DeletionReasons).filter(
|
||||
(code) =>
|
||||
code !== DeletionReasons.USER_REQUESTED &&
|
||||
code !== DeletionReasons.OTHER &&
|
||||
code !== DeletionReasons.INACTIVITY,
|
||||
);
|
||||
expect(enforcementCodes.sort((a, b) => a - b)).toEqual(expected.sort((a, b) => a - b));
|
||||
});
|
||||
|
||||
it('matches the code table', () => {
|
||||
expect(
|
||||
Object.entries(ENFORCEMENT_REASONS).map(([code, reason]) => [
|
||||
Number(code),
|
||||
reason.rule,
|
||||
reason.handling,
|
||||
reason.kinds,
|
||||
]),
|
||||
).toEqual(CODE_TABLE);
|
||||
});
|
||||
|
||||
it('only names rules that exist', () => {
|
||||
for (const reason of Object.values(ENFORCEMENT_REASONS)) {
|
||||
expect(ENFORCEMENT_RULES).toHaveProperty(reason.rule);
|
||||
}
|
||||
});
|
||||
|
||||
it('limits restricted codes to permanent suspension and content removal', () => {
|
||||
for (const code of enforcementCodes) {
|
||||
if (ENFORCEMENT_REASONS[code].handling !== 'restricted') continue;
|
||||
expect(ALL_KINDS.filter((kind) => isEnforcementKindAllowed(code, kind))).toEqual([
|
||||
'suspension',
|
||||
'content_removal',
|
||||
]);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe('ENFORCEMENT_RULES', () => {
|
||||
it('pins policy anchors, the new account bar and network screen visibility', () => {
|
||||
expect(
|
||||
Object.entries(ENFORCEMENT_RULES).map(([key, rule]) => [
|
||||
key,
|
||||
rule.policy,
|
||||
rule.anchor,
|
||||
rule.barsNewAccounts,
|
||||
rule.showOnNetworkScreen,
|
||||
]),
|
||||
).toEqual(RULE_TABLE);
|
||||
});
|
||||
});
|
||||
|
||||
describe('enforcement limits', () => {
|
||||
it.each(LIMIT_TABLE)('allows %s only for its codes', (limit, codes) => {
|
||||
expect(enforcementCodes.filter((code) => isEnforcementLimitAllowed(code, limit))).toEqual(codes);
|
||||
});
|
||||
|
||||
it('allows a feature limit only where some limit applies', () => {
|
||||
const withFeatureLimit = enforcementCodes.filter((code) => isEnforcementKindAllowed(code, 'feature_limit'));
|
||||
const withAnyLimit = enforcementCodes.filter((code) =>
|
||||
ALL_LIMITS.some((limit) => isEnforcementLimitAllowed(code, limit)),
|
||||
);
|
||||
expect(withFeatureLimit).toEqual(withAnyLimit);
|
||||
});
|
||||
});
|
||||
|
||||
describe('enforcement windows', () => {
|
||||
it('keeps closures open past the appeal window', () => {
|
||||
expect(ACCOUNT_DELETION_MIN_DAYS).toBe(14);
|
||||
expect(ENFORCEMENT_APPEAL_WINDOW_DAYS).toBe(60);
|
||||
expect(ENFORCEMENT_CLOSURE_MIN_DAYS).toBe(ENFORCEMENT_APPEAL_WINDOW_DAYS + ACCOUNT_DELETION_MIN_DAYS);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,207 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {DeletionReasons} from '@fluxer/constants/src/Core';
|
||||
import type {ValueOf} from '@fluxer/constants/src/ValueOf';
|
||||
|
||||
export type EnforcementRuleKey =
|
||||
| 'spam'
|
||||
| 'service_abuse'
|
||||
| 'raids'
|
||||
| 'automation'
|
||||
| 'intimate_images'
|
||||
| 'fraud'
|
||||
| 'child_safety'
|
||||
| 'privacy'
|
||||
| 'harassment'
|
||||
| 'payments'
|
||||
| 'unwanted_sexual_content'
|
||||
| 'violent_content'
|
||||
| 'ban_evasion'
|
||||
| 'hate'
|
||||
| 'malware'
|
||||
| 'impersonation'
|
||||
| 'threats'
|
||||
| 'violent_extremism'
|
||||
| 'self_harm'
|
||||
| 'adult_content'
|
||||
| 'illegal_activity'
|
||||
| 'harmful_deception'
|
||||
| 'report_abuse'
|
||||
| 'age_requirement'
|
||||
| 'copyright';
|
||||
|
||||
type EnforcementHandling = 'standard' | 'protected' | 'restricted';
|
||||
|
||||
export type EnforcementKind =
|
||||
| 'warning'
|
||||
| 'suspension'
|
||||
| 'closure'
|
||||
| 'feature_limit'
|
||||
| 'content_removal'
|
||||
| 'profile_reset'
|
||||
| 'community_removal';
|
||||
|
||||
export type EnforcementLimit = 'direct_messages' | 'reports' | 'purchases';
|
||||
|
||||
export type EnforcementReasonCode = Exclude<
|
||||
ValueOf<typeof DeletionReasons>,
|
||||
typeof DeletionReasons.USER_REQUESTED | typeof DeletionReasons.OTHER | typeof DeletionReasons.INACTIVITY
|
||||
>;
|
||||
|
||||
interface EnforcementRule {
|
||||
policy: 'guidelines' | 'terms';
|
||||
anchor: string;
|
||||
barsNewAccounts: boolean;
|
||||
showOnNetworkScreen: boolean;
|
||||
}
|
||||
|
||||
interface EnforcementReason {
|
||||
rule: EnforcementRuleKey;
|
||||
handling: EnforcementHandling;
|
||||
kinds: ReadonlyArray<EnforcementKind> | 'any';
|
||||
}
|
||||
|
||||
export const ACCOUNT_DELETION_MIN_DAYS = 14;
|
||||
export const ENFORCEMENT_APPEAL_WINDOW_DAYS = 60;
|
||||
export const ENFORCEMENT_CLOSURE_MIN_DAYS = ENFORCEMENT_APPEAL_WINDOW_DAYS + ACCOUNT_DELETION_MIN_DAYS;
|
||||
|
||||
const HARASSMENT_ANCHOR = '1-harassment-threats-and-privacy';
|
||||
const VIOLENCE_ANCHOR = '3-violence-extremism-and-self-harm';
|
||||
const SEXUAL_CONTENT_ANCHOR = '4-sexual-content-and-protection-of-minors';
|
||||
const ILLEGAL_ACTIVITY_ANCHOR = '5-illegal-and-dangerous-activity';
|
||||
const SERVICE_ABUSE_ANCHOR = '6-spam-and-service-abuse';
|
||||
|
||||
function guidelinesRule(anchor: string, showOnNetworkScreen: boolean): EnforcementRule {
|
||||
return {policy: 'guidelines', anchor, barsNewAccounts: true, showOnNetworkScreen};
|
||||
}
|
||||
|
||||
export const ENFORCEMENT_RULES: Readonly<Record<EnforcementRuleKey, EnforcementRule>> = {
|
||||
spam: guidelinesRule(SERVICE_ABUSE_ANCHOR, true),
|
||||
service_abuse: guidelinesRule(SERVICE_ABUSE_ANCHOR, true),
|
||||
raids: guidelinesRule(HARASSMENT_ANCHOR, true),
|
||||
automation: guidelinesRule(SERVICE_ABUSE_ANCHOR, true),
|
||||
intimate_images: guidelinesRule(HARASSMENT_ANCHOR, false),
|
||||
fraud: guidelinesRule(ILLEGAL_ACTIVITY_ANCHOR, false),
|
||||
child_safety: guidelinesRule(SEXUAL_CONTENT_ANCHOR, false),
|
||||
privacy: guidelinesRule(HARASSMENT_ANCHOR, false),
|
||||
harassment: guidelinesRule(HARASSMENT_ANCHOR, false),
|
||||
payments: {
|
||||
policy: 'terms',
|
||||
anchor: '4-4-failed-payments-and-disputes',
|
||||
barsNewAccounts: true,
|
||||
showOnNetworkScreen: false,
|
||||
},
|
||||
unwanted_sexual_content: guidelinesRule(HARASSMENT_ANCHOR, false),
|
||||
violent_content: guidelinesRule(VIOLENCE_ANCHOR, true),
|
||||
ban_evasion: guidelinesRule(SERVICE_ABUSE_ANCHOR, false),
|
||||
hate: guidelinesRule('2-hate-and-discrimination', false),
|
||||
malware: guidelinesRule(ILLEGAL_ACTIVITY_ANCHOR, false),
|
||||
impersonation: guidelinesRule(SERVICE_ABUSE_ANCHOR, true),
|
||||
threats: guidelinesRule(HARASSMENT_ANCHOR, false),
|
||||
violent_extremism: guidelinesRule(VIOLENCE_ANCHOR, false),
|
||||
self_harm: guidelinesRule(VIOLENCE_ANCHOR, false),
|
||||
adult_content: guidelinesRule(SEXUAL_CONTENT_ANCHOR, true),
|
||||
illegal_activity: guidelinesRule(ILLEGAL_ACTIVITY_ANCHOR, false),
|
||||
harmful_deception: guidelinesRule('7-harmful-deception-and-manipulated-media', false),
|
||||
report_abuse: guidelinesRule('8-reporting', true),
|
||||
age_requirement: {
|
||||
policy: 'terms',
|
||||
anchor: '1-agreement-and-eligibility',
|
||||
barsNewAccounts: false,
|
||||
showOnNetworkScreen: false,
|
||||
},
|
||||
copyright: {policy: 'terms', anchor: '3-4-copyright', barsNewAccounts: true, showOnNetworkScreen: true},
|
||||
};
|
||||
|
||||
const RESTRICTED_KINDS: ReadonlyArray<EnforcementKind> = ['suspension', 'content_removal'];
|
||||
const PAYMENT_KINDS: ReadonlyArray<EnforcementKind> = ['warning', 'suspension', 'closure', 'feature_limit'];
|
||||
|
||||
export const ENFORCEMENT_REASONS: Readonly<Record<EnforcementReasonCode, EnforcementReason>> = {
|
||||
[DeletionReasons.SPAM]: {rule: 'spam', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.CHEATING_OR_EXPLOITATION]: {rule: 'service_abuse', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.COORDINATED_RAIDING]: {rule: 'raids', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.AUTOMATION_OR_SELFBOT]: {rule: 'automation', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.NONCONSENSUAL_SEXUAL_CONTENT]: {rule: 'intimate_images', handling: 'protected', kinds: 'any'},
|
||||
[DeletionReasons.SCAM_OR_SOCIAL_ENGINEERING]: {rule: 'fraud', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.CHILD_SEXUAL_CONTENT]: {rule: 'child_safety', handling: 'restricted', kinds: RESTRICTED_KINDS},
|
||||
[DeletionReasons.PRIVACY_VIOLATION_OR_DOXXING]: {rule: 'privacy', handling: 'protected', kinds: 'any'},
|
||||
[DeletionReasons.HARASSMENT_OR_BULLYING]: {rule: 'harassment', handling: 'protected', kinds: 'any'},
|
||||
[DeletionReasons.PAYMENT_FRAUD]: {rule: 'payments', handling: 'standard', kinds: PAYMENT_KINDS},
|
||||
[DeletionReasons.CHILD_SAFETY_VIOLATION]: {rule: 'child_safety', handling: 'restricted', kinds: RESTRICTED_KINDS},
|
||||
[DeletionReasons.BILLING_DISPUTE_OR_ABUSE]: {rule: 'payments', handling: 'standard', kinds: PAYMENT_KINDS},
|
||||
[DeletionReasons.UNSOLICITED_EXPLICIT_CONTENT]: {
|
||||
rule: 'unwanted_sexual_content',
|
||||
handling: 'protected',
|
||||
kinds: 'any',
|
||||
},
|
||||
[DeletionReasons.GRAPHIC_VIOLENCE]: {rule: 'violent_content', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.BAN_EVASION]: {
|
||||
rule: 'ban_evasion',
|
||||
handling: 'standard',
|
||||
kinds: ['warning', 'suspension', 'closure'],
|
||||
},
|
||||
[DeletionReasons.TOKEN_OR_CREDENTIAL_SCAM]: {rule: 'fraud', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.HATE_SPEECH_OR_EXTREMIST_CONTENT]: {rule: 'hate', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.MALICIOUS_LINKS_OR_MALWARE]: {rule: 'malware', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.IMPERSONATION_OR_FAKE_IDENTITY]: {rule: 'impersonation', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.THREATS_OR_VIOLENT_SPEECH]: {rule: 'threats', handling: 'protected', kinds: 'any'},
|
||||
[DeletionReasons.VIOLENT_EXTREMISM]: {rule: 'violent_extremism', handling: 'restricted', kinds: RESTRICTED_KINDS},
|
||||
[DeletionReasons.SELF_HARM_PROMOTION]: {
|
||||
rule: 'self_harm',
|
||||
handling: 'standard',
|
||||
kinds: ['warning', 'suspension', 'content_removal', 'profile_reset', 'community_removal'],
|
||||
},
|
||||
[DeletionReasons.SEXUAL_CONTENT_PLACEMENT]: {rule: 'adult_content', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.ILLEGAL_GOODS_OR_ACTIVITY]: {rule: 'illegal_activity', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.HARMFUL_DECEPTION]: {rule: 'harmful_deception', handling: 'standard', kinds: 'any'},
|
||||
[DeletionReasons.REPORTING_ABUSE]: {
|
||||
rule: 'report_abuse',
|
||||
handling: 'standard',
|
||||
kinds: ['warning', 'feature_limit', 'suspension'],
|
||||
},
|
||||
[DeletionReasons.UNDERAGE_ACCOUNT]: {rule: 'age_requirement', handling: 'standard', kinds: ['closure']},
|
||||
[DeletionReasons.COPYRIGHT]: {
|
||||
rule: 'copyright',
|
||||
handling: 'standard',
|
||||
kinds: ['warning', 'content_removal', 'profile_reset', 'community_removal'],
|
||||
},
|
||||
};
|
||||
|
||||
const ENFORCEMENT_SPAMMER_LIMIT_RULES: ReadonlySet<EnforcementRuleKey> = new Set([
|
||||
'spam',
|
||||
'automation',
|
||||
'fraud',
|
||||
'malware',
|
||||
]);
|
||||
|
||||
const ENFORCEMENT_LIMIT_RULES: Readonly<Record<EnforcementLimit, ReadonlySet<EnforcementRuleKey>>> = {
|
||||
direct_messages: ENFORCEMENT_SPAMMER_LIMIT_RULES,
|
||||
reports: new Set(['report_abuse']),
|
||||
purchases: new Set(['payments']),
|
||||
};
|
||||
|
||||
const ACCOUNT_KINDS: ReadonlySet<EnforcementKind> = new Set(['suspension', 'closure']);
|
||||
|
||||
export function isAccountKind(kind: EnforcementKind): boolean {
|
||||
return ACCOUNT_KINDS.has(kind);
|
||||
}
|
||||
|
||||
export function isEnforcementReasonCode(code: number | null | undefined): code is EnforcementReasonCode {
|
||||
return code !== null && code !== undefined && Object.hasOwn(ENFORCEMENT_REASONS, code);
|
||||
}
|
||||
|
||||
export function enforcementReasonOf(code: number | null | undefined): EnforcementReason | null {
|
||||
return isEnforcementReasonCode(code) ? ENFORCEMENT_REASONS[code] : null;
|
||||
}
|
||||
|
||||
const ENFORCEMENT_LIMITS = Object.keys(ENFORCEMENT_LIMIT_RULES) as ReadonlyArray<EnforcementLimit>;
|
||||
|
||||
export function isEnforcementLimitAllowed(code: EnforcementReasonCode, limit: EnforcementLimit): boolean {
|
||||
return ENFORCEMENT_LIMIT_RULES[limit].has(ENFORCEMENT_REASONS[code].rule);
|
||||
}
|
||||
|
||||
export function isEnforcementKindAllowed(code: EnforcementReasonCode, kind: EnforcementKind): boolean {
|
||||
const {kinds} = ENFORCEMENT_REASONS[code];
|
||||
if (kinds !== 'any' && !kinds.includes(kind)) return false;
|
||||
return kind !== 'feature_limit' || ENFORCEMENT_LIMITS.some((limit) => isEnforcementLimitAllowed(code, limit));
|
||||
}
|
||||
@@ -10,7 +10,6 @@ export const ValidationErrorCodes = {
|
||||
ALL_CHANNELS_MUST_BELONG_TO_GUILD: 'ALL_CHANNELS_MUST_BELONG_TO_GUILD',
|
||||
ANIMATED_AVATARS_REQUIRE_PREMIUM: 'ANIMATED_AVATARS_REQUIRE_PREMIUM',
|
||||
ANIMATED_GUILD_BANNER_REQUIRES_FEATURE: 'ANIMATED_GUILD_BANNER_REQUIRES_FEATURE',
|
||||
AT_LEAST_ONE_ENTRY_IS_REQUIRED: 'AT_LEAST_ONE_ENTRY_IS_REQUIRED',
|
||||
AT_LEAST_ONE_RECIPIENT_REQUIRED: 'AT_LEAST_ONE_RECIPIENT_REQUIRED',
|
||||
ATTACHMENT_ID_NOT_FOUND_IN_MESSAGE: 'ATTACHMENT_ID_NOT_FOUND_IN_MESSAGE',
|
||||
ATTACHMENT_MUST_BE_IMAGE: 'ATTACHMENT_MUST_BE_IMAGE',
|
||||
@@ -72,6 +71,27 @@ export const ValidationErrorCodes = {
|
||||
EMAIL_TOKEN_EXPIRED: 'EMAIL_TOKEN_EXPIRED',
|
||||
EMAIL_DOMAIN_CANNOT_RECEIVE_MAIL: 'EMAIL_DOMAIN_CANNOT_RECEIVE_MAIL',
|
||||
EMAIL_DOMAIN_NOT_ALLOWED_FOR_SSO: 'EMAIL_DOMAIN_NOT_ALLOWED_FOR_SSO',
|
||||
ENFORCEMENT_CONFIRMATIONS_REQUIRED: 'ENFORCEMENT_CONFIRMATIONS_REQUIRED',
|
||||
ENFORCEMENT_EVIDENCE_DM_UNREPORTED: 'ENFORCEMENT_EVIDENCE_DM_UNREPORTED',
|
||||
ENFORCEMENT_EVIDENCE_NOT_ALLOWED: 'ENFORCEMENT_EVIDENCE_NOT_ALLOWED',
|
||||
ENFORCEMENT_EVIDENCE_NOT_FOUND: 'ENFORCEMENT_EVIDENCE_NOT_FOUND',
|
||||
ENFORCEMENT_EVIDENCE_NOT_SUBJECT: 'ENFORCEMENT_EVIDENCE_NOT_SUBJECT',
|
||||
ENFORCEMENT_EVIDENCE_REQUIRED: 'ENFORCEMENT_EVIDENCE_REQUIRED',
|
||||
ENFORCEMENT_FACTS_REQUIRED: 'ENFORCEMENT_FACTS_REQUIRED',
|
||||
ENFORCEMENT_INTERNAL_NOTE_REQUIRED: 'ENFORCEMENT_INTERNAL_NOTE_REQUIRED',
|
||||
ENFORCEMENT_KIND_NOT_ALLOWED: 'ENFORCEMENT_KIND_NOT_ALLOWED',
|
||||
ENFORCEMENT_LIMIT_END_INVALID: 'ENFORCEMENT_LIMIT_END_INVALID',
|
||||
ENFORCEMENT_LIMIT_NOT_ALLOWED: 'ENFORCEMENT_LIMIT_NOT_ALLOWED',
|
||||
ENFORCEMENT_NETWORK_BLOCK_NOT_ALLOWED: 'ENFORCEMENT_NETWORK_BLOCK_NOT_ALLOWED',
|
||||
ENFORCEMENT_NETWORK_SHARED: 'ENFORCEMENT_NETWORK_SHARED',
|
||||
ENFORCEMENT_NETWORK_UNKNOWN: 'ENFORCEMENT_NETWORK_UNKNOWN',
|
||||
ENFORCEMENT_OUTCOME_NOT_ALLOWED: 'ENFORCEMENT_OUTCOME_NOT_ALLOWED',
|
||||
ENFORCEMENT_PERMANENT_REQUIRED: 'ENFORCEMENT_PERMANENT_REQUIRED',
|
||||
ENFORCEMENT_REPORT_MISMATCH: 'ENFORCEMENT_REPORT_MISMATCH',
|
||||
ENFORCEMENT_REPORT_REQUIRED: 'ENFORCEMENT_REPORT_REQUIRED',
|
||||
ENFORCEMENT_RIGHTS_HOLDER_NOT_ALLOWED: 'ENFORCEMENT_RIGHTS_HOLDER_NOT_ALLOWED',
|
||||
ENFORCEMENT_RIGHTS_HOLDER_REQUIRED: 'ENFORCEMENT_RIGHTS_HOLDER_REQUIRED',
|
||||
ENFORCEMENT_STATEMENT_NOT_ALLOWED: 'ENFORCEMENT_STATEMENT_NOT_ALLOWED',
|
||||
EMBED_INDEX_OUT_OF_BOUNDS: 'EMBED_INDEX_OUT_OF_BOUNDS',
|
||||
EMBED_SPLASH_REQUIRES_FEATURE: 'EMBED_SPLASH_REQUIRES_FEATURE',
|
||||
EMBEDS_EXCEED_MAX_CHARACTERS: 'EMBEDS_EXCEED_MAX_CHARACTERS',
|
||||
@@ -83,6 +103,7 @@ export const ValidationErrorCodes = {
|
||||
FAVORITE_MEME_NOT_FOUND: 'FAVORITE_MEME_NOT_FOUND',
|
||||
FILE_INDEX_EXCEEDS_MAXIMUM: 'FILE_INDEX_EXCEEDS_MAXIMUM',
|
||||
FILE_NOT_FOUND: 'FILE_NOT_FOUND',
|
||||
FLAG_REQUIRES_ENFORCEMENT_ROUTE: 'FLAG_REQUIRES_ENFORCEMENT_ROUTE',
|
||||
FILENAME_LENGTH_INVALID: 'FILENAME_LENGTH_INVALID',
|
||||
FORWARD_MESSAGES_CANNOT_CONTAIN_CONTENT: 'FORWARD_MESSAGES_CANNOT_CONTAIN_CONTENT',
|
||||
FORWARD_REFERENCE_REQUIRES_CHANNEL_AND_MESSAGE: 'FORWARD_REFERENCE_REQUIRES_CHANNEL_AND_MESSAGE',
|
||||
@@ -149,6 +170,7 @@ export const ValidationErrorCodes = {
|
||||
MESSAGE_IDS_CANNOT_BE_EMPTY: 'MESSAGE_IDS_CANNOT_BE_EMPTY',
|
||||
MESSAGES_ARRAY_REQUIRED_AND_NOT_EMPTY: 'MESSAGES_ARRAY_REQUIRED_AND_NOT_EMPTY',
|
||||
MESSAGES_WITH_SNAPSHOTS_CANNOT_BE_EDITED: 'MESSAGES_WITH_SNAPSHOTS_CANNOT_BE_EDITED',
|
||||
MODERATION_BASIS_REQUIRED: 'MODERATION_BASIS_REQUIRED',
|
||||
MULTIPLE_FILES_FOR_INDEX_NOT_ALLOWED: 'MULTIPLE_FILES_FOR_INDEX_NOT_ALLOWED',
|
||||
MUST_AGREE_TO_TOS_AND_PRIVACY_POLICY: 'MUST_AGREE_TO_TOS_AND_PRIVACY_POLICY',
|
||||
MUST_BE_MINIMUM_AGE: 'MUST_BE_MINIMUM_AGE',
|
||||
@@ -180,6 +202,7 @@ export const ValidationErrorCodes = {
|
||||
RECIPIENT_IDS_MUST_BE_STRINGS: 'RECIPIENT_IDS_MUST_BE_STRINGS',
|
||||
RECIPIENT_IDS_MUST_BE_VALID_SNOWFLAKES: 'RECIPIENT_IDS_MUST_BE_VALID_SNOWFLAKES',
|
||||
REFERENCED_ATTACHMENT_NOT_FOUND: 'REFERENCED_ATTACHMENT_NOT_FOUND',
|
||||
REPORT_OUTCOME_INVALID: 'REPORT_OUTCOME_INVALID',
|
||||
SESSION_TIMEOUT: 'SESSION_TIMEOUT',
|
||||
SETUP_TOKEN_INVALID: 'SETUP_TOKEN_INVALID',
|
||||
SETUP_TOKEN_REQUIRED: 'SETUP_TOKEN_REQUIRED',
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {ConflictError} from '@fluxer/errors/src/domains/core/ConflictError';
|
||||
|
||||
export class EnforcementAccountClosedError extends ConflictError {
|
||||
constructor() {
|
||||
super({code: APIErrorCodes.ENFORCEMENT_ACCOUNT_CLOSED});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {ConflictError} from '@fluxer/errors/src/domains/core/ConflictError';
|
||||
|
||||
export class EnforcementDecisionEndedError extends ConflictError {
|
||||
constructor() {
|
||||
super({code: APIErrorCodes.ENFORCEMENT_DECISION_ENDED});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {ConflictError} from '@fluxer/errors/src/domains/core/ConflictError';
|
||||
|
||||
export class EnforcementDecisionOwnsStateError extends ConflictError {
|
||||
constructor(decisionId: bigint) {
|
||||
super({code: APIErrorCodes.ENFORCEMENT_DECISION_OWNS_STATE, data: {decision_id: decisionId.toString()}});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {ConflictError} from '@fluxer/errors/src/domains/core/ConflictError';
|
||||
|
||||
export class EnforcementDecisionReplacedError extends ConflictError {
|
||||
constructor() {
|
||||
super({code: APIErrorCodes.ENFORCEMENT_DECISION_REPLACED});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {ConflictError} from '@fluxer/errors/src/domains/core/ConflictError';
|
||||
|
||||
export class EnforcementDeletionStartedError extends ConflictError {
|
||||
constructor() {
|
||||
super({code: APIErrorCodes.ENFORCEMENT_DELETION_STARTED});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {ConflictError} from '@fluxer/errors/src/domains/core/ConflictError';
|
||||
|
||||
export class IpBanLinkedToDecisionError extends ConflictError {
|
||||
constructor(decisionId: bigint) {
|
||||
super({code: APIErrorCodes.IP_BAN_LINKED_TO_DECISION, data: {decision_id: decisionId.toString()}});
|
||||
}
|
||||
}
|
||||
@@ -2,32 +2,39 @@
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {ForbiddenError} from '@fluxer/errors/src/domains/core/ForbiddenError';
|
||||
|
||||
type GlobalIpBanKind = 'permanent' | 'temporary_24h';
|
||||
import type {NetworkBlock} from '@fluxer/schema/src/domains/auth/EnforcementNoticeSchemas';
|
||||
|
||||
interface IpBannedErrorOptions {
|
||||
ipAddress: string;
|
||||
kind: GlobalIpBanKind;
|
||||
expiresAt?: Date | null;
|
||||
kind: NetworkBlock['ban_kind'];
|
||||
expiresAt: Date | null;
|
||||
expiresAtText: string | null;
|
||||
appealEmail: string | null;
|
||||
appealsSupported: boolean;
|
||||
reason: NetworkBlock['reason'];
|
||||
productName: string;
|
||||
}
|
||||
|
||||
export class IpBannedError extends ForbiddenError {
|
||||
constructor(options: IpBannedErrorOptions) {
|
||||
const isTemporary = options.kind === 'temporary_24h';
|
||||
const data: NetworkBlock = {
|
||||
ip_address: options.ipAddress,
|
||||
appeal_email: options.appealEmail,
|
||||
appeals_supported: options.appealsSupported,
|
||||
ban_kind: options.kind,
|
||||
expires_at: options.expiresAt?.toISOString() ?? null,
|
||||
reason: options.reason,
|
||||
product_name: options.productName,
|
||||
};
|
||||
super({
|
||||
code: isTemporary ? APIErrorCodes.GLOBAL_IP_TEMPORARILY_BANNED : APIErrorCodes.GLOBAL_IP_BANNED,
|
||||
data: {
|
||||
ip_address: options.ipAddress,
|
||||
appeal_email: options.appealEmail,
|
||||
appeals_supported: true,
|
||||
ban_kind: options.kind,
|
||||
expires_at: options.expiresAt?.toISOString() ?? null,
|
||||
},
|
||||
data,
|
||||
messageVariables: {
|
||||
ipAddress: options.ipAddress,
|
||||
appealEmail: options.appealEmail,
|
||||
expiresAt: options.expiresAtText ?? '',
|
||||
reason: options.reason ? 'shown' : 'none',
|
||||
product_name: options.productName,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {NotFoundError} from '@fluxer/errors/src/domains/core/NotFoundError';
|
||||
|
||||
export class UnknownEnforcementDecisionError extends NotFoundError {
|
||||
constructor() {
|
||||
super({code: APIErrorCodes.UNKNOWN_ENFORCEMENT_DECISION});
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,10 @@
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {ForbiddenError} from '@fluxer/errors/src/domains/core/ForbiddenError';
|
||||
import type {EnforcementNotice} from '@fluxer/schema/src/domains/auth/EnforcementNoticeSchemas';
|
||||
|
||||
export class AccountPermanentlySuspendedError extends ForbiddenError {
|
||||
constructor() {
|
||||
super({code: APIErrorCodes.ACCOUNT_SUSPENDED_PERMANENTLY});
|
||||
constructor(notice: EnforcementNotice | null) {
|
||||
super({code: APIErrorCodes.ACCOUNT_SUSPENDED_PERMANENTLY, data: {notice}});
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,10 @@
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {ForbiddenError} from '@fluxer/errors/src/domains/core/ForbiddenError';
|
||||
import type {EnforcementNotice} from '@fluxer/schema/src/domains/auth/EnforcementNoticeSchemas';
|
||||
|
||||
export class AccountTemporarilySuspendedError extends ForbiddenError {
|
||||
constructor() {
|
||||
super({code: APIErrorCodes.ACCOUNT_SUSPENDED_TEMPORARILY});
|
||||
constructor(notice: EnforcementNotice) {
|
||||
super({code: APIErrorCodes.ACCOUNT_SUSPENDED_TEMPORARILY, data: {notice}});
|
||||
}
|
||||
}
|
||||
@@ -188,6 +188,7 @@ export const ErrorCodeToI18nKey = {
|
||||
[APIErrorCodes.GLOBAL_IP_BANNED]: 'permissions.global_ip_banned',
|
||||
[APIErrorCodes.GLOBAL_IP_TEMPORARILY_BANNED]: 'permissions.global_ip_temporarily_banned',
|
||||
[APIErrorCodes.IP_BAN_DECLINED]: 'moderation_and_reports.ip_ban_declined',
|
||||
[APIErrorCodes.IP_BAN_LINKED_TO_DECISION]: 'moderation_and_reports.ip_ban_linked_to_decision',
|
||||
[APIErrorCodes.MAX_APPLICATIONS]: 'misc_limits.max_applications_reached',
|
||||
[APIErrorCodes.MAX_BOOKMARKS]: 'misc_limits.max_bookmarks_reached',
|
||||
[APIErrorCodes.MAX_CATEGORY_CHANNELS]: 'misc_limits.max_category_channels_reached',
|
||||
@@ -535,7 +536,6 @@ export const ErrorCodeToI18nKey = {
|
||||
[ValidationErrorCodes.VANITY_URL_CODE_LENGTH_INVALID]: 'vanity_urls.vanity_url_code_length_invalid',
|
||||
[ValidationErrorCodes.VANITY_URL_INVALID_CHARACTERS]: 'vanity_urls.vanity_url_invalid_characters',
|
||||
[ValidationErrorCodes.WEBHOOK_NAME_LENGTH_INVALID]: 'webhooks.webhook_name_length_invalid',
|
||||
[ValidationErrorCodes.AT_LEAST_ONE_ENTRY_IS_REQUIRED]: 'limits.at_least_one_entry_required',
|
||||
[ValidationErrorCodes.CANNOT_PRELOAD_MORE_THAN_100_CHANNELS]: 'messages.cannot_preload_more_than_100_channels',
|
||||
[ValidationErrorCodes.INTEGER_OUT_OF_INT64_RANGE]: 'limits.integer_out_of_int64_range',
|
||||
[ValidationErrorCodes.INVALID_AUDIT_LOG_REASON]: 'admin_and_system.invalid_audit_log_reason',
|
||||
@@ -560,6 +560,38 @@ export const ErrorCodeToI18nKey = {
|
||||
[ValidationErrorCodes.TICKET_ALREADY_COMPLETED]: 'tickets.ticket_already_completed',
|
||||
[ValidationErrorCodes.TIMEOUT_CANNOT_EXCEED_365_DAYS]: 'limits.timeout_cannot_exceed_365_days',
|
||||
[ValidationErrorCodes.VALUE_MUST_BE_INTEGER_IN_RANGE]: 'limits.value_must_be_integer_in_range',
|
||||
[APIErrorCodes.ENFORCEMENT_ACCOUNT_CLOSED]: 'admin_and_system.enforcement_account_closed',
|
||||
[APIErrorCodes.ENFORCEMENT_DECISION_ENDED]: 'admin_and_system.enforcement_decision_ended',
|
||||
[APIErrorCodes.ENFORCEMENT_DECISION_OWNS_STATE]: 'admin_and_system.enforcement_decision_owns_state',
|
||||
[APIErrorCodes.ENFORCEMENT_DECISION_REPLACED]: 'admin_and_system.enforcement_decision_replaced',
|
||||
[APIErrorCodes.ENFORCEMENT_DELETION_STARTED]: 'admin_and_system.enforcement_deletion_started',
|
||||
[APIErrorCodes.UNKNOWN_ENFORCEMENT_DECISION]: 'moderation_and_reports.unknown_enforcement_decision',
|
||||
[ValidationErrorCodes.ENFORCEMENT_CONFIRMATIONS_REQUIRED]: 'admin_and_system.enforcement_confirmations_required',
|
||||
[ValidationErrorCodes.ENFORCEMENT_EVIDENCE_DM_UNREPORTED]: 'admin_and_system.enforcement_evidence_dm_unreported',
|
||||
[ValidationErrorCodes.ENFORCEMENT_EVIDENCE_NOT_ALLOWED]: 'admin_and_system.enforcement_evidence_not_allowed',
|
||||
[ValidationErrorCodes.ENFORCEMENT_EVIDENCE_NOT_FOUND]: 'admin_and_system.enforcement_evidence_not_found',
|
||||
[ValidationErrorCodes.ENFORCEMENT_EVIDENCE_NOT_SUBJECT]: 'admin_and_system.enforcement_evidence_not_subject',
|
||||
[ValidationErrorCodes.ENFORCEMENT_EVIDENCE_REQUIRED]: 'admin_and_system.enforcement_evidence_required',
|
||||
[ValidationErrorCodes.ENFORCEMENT_FACTS_REQUIRED]: 'admin_and_system.enforcement_facts_required',
|
||||
[ValidationErrorCodes.ENFORCEMENT_INTERNAL_NOTE_REQUIRED]: 'admin_and_system.enforcement_internal_note_required',
|
||||
[ValidationErrorCodes.ENFORCEMENT_KIND_NOT_ALLOWED]: 'admin_and_system.enforcement_kind_not_allowed',
|
||||
[ValidationErrorCodes.ENFORCEMENT_LIMIT_END_INVALID]: 'admin_and_system.enforcement_limit_end_invalid',
|
||||
[ValidationErrorCodes.ENFORCEMENT_LIMIT_NOT_ALLOWED]: 'admin_and_system.enforcement_limit_not_allowed',
|
||||
[ValidationErrorCodes.ENFORCEMENT_NETWORK_BLOCK_NOT_ALLOWED]:
|
||||
'admin_and_system.enforcement_network_block_not_allowed',
|
||||
[ValidationErrorCodes.ENFORCEMENT_NETWORK_SHARED]: 'admin_and_system.enforcement_network_shared',
|
||||
[ValidationErrorCodes.ENFORCEMENT_NETWORK_UNKNOWN]: 'admin_and_system.enforcement_network_unknown',
|
||||
[ValidationErrorCodes.FLAG_REQUIRES_ENFORCEMENT_ROUTE]: 'admin_and_system.flag_requires_enforcement_route',
|
||||
[ValidationErrorCodes.ENFORCEMENT_OUTCOME_NOT_ALLOWED]: 'admin_and_system.enforcement_outcome_not_allowed',
|
||||
[ValidationErrorCodes.ENFORCEMENT_PERMANENT_REQUIRED]: 'admin_and_system.enforcement_permanent_required',
|
||||
[ValidationErrorCodes.ENFORCEMENT_REPORT_MISMATCH]: 'admin_and_system.enforcement_report_mismatch',
|
||||
[ValidationErrorCodes.ENFORCEMENT_REPORT_REQUIRED]: 'admin_and_system.enforcement_report_required',
|
||||
[ValidationErrorCodes.ENFORCEMENT_RIGHTS_HOLDER_NOT_ALLOWED]:
|
||||
'admin_and_system.enforcement_rights_holder_not_allowed',
|
||||
[ValidationErrorCodes.ENFORCEMENT_RIGHTS_HOLDER_REQUIRED]: 'admin_and_system.enforcement_rights_holder_required',
|
||||
[ValidationErrorCodes.ENFORCEMENT_STATEMENT_NOT_ALLOWED]: 'admin_and_system.enforcement_statement_not_allowed',
|
||||
[ValidationErrorCodes.MODERATION_BASIS_REQUIRED]: 'admin_and_system.moderation_basis_required',
|
||||
[ValidationErrorCodes.REPORT_OUTCOME_INVALID]: 'moderation_and_reports.report_outcome_invalid',
|
||||
[APIErrorCodes.VALIDATION_ERROR]: 'http.validation_error',
|
||||
[ValidationErrorCodes.ENTRANCE_SOUND_INVALID_FORMAT]: 'entrance_sounds.invalid_format',
|
||||
[ValidationErrorCodes.ENTRANCE_SOUND_DURATION_EXCEEDS_LIMIT]: 'entrance_sounds.duration_exceeds_limit',
|
||||
|
||||
@@ -11,23 +11,47 @@ describe('ErrorI18n', () => {
|
||||
consoleWarnSpy.mockClear();
|
||||
});
|
||||
describe('global IP block messages', () => {
|
||||
const HOSTED = {ipAddress: '203.0.113.20', appealEmail: '[email protected]', product_name: 'Fluxer'};
|
||||
const SELF_HOSTED = {ipAddress: '203.0.113.20', appealEmail: null, product_name: 'Example Chat'};
|
||||
const HOSTED = {
|
||||
ipAddress: '203.0.113.20',
|
||||
appealEmail: '[email protected]',
|
||||
expiresAt: 'Jan 12, 2027, 9:00 AM UTC',
|
||||
reason: 'none',
|
||||
product_name: 'Fluxer',
|
||||
};
|
||||
const SELF_HOSTED = {...HOSTED, appealEmail: null, product_name: 'chat.example.org'};
|
||||
const SHARED_NETWORK =
|
||||
'If you share this network, for example at school, at work, on public Wi-Fi, through your mobile carrier or a VPN, this block may have nothing to do with you. The quickest fix is to switch networks, for example to mobile data instead of Wi-Fi, or to turn your VPN on or off.';
|
||||
|
||||
it('names the instance and no mailbox in any locale when there is no appeal address', () => {
|
||||
for (const locale of Object.keys(ERROR_I18N_LOCALE_MESSAGES)) {
|
||||
for (const code of ['GLOBAL_IP_BANNED', 'GLOBAL_IP_TEMPORARILY_BANNED']) {
|
||||
const neutral = getErrorMessageUnsafe(code, locale, SELF_HOSTED);
|
||||
expect(neutral, `${locale} ${code}`).toContain('203.0.113.20');
|
||||
expect(neutral, `${locale} ${code}`).not.toMatch(/@|\bnull\b|\{/);
|
||||
expect(neutral, `${locale} ${code}`).toContain('Example Chat');
|
||||
expect(neutral, `${locale} ${code}`).toContain('chat.example.org');
|
||||
expect(neutral, `${locale} ${code}`).not.toContain('Fluxer');
|
||||
const hosted = getErrorMessageUnsafe(code, locale, HOSTED);
|
||||
expect(hosted, `${locale} ${code}`).toContain('[email protected]');
|
||||
expect(hosted, `${locale} ${code}`).toContain('203.0.113.20');
|
||||
expect(hosted, `${locale} ${code}`).toContain('Fluxer');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
it('leads with the shared-network advice and never blames the reader', () => {
|
||||
const permanent = getErrorMessageUnsafe('GLOBAL_IP_BANNED', 'en-US', HOSTED);
|
||||
expect(permanent).toBe(
|
||||
`Fluxer blocked access from this network. ${SHARED_NETWORK} If you think this block is a mistake, email [email protected] and include your IP address, 203.0.113.20.`,
|
||||
);
|
||||
expect(getErrorMessageUnsafe('GLOBAL_IP_TEMPORARILY_BANNED', 'en-US', SELF_HOSTED)).toBe(
|
||||
`chat.example.org blocked access from this network. The block ends on Jan 12, 2027, 9:00 AM UTC. ${SHARED_NETWORK}`,
|
||||
);
|
||||
expect(getErrorMessageUnsafe('GLOBAL_IP_BANNED', 'en-US', {...HOSTED, reason: 'shown'})).toMatch(
|
||||
/^Fluxer blocked access from this network because of activity that broke its rules\. /,
|
||||
);
|
||||
for (const message of [permanent, getErrorMessageUnsafe('GLOBAL_IP_TEMPORARILY_BANNED', 'en-US', HOSTED)]) {
|
||||
expect(message).not.toMatch(/platform admin|sign in|\byou did\b/i);
|
||||
}
|
||||
});
|
||||
});
|
||||
describe('payment processing error', () => {
|
||||
const HOSTED = {supportEmail: '[email protected]'};
|
||||
|
||||
@@ -19,6 +19,47 @@ export const ERROR_I18N_MESSAGES = {
|
||||
'admin_and_system.instance_policy_transition_not_allowed': 'This instance policy change is not allowed.',
|
||||
'admin_and_system.admin_api_key_not_found': "Admin API key wasn't found.",
|
||||
'admin_and_system.deletion_failed': "We couldn't delete the resource. Please try again.",
|
||||
'admin_and_system.enforcement_account_closed': "This account is closed, so it can't be suspended.",
|
||||
'admin_and_system.enforcement_confirmations_required':
|
||||
'Confirm that the evidence is preserved and that any required report is filed.',
|
||||
'admin_and_system.enforcement_decision_ended': 'This decision has already ended.',
|
||||
'admin_and_system.enforcement_decision_owns_state':
|
||||
'An enforcement decision owns this restriction. End the decision instead.',
|
||||
'admin_and_system.enforcement_decision_replaced': 'A later decision replaced this one, so it can no longer be ended.',
|
||||
'admin_and_system.enforcement_deletion_started':
|
||||
'The deletion of this account has already started, so the decision can no longer be ended.',
|
||||
'admin_and_system.enforcement_evidence_dm_unreported':
|
||||
'Messages in direct messages can only be used as evidence when a linked report covers that conversation.',
|
||||
'admin_and_system.enforcement_evidence_not_allowed':
|
||||
'The messages being removed are saved as evidence, so leave out separate evidence messages.',
|
||||
'admin_and_system.enforcement_evidence_not_found': "One of the evidence messages wasn't found.",
|
||||
'admin_and_system.enforcement_evidence_not_subject':
|
||||
'Every evidence message must be from the account or community this decision is about.',
|
||||
'admin_and_system.enforcement_evidence_required': 'This decision needs at least one evidence message.',
|
||||
'admin_and_system.enforcement_facts_required': 'Add an evidence message or a note to the user.',
|
||||
'admin_and_system.enforcement_internal_note_required': 'Add an internal note in the X-Audit-Log-Reason header.',
|
||||
'admin_and_system.enforcement_kind_not_allowed': "This reason can't be used for this action.",
|
||||
'admin_and_system.enforcement_limit_end_invalid':
|
||||
'Only a reports limit has an end date, and it must be within the next 365 days.',
|
||||
'admin_and_system.enforcement_limit_not_allowed': "This reason can't be used for this limit.",
|
||||
'admin_and_system.enforcement_network_block_not_allowed':
|
||||
'Only a permanent suspension or a closure for a broken rule can block networks.',
|
||||
'admin_and_system.enforcement_network_shared':
|
||||
"Other accounts that aren't restricted were last active on this network, so it can't be blocked.",
|
||||
'admin_and_system.enforcement_network_unknown': "This account hasn't used this network in the last 30 days.",
|
||||
'admin_and_system.enforcement_outcome_not_allowed':
|
||||
'Only a reversal can end this kind of decision, because there is nothing to lift.',
|
||||
'admin_and_system.enforcement_permanent_required': 'Suspensions for this reason must be permanent.',
|
||||
'admin_and_system.enforcement_report_mismatch':
|
||||
'Every linked report must exist and be about the account or community this decision is about.',
|
||||
'admin_and_system.enforcement_report_required': 'Link at least one report when the source is a report.',
|
||||
'admin_and_system.enforcement_rights_holder_not_allowed':
|
||||
'A rights holder can only be given for copyright decisions.',
|
||||
'admin_and_system.enforcement_rights_holder_required':
|
||||
'Copyright decisions need the rights holder or the right concerned.',
|
||||
'admin_and_system.enforcement_statement_not_allowed': "Decisions for this reason can't include a note to the user.",
|
||||
'admin_and_system.flag_requires_enforcement_route':
|
||||
'This flag is part of a restriction. Change it through the suspension, deletion or feature limit routes.',
|
||||
'admin_and_system.general_error': 'Something went wrong. Please try again later.',
|
||||
'admin_and_system.invalid_acls_format': 'Invalid ACL format.',
|
||||
'admin_and_system.invalid_api_origin': 'Invalid API origin.',
|
||||
@@ -35,6 +76,7 @@ export const ERROR_I18N_MESSAGES = {
|
||||
'admin_and_system.invalid_timestamp': 'Invalid timestamp.',
|
||||
'admin_and_system.invalid_timezone_identifier': 'Invalid time zone identifier.',
|
||||
'admin_and_system.missing_acl': 'Missing ACL.',
|
||||
'admin_and_system.moderation_basis_required': 'Give a basis to delete the messages.',
|
||||
'admin_and_system.must_be_iso_timestamp': 'Must be a valid ISO timestamp.',
|
||||
'admin_and_system.processing_failed': "We couldn't process the request. Please try again.",
|
||||
'admin_and_system.response_validation_failed': 'Response validation failed: {errors}.',
|
||||
@@ -339,7 +381,6 @@ export const ERROR_I18N_MESSAGES = {
|
||||
'invites_and_gifts.unknown_gift_code': 'Unknown gift code.',
|
||||
'invites_and_packs.max_emojis_reached':
|
||||
"You've reached the maximum of {count, plural, one {# emoji} other {# emojis}}.",
|
||||
'limits.at_least_one_entry_required': 'At least one entry is required.',
|
||||
'limits.base64_length_invalid': 'Base64 string length must be between {min} and {maxLength} characters.',
|
||||
'limits.cannot_specify_before_and_after': "You can't specify both `before` and `after`.",
|
||||
'limits.content_exceeds_max_length':
|
||||
@@ -416,6 +457,8 @@ export const ERROR_I18N_MESSAGES = {
|
||||
'moderation_and_reports.cannot_report_yourself': "You can't report yourself.",
|
||||
'moderation_and_reports.invalid_dsa_report_target': 'Invalid DSA report target.',
|
||||
'moderation_and_reports.ip_ban_declined': 'This IP address cannot be added to the blocklist.',
|
||||
'moderation_and_reports.ip_ban_linked_to_decision':
|
||||
'This network block belongs to an enforcement decision. End the decision to remove it.',
|
||||
'moderation_and_reports.invalid_dsa_ticket': 'Invalid DSA ticket.',
|
||||
'moderation_and_reports.invalid_dsa_verification_code': 'Invalid DSA verification code.',
|
||||
'moderation_and_reports.invalid_report_flow_answers':
|
||||
@@ -424,16 +467,19 @@ export const ERROR_I18N_MESSAGES = {
|
||||
'moderation_and_reports.report_banned': "You've been banned from submitting reports.",
|
||||
'moderation_and_reports.report_flow_outdated':
|
||||
'The report form changed while you were filling it in. Start the report again.',
|
||||
'moderation_and_reports.report_outcome_invalid':
|
||||
'An actioned resolution needs an outcome other than no violation. A duplicate needs the report it repeats and takes no outcome. A no violation resolution takes no other outcome.',
|
||||
'moderation_and_reports.report_under_legal_hold': "This report is under a legal hold and can't be deleted.",
|
||||
'moderation_and_reports.unclaimed_account_cannot_submit_reports':
|
||||
'You need to complete your account setup before you can submit reports.',
|
||||
'moderation_and_reports.unknown_enforcement_decision': 'Unknown enforcement decision.',
|
||||
'moderation_and_reports.unknown_report': 'Unknown report.',
|
||||
'moderation_and_reports.user_is_not_banned': "This user isn't banned.",
|
||||
'names_and_normalization.name_empty_after_normalization': "Name can't be empty after normalization.",
|
||||
'permissions.global_ip_banned':
|
||||
'Your IP address {ipAddress} has been permanently blocked from the {product_name} API by platform administrators. {appealEmail, select, null {If you believe this is a mistake, contact the administrators of this instance to appeal.} other {If you believe this is a mistake, contact {appealEmail} to appeal.}} Include this IP address in your appeal.',
|
||||
'{reason, select, shown {{product_name} blocked access from this network because of activity that broke its rules.} other {{product_name} blocked access from this network.}} If you share this network, for example at school, at work, on public Wi-Fi, through your mobile carrier or a VPN, this block may have nothing to do with you. The quickest fix is to switch networks, for example to mobile data instead of Wi-Fi, or to turn your VPN on or off.{appealEmail, select, null {} other { If you think this block is a mistake, email {appealEmail} and include your IP address, {ipAddress}.}}',
|
||||
'permissions.global_ip_temporarily_banned':
|
||||
'Your IP address {ipAddress} has been temporarily blocked from the {product_name} API. The block lifts on its own when it expires. {appealEmail, select, null {If you think this is a mistake, contact the administrators of this instance and include this IP address.} other {If you think this is a mistake, contact {appealEmail} and include this IP address.}}',
|
||||
'{reason, select, shown {{product_name} blocked access from this network because of activity that broke its rules.} other {{product_name} blocked access from this network.}} The block ends on {expiresAt}. If you share this network, for example at school, at work, on public Wi-Fi, through your mobile carrier or a VPN, this block may have nothing to do with you. The quickest fix is to switch networks, for example to mobile data instead of Wi-Fi, or to turn your VPN on or off.{appealEmail, select, null {} other { If you think this block is a mistake, email {appealEmail} and include your IP address, {ipAddress}.}}',
|
||||
'permissions.missing_access': "You don't have access to this resource or feature.",
|
||||
'permissions.missing_permissions': "You don't have the permissions required to perform this action.",
|
||||
'permissions.user_banned_from_guild': 'This user is banned from this community.',
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "لا يمكن أن تكون قوائم التحكم بالوصول فارغة.",
|
||||
"admin_and_system.admin_api_key_not_found": "لم يتم العثور على مفتاح API الإداري.",
|
||||
"admin_and_system.deletion_failed": "لم نتمكن من حذف المورد. حاول مجددًا.",
|
||||
"admin_and_system.enforcement_account_closed": "هذا الحساب مغلق، لذا لا يمكن تعليقه.",
|
||||
"admin_and_system.enforcement_confirmations_required": "أكّد أن الأدلة محفوظة وأن أي بلاغ مطلوب قد قُدّم.",
|
||||
"admin_and_system.enforcement_decision_ended": "انتهى هذا القرار بالفعل.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "هذا التقييد تابع لقرار إنفاذ. أنهِ القرار بدلًا من ذلك.",
|
||||
"admin_and_system.enforcement_decision_replaced": "حلّ قرار لاحق محل هذا القرار، لذا لم يعد بالإمكان إنهاؤه.",
|
||||
"admin_and_system.enforcement_deletion_started": "بدأ حذف هذا الحساب بالفعل، لذا لم يعد بالإمكان إنهاء القرار.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "لا يمكن استخدام رسائل المحادثات المباشرة كأدلة إلا إذا كان هناك بلاغ مرتبط يشمل تلك المحادثة.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "تُحفظ الرسائل التي تتم إزالتها كأدلة، لذا لا تضف رسائل أدلة منفصلة.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "لم يتم العثور على إحدى رسائل الأدلة.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "يجب أن تكون كل رسالة دليل من الحساب أو المجتمع الذي يخصه هذا القرار.",
|
||||
"admin_and_system.enforcement_evidence_required": "يحتاج هذا القرار إلى رسالة دليل واحدة على الأقل.",
|
||||
"admin_and_system.enforcement_facts_required": "أضف رسالة دليل أو ملاحظة للمستخدم.",
|
||||
"admin_and_system.enforcement_internal_note_required": "أضف ملاحظة داخلية في الترويسة X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "لا يمكن استخدام هذا السبب لهذا الإجراء.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "تقييد البلاغات وحده له تاريخ انتهاء، ويجب أن يكون خلال الأيام الـ 365 القادمة.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "لا يمكن استخدام هذا السبب لهذا التقييد.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "لا يمكن حجب الشبكات إلا بتعليق دائم أو بإغلاق بسبب مخالفة قاعدة.",
|
||||
"admin_and_system.enforcement_network_shared": "كانت حسابات أخرى غير مقيّدة نشطة مؤخرًا على هذه الشبكة، لذا لا يمكن حجبها.",
|
||||
"admin_and_system.enforcement_network_unknown": "لم يستخدم هذا الحساب هذه الشبكة خلال آخر 30 يومًا.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "لا يمكن إنهاء هذا النوع من القرارات إلا بإلغائه، لأنه لا يوجد ما يمكن رفعه.",
|
||||
"admin_and_system.enforcement_permanent_required": "يجب أن يكون التعليق لهذا السبب دائمًا.",
|
||||
"admin_and_system.enforcement_report_mismatch": "يجب أن يكون كل بلاغ مرتبط موجودًا ويخص الحساب أو المجتمع الذي يخصه هذا القرار.",
|
||||
"admin_and_system.enforcement_report_required": "اربط بلاغًا واحدًا على الأقل عندما يكون المصدر بلاغًا.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "لا يمكن تحديد صاحب الحق إلا في قرارات حقوق الطبع والنشر.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "تحتاج قرارات حقوق الطبع والنشر إلى صاحب الحق أو الحق المعني.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "لا يمكن أن تتضمن القرارات لهذا السبب ملاحظة للمستخدم.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "هذه العلامة جزء من تقييد. غيّرها من خلال مسارات التعليق أو الحذف أو تقييد الميزات.",
|
||||
"admin_and_system.general_error": "حدث خطأ ما. حاول مجددًا لاحقًا.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "يجب توفير معرف المجتمع لفهارس البحث عن رسائل القنوات والأعضاء.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "هذا التغيير في سياسة المثيل غير مسموح به.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "الطابع الزمني غير صالح.",
|
||||
"admin_and_system.invalid_timezone_identifier": "معرف المنطقة الزمنية غير صالح.",
|
||||
"admin_and_system.missing_acl": "قائمة التحكم بالوصول مفقودة.",
|
||||
"admin_and_system.moderation_basis_required": "حدّد أساسًا لحذف الرسائل.",
|
||||
"admin_and_system.must_be_iso_timestamp": "يجب أن يكون طابعًا زمنيًا ISO صالحًا.",
|
||||
"admin_and_system.processing_failed": "لم نتمكن من معالجة الطلب. حاول مجددًا.",
|
||||
"admin_and_system.resource_locked": "هذا المورد قيد التعديل. حاول مجددًا بعد قليل.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "جارٍ استرداد رمز الهدية. حاول مجددًا بعد قليل.",
|
||||
"invites_and_gifts.unknown_gift_code": "رمز هدية غير معروف.",
|
||||
"invites_and_packs.max_emojis_reached": "لقد وصلت إلى الحد الأقصى وهو {count, plural, zero {# إيموجي} one {إيموجي واحد} two {إيموجيان} few {# إيموجيات} many {# إيموجي} other {# إيموجي}}.",
|
||||
"limits.at_least_one_entry_required": "مطلوب إدخال واحد على الأقل.",
|
||||
"limits.base64_length_invalid": "يجب أن يتراوح طول سلسلة Base64 بين {min} و{maxLength} حرفًا.",
|
||||
"limits.cannot_specify_before_and_after": "لا يمكنك تحديد `before` و`after` معًا.",
|
||||
"limits.content_exceeds_max_length": "يجب ألا يتجاوز طول النص {maxLength, plural, zero {# حرف} one {حرفًا واحدًا} two {حرفين} few {# أحرف} many {# حرفًا} other {# حرف}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "رمز تحقق DSA غير صالح.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "هذه الإجابات لا تتطابق مع نموذج الإبلاغ. ابدأ البلاغ من جديد.",
|
||||
"moderation_and_reports.ip_ban_declined": "لا يمكن إضافة عنوان IP هذا إلى قائمة الحظر.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "حجب الشبكة هذا تابع لقرار إنفاذ. أنهِ القرار لإزالته.",
|
||||
"moderation_and_reports.report_already_resolved": "تم حل البلاغ بالفعل.",
|
||||
"moderation_and_reports.report_banned": "تم حظرك من إرسال البلاغات.",
|
||||
"moderation_and_reports.report_flow_outdated": "تغيّر نموذج الإبلاغ أثناء تعبئتك له. ابدأ البلاغ من جديد.",
|
||||
"moderation_and_reports.report_outcome_invalid": "تتطلب تسوية البلاغ باتخاذ إجراء تحديد نتيجة غير عدم وجود مخالفة. وتتطلب تسوية البلاغ بوصفه مكررًا تحديد البلاغ الأصلي، ولا تقبل أي نتيجة. أما التسوية بعدم وجود مخالفة فلا تقبل أي نتيجة أخرى.",
|
||||
"moderation_and_reports.report_under_legal_hold": "هذا البلاغ خاضع لحجز قانوني ولا يمكن حذفه.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "تحتاج إلى إكمال إعداد حسابك قبل إرسال البلاغات.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "قرار إنفاذ غير معروف.",
|
||||
"moderation_and_reports.unknown_report": "بلاغ غير معروف.",
|
||||
"moderation_and_reports.user_is_not_banned": "المستخدم غير محظور.",
|
||||
"names_and_normalization.name_empty_after_normalization": "لا يمكن أن يكون الاسم فارغًا بعد التسوية.",
|
||||
"permissions.global_ip_banned": "تم حظر عنوان IP الخاص بك {ipAddress} نهائيًا من {product_name} API بواسطة مسؤولي المنصة. {appealEmail, select, null {إذا كنت تعتقد أن هذا خطأ، فتواصل مع مسؤولي هذا المثيل للاستئناف.} other {إذا كنت تعتقد أن هذا خطأ، فتواصل مع {appealEmail} للاستئناف.}} اذكر عنوان IP هذا في الاستئناف.",
|
||||
"permissions.global_ip_temporarily_banned": "تم حظر عنوان IP الخاص بك {ipAddress} مؤقتًا من {product_name} API. يُرفع الحظر تلقائيًا عند انتهاء مدته. {appealEmail, select, null {إذا كنت تعتقد أن هذا خطأ، فتواصل مع مسؤولي هذا المثيل واذكر عنوان IP هذا.} other {إذا كنت تعتقد أن هذا خطأ، فتواصل مع {appealEmail} واذكر عنوان IP هذا.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {حجب {product_name} الوصول من هذه الشبكة بسبب نشاط خالف قواعده.} other {حجب {product_name} الوصول من هذه الشبكة.}} إذا كنت تشارك هذه الشبكة مع آخرين، كما في المدرسة أو العمل أو على شبكة Wi-Fi عامة أو عبر شركة الاتصالات أو شبكة VPN، فقد لا يكون لهذا الحجب أي علاقة بك. أسرع حل هو تغيير الشبكة، مثل استخدام بيانات الجوال بدلًا من Wi-Fi، أو تشغيل شبكة VPN أو إيقافها.{appealEmail, select, null {} other { إذا كنت تعتقد أن هذا الحجب خطأ، فراسل {appealEmail} واذكر عنوان IP الخاص بك، {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {حجب {product_name} الوصول من هذه الشبكة بسبب نشاط خالف قواعده.} other {حجب {product_name} الوصول من هذه الشبكة.}} ينتهي الحجب في {expiresAt}. إذا كنت تشارك هذه الشبكة مع آخرين، كما في المدرسة أو العمل أو على شبكة Wi-Fi عامة أو عبر شركة الاتصالات أو شبكة VPN، فقد لا يكون لهذا الحجب أي علاقة بك. أسرع حل هو تغيير الشبكة، مثل استخدام بيانات الجوال بدلًا من Wi-Fi، أو تشغيل شبكة VPN أو إيقافها.{appealEmail, select, null {} other { إذا كنت تعتقد أن هذا الحجب خطأ، فراسل {appealEmail} واذكر عنوان IP الخاص بك، {ipAddress}.}}",
|
||||
"permissions.missing_access": "ليس لديك وصول إلى هذا المورد أو الميزة.",
|
||||
"permissions.missing_permissions": "لا تملك الأذونات المطلوبة لتنفيذ هذا الإجراء.",
|
||||
"permissions.user_banned_from_guild": "المستخدم محظور من هذا المجتمع.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL-ите не трябва да са празни.",
|
||||
"admin_and_system.admin_api_key_not_found": "Админ API ключът не беше намерен.",
|
||||
"admin_and_system.deletion_failed": "Не успяхме да изтрием ресурса. Опитай отново.",
|
||||
"admin_and_system.enforcement_account_closed": "Този акаунт е закрит, затова не може да бъде спрян.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Потвърди, че доказателствата са запазени и че всеки задължителен доклад е подаден.",
|
||||
"admin_and_system.enforcement_decision_ended": "Това решение вече е приключило.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Това ограничение е част от решение за прилагане на мерки. Вместо това прекрати решението.",
|
||||
"admin_and_system.enforcement_decision_replaced": "По-късно решение замени това, затова то вече не може да бъде прекратено.",
|
||||
"admin_and_system.enforcement_deletion_started": "Изтриването на този акаунт вече е започнало, затова решението вече не може да бъде прекратено.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Директни съобщения могат да се използват като доказателство само ако свързан сигнал обхваща този разговор.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Премахваните съобщения се запазват като доказателство, затова не добавяй отделни съобщения за доказателство.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Едно от съобщенията за доказателство не е намерено.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Всяко съобщение за доказателство трябва да е от акаунта или общността, за които се отнася това решение.",
|
||||
"admin_and_system.enforcement_evidence_required": "Това решение изисква поне едно съобщение за доказателство.",
|
||||
"admin_and_system.enforcement_facts_required": "Добави съобщение за доказателство или бележка към потребителя.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Добави вътрешна бележка в заглавката X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Тази причина не може да се използва за това действие.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Само ограничението за сигнали има крайна дата и тя трябва да е в следващите 365 дни.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Тази причина не може да се използва за това ограничение.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Мрежи могат да се блокират само при безсрочно спиране или закриване заради нарушено правило.",
|
||||
"admin_and_system.enforcement_network_shared": "Други акаунти без ограничения последно са били активни в тази мрежа, затова тя не може да бъде блокирана.",
|
||||
"admin_and_system.enforcement_network_unknown": "Този акаунт не е използвал тази мрежа през последните 30 дни.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Този вид решение може да бъде прекратено само чрез отмяна, защото няма какво да се премахне.",
|
||||
"admin_and_system.enforcement_permanent_required": "Спиранията по тази причина трябва да са безсрочни.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Всеки свързан сигнал трябва да съществува и да се отнася за акаунта или общността, за които е това решение.",
|
||||
"admin_and_system.enforcement_report_required": "Когато източникът е сигнал, свържи поне един сигнал.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Носител на права може да се посочи само при решения за авторско право.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Решенията за авторско право изискват носителя на правата или засегнатото право.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Решенията по тази причина не могат да съдържат бележка към потребителя.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Този флаг е част от ограничение. Промени го чрез маршрутите за спиране, изтриване или ограничаване на функции.",
|
||||
"admin_and_system.general_error": "Нещо се обърка. Опитай отново по-късно.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "За индексите за търсене на съобщения в канали и на членове е необходимо ID на общността.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Тази промяна на правилата на инстанцията не е позволена.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Невалиден времеви печат.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Невалиден идентификатор на часовата зона.",
|
||||
"admin_and_system.missing_acl": "Липсва ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Посочи основание за изтриването на съобщенията.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Трябва да е валиден ISO времеви печат.",
|
||||
"admin_and_system.processing_failed": "Не успяхме да обработим заявката. Опитай отново.",
|
||||
"admin_and_system.resource_locked": "Този ресурс в момента се променя. Опитай отново след малко.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Осребряването на кода за подарък е в процес. Опитай отново след малко.",
|
||||
"invites_and_gifts.unknown_gift_code": "Неизвестен код за подарък.",
|
||||
"invites_and_packs.max_emojis_reached": "Достигна максимума от {count} {count, plural, one {емоджи} other {емоджита}}.",
|
||||
"limits.at_least_one_entry_required": "Необходим е поне един запис.",
|
||||
"limits.base64_length_invalid": "Дължината на Base64 низа трябва да е между {min} и {maxLength} знака.",
|
||||
"limits.cannot_specify_before_and_after": "Не можеш да зададеш едновременно `before` и `after`.",
|
||||
"limits.content_exceeds_max_length": "Текстът не може да надвишава {maxLength} {maxLength, plural, one {знак} other {знака}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Невалиден код за потвърждение на DSA.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Тези отговори не съответстват на формуляра за сигнал. Започни сигнала отначало.",
|
||||
"moderation_and_reports.ip_ban_declined": "Този IP адрес не може да бъде добавен към списъка с блокирани адреси.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Това блокиране на мрежа принадлежи на решение за прилагане на мерки. Прекрати решението, за да го премахнеш.",
|
||||
"moderation_and_reports.report_already_resolved": "Сигналът вече е разгледан.",
|
||||
"moderation_and_reports.report_banned": "Имаш забрана да подаваш сигнали.",
|
||||
"moderation_and_reports.report_flow_outdated": "Формулярът за сигнал се промени, докато го попълваше. Започни сигнала отначало.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Резолюцията „предприети мерки“ изисква резултат, различен от „няма нарушение“. Резолюцията „дубликат“ изисква сигнала, който повтаря, и не приема резултат. Резолюцията „няма нарушение“ не приема друг резултат.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Този сигнал е под правно задържане и не може да бъде изтрит.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Трябва да завършиш настройката на акаунта си, преди да можеш да подаваш сигнали.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Непознато решение за прилагане на мерки.",
|
||||
"moderation_and_reports.unknown_report": "Неизвестен сигнал.",
|
||||
"moderation_and_reports.user_is_not_banned": "Този потребител няма наложена забрана.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Името не може да бъде празно след нормализиране.",
|
||||
"permissions.global_ip_banned": "IP адресът ти {ipAddress} е блокиран за постоянно за достъп до {product_name} API от администраторите на платформата. {appealEmail, select, null {Ако смяташ, че това е грешка, свържи се с администраторите на тази инстанция, за да обжалваш.} other {Ако смяташ, че това е грешка, свържи се със {appealEmail}, за да обжалваш.}} Включи този IP адрес в обжалването.",
|
||||
"permissions.global_ip_temporarily_banned": "IP адресът ти {ipAddress} е временно блокиран за достъп до {product_name} API. Блокирането се премахва автоматично, когато изтече. {appealEmail, select, null {Ако смяташ, че това е грешка, свържи се с администраторите на тази инстанция и посочи този IP адрес.} other {Ако смяташ, че това е грешка, свържи се със {appealEmail} и посочи този IP адрес.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} блокира достъпа от тази мрежа заради дейност, която нарушава правилата му.} other {{product_name} блокира достъпа от тази мрежа.}} Ако ползваш тази мрежа заедно с други хора, например в училище, на работа, в обществена Wi-Fi мрежа, чрез мобилния си оператор или VPN, това блокиране може да няма нищо общо с теб. Най-бързото решение е да смениш мрежата, например да минеш от Wi-Fi на мобилни данни, или да включиш или изключиш VPN.{appealEmail, select, null {} other { Ако смяташ, че това блокиране е грешка, пиши на {appealEmail} и посочи своя IP адрес: {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} блокира достъпа от тази мрежа заради дейност, която нарушава правилата му.} other {{product_name} блокира достъпа от тази мрежа.}} Блокирането е в сила до {expiresAt}. Ако ползваш тази мрежа заедно с други хора, например в училище, на работа, в обществена Wi-Fi мрежа, чрез мобилния си оператор или VPN, това блокиране може да няма нищо общо с теб. Най-бързото решение е да смениш мрежата, например да минеш от Wi-Fi на мобилни данни, или да включиш или изключиш VPN.{appealEmail, select, null {} other { Ако смяташ, че това блокиране е грешка, пиши на {appealEmail} и посочи своя IP адрес: {ipAddress}.}}",
|
||||
"permissions.missing_access": "Нямаш достъп до този ресурс или функция.",
|
||||
"permissions.missing_permissions": "Нямаш необходимите разрешения, за да изпълниш това действие.",
|
||||
"permissions.user_banned_from_guild": "Този потребител има наложена забрана в тази общност.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "Seznamy řízení přístupu (ACL) nesmějí být prázdné.",
|
||||
"admin_and_system.admin_api_key_not_found": "Klíč API správce se nenašel.",
|
||||
"admin_and_system.deletion_failed": "Nepodařilo se odstranit zdroj. Zkuste to znovu.",
|
||||
"admin_and_system.enforcement_account_closed": "Tento účet je zrušen, takže ho nelze pozastavit.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Potvrďte, že jsou důkazy zajištěny a že bylo podáno každé povinné hlášení.",
|
||||
"admin_and_system.enforcement_decision_ended": "Toto rozhodnutí už skončilo.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Toto omezení patří k rozhodnutí o opatření. Místo toho ukončete rozhodnutí.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Toto rozhodnutí bylo nahrazeno pozdějším, takže ho už nelze ukončit.",
|
||||
"admin_and_system.enforcement_deletion_started": "Mazání tohoto účtu už začalo, takže rozhodnutí už nelze ukončit.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Zprávy z konverzací v přímých zprávách lze použít jako důkaz, jen pokud danou konverzaci pokrývá propojené nahlášení.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Odstraňované zprávy se ukládají jako důkazy, proto nepřidávejte samostatné důkazní zprávy.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Jedna z důkazních zpráv nebyla nalezena.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Každá důkazní zpráva musí pocházet z účtu nebo komunity, které se toto rozhodnutí týká.",
|
||||
"admin_and_system.enforcement_evidence_required": "Toto rozhodnutí potřebuje alespoň jednu důkazní zprávu.",
|
||||
"admin_and_system.enforcement_facts_required": "Přidejte důkazní zprávu nebo poznámku pro uživatele.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Přidejte interní poznámku do hlavičky X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Tento důvod nelze pro tuto akci použít.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Datum konce má jen omezení nahlašování a musí být v příštích 365 dnech.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Tento důvod nelze pro toto omezení použít.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Blokovat sítě může jen trvalé pozastavení nebo zrušení účtu za porušení pravidla.",
|
||||
"admin_and_system.enforcement_network_shared": "V této síti byly naposledy aktivní jiné účty bez omezení, takže ji nelze zablokovat.",
|
||||
"admin_and_system.enforcement_network_unknown": "Tento účet tuto síť za posledních 30 dní nepoužil.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Tento druh rozhodnutí lze ukončit jen zrušením, protože není co uvolnit.",
|
||||
"admin_and_system.enforcement_permanent_required": "Pozastavení z tohoto důvodu musí být trvalá.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Každé propojené nahlášení musí existovat a týkat se účtu nebo komunity, které se toto rozhodnutí týká.",
|
||||
"admin_and_system.enforcement_report_required": "Pokud je zdrojem nahlášení, propojte alespoň jedno nahlášení.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Držitele práv lze uvést jen u rozhodnutí o autorských právech.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Rozhodnutí o autorských právech vyžadují držitele práv nebo dotčené právo.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Rozhodnutí z tohoto důvodu nemohou obsahovat poznámku pro uživatele.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Tento příznak je součástí omezení. Změňte ho přes cesty pro pozastavení, smazání nebo omezení funkcí.",
|
||||
"admin_and_system.general_error": "Něco se pokazilo. Zkuste to později.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Pro vyhledávací indexy zpráv v kanálech a členů je nutné zadat ID komunity.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Tato změna zásad instance není povolena.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Neplatné časové razítko.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Neplatný identifikátor časového pásma.",
|
||||
"admin_and_system.missing_acl": "ACL chybí.",
|
||||
"admin_and_system.moderation_basis_required": "Uveďte základ pro smazání zpráv.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Je vyžadováno platné časové razítko ve formátu ISO.",
|
||||
"admin_and_system.processing_failed": "Nepodařilo se zpracovat požadavek. Zkuste to znovu.",
|
||||
"admin_and_system.resource_locked": "Tento zdroj je právě upravován. Zkuste to prosím znovu za chvíli.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Uplatnění dárkového kódu probíhá. Zkuste to znovu za chvíli.",
|
||||
"invites_and_gifts.unknown_gift_code": "Neznámý dárkový kód.",
|
||||
"invites_and_packs.max_emojis_reached": "Dosáhli jste limitu {count, plural, one {# emoji} few {# emoji} many {# emoji} other {# emoji}}.",
|
||||
"limits.at_least_one_entry_required": "Je vyžadován alespoň jeden záznam.",
|
||||
"limits.base64_length_invalid": "Řetězec Base64 musí mít {min} až {maxLength} znaků.",
|
||||
"limits.cannot_specify_before_and_after": "Nemůžete zadat `before` i `after` zároveň.",
|
||||
"limits.content_exceeds_max_length": "Text nesmí přesáhnout {maxLength, plural, one {# znak} few {# znaky} many {# znaku} other {# znaků}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Neplatný ověřovací kód DSA.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Tyto odpovědi neodpovídají formuláři nahlášení. Začněte nahlášení znovu.",
|
||||
"moderation_and_reports.ip_ban_declined": "Tuto IP adresu nelze přidat na seznam blokovaných.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Toto blokování sítě patří k rozhodnutí o opatření. Pro jeho odstranění ukončete rozhodnutí.",
|
||||
"moderation_and_reports.report_already_resolved": "Nahlášení již bylo vyřešeno.",
|
||||
"moderation_and_reports.report_banned": "Máte zakázáno odesílat nahlášení.",
|
||||
"moderation_and_reports.report_flow_outdated": "Formulář nahlášení se během jeho vyplňování změnil. Nahlášení začněte znovu.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Vyřízení „opatření přijato“ vyžaduje jiný výsledek než „bez porušení“. Vyřízení „duplicitní“ vyžaduje nahlášení, které opakuje, a žádný výsledek nepřijímá. Vyřízení „bez porušení“ jiný výsledek nepřijímá.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Toto nahlášení podléhá právnímu zadržení a nelze ho smazat.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Než budete moci odesílat nahlášení, musíte dokončit registraci účtu.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Neznámé rozhodnutí o opatření.",
|
||||
"moderation_and_reports.unknown_report": "Neznámé nahlášení.",
|
||||
"moderation_and_reports.user_is_not_banned": "Tento uživatel není zabanován.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Název nemůže být po normalizaci prázdný.",
|
||||
"permissions.global_ip_banned": "Vaše IP adresa {ipAddress} byla správci platformy trvale zablokována pro {product_name} API. {appealEmail, select, null {Pokud se domníváte, že jde o chybu, podejte odvolání u správců této instance.} other {Pokud se domníváte, že jde o chybu, podejte odvolání na adrese {appealEmail}.}} V odvolání uveďte tuto IP adresu.",
|
||||
"permissions.global_ip_temporarily_banned": "Vaše IP adresa {ipAddress} byla dočasně zablokována pro {product_name} API. Blokace se po vypršení sama zruší. {appealEmail, select, null {Pokud se domníváte, že jde o chybu, kontaktujte správce této instance a uveďte tuto IP adresu.} other {Pokud se domníváte, že jde o chybu, napište na adresu {appealEmail} a uveďte tuto IP adresu.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} zablokoval přístup z této sítě kvůli aktivitě, která porušila jeho pravidla.} other {{product_name} zablokoval přístup z této sítě.}} Pokud tuto síť sdílíte s dalšími lidmi, například ve škole, v práci, na veřejné Wi-Fi, u mobilního operátora nebo přes VPN, toto blokování s vámi nemusí vůbec souviset. Nejrychleji pomůže přepnout na jinou síť, například z Wi-Fi na mobilní data, nebo zapnout či vypnout VPN.{appealEmail, select, null {} other { Pokud si myslíte, že je toto blokování omyl, napište na {appealEmail} a uveďte svou IP adresu: {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} zablokoval přístup z této sítě kvůli aktivitě, která porušila jeho pravidla.} other {{product_name} zablokoval přístup z této sítě.}} Blokování platí do {expiresAt}. Pokud tuto síť sdílíte s dalšími lidmi, například ve škole, v práci, na veřejné Wi-Fi, u mobilního operátora nebo přes VPN, toto blokování s vámi nemusí vůbec souviset. Nejrychleji pomůže přepnout na jinou síť, například z Wi-Fi na mobilní data, nebo zapnout či vypnout VPN.{appealEmail, select, null {} other { Pokud si myslíte, že je toto blokování omyl, napište na {appealEmail} a uveďte svou IP adresu: {ipAddress}.}}",
|
||||
"permissions.missing_access": "Nemáte přístup k tomuto zdroji nebo funkci.",
|
||||
"permissions.missing_permissions": "Nemáte potřebná oprávnění k provedení této akce.",
|
||||
"permissions.user_banned_from_guild": "Tento uživatel má v této komunitě ban.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL'er kan ikke være tomme.",
|
||||
"admin_and_system.admin_api_key_not_found": "Administrator-API-nøglen blev ikke fundet.",
|
||||
"admin_and_system.deletion_failed": "Ressourcen kunne ikke slettes. Prøv igen.",
|
||||
"admin_and_system.enforcement_account_closed": "Denne konto er lukket, så den kan ikke suspenderes.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Bekræft, at beviserne er sikret, og at enhver påkrævet indberetning er indgivet.",
|
||||
"admin_and_system.enforcement_decision_ended": "Denne afgørelse er allerede afsluttet.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Denne begrænsning hører til en håndhævelsesafgørelse. Afslut afgørelsen i stedet.",
|
||||
"admin_and_system.enforcement_decision_replaced": "En senere afgørelse har erstattet denne, så den kan ikke længere afsluttes.",
|
||||
"admin_and_system.enforcement_deletion_started": "Sletningen af denne konto er allerede startet, så afgørelsen kan ikke længere afsluttes.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Beskeder i direkte beskeder kan kun bruges som bevis, når en tilknyttet anmeldelse dækker den samtale.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "De beskeder, der fjernes, gemmes som bevis, så udelad separate bevisbeskeder.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "En af bevisbeskederne blev ikke fundet.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Alle bevisbeskeder skal stamme fra den konto eller det fællesskab, som denne afgørelse handler om.",
|
||||
"admin_and_system.enforcement_evidence_required": "Denne afgørelse kræver mindst én bevisbesked.",
|
||||
"admin_and_system.enforcement_facts_required": "Tilføj en bevisbesked eller en besked til brugeren.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Tilføj en intern note i headeren X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Denne årsag kan ikke bruges til denne handling.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Kun en begrænsning af anmeldelser har en slutdato, og den skal ligge inden for de næste 365 dage.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Denne årsag kan ikke bruges til denne begrænsning.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Kun en permanent suspendering eller en lukning for brud på en regel kan blokere netværk.",
|
||||
"admin_and_system.enforcement_network_shared": "Andre konti, der ikke er begrænset, var senest aktive på dette netværk, så det kan ikke blokeres.",
|
||||
"admin_and_system.enforcement_network_unknown": "Denne konto har ikke brugt dette netværk inden for de seneste 30 dage.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Kun en omgørelse kan afslutte denne type afgørelse, fordi der ikke er noget at ophæve.",
|
||||
"admin_and_system.enforcement_permanent_required": "Suspenderinger af denne årsag skal være permanente.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Alle tilknyttede anmeldelser skal findes og handle om den konto eller det fællesskab, som denne afgørelse handler om.",
|
||||
"admin_and_system.enforcement_report_required": "Tilknyt mindst én anmeldelse, når kilden er en anmeldelse.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "En rettighedshaver kan kun angives ved afgørelser om ophavsret.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Afgørelser om ophavsret kræver rettighedshaveren eller den berørte rettighed.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Afgørelser af denne årsag må ikke indeholde en besked til brugeren.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Dette flag er en del af en begrænsning. Ændr det via ruterne for suspendering, sletning eller funktionsbegrænsning.",
|
||||
"admin_and_system.general_error": "Noget gik galt. Prøv igen senere.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Et fællesskabs-id er påkrævet for søgeindekser over kanalbeskeder og medlemmer.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Denne ændring af instanspolitikken er ikke tilladt.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Ugyldigt tidsstempel.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Ugyldig tidszoneidentifikator.",
|
||||
"admin_and_system.missing_acl": "Manglende ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Angiv et grundlag for at slette beskederne.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Skal være et gyldigt ISO-tidsstempel.",
|
||||
"admin_and_system.processing_failed": "Anmodningen kunne ikke behandles. Prøv igen.",
|
||||
"admin_and_system.resource_locked": "Denne ressource ændres i øjeblikket. Prøv igen om lidt.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Indløsning af gavekode er i gang. Prøv igen om et øjeblik.",
|
||||
"invites_and_gifts.unknown_gift_code": "Ukendt gavekode.",
|
||||
"invites_and_packs.max_emojis_reached": "Du har nået grænsen på {count, plural, one {# emoji} other {# emojis}}.",
|
||||
"limits.at_least_one_entry_required": "Mindst ét element er nødvendigt.",
|
||||
"limits.base64_length_invalid": "Base64-strengens længde skal være mellem {min} og {maxLength} tegn.",
|
||||
"limits.cannot_specify_before_and_after": "Du kan ikke bruge både `before` og `after`.",
|
||||
"limits.content_exceeds_max_length": "Teksten må ikke overstige {maxLength} {maxLength, plural, one {tegn} other {tegn}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Ugyldig DSA-bekræftelseskode.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Disse svar passer ikke til anmeldelsesformularen. Start anmeldelsen forfra.",
|
||||
"moderation_and_reports.ip_ban_declined": "Denne IP-adresse kan ikke føjes til bloklisten.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Denne netværksblokering hører til en håndhævelsesafgørelse. Afslut afgørelsen for at fjerne den.",
|
||||
"moderation_and_reports.report_already_resolved": "Anmeldelsen er allerede afsluttet.",
|
||||
"moderation_and_reports.report_banned": "Du er blevet udelukket fra at indsende anmeldelser.",
|
||||
"moderation_and_reports.report_flow_outdated": "Anmeldelsesformularen blev ændret, mens du udfyldte den. Start anmeldelsen forfra.",
|
||||
"moderation_and_reports.report_outcome_invalid": "En afslutning med tiltag kræver et andet udfald end \"ingen overtrædelse\". En dublet kræver den anmeldelse, den gentager, og må ikke have et udfald. En afslutning uden overtrædelse må ikke have et andet udfald.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Denne anmeldelse er omfattet af et retligt tilbagehold og kan ikke slettes.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Du skal fuldføre oprettelsen af din konto, før du kan indsende anmeldelser.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Ukendt håndhævelsesafgørelse.",
|
||||
"moderation_and_reports.unknown_report": "Ukendt anmeldelse.",
|
||||
"moderation_and_reports.user_is_not_banned": "Denne bruger er ikke udelukket.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Navnet må ikke være tomt efter normalisering.",
|
||||
"permissions.global_ip_banned": "Din IP-adresse {ipAddress} er permanent blokeret fra {product_name} API af platformadministratorer. {appealEmail, select, null {Hvis du mener, at dette er en fejl, kan du kontakte administratorerne af denne instans for at klage.} other {Hvis du mener, at dette er en fejl, kan du kontakte {appealEmail} for at klage.}} Medtag denne IP-adresse i klagen.",
|
||||
"permissions.global_ip_temporarily_banned": "Din IP-adresse {ipAddress} er midlertidigt blokeret fra {product_name} API. Blokeringen ophæves automatisk, når den udløber. {appealEmail, select, null {Hvis du mener, at dette er en fejl, kan du kontakte administratorerne af denne instans og oplyse denne IP-adresse.} other {Hvis du mener, at dette er en fejl, kan du kontakte {appealEmail} og oplyse denne IP-adresse.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} har blokeret adgang fra dette netværk på grund af aktivitet, der brød reglerne.} other {{product_name} har blokeret adgang fra dette netværk.}} Hvis du deler dette netværk med andre, f.eks. i skolen, på arbejdet, på offentligt Wi-Fi, via dit mobilselskab eller en VPN, har blokeringen måske intet med dig at gøre. Den hurtigste løsning er at skifte netværk, f.eks. til mobildata i stedet for Wi-Fi, eller at slå din VPN til eller fra.{appealEmail, select, null {} other { Hvis du mener, at blokeringen er en fejl, så send en e-mail til {appealEmail}, og oplys din IP-adresse, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} har blokeret adgang fra dette netværk på grund af aktivitet, der brød reglerne.} other {{product_name} har blokeret adgang fra dette netværk.}} Blokeringen ophører den {expiresAt}. Hvis du deler dette netværk med andre, f.eks. i skolen, på arbejdet, på offentligt Wi-Fi, via dit mobilselskab eller en VPN, har blokeringen måske intet med dig at gøre. Den hurtigste løsning er at skifte netværk, f.eks. til mobildata i stedet for Wi-Fi, eller at slå din VPN til eller fra.{appealEmail, select, null {} other { Hvis du mener, at blokeringen er en fejl, så send en e-mail til {appealEmail}, og oplys din IP-adresse, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Du har ikke adgang til denne ressource eller funktion.",
|
||||
"permissions.missing_permissions": "Du har ikke de nødvendige tilladelser til at udføre denne handling.",
|
||||
"permissions.user_banned_from_guild": "Denne bruger er udelukket fra dette fællesskab.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACLs dürfen nicht leer sein.",
|
||||
"admin_and_system.admin_api_key_not_found": "Admin-API-Schlüssel wurde nicht gefunden.",
|
||||
"admin_and_system.deletion_failed": "Wir konnten die Ressource nicht löschen. Bitte versuche es erneut.",
|
||||
"admin_and_system.enforcement_account_closed": "Dieser Account ist geschlossen und kann daher nicht gesperrt werden.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Bestätige, dass die Beweise gesichert sind und jede vorgeschriebene Meldung erstattet ist.",
|
||||
"admin_and_system.enforcement_decision_ended": "Diese Entscheidung ist bereits beendet.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Diese Einschränkung gehört zu einer Durchsetzungsentscheidung. Beende stattdessen die Entscheidung.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Eine spätere Entscheidung hat diese ersetzt, daher kann sie nicht mehr beendet werden.",
|
||||
"admin_and_system.enforcement_deletion_started": "Die Löschung dieses Accounts hat bereits begonnen, daher kann die Entscheidung nicht mehr beendet werden.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Nachrichten aus Direktnachrichten können nur als Beweis genutzt werden, wenn eine verknüpfte Meldung diese Unterhaltung abdeckt.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Die entfernten Nachrichten werden als Beweis gespeichert, lass separate Beweisnachrichten also weg.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Eine der Beweisnachrichten wurde nicht gefunden.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Jede Beweisnachricht muss von dem Account oder der Community stammen, um die es in dieser Entscheidung geht.",
|
||||
"admin_and_system.enforcement_evidence_required": "Diese Entscheidung braucht mindestens eine Beweisnachricht.",
|
||||
"admin_and_system.enforcement_facts_required": "Füge eine Beweisnachricht oder einen Hinweis an die Person hinzu.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Gib eine interne Notiz im Header X-Audit-Log-Reason an.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Dieser Grund kann für diese Aktion nicht verwendet werden.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Nur eine Einschränkung von Meldungen hat ein Enddatum, und es muss innerhalb der nächsten 365 Tage liegen.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Dieser Grund kann für diese Einschränkung nicht verwendet werden.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Nur eine dauerhafte Sperre oder eine Schließung wegen eines Regelverstoßes kann Netzwerke sperren.",
|
||||
"admin_and_system.enforcement_network_shared": "In diesem Netzwerk waren zuletzt andere Accounts aktiv, die nicht eingeschränkt sind, daher kann es nicht gesperrt werden.",
|
||||
"admin_and_system.enforcement_network_unknown": "Dieser Account hat dieses Netzwerk in den letzten 30 Tagen nicht genutzt.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Diese Art von Entscheidung kann nur durch eine Rücknahme beendet werden, weil es nichts aufzuheben gibt.",
|
||||
"admin_and_system.enforcement_permanent_required": "Sperren aus diesem Grund müssen dauerhaft sein.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Jede verknüpfte Meldung muss existieren und den Account oder die Community betreffen, um die es in dieser Entscheidung geht.",
|
||||
"admin_and_system.enforcement_report_required": "Verknüpfe mindestens eine Meldung, wenn die Quelle eine Meldung ist.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Ein Rechteinhaber kann nur bei Urheberrechtsentscheidungen angegeben werden.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Urheberrechtsentscheidungen brauchen den Rechteinhaber oder das betroffene Recht.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Entscheidungen aus diesem Grund dürfen keinen Hinweis an die Person enthalten.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Dieses Flag gehört zu einer Einschränkung. Ändere es über die Routen für Sperre, Löschung oder Funktionseinschränkung.",
|
||||
"admin_and_system.general_error": "Etwas ist schiefgelaufen. Bitte versuche es später erneut.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Für Kanalnachrichten- und Mitgliedersuchindizes ist eine Community-ID erforderlich.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Diese Änderung der Instanzrichtlinie ist nicht erlaubt.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Ungültiger Zeitstempel.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Ungültige Zeitzonen-ID.",
|
||||
"admin_and_system.missing_acl": "ACL fehlt.",
|
||||
"admin_and_system.moderation_basis_required": "Gib eine Grundlage an, um die Nachrichten zu löschen.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Es muss ein gültiger ISO-Zeitstempel sein.",
|
||||
"admin_and_system.processing_failed": "Wir konnten die Anfrage nicht verarbeiten. Bitte versuche es erneut.",
|
||||
"admin_and_system.resource_locked": "Diese Ressource wird gerade geändert. Bitte versuche es in Kürze erneut.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Der Geschenkcode wird gerade eingelöst. Versuche es gleich noch einmal.",
|
||||
"invites_and_gifts.unknown_gift_code": "Unbekannter Geschenkcode.",
|
||||
"invites_and_packs.max_emojis_reached": "Du hast die maximale Anzahl von {count, plural, one {# Emoji} other {# Emojis}} erreicht.",
|
||||
"limits.at_least_one_entry_required": "Mindestens ein Eintrag ist erforderlich.",
|
||||
"limits.base64_length_invalid": "Die Länge der Base64-Zeichenkette muss zwischen {min} und {maxLength} Zeichen liegen.",
|
||||
"limits.cannot_specify_before_and_after": "Du kannst nicht gleichzeitig `before` und `after` angeben.",
|
||||
"limits.content_exceeds_max_length": "Text darf maximal {maxLength, plural, one {# Zeichen} other {# Zeichen}} lang sein.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Ungültiger DSA-Bestätigungscode.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Diese Antworten passen nicht zum Meldeformular. Starte die Meldung erneut.",
|
||||
"moderation_and_reports.ip_ban_declined": "Diese IP-Adresse kann nicht zur Blockierliste hinzugefügt werden.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Diese Netzwerksperre gehört zu einer Durchsetzungsentscheidung. Beende die Entscheidung, um sie aufzuheben.",
|
||||
"moderation_and_reports.report_already_resolved": "Meldung bereits erledigt.",
|
||||
"moderation_and_reports.report_banned": "Du bist für das Einreichen von Meldungen gesperrt.",
|
||||
"moderation_and_reports.report_flow_outdated": "Das Meldeformular hat sich geändert, während du es ausgefüllt hast. Starte die Meldung erneut.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Ein Abschluss mit Maßnahme braucht ein anderes Ergebnis als „kein Verstoß“. Ein Duplikat braucht die Meldung, die es wiederholt, und darf kein Ergebnis haben. Ein Abschluss ohne Verstoß darf kein anderes Ergebnis haben.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Diese Meldung unterliegt einer rechtlichen Aufbewahrungspflicht und kann nicht gelöscht werden.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Du musst die Einrichtung deines Accounts abschließen, bevor du Meldungen einreichen kannst.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Unbekannte Durchsetzungsentscheidung.",
|
||||
"moderation_and_reports.unknown_report": "Unbekannte Meldung.",
|
||||
"moderation_and_reports.user_is_not_banned": "Dieser Benutzer ist nicht gebannt.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Der Name darf nach der Normalisierung nicht leer bleiben.",
|
||||
"permissions.global_ip_banned": "Deine IP-Adresse {ipAddress} wurde von Plattformadministratoren dauerhaft von der {product_name} API gesperrt. {appealEmail, select, null {Wenn du glaubst, dass dies ein Fehler ist, kontaktiere die Administratoren dieser Instanz, um Einspruch einzulegen.} other {Wenn du glaubst, dass dies ein Fehler ist, kontaktiere {appealEmail}, um Einspruch einzulegen.}} Gib diese IP-Adresse in deinem Einspruch an.",
|
||||
"permissions.global_ip_temporarily_banned": "Deine IP-Adresse {ipAddress} wurde vorübergehend von der {product_name} API gesperrt. Die Sperre wird automatisch aufgehoben, sobald sie abläuft. {appealEmail, select, null {Wenn du glaubst, dass dies ein Fehler ist, kontaktiere die Administratoren dieser Instanz und gib diese IP-Adresse an.} other {Wenn du glaubst, dass dies ein Fehler ist, kontaktiere {appealEmail} und gib diese IP-Adresse an.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} hat den Zugriff aus diesem Netzwerk wegen Aktivitäten blockiert, die gegen die Regeln verstoßen haben.} other {{product_name} hat den Zugriff aus diesem Netzwerk blockiert.}} Wenn du dieses Netzwerk mit anderen teilst, zum Beispiel in der Schule, bei der Arbeit, in einem öffentlichen WLAN, über deinen Mobilfunkanbieter oder ein VPN, hat diese Sperre vielleicht nichts mit dir zu tun. Am schnellsten hilft es, das Netzwerk zu wechseln, zum Beispiel zu mobilen Daten statt WLAN, oder dein VPN ein- oder auszuschalten.{appealEmail, select, null {} other { Wenn du glaubst, dass diese Sperre ein Fehler ist, sende eine E-Mail an {appealEmail} und gib deine IP-Adresse an: {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} hat den Zugriff aus diesem Netzwerk wegen Aktivitäten blockiert, die gegen die Regeln verstoßen haben.} other {{product_name} hat den Zugriff aus diesem Netzwerk blockiert.}} Die Sperre endet am {expiresAt}. Wenn du dieses Netzwerk mit anderen teilst, zum Beispiel in der Schule, bei der Arbeit, in einem öffentlichen WLAN, über deinen Mobilfunkanbieter oder ein VPN, hat diese Sperre vielleicht nichts mit dir zu tun. Am schnellsten hilft es, das Netzwerk zu wechseln, zum Beispiel zu mobilen Daten statt WLAN, oder dein VPN ein- oder auszuschalten.{appealEmail, select, null {} other { Wenn du glaubst, dass diese Sperre ein Fehler ist, sende eine E-Mail an {appealEmail} und gib deine IP-Adresse an: {ipAddress}.}}",
|
||||
"permissions.missing_access": "Du hast keinen Zugriff auf diese Ressource oder Funktion.",
|
||||
"permissions.missing_permissions": "Du hast nicht die erforderlichen Berechtigungen, um diese Aktion auszuführen.",
|
||||
"permissions.user_banned_from_guild": "Dieser Benutzer ist aus dieser Community gebannt.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "Οι ACLs δεν μπορούν να είναι κενές.",
|
||||
"admin_and_system.admin_api_key_not_found": "Το κλειδί API διαχειριστή δεν βρέθηκε.",
|
||||
"admin_and_system.deletion_failed": "Δεν μπορέσαμε να διαγράψουμε τον πόρο. Δοκίμασε ξανά.",
|
||||
"admin_and_system.enforcement_account_closed": "Αυτός ο λογαριασμός έχει κλείσει, οπότε δεν μπορεί να τεθεί σε αναστολή.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Επιβεβαίωσε ότι τα αποδεικτικά στοιχεία έχουν διατηρηθεί και ότι έχει υποβληθεί κάθε απαιτούμενη αναφορά.",
|
||||
"admin_and_system.enforcement_decision_ended": "Αυτή η απόφαση έχει ήδη λήξει.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Αυτός ο περιορισμός ανήκει σε απόφαση επιβολής κανόνων. Τερμάτισε αντί γι' αυτό την απόφαση.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Μια μεταγενέστερη απόφαση αντικατέστησε αυτήν, οπότε δεν μπορεί πλέον να τερματιστεί.",
|
||||
"admin_and_system.enforcement_deletion_started": "Η διαγραφή αυτού του λογαριασμού έχει ήδη ξεκινήσει, οπότε η απόφαση δεν μπορεί πλέον να τερματιστεί.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Μηνύματα από συνομιλίες απευθείας μηνυμάτων μπορούν να χρησιμοποιηθούν ως αποδεικτικά στοιχεία μόνο όταν μια συνδεδεμένη αναφορά καλύπτει τη συγκεκριμένη συνομιλία.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Τα μηνύματα που αφαιρούνται αποθηκεύονται ως αποδεικτικά στοιχεία, οπότε μην προσθέσεις ξεχωριστά μηνύματα αποδεικτικών στοιχείων.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Ένα από τα μηνύματα αποδεικτικών στοιχείων δεν βρέθηκε.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Κάθε μήνυμα αποδεικτικών στοιχείων πρέπει να προέρχεται από τον λογαριασμό ή την κοινότητα που αφορά αυτή η απόφαση.",
|
||||
"admin_and_system.enforcement_evidence_required": "Αυτή η απόφαση χρειάζεται τουλάχιστον ένα μήνυμα αποδεικτικών στοιχείων.",
|
||||
"admin_and_system.enforcement_facts_required": "Πρόσθεσε ένα μήνυμα αποδεικτικών στοιχείων ή μια σημείωση προς τον χρήστη.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Πρόσθεσε μια εσωτερική σημείωση στην κεφαλίδα X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Αυτός ο λόγος δεν μπορεί να χρησιμοποιηθεί για αυτή την ενέργεια.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Μόνο ο περιορισμός αναφορών έχει ημερομηνία λήξης, και αυτή πρέπει να είναι εντός των επόμενων 365 ημερών.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Αυτός ο λόγος δεν μπορεί να χρησιμοποιηθεί για αυτόν τον περιορισμό.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Μόνο μια οριστική αναστολή ή ένα κλείσιμο λόγω παραβίασης κανόνα μπορεί να αποκλείσει δίκτυα.",
|
||||
"admin_and_system.enforcement_network_shared": "Σε αυτό το δίκτυο ήταν τελευταία ενεργοί άλλοι λογαριασμοί χωρίς περιορισμούς, οπότε δεν μπορεί να αποκλειστεί.",
|
||||
"admin_and_system.enforcement_network_unknown": "Αυτός ο λογαριασμός δεν έχει χρησιμοποιήσει αυτό το δίκτυο τις τελευταίες 30 ημέρες.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Αυτό το είδος απόφασης μπορεί να τερματιστεί μόνο με ανάκληση, επειδή δεν υπάρχει κάτι για άρση.",
|
||||
"admin_and_system.enforcement_permanent_required": "Οι αναστολές για αυτόν τον λόγο πρέπει να είναι οριστικές.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Κάθε συνδεδεμένη αναφορά πρέπει να υπάρχει και να αφορά τον λογαριασμό ή την κοινότητα που αφορά αυτή η απόφαση.",
|
||||
"admin_and_system.enforcement_report_required": "Σύνδεσε τουλάχιστον μία αναφορά όταν η πηγή είναι αναφορά.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Δικαιούχος μπορεί να οριστεί μόνο σε αποφάσεις για πνευματικά δικαιώματα.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Οι αποφάσεις για πνευματικά δικαιώματα χρειάζονται τον δικαιούχο ή το σχετικό δικαίωμα.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Οι αποφάσεις για αυτόν τον λόγο δεν μπορούν να περιλαμβάνουν σημείωση προς τον χρήστη.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Αυτή η σημαία είναι μέρος ενός περιορισμού. Άλλαξέ τη μέσω των διαδρομών αναστολής, διαγραφής ή περιορισμού λειτουργιών.",
|
||||
"admin_and_system.general_error": "Κάτι πήγε στραβά. Δοκίμασε ξανά αργότερα.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Απαιτείται το αναγνωριστικό της κοινότητας για τους δείκτες αναζήτησης μηνυμάτων καναλιού και μελών.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Αυτή η αλλαγή πολιτικής της εγκατάστασης δεν επιτρέπεται.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Μη έγκυρη χρονική σήμανση.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Μη έγκυρο αναγνωριστικό ζώνης ώρας.",
|
||||
"admin_and_system.missing_acl": "Λείπει ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Δώσε μια βάση για τη διαγραφή των μηνυμάτων.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Πρέπει να είναι έγκυρη χρονική σήμανση ISO.",
|
||||
"admin_and_system.processing_failed": "Δεν μπορέσαμε να επεξεργαστούμε το αίτημα. Δοκίμασε ξανά.",
|
||||
"admin_and_system.resource_locked": "Αυτός ο πόρος τροποποιείται. Δοκίμασε ξανά σε λίγο.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Η εξαργύρωση του κωδικού δώρου βρίσκεται σε εξέλιξη. Δοκίμασε ξανά σε λίγο.",
|
||||
"invites_and_gifts.unknown_gift_code": "Άγνωστος κωδικός δώρου.",
|
||||
"invites_and_packs.max_emojis_reached": "Έχεις φτάσει το μέγιστο των {count} {count, plural, one {emoji} other {emoji}}.",
|
||||
"limits.at_least_one_entry_required": "Απαιτείται τουλάχιστον μία εγγραφή.",
|
||||
"limits.base64_length_invalid": "Το μήκος της συμβολοσειράς Base64 πρέπει να είναι μεταξύ {min} και {maxLength} χαρακτήρων.",
|
||||
"limits.cannot_specify_before_and_after": "Δεν μπορείς να καθορίσεις ταυτόχρονα `before` και `after`.",
|
||||
"limits.content_exceeds_max_length": "Το κείμενο δεν πρέπει να υπερβαίνει τους {maxLength} {maxLength, plural, one {χαρακτήρα} other {χαρακτήρες}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Μη έγκυρος κωδικός επαλήθευσης DSA.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Αυτές οι απαντήσεις δεν ταιριάζουν με τη φόρμα αναφοράς. Ξεκίνα ξανά την αναφορά.",
|
||||
"moderation_and_reports.ip_ban_declined": "Αυτή η διεύθυνση IP δεν μπορεί να προστεθεί στη λίστα αποκλεισμού.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Αυτός ο αποκλεισμός δικτύου ανήκει σε απόφαση επιβολής κανόνων. Τερμάτισε την απόφαση για να τον αφαιρέσεις.",
|
||||
"moderation_and_reports.report_already_resolved": "Η αναφορά έχει ήδη διευθετηθεί.",
|
||||
"moderation_and_reports.report_banned": "Έχεις αποκλειστεί από την υποβολή αναφορών.",
|
||||
"moderation_and_reports.report_flow_outdated": "Η φόρμα αναφοράς άλλαξε ενώ τη συμπλήρωνες. Ξεκίνα ξανά την αναφορά.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Η επίλυση «έγινε ενέργεια» απαιτεί αποτέλεσμα διαφορετικό από «καμία παραβίαση». Η επίλυση «διπλότυπο» απαιτεί την αναφορά που επαναλαμβάνει και δεν επιτρέπεται να έχει αποτέλεσμα. Στην επίλυση «καμία παραβίαση» δεν επιτρέπεται άλλο αποτέλεσμα.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Αυτή η αναφορά τελεί υπό νομική δέσμευση και δεν μπορεί να διαγραφεί.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Πρέπει να ολοκληρώσεις τη ρύθμιση του λογαριασμού σου πριν υποβάλεις αναφορές.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Άγνωστη απόφαση επιβολής κανόνων.",
|
||||
"moderation_and_reports.unknown_report": "Άγνωστη αναφορά.",
|
||||
"moderation_and_reports.user_is_not_banned": "Αυτός ο χρήστης δεν έχει αποκλειστεί.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Το όνομα δεν μπορεί να είναι κενό μετά την κανονικοποίηση.",
|
||||
"permissions.global_ip_banned": "Η διεύθυνση IP σου {ipAddress} έχει αποκλειστεί μόνιμα από το {product_name} API από τους διαχειριστές της πλατφόρμας. {appealEmail, select, null {Αν πιστεύεις ότι πρόκειται για λάθος, επικοινώνησε με τους διαχειριστές αυτής της παρουσίας για να υποβάλεις προσφυγή.} other {Αν πιστεύεις ότι πρόκειται για λάθος, επικοινώνησε με {appealEmail} για να υποβάλεις προσφυγή.}} Συμπερίλαβε αυτήν τη διεύθυνση IP στην προσφυγή σου.",
|
||||
"permissions.global_ip_temporarily_banned": "Η διεύθυνση IP σου {ipAddress} έχει αποκλειστεί προσωρινά από το {product_name} API. Ο αποκλεισμός αίρεται αυτόματα όταν λήξει. {appealEmail, select, null {Αν πιστεύεις ότι πρόκειται για λάθος, επικοινώνησε με τους διαχειριστές αυτής της παρουσίας και συμπερίλαβε αυτήν τη διεύθυνση IP.} other {Αν πιστεύεις ότι πρόκειται για λάθος, επικοινώνησε με {appealEmail} και συμπερίλαβε αυτήν τη διεύθυνση IP.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {Το {product_name} απέκλεισε την πρόσβαση από αυτό το δίκτυο λόγω δραστηριότητας που παραβίασε τους κανόνες του.} other {Το {product_name} απέκλεισε την πρόσβαση από αυτό το δίκτυο.}} Αν μοιράζεσαι αυτό το δίκτυο με άλλους, για παράδειγμα στο σχολείο, στη δουλειά, σε δημόσιο Wi-Fi, μέσω της εταιρείας κινητής τηλεφωνίας σου ή μέσω VPN, ο αποκλεισμός μπορεί να μην έχει καμία σχέση με εσένα. Η πιο γρήγορη λύση είναι να αλλάξεις δίκτυο, για παράδειγμα να χρησιμοποιήσεις δεδομένα κινητής αντί για Wi-Fi, ή να ενεργοποιήσεις ή να απενεργοποιήσεις το VPN σου.{appealEmail, select, null {} other { Αν πιστεύεις ότι ο αποκλεισμός είναι λάθος, στείλε email στο {appealEmail} και ανάφερε τη διεύθυνση IP σου, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {Το {product_name} απέκλεισε την πρόσβαση από αυτό το δίκτυο λόγω δραστηριότητας που παραβίασε τους κανόνες του.} other {Το {product_name} απέκλεισε την πρόσβαση από αυτό το δίκτυο.}} Ο αποκλεισμός λήγει στις {expiresAt}. Αν μοιράζεσαι αυτό το δίκτυο με άλλους, για παράδειγμα στο σχολείο, στη δουλειά, σε δημόσιο Wi-Fi, μέσω της εταιρείας κινητής τηλεφωνίας σου ή μέσω VPN, ο αποκλεισμός μπορεί να μην έχει καμία σχέση με εσένα. Η πιο γρήγορη λύση είναι να αλλάξεις δίκτυο, για παράδειγμα να χρησιμοποιήσεις δεδομένα κινητής αντί για Wi-Fi, ή να ενεργοποιήσεις ή να απενεργοποιήσεις το VPN σου.{appealEmail, select, null {} other { Αν πιστεύεις ότι ο αποκλεισμός είναι λάθος, στείλε email στο {appealEmail} και ανάφερε τη διεύθυνση IP σου, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Δεν έχεις πρόσβαση σε αυτόν τον πόρο ή σε αυτήν τη λειτουργία.",
|
||||
"permissions.missing_permissions": "Δεν έχεις τα απαραίτητα δικαιώματα για να εκτελέσεις αυτήν την ενέργεια.",
|
||||
"permissions.user_banned_from_guild": "Αυτός ο χρήστης έχει αποκλειστεί από αυτήν την κοινότητα.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACLs must be non-empty.",
|
||||
"admin_and_system.admin_api_key_not_found": "Admin API key wasn't found.",
|
||||
"admin_and_system.deletion_failed": "We couldn't delete the resource. Please try again.",
|
||||
"admin_and_system.enforcement_account_closed": "This account is closed, so it can't be suspended.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Confirm that the evidence is preserved and that any required report is filed.",
|
||||
"admin_and_system.enforcement_decision_ended": "This decision has already ended.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "An enforcement decision owns this restriction. End the decision instead.",
|
||||
"admin_and_system.enforcement_decision_replaced": "A later decision replaced this one, so it can no longer be ended.",
|
||||
"admin_and_system.enforcement_deletion_started": "The deletion of this account has already started, so the decision can no longer be ended.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Messages in direct messages can only be used as evidence when a linked report covers that conversation.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "The messages being removed are saved as evidence, so leave out separate evidence messages.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "One of the evidence messages wasn't found.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Every evidence message must be from the account or community this decision is about.",
|
||||
"admin_and_system.enforcement_evidence_required": "This decision needs at least one evidence message.",
|
||||
"admin_and_system.enforcement_facts_required": "Add an evidence message or a note to the user.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Add an internal note in the X-Audit-Log-Reason header.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "This reason can't be used for this action.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Only a reports limit has an end date, and it must be within the next 365 days.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "This reason can't be used for this limit.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Only a permanent suspension or a closure for a broken rule can block networks.",
|
||||
"admin_and_system.enforcement_network_shared": "Other accounts that aren't restricted were last active on this network, so it can't be blocked.",
|
||||
"admin_and_system.enforcement_network_unknown": "This account hasn't used this network in the last 30 days.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Only a reversal can end this kind of decision, because there is nothing to lift.",
|
||||
"admin_and_system.enforcement_permanent_required": "Suspensions for this reason must be permanent.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Every linked report must exist and be about the account or community this decision is about.",
|
||||
"admin_and_system.enforcement_report_required": "Link at least one report when the source is a report.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "A rights holder can only be given for copyright decisions.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Copyright decisions need the rights holder or the right concerned.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Decisions for this reason can't include a note to the user.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "This flag is part of a restriction. Change it through the suspension, deletion or feature limit routes.",
|
||||
"admin_and_system.general_error": "Something went wrong. Please try again later.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Community ID is required for channel message and member search indexes.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "This instance policy change is not allowed.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Invalid timestamp.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Invalid time zone identifier.",
|
||||
"admin_and_system.missing_acl": "Missing ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Give a basis to delete the messages.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Must be a valid ISO timestamp.",
|
||||
"admin_and_system.processing_failed": "We couldn't process the request. Please try again.",
|
||||
"admin_and_system.resource_locked": "This resource is being modified. Please try again shortly.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Gift code redemption is in progress. Try again in a moment.",
|
||||
"invites_and_gifts.unknown_gift_code": "Unknown gift code.",
|
||||
"invites_and_packs.max_emojis_reached": "You've reached the maximum of {count, plural, one {# emoji} other {# emojis}}.",
|
||||
"limits.at_least_one_entry_required": "At least one entry is required.",
|
||||
"limits.base64_length_invalid": "Base64 string length must be between {min} and {maxLength} characters.",
|
||||
"limits.cannot_specify_before_and_after": "You can't specify both `before` and `after`.",
|
||||
"limits.content_exceeds_max_length": "Text must not exceed {maxLength, plural, one {# character} other {# characters}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Invalid DSA verification code.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "These answers don't match the report form. Start the report again.",
|
||||
"moderation_and_reports.ip_ban_declined": "This IP address cannot be added to the blocklist.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "This network block belongs to an enforcement decision. End the decision to remove it.",
|
||||
"moderation_and_reports.report_already_resolved": "Report already resolved.",
|
||||
"moderation_and_reports.report_banned": "You've been banned from submitting reports.",
|
||||
"moderation_and_reports.report_flow_outdated": "The report form changed while you were filling it in. Start the report again.",
|
||||
"moderation_and_reports.report_outcome_invalid": "An actioned resolution needs an outcome other than no violation. A duplicate needs the report it repeats and takes no outcome. A no violation resolution takes no other outcome.",
|
||||
"moderation_and_reports.report_under_legal_hold": "This report is under a legal hold and can't be deleted.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "You need to complete your account setup before you can submit reports.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Unknown enforcement decision.",
|
||||
"moderation_and_reports.unknown_report": "Unknown report.",
|
||||
"moderation_and_reports.user_is_not_banned": "This user isn't banned.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Name can't be empty after normalisation.",
|
||||
"permissions.global_ip_banned": "Your IP address {ipAddress} has been permanently blocked from the {product_name} API by platform administrators. {appealEmail, select, null {If you believe this is a mistake, contact the administrators of this instance to appeal.} other {If you believe this is a mistake, contact {appealEmail} to appeal.}} Include this IP address in your appeal.",
|
||||
"permissions.global_ip_temporarily_banned": "Your IP address {ipAddress} has been temporarily blocked from the {product_name} API. The block lifts on its own when it expires. {appealEmail, select, null {If you think this is a mistake, contact the administrators of this instance and include this IP address.} other {If you think this is a mistake, contact {appealEmail} and include this IP address.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} blocked access from this network because of activity that broke its rules.} other {{product_name} blocked access from this network.}} If you share this network, for example at school, at work, on public Wi-Fi, through your mobile network or a VPN, this block may have nothing to do with you. The quickest fix is to switch networks, for example to mobile data instead of Wi-Fi, or to turn your VPN on or off.{appealEmail, select, null {} other { If you think this block is a mistake, email {appealEmail} and include your IP address, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} blocked access from this network because of activity that broke its rules.} other {{product_name} blocked access from this network.}} The block ends on {expiresAt}. If you share this network, for example at school, at work, on public Wi-Fi, through your mobile network or a VPN, this block may have nothing to do with you. The quickest fix is to switch networks, for example to mobile data instead of Wi-Fi, or to turn your VPN on or off.{appealEmail, select, null {} other { If you think this block is a mistake, email {appealEmail} and include your IP address, {ipAddress}.}}",
|
||||
"permissions.missing_access": "You don't have access to this resource or feature.",
|
||||
"permissions.missing_permissions": "You don't have the permissions required to perform this action.",
|
||||
"permissions.user_banned_from_guild": "This user is banned from this community.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "Las ACL no pueden estar vacías.",
|
||||
"admin_and_system.admin_api_key_not_found": "No se encontró la clave de API de administrador.",
|
||||
"admin_and_system.deletion_failed": "No se pudo eliminar el recurso. Inténtalo de nuevo.",
|
||||
"admin_and_system.enforcement_account_closed": "Esta cuenta está cerrada, así que no se puede suspender.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Confirma que las pruebas se conservaron y que se presentó cualquier notificación obligatoria.",
|
||||
"admin_and_system.enforcement_decision_ended": "Esta decisión ya terminó.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Esta restricción depende de una decisión de moderación. Finaliza esa decisión.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Una decisión posterior reemplazó a esta, así que ya no se puede finalizar.",
|
||||
"admin_and_system.enforcement_deletion_started": "La eliminación de esta cuenta ya comenzó, así que la decisión ya no se puede finalizar.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Los mensajes directos solo se pueden usar como pruebas si un reporte vinculado cubre esa conversación.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Los mensajes que se eliminan se guardan como pruebas, así que no agregues mensajes de prueba aparte.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "No se encontró uno de los mensajes de prueba.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Todos los mensajes de prueba deben ser de la cuenta o la comunidad a la que se refiere esta decisión.",
|
||||
"admin_and_system.enforcement_evidence_required": "Esta decisión necesita al menos un mensaje de prueba.",
|
||||
"admin_and_system.enforcement_facts_required": "Agrega un mensaje de prueba o una nota para el usuario.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Agrega una nota interna en el encabezado X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Este motivo no se puede usar para esta acción.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Solo un límite de reportes tiene fecha de fin, y debe estar dentro de los próximos 365 días.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Este motivo no se puede usar para este límite.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Solo una suspensión permanente o un cierre por infringir una regla pueden bloquear redes.",
|
||||
"admin_and_system.enforcement_network_shared": "Otras cuentas sin restricciones tuvieron su última actividad en esta red, así que no se puede bloquear.",
|
||||
"admin_and_system.enforcement_network_unknown": "Esta cuenta no usó esta red en los últimos 30 días.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Solo una revocación puede finalizar este tipo de decisión, porque no hay nada que levantar.",
|
||||
"admin_and_system.enforcement_permanent_required": "Las suspensiones por este motivo deben ser permanentes.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Todos los reportes vinculados deben existir y referirse a la cuenta o la comunidad a la que se refiere esta decisión.",
|
||||
"admin_and_system.enforcement_report_required": "Vincula al menos un reporte cuando el origen sea un reporte.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Solo se puede indicar un titular de derechos en decisiones de derechos de autor.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Las decisiones de derechos de autor necesitan el titular de los derechos o el derecho afectado.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Las decisiones por este motivo no pueden incluir una nota para el usuario.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Este indicador forma parte de una restricción. Cámbialo mediante las rutas de suspensión, eliminación o límite de funciones.",
|
||||
"admin_and_system.general_error": "Algo salió mal. Inténtalo de nuevo más tarde.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Se requiere el ID de la comunidad para los índices de búsqueda de mensajes del canal y de miembros.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Este cambio de la política de la instancia no está permitido.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Marca de tiempo inválida.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Identificador de zona horaria inválido.",
|
||||
"admin_and_system.missing_acl": "Falta ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Indica un fundamento para eliminar los mensajes.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Debe ser una marca de tiempo ISO válida.",
|
||||
"admin_and_system.processing_failed": "No se pudo procesar la solicitud. Inténtalo de nuevo.",
|
||||
"admin_and_system.resource_locked": "Este recurso se está modificando. Inténtalo de nuevo en breve.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "El canje del código de regalo está en proceso. Intenta de nuevo en un momento.",
|
||||
"invites_and_gifts.unknown_gift_code": "Código de regalo desconocido.",
|
||||
"invites_and_packs.max_emojis_reached": "Has alcanzado el máximo de {count} {count, plural, one {emoji} other {emojis}}.",
|
||||
"limits.at_least_one_entry_required": "Se requiere al menos una entrada.",
|
||||
"limits.base64_length_invalid": "La longitud de la cadena Base64 debe estar entre {min} y {maxLength} caracteres.",
|
||||
"limits.cannot_specify_before_and_after": "No puedes especificar `before` y `after` a la vez.",
|
||||
"limits.content_exceeds_max_length": "El texto no debe exceder los {maxLength} {maxLength, plural, one {carácter} other {caracteres}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Código de verificación DSA no válido.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Estas respuestas no coinciden con el formulario de reporte. Vuelve a iniciar el reporte.",
|
||||
"moderation_and_reports.ip_ban_declined": "Esta dirección IP no se puede agregar a la lista de bloqueo.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Este bloqueo de red pertenece a una decisión de moderación. Finaliza la decisión para quitarlo.",
|
||||
"moderation_and_reports.report_already_resolved": "El reporte ya se resolvió.",
|
||||
"moderation_and_reports.report_banned": "Se te ha prohibido enviar reportes.",
|
||||
"moderation_and_reports.report_flow_outdated": "El formulario de reporte cambió mientras lo completabas. Vuelve a iniciar el reporte.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Una resolución con medidas necesita un resultado, que no puede ser la ausencia de infracción. Una resolución duplicada necesita el reporte original y no admite ningún resultado. Una resolución sin infracción no admite ningún otro resultado.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Este reporte está bajo retención legal y no se puede eliminar.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Tienes que completar el registro de tu cuenta antes de poder enviar reportes.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Decisión de moderación desconocida.",
|
||||
"moderation_and_reports.unknown_report": "Reporte desconocido.",
|
||||
"moderation_and_reports.user_is_not_banned": "Este usuario no ha sido baneado.",
|
||||
"names_and_normalization.name_empty_after_normalization": "El nombre no puede quedar vacío después de la normalización.",
|
||||
"permissions.global_ip_banned": "Tu dirección IP {ipAddress} fue bloqueada permanentemente de la API de {product_name} por administradores de la plataforma. {appealEmail, select, null {Si crees que es un error, comunícate con los administradores de esta instancia para apelar.} other {Si crees que es un error, escribe a {appealEmail} para apelar.}} Incluye esta dirección IP en tu apelación.",
|
||||
"permissions.global_ip_temporarily_banned": "Tu dirección IP {ipAddress} fue bloqueada temporalmente de la API de {product_name}. El bloqueo se levanta automáticamente cuando vence. {appealEmail, select, null {Si crees que es un error, comunícate con los administradores de esta instancia e incluye esta dirección IP.} other {Si crees que es un error, escribe a {appealEmail} e incluye esta dirección IP.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} bloqueó el acceso desde esta red debido a una actividad que infringía sus reglas.} other {{product_name} bloqueó el acceso desde esta red.}} Si compartes esta red, por ejemplo en la escuela, en el trabajo, en una red Wi-Fi pública, a través de tu compañía de celular o de una VPN, es posible que este bloqueo no tenga nada que ver contigo. La forma más rápida de solucionarlo es cambiar de red, por ejemplo usar datos móviles en lugar de Wi-Fi, o activar o desactivar tu VPN.{appealEmail, select, null {} other { Si crees que este bloqueo es un error, escribe a {appealEmail} e indica tu dirección IP, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} bloqueó el acceso desde esta red debido a una actividad que infringía sus reglas.} other {{product_name} bloqueó el acceso desde esta red.}} El bloqueo termina el {expiresAt}. Si compartes esta red, por ejemplo en la escuela, en el trabajo, en una red Wi-Fi pública, a través de tu compañía de celular o de una VPN, es posible que este bloqueo no tenga nada que ver contigo. La forma más rápida de solucionarlo es cambiar de red, por ejemplo usar datos móviles en lugar de Wi-Fi, o activar o desactivar tu VPN.{appealEmail, select, null {} other { Si crees que este bloqueo es un error, escribe a {appealEmail} e indica tu dirección IP, {ipAddress}.}}",
|
||||
"permissions.missing_access": "No tienes acceso a este recurso o función.",
|
||||
"permissions.missing_permissions": "No tienes los permisos necesarios para realizar esta acción.",
|
||||
"permissions.user_banned_from_guild": "Este usuario ha sido baneado de esta comunidad.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "Las ACL no pueden estar vacías.",
|
||||
"admin_and_system.admin_api_key_not_found": "No se encontró la clave API de administrador.",
|
||||
"admin_and_system.deletion_failed": "No se pudo eliminar el recurso. Inténtalo de nuevo.",
|
||||
"admin_and_system.enforcement_account_closed": "Esta cuenta está cerrada, así que no se puede suspender.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Confirma que las pruebas se han conservado y que se ha presentado cualquier notificación obligatoria.",
|
||||
"admin_and_system.enforcement_decision_ended": "Esta decisión ya ha terminado.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Esta restricción depende de una decisión de moderación. Finaliza esa decisión.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Una decisión posterior ha sustituido a esta, así que ya no se puede finalizar.",
|
||||
"admin_and_system.enforcement_deletion_started": "La eliminación de esta cuenta ya ha empezado, así que la decisión ya no se puede finalizar.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Los mensajes directos solo se pueden usar como pruebas si una denuncia vinculada cubre esa conversación.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Los mensajes que se eliminan se guardan como pruebas, así que no añadas mensajes de prueba aparte.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "No se ha encontrado uno de los mensajes de prueba.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Todos los mensajes de prueba deben ser de la cuenta o la comunidad a la que se refiere esta decisión.",
|
||||
"admin_and_system.enforcement_evidence_required": "Esta decisión necesita al menos un mensaje de prueba.",
|
||||
"admin_and_system.enforcement_facts_required": "Añade un mensaje de prueba o una nota para el usuario.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Añade una nota interna en la cabecera X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Este motivo no se puede usar para esta acción.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Solo un límite de denuncias tiene fecha de fin, y debe estar dentro de los próximos 365 días.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Este motivo no se puede usar para este límite.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Solo una suspensión permanente o un cierre por infringir una norma pueden bloquear redes.",
|
||||
"admin_and_system.enforcement_network_shared": "Otras cuentas sin restricciones tuvieron su última actividad en esta red, así que no se puede bloquear.",
|
||||
"admin_and_system.enforcement_network_unknown": "Esta cuenta no ha usado esta red en los últimos 30 días.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Solo una revocación puede finalizar este tipo de decisión, porque no hay nada que levantar.",
|
||||
"admin_and_system.enforcement_permanent_required": "Las suspensiones por este motivo deben ser permanentes.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Todas las denuncias vinculadas deben existir y referirse a la cuenta o la comunidad a la que se refiere esta decisión.",
|
||||
"admin_and_system.enforcement_report_required": "Vincula al menos una denuncia cuando el origen sea una denuncia.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Solo se puede indicar un titular de derechos en decisiones de derechos de autor.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Las decisiones de derechos de autor necesitan el titular de los derechos o el derecho afectado.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Las decisiones por este motivo no pueden incluir una nota para el usuario.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Este indicador forma parte de una restricción. Cámbialo mediante las rutas de suspensión, eliminación o límite de funciones.",
|
||||
"admin_and_system.general_error": "Algo ha salido mal. Inténtalo de nuevo más tarde.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Se requiere el ID de la comunidad para los índices de búsqueda de mensajes del canal y de miembros.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Este cambio de la política de la instancia no está permitido.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Marca de tiempo no válida.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Identificador de zona horaria no válido.",
|
||||
"admin_and_system.missing_acl": "Falta la ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Indica un fundamento para eliminar los mensajes.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Debe ser una marca de tiempo ISO válida.",
|
||||
"admin_and_system.processing_failed": "No se pudo procesar la solicitud. Inténtalo de nuevo.",
|
||||
"admin_and_system.resource_locked": "Este recurso se está modificando. Por favor, inténtalo de nuevo en breve.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "El canje del código de regalo está en curso. Inténtalo de nuevo en un momento.",
|
||||
"invites_and_gifts.unknown_gift_code": "Código de regalo desconocido.",
|
||||
"invites_and_packs.max_emojis_reached": "Has alcanzado el máximo de {count} {count, plural, one {emoji} other {emojis}}.",
|
||||
"limits.at_least_one_entry_required": "Es necesaria al menos una entrada.",
|
||||
"limits.base64_length_invalid": "La longitud de la cadena Base64 debe estar entre {min} y {maxLength} caracteres.",
|
||||
"limits.cannot_specify_before_and_after": "No puedes especificar `before` y `after` a la vez.",
|
||||
"limits.content_exceeds_max_length": "El texto no debe exceder {maxLength} {maxLength, plural, one {carácter} other {caracteres}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Código de verificación DSA no válido.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Estas respuestas no coinciden con el formulario de denuncia. Vuelve a empezar la denuncia.",
|
||||
"moderation_and_reports.ip_ban_declined": "Esta dirección IP no se puede añadir a la lista de bloqueo.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Este bloqueo de red pertenece a una decisión de moderación. Finaliza la decisión para quitarlo.",
|
||||
"moderation_and_reports.report_already_resolved": "La denuncia ya se ha resuelto.",
|
||||
"moderation_and_reports.report_banned": "Se te ha prohibido enviar denuncias.",
|
||||
"moderation_and_reports.report_flow_outdated": "El formulario de denuncia ha cambiado mientras lo rellenabas. Vuelve a empezar la denuncia.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Una resolución con medidas necesita un resultado, que no puede ser la ausencia de infracción. Una resolución duplicada necesita la denuncia original y no admite ningún resultado. Una resolución sin infracción no admite ningún otro resultado.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Esta denuncia está sujeta a una retención legal y no se puede eliminar.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Tienes que completar el registro de tu cuenta antes de poder enviar denuncias.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Decisión de moderación desconocida.",
|
||||
"moderation_and_reports.unknown_report": "Denuncia desconocida.",
|
||||
"moderation_and_reports.user_is_not_banned": "Este usuario no está baneado.",
|
||||
"names_and_normalization.name_empty_after_normalization": "El nombre no puede quedar vacío tras la normalización.",
|
||||
"permissions.global_ip_banned": "Tu dirección IP {ipAddress} ha sido bloqueada permanentemente de la API de {product_name} por administradores de la plataforma. {appealEmail, select, null {Si crees que es un error, contacta con los administradores de esta instancia para apelar.} other {Si crees que es un error, contacta con {appealEmail} para apelar.}} Incluye esta dirección IP en la apelación.",
|
||||
"permissions.global_ip_temporarily_banned": "Tu dirección IP {ipAddress} ha sido bloqueada temporalmente de la API de {product_name}. El bloqueo se levantará automáticamente cuando caduque. {appealEmail, select, null {Si crees que es un error, contacta con los administradores de esta instancia e incluye esta dirección IP.} other {Si crees que es un error, contacta con {appealEmail} e incluye esta dirección IP.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} ha bloqueado el acceso desde esta red debido a una actividad que infringía sus normas.} other {{product_name} ha bloqueado el acceso desde esta red.}} Si compartes esta red, por ejemplo en el centro de estudios, en el trabajo, en una red Wi-Fi pública, a través de tu operador móvil o de una VPN, puede que este bloqueo no tenga nada que ver contigo. La forma más rápida de solucionarlo es cambiar de red, por ejemplo usar datos móviles en lugar de Wi-Fi, o activar o desactivar tu VPN.{appealEmail, select, null {} other { Si crees que este bloqueo es un error, escribe a {appealEmail} e indica tu dirección IP, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} ha bloqueado el acceso desde esta red debido a una actividad que infringía sus normas.} other {{product_name} ha bloqueado el acceso desde esta red.}} El bloqueo termina el {expiresAt}. Si compartes esta red, por ejemplo en el centro de estudios, en el trabajo, en una red Wi-Fi pública, a través de tu operador móvil o de una VPN, puede que este bloqueo no tenga nada que ver contigo. La forma más rápida de solucionarlo es cambiar de red, por ejemplo usar datos móviles en lugar de Wi-Fi, o activar o desactivar tu VPN.{appealEmail, select, null {} other { Si crees que este bloqueo es un error, escribe a {appealEmail} e indica tu dirección IP, {ipAddress}.}}",
|
||||
"permissions.missing_access": "No tienes acceso a este recurso o función.",
|
||||
"permissions.missing_permissions": "No tienes los permisos necesarios para realizar esta acción.",
|
||||
"permissions.user_banned_from_guild": "Este usuario está baneado de esta comunidad.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL:t eivät saa olla tyhjiä.",
|
||||
"admin_and_system.admin_api_key_not_found": "Ylläpidon API-avainta ei löytynyt.",
|
||||
"admin_and_system.deletion_failed": "Resurssia ei voitu poistaa. Yritä uudelleen.",
|
||||
"admin_and_system.enforcement_account_closed": "Tämä tili on suljettu, joten sitä ei voi jäädyttää.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Vahvista, että todisteet on säilytetty ja että mahdollinen vaadittu ilmoitus on tehty.",
|
||||
"admin_and_system.enforcement_decision_ended": "Tämä päätös on jo päättynyt.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Tämä rajoitus kuuluu valvontapäätökseen. Lopeta sen sijaan päätöksen voimassaolo.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Myöhempi päätös korvasi tämän, joten sen voimassaoloa ei voi enää lopettaa.",
|
||||
"admin_and_system.enforcement_deletion_started": "Tämän tilin poistaminen on jo alkanut, joten päätöksen voimassaoloa ei voi enää lopettaa.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Yksityisviestejä voi käyttää todisteina vain, kun linkitetty ilmoitus kattaa kyseisen keskustelun.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Poistettavat viestit tallennetaan todisteiksi, joten jätä erilliset todisteviestit pois.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Yhtä todisteviesteistä ei löytynyt.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Jokaisen todisteviestin on oltava tililtä tai yhteisöstä, jota tämä päätös koskee.",
|
||||
"admin_and_system.enforcement_evidence_required": "Tämä päätös tarvitsee vähintään yhden todisteviestin.",
|
||||
"admin_and_system.enforcement_facts_required": "Lisää todisteviesti tai huomautus käyttäjälle.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Lisää sisäinen huomautus X-Audit-Log-Reason-otsakkeeseen.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Tätä syytä ei voi käyttää tähän toimenpiteeseen.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Vain ilmoitusrajoituksella on päättymispäivä, ja sen on oltava seuraavien 365 päivän sisällä.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Tätä syytä ei voi käyttää tähän rajoitukseen.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Verkkoja voi estää vain pysyvällä jäädytyksellä tai rikotun säännön vuoksi tehdyllä sulkemisella.",
|
||||
"admin_and_system.enforcement_network_shared": "Tässä verkossa on viimeksi ollut aktiivisena muita tilejä, joita ei ole rajoitettu, joten verkkoa ei voi estää.",
|
||||
"admin_and_system.enforcement_network_unknown": "Tämä tili ei ole käyttänyt tätä verkkoa viimeisten 30 päivän aikana.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Tämäntyyppisen päätöksen voi lopettaa vain kumoamalla, koska poistettavaa rajoitusta ei ole.",
|
||||
"admin_and_system.enforcement_permanent_required": "Tästä syystä tehtyjen jäädytysten on oltava pysyviä.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Jokaisen linkitetyn ilmoituksen on oltava olemassa ja koskettava samaa tiliä tai yhteisöä kuin tämä päätös.",
|
||||
"admin_and_system.enforcement_report_required": "Linkitä vähintään yksi ilmoitus, kun lähteenä on ilmoitus.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Oikeudenhaltijan voi antaa vain tekijänoikeuspäätöksiin.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Tekijänoikeuspäätöksiin tarvitaan oikeudenhaltija tai kyseinen oikeus.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Tästä syystä tehtyihin päätöksiin ei voi lisätä huomautusta käyttäjälle.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Tämä lippu on osa rajoitusta. Muuta sitä jäädytys-, poisto- tai ominaisuusrajoitusreittien kautta.",
|
||||
"admin_and_system.general_error": "Jokin meni pieleen. Yritä uudelleen myöhemmin.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Kanavaviestien ja jäsenten hakuindeksit vaativat yhteisön tunnuksen.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Tätä instanssin käytännön muutosta ei sallita.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Virheellinen aikaleima.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Virheellinen aikavyöhyketunnus.",
|
||||
"admin_and_system.missing_acl": "ACL puuttuu.",
|
||||
"admin_and_system.moderation_basis_required": "Anna peruste viestien poistamiselle.",
|
||||
"admin_and_system.must_be_iso_timestamp": "On oltava kelvollinen ISO-aikaleima.",
|
||||
"admin_and_system.processing_failed": "Pyyntöä ei voitu käsitellä. Yritä uudelleen.",
|
||||
"admin_and_system.resource_locked": "Tätä resurssia muokataan parhaillaan. Yritä uudelleen hetken kuluttua.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Lahjakoodin lunastus on käynnissä. Yritä uudelleen hetken kuluttua.",
|
||||
"invites_and_gifts.unknown_gift_code": "Tuntematon lahjakoodi.",
|
||||
"invites_and_packs.max_emojis_reached": "Olet saavuttanut emojien enimmäismäärän: {count, plural, one {# emoji} other {# emojia}}.",
|
||||
"limits.at_least_one_entry_required": "Vähintään yksi merkintä vaaditaan.",
|
||||
"limits.base64_length_invalid": "Base64-merkkijonon pituuden on oltava {min}–{maxLength} merkkiä.",
|
||||
"limits.cannot_specify_before_and_after": "Et voi määrittää sekä `before`- että `after`-arvoja.",
|
||||
"limits.content_exceeds_max_length": "Tekstin pituus saa olla enintään {maxLength, plural, one {# merkki} other {# merkkiä}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Virheellinen DSA-vahvistuskoodi.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Nämä vastaukset eivät vastaa ilmoituslomaketta. Aloita ilmoitus uudelleen.",
|
||||
"moderation_and_reports.ip_ban_declined": "Tätä IP-osoitetta ei voi lisätä estolistalle.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Tämä verkkoesto kuuluu valvontapäätökseen. Poista se lopettamalla päätöksen voimassaolo.",
|
||||
"moderation_and_reports.report_already_resolved": "Ilmoitus on jo ratkaistu.",
|
||||
"moderation_and_reports.report_banned": "Sinut on estetty lähettämästä ilmoituksia.",
|
||||
"moderation_and_reports.report_flow_outdated": "Ilmoituslomake muuttui, kun täytit sitä. Aloita ilmoitus uudelleen.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Ratkaisulle ”toimenpiteitä tehty” on annettava jokin muu lopputulos kuin ”ei rikkomusta”. Ratkaisulle ”kaksoiskappale” on annettava ilmoitus, jonka kaksoiskappale se on, eikä sille saa antaa lopputulosta. Ratkaisulle ”ei rikkomusta” ei saa antaa muuta lopputulosta.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Tämä ilmoitus on oikeudellisen säilytysvelvoitteen alainen, eikä sitä voi poistaa.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Viimeistele tilisi rekisteröinti ennen kuin voit lähettää ilmoituksia.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Tuntematon valvontapäätös.",
|
||||
"moderation_and_reports.unknown_report": "Tuntematon ilmoitus.",
|
||||
"moderation_and_reports.user_is_not_banned": "Tällä käyttäjällä ei ole porttikieltoa.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Normalisoinnin jälkeen nimi ei voi olla tyhjä.",
|
||||
"permissions.global_ip_banned": "Alustan ylläpitäjät ovat estäneet IP-osoitteelta {ipAddress} pääsyn {product_name} API -rajapintaan pysyvästi. {appealEmail, select, null {Jos uskot tämän olevan virhe, lähetä valitus tämän instanssin ylläpitäjille.} other {Jos uskot tämän olevan virhe, lähetä valitus osoitteeseen {appealEmail}.}} Liitä tämä IP-osoite valitukseesi.",
|
||||
"permissions.global_ip_temporarily_banned": "IP-osoitteeltasi {ipAddress} on estetty väliaikaisesti pääsy {product_name} API -rajapintaan. Esto poistuu automaattisesti, kun sen voimassaolo päättyy. {appealEmail, select, null {Jos uskot tämän olevan virhe, ota yhteyttä tämän instanssin ylläpitäjiin ja mainitse tämä IP-osoite.} other {Jos uskot tämän olevan virhe, ota yhteyttä osoitteeseen {appealEmail} ja mainitse tämä IP-osoite.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} esti pääsyn tästä verkosta sääntöjä rikkoneen toiminnan vuoksi.} other {{product_name} esti pääsyn tästä verkosta.}} Jos käytät tätä verkkoa yhdessä muiden kanssa, esimerkiksi koulussa, töissä, julkisessa Wi-Fi-verkossa, mobiilioperaattorisi kautta tai VPN:n kautta, esto ei ehkä liity sinuun mitenkään. Nopein ratkaisu on vaihtaa verkkoa, esimerkiksi mobiilidataan Wi-Fin sijaan, tai kytkeä VPN päälle tai pois.{appealEmail, select, null {} other { Jos uskot, että esto on virhe, lähetä sähköpostia osoitteeseen {appealEmail} ja mainitse IP-osoitteesi, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} esti pääsyn tästä verkosta sääntöjä rikkoneen toiminnan vuoksi.} other {{product_name} esti pääsyn tästä verkosta.}} Esto päättyy {expiresAt}. Jos käytät tätä verkkoa yhdessä muiden kanssa, esimerkiksi koulussa, töissä, julkisessa Wi-Fi-verkossa, mobiilioperaattorisi kautta tai VPN:n kautta, esto ei ehkä liity sinuun mitenkään. Nopein ratkaisu on vaihtaa verkkoa, esimerkiksi mobiilidataan Wi-Fin sijaan, tai kytkeä VPN päälle tai pois.{appealEmail, select, null {} other { Jos uskot, että esto on virhe, lähetä sähköpostia osoitteeseen {appealEmail} ja mainitse IP-osoitteesi, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Ei oikeutta tähän resurssiin tai ominaisuuteen.",
|
||||
"permissions.missing_permissions": "Ei tarvittavia oikeuksia tämän toiminnon tekemiseen.",
|
||||
"permissions.user_banned_from_guild": "Tällä käyttäjällä on porttikielto tähän yhteisöön.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "Les listes de contrôle d'accès ne doivent pas être vides.",
|
||||
"admin_and_system.admin_api_key_not_found": "La clé API administrateur n'a pas été trouvée.",
|
||||
"admin_and_system.deletion_failed": "Impossible de supprimer la ressource. Réessayez.",
|
||||
"admin_and_system.enforcement_account_closed": "Ce compte est fermé, il ne peut donc pas être suspendu.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Confirmez que les preuves sont conservées et que tout signalement obligatoire a été transmis.",
|
||||
"admin_and_system.enforcement_decision_ended": "Cette décision a déjà pris fin.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Cette restriction relève d'une décision de modération. Mettez plutôt fin à la décision.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Une décision ultérieure a remplacé celle-ci, il n'est donc plus possible d'y mettre fin.",
|
||||
"admin_and_system.enforcement_deletion_started": "La suppression de ce compte a déjà commencé, il n'est donc plus possible de mettre fin à la décision.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Les messages privés ne peuvent servir de preuve que si un signalement lié couvre cette conversation.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Les messages supprimés sont conservés comme preuves, n'ajoutez donc pas de messages de preuve séparés.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "L'un des messages de preuve est introuvable.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Chaque message de preuve doit provenir du compte ou de la communauté visés par cette décision.",
|
||||
"admin_and_system.enforcement_evidence_required": "Cette décision nécessite au moins un message de preuve.",
|
||||
"admin_and_system.enforcement_facts_required": "Ajoutez un message de preuve ou une note à l'utilisateur.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Ajoutez une note interne dans l'en-tête X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Ce motif ne peut pas être utilisé pour cette action.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Seule une limite de signalements peut avoir une date de fin, et celle-ci doit se situer dans les 365 prochains jours.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Ce motif ne peut pas être utilisé pour cette limite.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Seule une suspension définitive ou une fermeture pour violation d'une règle peut bloquer des réseaux.",
|
||||
"admin_and_system.enforcement_network_shared": "D'autres comptes sans restriction ont été actifs en dernier sur ce réseau, il ne peut donc pas être bloqué.",
|
||||
"admin_and_system.enforcement_network_unknown": "Ce compte n'a pas utilisé ce réseau au cours des 30 derniers jours.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Seule une annulation peut mettre fin à ce type de décision, car il n'y a rien à lever.",
|
||||
"admin_and_system.enforcement_permanent_required": "Les suspensions pour ce motif doivent être définitives.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Chaque signalement lié doit exister et concerner le compte ou la communauté visés par cette décision.",
|
||||
"admin_and_system.enforcement_report_required": "Liez au moins un signalement lorsque la source est un signalement.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Un titulaire de droits ne peut être indiqué que pour les décisions relatives au droit d'auteur.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Les décisions relatives au droit d'auteur nécessitent le titulaire des droits ou le droit concerné.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Les décisions pour ce motif ne peuvent pas inclure de note à l'utilisateur.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Cet indicateur fait partie d'une restriction. Modifiez-le via les routes de suspension, de suppression ou de limitation de fonctionnalités.",
|
||||
"admin_and_system.general_error": "Une erreur est survenue. Réessayez plus tard.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "L’ID de la communauté est requis pour les index de recherche des messages des salons et des membres.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Cette modification de la politique de l'instance n'est pas autorisée.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Horodatage invalide.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Identifiant de fuseau horaire invalide.",
|
||||
"admin_and_system.missing_acl": "Liste de contrôle d'accès manquante.",
|
||||
"admin_and_system.moderation_basis_required": "Indiquez un fondement pour supprimer les messages.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Doit être un horodatage ISO valide.",
|
||||
"admin_and_system.processing_failed": "Impossible de traiter la requête. Réessayez.",
|
||||
"admin_and_system.resource_locked": "Cette ressource est en cours de modification. Veuillez réessayer dans quelques instants.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "L’utilisation du code cadeau est en cours. Réessayez dans quelques instants.",
|
||||
"invites_and_gifts.unknown_gift_code": "Code cadeau inconnu.",
|
||||
"invites_and_packs.max_emojis_reached": "Vous avez atteint le maximum de {count, plural, =1 {# emoji} other {# emojis}}.",
|
||||
"limits.at_least_one_entry_required": "Au moins un élément est requis.",
|
||||
"limits.base64_length_invalid": "La longueur de la chaîne Base64 doit être comprise entre {min} et {maxLength} caractères.",
|
||||
"limits.cannot_specify_before_and_after": "Vous ne pouvez pas indiquer à la fois `before` et `after`.",
|
||||
"limits.content_exceeds_max_length": "Le texte ne doit pas dépasser {maxLength, plural, =1 {# caractère} other {# caractères}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Code de vérification DSA invalide.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Ces réponses ne correspondent pas au formulaire de signalement. Veuillez recommencer le signalement.",
|
||||
"moderation_and_reports.ip_ban_declined": "Cette adresse IP ne peut pas être ajoutée à la liste de blocage.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Ce blocage réseau appartient à une décision de modération. Mettez fin à la décision pour le retirer.",
|
||||
"moderation_and_reports.report_already_resolved": "Signalement déjà résolu.",
|
||||
"moderation_and_reports.report_banned": "Vous n’êtes plus autorisé à envoyer des signalements.",
|
||||
"moderation_and_reports.report_flow_outdated": "Le formulaire de signalement a changé pendant que vous le remplissiez. Veuillez recommencer le signalement.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Une résolution avec mesure nécessite un résultat, qui ne peut pas être l'absence d'infraction. Une résolution en doublon doit indiquer le signalement d'origine et n'accepte aucun résultat. Une résolution sans infraction n'accepte aucun autre résultat.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Ce signalement fait l’objet d’une conservation légale et ne peut pas être supprimé.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Vous devez finaliser votre inscription avant de pouvoir envoyer des signalements.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Décision de modération inconnue.",
|
||||
"moderation_and_reports.unknown_report": "Signalement inconnu.",
|
||||
"moderation_and_reports.user_is_not_banned": "Cet utilisateur n'est pas banni.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Le nom ne peut pas être vide une fois normalisé.",
|
||||
"permissions.global_ip_banned": "Les administrateurs de la plateforme ont définitivement bloqué l’accès à {product_name} API depuis votre adresse IP {ipAddress}. {appealEmail, select, null {Si vous pensez qu’il s’agit d’une erreur, contactez les administrateurs de cette instance pour déposer un recours.} other {Si vous pensez qu’il s’agit d’une erreur, écrivez à {appealEmail} pour déposer un recours.}} Indiquez cette adresse IP dans votre recours.",
|
||||
"permissions.global_ip_temporarily_banned": "L’accès à {product_name} API depuis votre adresse IP {ipAddress} a été temporairement bloqué. Le blocage sera levé automatiquement à son expiration. {appealEmail, select, null {Si vous pensez qu’il s’agit d’une erreur, contactez les administrateurs de cette instance en indiquant cette adresse IP.} other {Si vous pensez qu’il s’agit d’une erreur, écrivez à {appealEmail} en indiquant cette adresse IP.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} a bloqué l'accès depuis ce réseau en raison d'une activité qui enfreignait ses règles.} other {{product_name} a bloqué l'accès depuis ce réseau.}} Si vous partagez ce réseau, par exemple à l'école, au travail, sur un Wi-Fi public, via votre opérateur mobile ou un VPN, ce blocage n'a peut-être rien à voir avec vous. Le plus rapide est de changer de réseau, par exemple en passant aux données mobiles au lieu du Wi-Fi, ou d'activer ou de désactiver votre VPN.{appealEmail, select, null {} other { Si vous pensez que ce blocage est une erreur, écrivez à {appealEmail} en indiquant votre adresse IP, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} a bloqué l'accès depuis ce réseau en raison d'une activité qui enfreignait ses règles.} other {{product_name} a bloqué l'accès depuis ce réseau.}} Le blocage prend fin le {expiresAt}. Si vous partagez ce réseau, par exemple à l'école, au travail, sur un Wi-Fi public, via votre opérateur mobile ou un VPN, ce blocage n'a peut-être rien à voir avec vous. Le plus rapide est de changer de réseau, par exemple en passant aux données mobiles au lieu du Wi-Fi, ou d'activer ou de désactiver votre VPN.{appealEmail, select, null {} other { Si vous pensez que ce blocage est une erreur, écrivez à {appealEmail} en indiquant votre adresse IP, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Vous n’avez pas accès à cette ressource ou fonctionnalité.",
|
||||
"permissions.missing_permissions": "Vous n’avez pas les permissions requises pour effectuer cette action.",
|
||||
"permissions.user_banned_from_guild": "Cet utilisateur est banni de cette communauté.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "רשימות ACL לא יכולות להיות ריקות.",
|
||||
"admin_and_system.admin_api_key_not_found": "מפתח API של אדמין לא נמצא.",
|
||||
"admin_and_system.deletion_failed": "לא הצלחנו למחוק את המשאב. ניתן לנסות שוב.",
|
||||
"admin_and_system.enforcement_account_closed": "החשבון הזה סגור, ולכן אי אפשר להשעות אותו.",
|
||||
"admin_and_system.enforcement_confirmations_required": "יש לאשר שהראיות נשמרו ושכל דיווח נדרש הוגש.",
|
||||
"admin_and_system.enforcement_decision_ended": "ההחלטה הזו כבר הסתיימה.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "ההגבלה הזו שייכת להחלטת אכיפה. יש לסיים את ההחלטה במקום זאת.",
|
||||
"admin_and_system.enforcement_decision_replaced": "החלטה מאוחרת יותר החליפה את ההחלטה הזו, ולכן כבר אי אפשר לסיים אותה.",
|
||||
"admin_and_system.enforcement_deletion_started": "מחיקת החשבון הזה כבר התחילה, ולכן כבר אי אפשר לסיים את ההחלטה.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "אפשר להשתמש בהודעות מתוך הודעות פרטיות כראיה רק כשדיווח מקושר מכסה את השיחה הזו.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "ההודעות שמוסרות נשמרות כראיה, ולכן אין לצרף הודעות ראיה נפרדות.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "אחת מהודעות הראיה לא נמצאה.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "כל הודעת ראיה חייבת להיות מהחשבון או מהקהילה שההחלטה הזו עוסקת בהם.",
|
||||
"admin_and_system.enforcement_evidence_required": "ההחלטה הזו דורשת לפחות הודעת ראיה אחת.",
|
||||
"admin_and_system.enforcement_facts_required": "יש להוסיף הודעת ראיה או הערה למשתמש.",
|
||||
"admin_and_system.enforcement_internal_note_required": "יש להוסיף הערה פנימית בכותרת X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "אי אפשר להשתמש בסיבה הזו לפעולה הזו.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "רק להגבלת דיווחים יש תאריך סיום, והוא חייב להיות בתוך 365 הימים הקרובים.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "אי אפשר להשתמש בסיבה הזו להגבלה הזו.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "רק השעיה לצמיתות או סגירה בגלל הפרת כלל יכולות לחסום רשתות.",
|
||||
"admin_and_system.enforcement_network_shared": "חשבונות אחרים שאינם מוגבלים היו פעילים לאחרונה ברשת הזו, ולכן אי אפשר לחסום אותה.",
|
||||
"admin_and_system.enforcement_network_unknown": "החשבון הזה לא השתמש ברשת הזו ב-30 הימים האחרונים.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "רק ביטול יכול לסיים החלטה מהסוג הזה, כי אין מה להסיר.",
|
||||
"admin_and_system.enforcement_permanent_required": "השעיות מהסיבה הזו חייבות להיות לצמיתות.",
|
||||
"admin_and_system.enforcement_report_mismatch": "כל דיווח מקושר חייב להיות קיים ולעסוק בחשבון או בקהילה שההחלטה הזו עוסקת בהם.",
|
||||
"admin_and_system.enforcement_report_required": "יש לקשר לפחות דיווח אחד כשהמקור הוא דיווח.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "אפשר לציין בעל זכויות רק בהחלטות בנושא זכויות יוצרים.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "החלטות בנושא זכויות יוצרים דורשות את בעל הזכויות או את הזכות הנוגעת בדבר.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "החלטות מהסיבה הזו לא יכולות לכלול הערה למשתמש.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "הסימון הזה הוא חלק מהגבלה. יש לשנות אותו דרך נתיבי ההשעיה, המחיקה או הגבלת התכונות.",
|
||||
"admin_and_system.general_error": "משהו השתבש. ניתן לנסות שוב מאוחר יותר.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "מזהה הקהילה נדרש עבור אינדקסים של חיפוש הודעות ערוצים וחברים.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "שינוי זה במדיניות המופע אינו מותר.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "חותמת זמן שגויה.",
|
||||
"admin_and_system.invalid_timezone_identifier": "מזהה אזור זמן שגוי.",
|
||||
"admin_and_system.missing_acl": "ACL חסר.",
|
||||
"admin_and_system.moderation_basis_required": "יש לציין בסיס למחיקת ההודעות.",
|
||||
"admin_and_system.must_be_iso_timestamp": "חייבת להיות חותמת זמן ISO תקינה.",
|
||||
"admin_and_system.processing_failed": "לא הצלחנו לעבד את הבקשה. ניתן לנסות שוב.",
|
||||
"admin_and_system.resource_locked": "המשאב הזה נמצא כעת בעריכה. ניתן לנסות שוב בעוד זמן קצר.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "מימוש קוד המתנה בעיצומו. ניתן לנסות שוב בעוד רגע.",
|
||||
"invites_and_gifts.unknown_gift_code": "קוד מתנה לא ידוע.",
|
||||
"invites_and_packs.max_emojis_reached": "הגעת למספר המרבי של {count} {count, plural, one {אימוג'י} other {אימוג'ים}}.",
|
||||
"limits.at_least_one_entry_required": "נדרשת רשומה אחת לפחות.",
|
||||
"limits.base64_length_invalid": "אורך מחרוזת Base64 חייב להיות בין {min} ל-{maxLength} תווים.",
|
||||
"limits.cannot_specify_before_and_after": "לא ניתן לציין את `before` ואת `after` יחד.",
|
||||
"limits.content_exceeds_max_length": "הטקסט מוגבל ל-{maxLength} {maxLength, plural, one {תו} other {תווים}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "קוד אימות DSA שגוי.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "התשובות האלה לא תואמות לטופס הדיווח. יש להתחיל את הדיווח מחדש.",
|
||||
"moderation_and_reports.ip_ban_declined": "לא ניתן להוסיף כתובת IP זו לרשימת החסימה.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "חסימת הרשת הזו שייכת להחלטת אכיפה. יש לסיים את ההחלטה כדי להסיר אותה.",
|
||||
"moderation_and_reports.report_already_resolved": "הדיווח כבר טופל.",
|
||||
"moderation_and_reports.report_banned": "נחסמת מלהגיש דיווחים.",
|
||||
"moderation_and_reports.report_flow_outdated": "טופס הדיווח השתנה במהלך המילוי. יש להתחיל את הדיווח מחדש.",
|
||||
"moderation_and_reports.report_outcome_invalid": "סגירה כטופל דורשת תוצאה שאינה ללא הפרה. סגירה ככפול דורשת את הדיווח המקורי ולא מקבלת תוצאה. סגירה ללא הפרה לא מקבלת תוצאה אחרת.",
|
||||
"moderation_and_reports.report_under_legal_hold": "הדיווח הזה נתון להקפאה משפטית ואי אפשר למחוק אותו.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "עליך להשלים את הגדרת החשבון שלך לפני שאפשר להגיש דיווחים.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "החלטת אכיפה לא ידועה.",
|
||||
"moderation_and_reports.unknown_report": "דיווח לא ידוע.",
|
||||
"moderation_and_reports.user_is_not_banned": "משתמש זה לא חסום.",
|
||||
"names_and_normalization.name_empty_after_normalization": "השם לא יכול להיות ריק לאחר נורמליזציה.",
|
||||
"permissions.global_ip_banned": "כתובת ה-IP שלך {ipAddress} נחסמה לצמיתות מ-{product_name} API על ידי מנהלי הפלטפורמה. {appealEmail, select, null {אם לדעתך זו טעות, אפשר לפנות אל מנהלי המערכת של המופע הזה כדי לערער.} other {אם לדעתך זו טעות, אפשר לפנות אל {appealEmail} כדי לערער.}} יש לכלול את כתובת ה-IP הזו בערעור.",
|
||||
"permissions.global_ip_temporarily_banned": "כתובת ה-IP שלך {ipAddress} נחסמה זמנית מ-{product_name} API. החסימה תוסר אוטומטית כשתפוג. {appealEmail, select, null {אם לדעתך זו טעות, אפשר לפנות אל מנהלי המערכת של המופע הזה ולציין את כתובת ה-IP הזו.} other {אם לדעתך זו טעות, אפשר לפנות אל {appealEmail} ולציין את כתובת ה-IP הזו.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} חסם את הגישה מהרשת הזו בגלל פעילות שהפרה את הכללים שלו.} other {{product_name} חסם את הגישה מהרשת הזו.}} אם אתם חולקים את הרשת הזו עם אחרים, למשל בבית הספר, בעבודה, ב-Wi-Fi ציבורי, דרך ספק הסלולר או דרך VPN, ייתכן שלחסימה הזו אין שום קשר אליכם. הפתרון המהיר ביותר הוא לעבור לרשת אחרת, למשל לגלישה סלולרית במקום Wi-Fi, או להפעיל או לכבות את ה-VPN.{appealEmail, select, null {} other { אם לדעתכם החסימה הזו היא טעות, שלחו אימייל אל {appealEmail} וציינו את כתובת ה-IP שלכם, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} חסם את הגישה מהרשת הזו בגלל פעילות שהפרה את הכללים שלו.} other {{product_name} חסם את הגישה מהרשת הזו.}} החסימה מסתיימת ב-{expiresAt}. אם אתם חולקים את הרשת הזו עם אחרים, למשל בבית הספר, בעבודה, ב-Wi-Fi ציבורי, דרך ספק הסלולר או דרך VPN, ייתכן שלחסימה הזו אין שום קשר אליכם. הפתרון המהיר ביותר הוא לעבור לרשת אחרת, למשל לגלישה סלולרית במקום Wi-Fi, או להפעיל או לכבות את ה-VPN.{appealEmail, select, null {} other { אם לדעתכם החסימה הזו היא טעות, שלחו אימייל אל {appealEmail} וציינו את כתובת ה-IP שלכם, {ipAddress}.}}",
|
||||
"permissions.missing_access": "אין לך גישה למשאב או לתכונה הזו.",
|
||||
"permissions.missing_permissions": "אין לך את ההרשאות הנדרשות לביצוע פעולה זו.",
|
||||
"permissions.user_banned_from_guild": "משתמש זה חסום בקהילה זו.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACLs खाली नहीं हो सकते।",
|
||||
"admin_and_system.admin_api_key_not_found": "एडमिन API कुंजी नहीं मिली।",
|
||||
"admin_and_system.deletion_failed": "रिसोर्स डिलीट नहीं किया जा सका। कृपया फिर से कोशिश करें।",
|
||||
"admin_and_system.enforcement_account_closed": "यह अकाउंट बंद है, इसलिए इसे सस्पेंड नहीं किया जा सकता।",
|
||||
"admin_and_system.enforcement_confirmations_required": "पुष्टि करें कि सबूत सुरक्षित रखे गए हैं और हर ज़रूरी रिपोर्ट दर्ज कर दी गई है।",
|
||||
"admin_and_system.enforcement_decision_ended": "यह फैसला पहले ही खत्म हो चुका है।",
|
||||
"admin_and_system.enforcement_decision_owns_state": "यह पाबंदी एक एनफ़ोर्समेंट फैसले के तहत है। इसके बजाय फैसला खत्म करें।",
|
||||
"admin_and_system.enforcement_decision_replaced": "बाद के एक फैसले ने इसकी जगह ले ली है, इसलिए इसे अब खत्म नहीं किया जा सकता।",
|
||||
"admin_and_system.enforcement_deletion_started": "इस अकाउंट को डिलीट करने की प्रक्रिया शुरू हो चुकी है, इसलिए फैसला अब खत्म नहीं किया जा सकता।",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "डायरेक्ट मैसेज बातचीत के मैसेज सबूत के तौर पर तभी इस्तेमाल किए जा सकते हैं जब कोई लिंक की गई रिपोर्ट उस बातचीत को कवर करती हो।",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "हटाए जा रहे मैसेज सबूत के तौर पर सेव किए जाते हैं, इसलिए अलग से सबूत मैसेज न जोड़ें।",
|
||||
"admin_and_system.enforcement_evidence_not_found": "सबूत वाला एक मैसेज नहीं मिला।",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "हर सबूत मैसेज उसी अकाउंट या कम्युनिटी का होना चाहिए जिसके बारे में यह फैसला है।",
|
||||
"admin_and_system.enforcement_evidence_required": "इस फैसले के लिए कम से कम एक सबूत मैसेज ज़रूरी है।",
|
||||
"admin_and_system.enforcement_facts_required": "एक सबूत मैसेज या यूज़र के लिए एक नोट जोड़ें।",
|
||||
"admin_and_system.enforcement_internal_note_required": "X-Audit-Log-Reason हेडर में एक इंटरनल नोट जोड़ें।",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "इस वजह का इस्तेमाल इस कार्रवाई के लिए नहीं किया जा सकता।",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "सिर्फ़ रिपोर्ट वाली पाबंदी की खत्म होने की तारीख होती है, और वह अगले 365 दिनों के अंदर होनी चाहिए।",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "इस वजह का इस्तेमाल इस पाबंदी के लिए नहीं किया जा सकता।",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "सिर्फ़ स्थायी सस्पेंशन या किसी नियम के उल्लंघन पर अकाउंट बंद करने से ही नेटवर्क ब्लॉक किए जा सकते हैं।",
|
||||
"admin_and_system.enforcement_network_shared": "इस नेटवर्क पर हाल ही में ऐसे दूसरे अकाउंट एक्टिव थे जिन पर पाबंदी नहीं है, इसलिए इसे ब्लॉक नहीं किया जा सकता।",
|
||||
"admin_and_system.enforcement_network_unknown": "इस अकाउंट ने पिछले 30 दिनों में इस नेटवर्क का इस्तेमाल नहीं किया है।",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "इस तरह का फैसला सिर्फ़ उसे पलटकर ही खत्म किया जा सकता है, क्योंकि हटाने के लिए कुछ नहीं है।",
|
||||
"admin_and_system.enforcement_permanent_required": "इस वजह से किए गए सस्पेंशन स्थायी होने चाहिए।",
|
||||
"admin_and_system.enforcement_report_mismatch": "हर लिंक की गई रिपोर्ट मौजूद होनी चाहिए और उसी अकाउंट या कम्युनिटी के बारे में होनी चाहिए जिसके बारे में यह फैसला है।",
|
||||
"admin_and_system.enforcement_report_required": "जब सोर्स रिपोर्ट हो, तो कम से कम एक रिपोर्ट लिंक करें।",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "अधिकार धारक सिर्फ़ कॉपीराइट फैसलों के लिए दिया जा सकता है।",
|
||||
"admin_and_system.enforcement_rights_holder_required": "कॉपीराइट फैसलों के लिए अधिकार धारक या संबंधित अधिकार ज़रूरी है।",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "इस वजह से लिए गए फैसलों में यूज़र के लिए नोट शामिल नहीं किया जा सकता।",
|
||||
"admin_and_system.flag_requires_enforcement_route": "यह फ़्लैग एक पाबंदी का हिस्सा है। इसे सस्पेंशन, डिलीशन या फ़ीचर लिमिट वाले रूट से बदलें।",
|
||||
"admin_and_system.general_error": "कुछ गलत हो गया। कृपया बाद में फिर से कोशिश करें।",
|
||||
"admin_and_system.guild_id_required_for_search_index": "चैनल मैसेज और सदस्य सर्च इंडेक्स के लिए कम्युनिटी ID ज़रूरी है।",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "इंस्टेंस पॉलिसी में इस बदलाव की अनुमति नहीं है।",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "अमान्य टाइमस्टैम्प।",
|
||||
"admin_and_system.invalid_timezone_identifier": "अमान्य टाइमज़ोन आइडेंटिफ़ायर।",
|
||||
"admin_and_system.missing_acl": "ACL गायब है।",
|
||||
"admin_and_system.moderation_basis_required": "मैसेज डिलीट करने का आधार बताएँ।",
|
||||
"admin_and_system.must_be_iso_timestamp": "मान्य ISO टाइमस्टैम्प होना ज़रूरी है।",
|
||||
"admin_and_system.processing_failed": "रिक्वेस्ट प्रोसेस नहीं की जा सकी। कृपया फिर से कोशिश करें।",
|
||||
"admin_and_system.resource_locked": "यह रिसोर्स अभी बदला जा रहा है। कृपया थोड़ी देर बाद फिर से कोशिश करें।",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "गिफ्ट कोड रिडीम किया जा रहा है। थोड़ी देर में फिर से कोशिश करें।",
|
||||
"invites_and_gifts.unknown_gift_code": "अज्ञात गिफ्ट कोड।",
|
||||
"invites_and_packs.max_emojis_reached": "आप अधिकतम {count} {count, plural, one {इमोजी} other {इमोजी}} तक पहुँच गए हैं।",
|
||||
"limits.at_least_one_entry_required": "कम से कम एक एंट्री ज़रूरी है।",
|
||||
"limits.base64_length_invalid": "Base64 स्ट्रिंग की लंबाई {min} और {maxLength} कैरेक्टर के बीच होनी चाहिए।",
|
||||
"limits.cannot_specify_before_and_after": "आप `before` और `after` दोनों को स्पेसिफाई नहीं कर सकते।",
|
||||
"limits.content_exceeds_max_length": "टेक्स्ट {maxLength} {maxLength, plural, one {कैरेक्टर} other {कैरेक्टर}} से ज़्यादा नहीं होना चाहिए।",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "अमान्य DSA वेरिफ़िकेशन कोड।",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "ये जवाब रिपोर्ट फ़ॉर्म से मेल नहीं खाते। रिपोर्ट को फिर से शुरू करें।",
|
||||
"moderation_and_reports.ip_ban_declined": "इस IP पते को ब्लॉकलिस्ट में नहीं जोड़ा जा सकता।",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "यह नेटवर्क ब्लॉक एक एनफ़ोर्समेंट फैसले से जुड़ा है। इसे हटाने के लिए फैसला खत्म करें।",
|
||||
"moderation_and_reports.report_already_resolved": "रिपोर्ट पहले ही हल हो चुकी है।",
|
||||
"moderation_and_reports.report_banned": "आपको रिपोर्ट सबमिट करने से बैन कर दिया गया है।",
|
||||
"moderation_and_reports.report_flow_outdated": "रिपोर्ट फ़ॉर्म भरते समय बदल गया था। कृपया रिपोर्ट दोबारा शुरू करें।",
|
||||
"moderation_and_reports.report_outcome_invalid": "कार्रवाई की गई वाले समाधान के लिए उल्लंघन नहीं के अलावा कोई दूसरा नतीजा ज़रूरी है। डुप्लिकेट वाले समाधान के लिए मूल रिपोर्ट ज़रूरी है, और उसमें कोई नतीजा नहीं दिया जा सकता। उल्लंघन नहीं वाले समाधान में कोई दूसरा नतीजा नहीं दिया जा सकता।",
|
||||
"moderation_and_reports.report_under_legal_hold": "यह रिपोर्ट कानूनी रोक के तहत है और इसे हटाया नहीं जा सकता।",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "रिपोर्ट सबमिट करने से पहले आपको अपना अकाउंट सेटअप पूरा करना होगा।",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "अज्ञात एनफ़ोर्समेंट फैसला।",
|
||||
"moderation_and_reports.unknown_report": "अज्ञात रिपोर्ट।",
|
||||
"moderation_and_reports.user_is_not_banned": "यह यूज़र बैन नहीं है।",
|
||||
"names_and_normalization.name_empty_after_normalization": "नॉर्मलाइज़ेशन के बाद नाम खाली नहीं हो सकता।",
|
||||
"permissions.global_ip_banned": "आपका IP पता {ipAddress} प्लेटफ़ॉर्म एडमिनों द्वारा {product_name} API से स्थायी रूप से ब्लॉक कर दिया गया है। {appealEmail, select, null {अगर आपको लगता है कि यह गलती है, तो अपील के लिए इस इंस्टेंस के एडमिनिस्ट्रेटर से संपर्क करें।} other {अगर आपको लगता है कि यह गलती है, तो अपील के लिए {appealEmail} से संपर्क करें।}} अपनी अपील में यह IP पता शामिल करें।",
|
||||
"permissions.global_ip_temporarily_banned": "आपका IP पता {ipAddress} {product_name} API से अस्थायी रूप से ब्लॉक कर दिया गया है। समय पूरा होने पर ब्लॉक अपने-आप हट जाएगा। {appealEmail, select, null {अगर आपको लगता है कि यह गलती है, तो इस इंस्टेंस के एडमिनिस्ट्रेटर से संपर्क करें और यह IP पता शामिल करें।} other {अगर आपको लगता है कि यह गलती है, तो {appealEmail} से संपर्क करें और यह IP पता शामिल करें।}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} ने अपने नियम तोड़ने वाली गतिविधि की वजह से इस नेटवर्क से एक्सेस ब्लॉक कर दिया है।} other {{product_name} ने इस नेटवर्क से एक्सेस ब्लॉक कर दिया है।}} अगर आप यह नेटवर्क दूसरों के साथ शेयर करते हैं, जैसे स्कूल में, ऑफ़िस में, पब्लिक Wi-Fi पर, अपने मोबाइल कैरियर के ज़रिए या VPN से, तो हो सकता है कि इस ब्लॉक का आपसे कोई लेना-देना न हो। सबसे जल्दी हल है नेटवर्क बदलना, जैसे Wi-Fi की जगह मोबाइल डेटा इस्तेमाल करना, या अपना VPN चालू या बंद करना।{appealEmail, select, null {} other { अगर आपको लगता है कि यह ब्लॉक गलती से हुआ है, तो {appealEmail} पर ईमेल करें और अपना IP एड्रेस, {ipAddress}, लिखें।}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} ने अपने नियम तोड़ने वाली गतिविधि की वजह से इस नेटवर्क से एक्सेस ब्लॉक कर दिया है।} other {{product_name} ने इस नेटवर्क से एक्सेस ब्लॉक कर दिया है।}} यह ब्लॉक {expiresAt} को खत्म होगा। अगर आप यह नेटवर्क दूसरों के साथ शेयर करते हैं, जैसे स्कूल में, ऑफ़िस में, पब्लिक Wi-Fi पर, अपने मोबाइल कैरियर के ज़रिए या VPN से, तो हो सकता है कि इस ब्लॉक का आपसे कोई लेना-देना न हो। सबसे जल्दी हल है नेटवर्क बदलना, जैसे Wi-Fi की जगह मोबाइल डेटा इस्तेमाल करना, या अपना VPN चालू या बंद करना।{appealEmail, select, null {} other { अगर आपको लगता है कि यह ब्लॉक गलती से हुआ है, तो {appealEmail} पर ईमेल करें और अपना IP एड्रेस, {ipAddress}, लिखें।}}",
|
||||
"permissions.missing_access": "आपके पास इस रिसोर्स या फ़ीचर का एक्सेस नहीं है।",
|
||||
"permissions.missing_permissions": "आपके पास यह एक्शन करने के लिए ज़रूरी अनुमति नहीं है।",
|
||||
"permissions.user_banned_from_guild": "इस यूज़र को इस कम्युनिटी से बैन कर दिया गया है।",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL-ovi ne smiju biti prazni.",
|
||||
"admin_and_system.admin_api_key_not_found": "Administratorski API ključ nije pronađen.",
|
||||
"admin_and_system.deletion_failed": "Nismo mogli obrisati resurs. Pokušaj ponovno.",
|
||||
"admin_and_system.enforcement_account_closed": "Ovaj je račun zatvoren pa ga nije moguće suspendirati.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Potvrdi da su dokazi sačuvani i da je podnesena svaka obvezna prijava.",
|
||||
"admin_and_system.enforcement_decision_ended": "Ova je odluka već prestala važiti.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Ovo ograničenje pripada odluci o provedbi mjera. Umjesto toga završi odluku.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Kasnija odluka zamijenila je ovu pa je više nije moguće završiti.",
|
||||
"admin_and_system.enforcement_deletion_started": "Brisanje ovog računa već je počelo pa odluku više nije moguće završiti.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Izravne poruke mogu se koristiti kao dokaz samo ako povezana prijava obuhvaća taj razgovor.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Poruke koje se uklanjaju spremaju se kao dokaz pa izostavi zasebne poruke kao dokaz.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Jedna od poruka koje služe kao dokaz nije pronađena.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Svaka poruka koja služi kao dokaz mora biti s računa ili iz zajednice na koju se odluka odnosi.",
|
||||
"admin_and_system.enforcement_evidence_required": "Za ovu odluku potrebna je barem jedna poruka kao dokaz.",
|
||||
"admin_and_system.enforcement_facts_required": "Dodaj poruku kao dokaz ili napomenu za korisnika.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Dodaj internu bilješku u zaglavlje X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Ovaj razlog nije moguće koristiti za ovu radnju.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Datum završetka ima samo ograničenje prijava i mora biti unutar sljedećih 365 dana.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Ovaj razlog nije moguće koristiti za ovo ograničenje.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Mreže se mogu blokirati samo trajnom suspenzijom ili zatvaranjem računa zbog prekršenog pravila.",
|
||||
"admin_and_system.enforcement_network_shared": "Drugi računi bez ograničenja zadnji su put bili aktivni na ovoj mreži pa je nije moguće blokirati.",
|
||||
"admin_and_system.enforcement_network_unknown": "Ovaj račun nije koristio ovu mrežu u posljednjih 30 dana.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Ovu vrstu odluke moguće je završiti samo poništenjem jer se nema što ukinuti.",
|
||||
"admin_and_system.enforcement_permanent_required": "Suspenzije zbog ovog razloga moraju biti trajne.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Svaka povezana prijava mora postojati i odnositi se na račun ili zajednicu na koju se odluka odnosi.",
|
||||
"admin_and_system.enforcement_report_required": "Kada je izvor prijava, poveži barem jednu prijavu.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Nositelj prava može se navesti samo za odluke o autorskom pravu.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Odluke o autorskom pravu zahtijevaju nositelja prava ili predmetno pravo.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Odluke zbog ovog razloga ne mogu sadržavati napomenu za korisnika.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Ova je oznaka dio ograničenja. Promijeni je putem ruta za suspenziju, brisanje ili ograničenje funkcija.",
|
||||
"admin_and_system.general_error": "Nešto je pošlo po krivu. Pokušaj ponovno kasnije.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "ID zajednice je obavezan za indekse pretraživanja poruka kanala i članova.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Ova promjena pravila instance nije dopuštena.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Nevažeća vremenska oznaka.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Nevažeći identifikator vremenske zone.",
|
||||
"admin_and_system.missing_acl": "Nedostaje ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Navedi osnovu za brisanje poruka.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Mora biti valjana ISO vremenska oznaka.",
|
||||
"admin_and_system.processing_failed": "Nismo mogli obraditi zahtjev. Pokušaj ponovno.",
|
||||
"admin_and_system.resource_locked": "Ovaj se resurs trenutačno mijenja. Pokušaj ponovno za nekoliko trenutaka.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Iskorištavanje poklon-koda je u tijeku. Pokušaj ponovno za trenutak.",
|
||||
"invites_and_gifts.unknown_gift_code": "Nepoznat poklon-kod.",
|
||||
"invites_and_packs.max_emojis_reached": "Dosegnut je maksimum od {count, plural, one {# emojija} few {# emojija} other {# emojija}}.",
|
||||
"limits.at_least_one_entry_required": "Potreban je barem jedan unos.",
|
||||
"limits.base64_length_invalid": "Duljina Base64 niza mora biti između {min} i {maxLength} znakova.",
|
||||
"limits.cannot_specify_before_and_after": "Ne možeš navesti i `before` i `after`.",
|
||||
"limits.content_exceeds_max_length": "Tekst ne smije prelaziti {maxLength, plural, one {# znak} few {# znaka} other {# znakova}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Nevažeći DSA kod za provjeru.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Ovi odgovori ne odgovaraju obrascu prijave. Započni prijavu ponovno.",
|
||||
"moderation_and_reports.ip_ban_declined": "Ovu IP adresu nije moguće dodati na popis blokiranih.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Ova blokada mreže pripada odluci o provedbi mjera. Da bi se blokada uklonila, završi odluku.",
|
||||
"moderation_and_reports.report_already_resolved": "Prijava je već riješena.",
|
||||
"moderation_and_reports.report_banned": "Zabranjeno ti je podnositi prijave.",
|
||||
"moderation_and_reports.report_flow_outdated": "Obrazac prijave promijenio se tijekom ispunjavanja. Započni prijavu ponovno.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Rješenje „poduzete mjere” zahtijeva ishod koji nije „nema kršenja”. Rješenje „duplikat” zahtijeva prijavu koju ponavlja i ne prima ishod. Rješenje „nema kršenja” ne prima drugi ishod.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Ova prijava podliježe pravnom zadržavanju i ne može se izbrisati.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Moraš dovršiti postavljanje računa prije nego što možeš podnositi prijave.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Nepoznata odluka o provedbi mjera.",
|
||||
"moderation_and_reports.unknown_report": "Nepoznata prijava.",
|
||||
"moderation_and_reports.user_is_not_banned": "Ovaj korisnik nema zabranu.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Ime ne može biti prazno nakon normalizacije.",
|
||||
"permissions.global_ip_banned": "Administratori platforme trajno su blokirali pristup {product_name} API-ju s tvoje IP adrese {ipAddress}. {appealEmail, select, null {Ako smatraš da je to pogreška, obrati se administratorima ove instance i uloži žalbu.} other {Ako smatraš da je to pogreška, javi se na {appealEmail} i uloži žalbu.}} U žalbu uključi ovu IP adresu.",
|
||||
"permissions.global_ip_temporarily_banned": "Pristup {product_name} API-ju s tvoje IP adrese {ipAddress} privremeno je blokiran. Blokada se automatski uklanja kada istekne. {appealEmail, select, null {Ako smatraš da je to pogreška, obrati se administratorima ove instance i navedi ovu IP adresu.} other {Ako smatraš da je to pogreška, javi se na {appealEmail} i navedi ovu IP adresu.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} je blokirao pristup s ove mreže zbog aktivnosti koja je kršila njegova pravila.} other {{product_name} je blokirao pristup s ove mreže.}} Ako ovu mrežu dijeliš s drugima, na primjer u školi, na poslu, na javnom Wi-Fiju, preko mobilnog operatera ili VPN-a, ova blokada možda nema nikakve veze s tobom. Najbrže rješenje je promijeniti mrežu, na primjer prijeći s Wi-Fija na mobilne podatke, ili uključiti odnosno isključiti VPN.{appealEmail, select, null {} other { Ako misliš da je ova blokada pogreška, pošalji e-poruku na {appealEmail} i navedi svoju IP adresu: {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} je blokirao pristup s ove mreže zbog aktivnosti koja je kršila njegova pravila.} other {{product_name} je blokirao pristup s ove mreže.}} Blokada traje do {expiresAt}. Ako ovu mrežu dijeliš s drugima, na primjer u školi, na poslu, na javnom Wi-Fiju, preko mobilnog operatera ili VPN-a, ova blokada možda nema nikakve veze s tobom. Najbrže rješenje je promijeniti mrežu, na primjer prijeći s Wi-Fija na mobilne podatke, ili uključiti odnosno isključiti VPN.{appealEmail, select, null {} other { Ako misliš da je ova blokada pogreška, pošalji e-poruku na {appealEmail} i navedi svoju IP adresu: {ipAddress}.}}",
|
||||
"permissions.missing_access": "Nemaš pristup ovom resursu ili značajci.",
|
||||
"permissions.missing_permissions": "Nemaš potrebna dopuštenja za ovu radnju.",
|
||||
"permissions.user_banned_from_guild": "Ovaj korisnik ima zabranu pristupa ovoj zajednici.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "Az ACL-ek nem lehetnek üresek.",
|
||||
"admin_and_system.admin_api_key_not_found": "Az adminisztrátori API-kulcs nem található.",
|
||||
"admin_and_system.deletion_failed": "Nem sikerült törölni az erőforrást. Próbáld újra.",
|
||||
"admin_and_system.enforcement_account_closed": "Ez a fiók le van zárva, ezért nem függeszthető fel.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Erősítsd meg, hogy a bizonyítékokat megőrizted, és minden kötelező bejelentést megtettél.",
|
||||
"admin_and_system.enforcement_decision_ended": "Ez a döntés már lezárult.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Ezt a korlátozást egy moderációs döntés kezeli. Helyette a döntést zárd le.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Egy későbbi döntés felváltotta ezt, ezért már nem zárható le.",
|
||||
"admin_and_system.enforcement_deletion_started": "A fiók törlése már megkezdődött, ezért a döntés már nem zárható le.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Közvetlen üzenetek csak akkor használhatók bizonyítékként, ha egy kapcsolt bejelentés kiterjed az adott beszélgetésre.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Az eltávolítandó üzeneteket bizonyítékként mentjük, ezért ne adj meg külön bizonyítéküzeneteket.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Az egyik bizonyítéküzenet nem található.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Minden bizonyítéküzenetnek attól a fióktól vagy abból a közösségből kell származnia, amelyre ez a döntés vonatkozik.",
|
||||
"admin_and_system.enforcement_evidence_required": "Ehhez a döntéshez legalább egy bizonyítéküzenet szükséges.",
|
||||
"admin_and_system.enforcement_facts_required": "Adj meg egy bizonyítéküzenetet vagy egy megjegyzést a felhasználónak.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Adj meg egy belső megjegyzést az X-Audit-Log-Reason fejlécben.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Ez az indok nem használható ehhez az intézkedéshez.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Csak a bejelentési korlátozásnak lehet záró dátuma, és annak a következő 365 napon belül kell lennie.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Ez az indok nem használható ehhez a korlátozáshoz.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Hálózatokat csak végleges felfüggesztés vagy szabálysértés miatti lezárás tilthat le.",
|
||||
"admin_and_system.enforcement_network_shared": "Ezen a hálózaton legutóbb más, nem korlátozott fiókok is aktívak voltak, ezért nem tiltható le.",
|
||||
"admin_and_system.enforcement_network_unknown": "Ez a fiók az elmúlt 30 napban nem használta ezt a hálózatot.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Az ilyen típusú döntést csak visszavonással lehet lezárni, mert nincs mit feloldani.",
|
||||
"admin_and_system.enforcement_permanent_required": "Az ilyen indokú felfüggesztéseknek véglegesnek kell lenniük.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Minden kapcsolt bejelentésnek léteznie kell, és arra a fiókra vagy közösségre kell vonatkoznia, amelyről ez a döntés szól.",
|
||||
"admin_and_system.enforcement_report_required": "Kapcsolj legalább egy bejelentést, ha a forrás egy bejelentés.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Jogtulajdonos csak szerzői jogi döntéseknél adható meg.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "A szerzői jogi döntésekhez meg kell adni a jogtulajdonost vagy az érintett jogot.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Az ilyen indokú döntések nem tartalmazhatnak megjegyzést a felhasználónak.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Ez a jelző egy korlátozás része. A felfüggesztési, törlési vagy funkciókorlátozási útvonalakon keresztül módosítsd.",
|
||||
"admin_and_system.general_error": "Hiba történt. Próbáld újra később.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "A csatornaüzenet- és tagkeresési indexekhez meg kell adni a közösség azonosítóját.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "A példány szabályzatának ez a módosítása nem engedélyezett.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Érvénytelen időbélyeg.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Érvénytelen időzóna-azonosító.",
|
||||
"admin_and_system.missing_acl": "Hiányzó ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Add meg az üzenetek törlésének alapját.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Érvényes ISO-időbélyegnek kell lennie.",
|
||||
"admin_and_system.processing_failed": "Nem tudtuk feldolgozni a kérést. Próbáld újra.",
|
||||
"admin_and_system.resource_locked": "Az erőforrás módosítása folyamatban van. Próbáld újra rövidesen.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Az ajándékkód beváltása folyamatban van. Próbáld újra kis idő múlva.",
|
||||
"invites_and_gifts.unknown_gift_code": "Ismeretlen ajándékkód.",
|
||||
"invites_and_packs.max_emojis_reached": "Elérted az emojik megengedett számát ({count, plural, one {#} other {#}}).",
|
||||
"limits.at_least_one_entry_required": "Legalább egy bejegyzés szükséges.",
|
||||
"limits.base64_length_invalid": "A Base64 karakterlánc hossza {min} és {maxLength} karakter közötti lehet.",
|
||||
"limits.cannot_specify_before_and_after": "Nem adhatod meg egyszerre a `before` és az `after` paramétert.",
|
||||
"limits.content_exceeds_max_length": "A szöveg legfeljebb {maxLength, plural, one {# karakter} other {# karakter}} hosszú lehet.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Érvénytelen DSA-ellenőrzőkód.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Ezek a válaszok nem egyeznek a bejelentési űrlappal. Kezdd elölről a bejelentést.",
|
||||
"moderation_and_reports.ip_ban_declined": "Ez az IP-cím nem adható hozzá a tiltólistához.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Ez a hálózati letiltás egy moderációs döntéshez tartozik. Az eltávolításához zárd le a döntést.",
|
||||
"moderation_and_reports.report_already_resolved": "A bejelentést már lezárták.",
|
||||
"moderation_and_reports.report_banned": "Eltiltottak a bejelentések küldésétől.",
|
||||
"moderation_and_reports.report_flow_outdated": "A bejelentési űrlap megváltozott, amíg kitöltötted. Kezdd elölről a bejelentést.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Az intézkedéssel lezárt ügyekhez a szabálysértés nélküli eredménytől eltérő eredmény szükséges. A duplikátumként lezárt ügyekhez meg kell adni az eredeti bejelentést, eredmény viszont nem adható meg. A szabálysértés nélkül lezárt ügyekhez más eredmény nem adható meg.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Ez a bejelentés jogi visszatartás alatt áll, ezért nem törölhető.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Be kell fejezned a fiókod regisztrációját, mielőtt bejelentéseket küldhetnél.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Ismeretlen moderációs döntés.",
|
||||
"moderation_and_reports.unknown_report": "Ismeretlen bejelentés.",
|
||||
"moderation_and_reports.user_is_not_banned": "Ez a felhasználó nincs kitiltva.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Normalizálás után a név nem lehet üres.",
|
||||
"permissions.global_ip_banned": "Az IP-címedet ({ipAddress}) a platform adminisztrátorai véglegesen letiltották a {product_name} API használatáról. {appealEmail, select, null {Ha úgy gondolod, hogy ez tévedés, ennek a példánynak az adminisztrátoraihoz nyújthatsz be fellebbezést.} other {Ha úgy gondolod, hogy ez tévedés, a {appealEmail} címre írhatsz fellebbezést.}} Add meg benne ezt az IP-címet.",
|
||||
"permissions.global_ip_temporarily_banned": "Az IP-címedet ({ipAddress}) ideiglenesen letiltottuk a {product_name} API használatáról. A tiltás a lejártakor magától megszűnik. {appealEmail, select, null {Ha úgy gondolod, hogy ez tévedés, fordulj ennek a példánynak az adminisztrátoraihoz, és add meg ezt az IP-címet.} other {Ha úgy gondolod, hogy ez tévedés, írj a {appealEmail} címre, és add meg ezt az IP-címet.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {A(z) {product_name} letiltotta a hozzáférést erről a hálózatról a szabályait sértő tevékenység miatt.} other {A(z) {product_name} letiltotta a hozzáférést erről a hálózatról.}} Ha ezt a hálózatot másokkal közösen használod, például az iskolában, a munkahelyeden, nyilvános Wi-Fi-n, a mobilszolgáltatódon vagy egy VPN-en keresztül, előfordulhat, hogy a letiltásnak semmi köze hozzád. A leggyorsabb megoldás, ha hálózatot váltasz, például Wi-Fi helyett mobilinternetre, vagy ki- vagy bekapcsolod a VPN-t.{appealEmail, select, null {} other { Ha úgy gondolod, hogy a letiltás tévedés, írj a(z) {appealEmail} címre, és add meg az IP-címedet: {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {A(z) {product_name} letiltotta a hozzáférést erről a hálózatról a szabályait sértő tevékenység miatt.} other {A(z) {product_name} letiltotta a hozzáférést erről a hálózatról.}} A letiltás vége: {expiresAt}. Ha ezt a hálózatot másokkal közösen használod, például az iskolában, a munkahelyeden, nyilvános Wi-Fi-n, a mobilszolgáltatódon vagy egy VPN-en keresztül, előfordulhat, hogy a letiltásnak semmi köze hozzád. A leggyorsabb megoldás, ha hálózatot váltasz, például Wi-Fi helyett mobilinternetre, vagy ki- vagy bekapcsolod a VPN-t.{appealEmail, select, null {} other { Ha úgy gondolod, hogy a letiltás tévedés, írj a(z) {appealEmail} címre, és add meg az IP-címedet: {ipAddress}.}}",
|
||||
"permissions.missing_access": "Nem férsz hozzá ehhez az erőforráshoz vagy funkcióhoz.",
|
||||
"permissions.missing_permissions": "Nincs meg a művelet elvégzéséhez szükséges jogosultságod.",
|
||||
"permissions.user_banned_from_guild": "Ez a felhasználó ki van tiltva a közösségből.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL tidak boleh kosong.",
|
||||
"admin_and_system.admin_api_key_not_found": "Kunci API admin tidak ditemukan.",
|
||||
"admin_and_system.deletion_failed": "Tidak bisa menghapus sumber daya. Coba lagi.",
|
||||
"admin_and_system.enforcement_account_closed": "Akun ini sudah ditutup, jadi tidak bisa ditangguhkan.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Konfirmasikan bahwa bukti sudah disimpan dan setiap laporan yang diwajibkan sudah diajukan.",
|
||||
"admin_and_system.enforcement_decision_ended": "Keputusan ini sudah berakhir.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Pembatasan ini dikendalikan oleh keputusan penegakan. Akhiri keputusan tersebut sebagai gantinya.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Keputusan yang lebih baru telah menggantikan keputusan ini, jadi keputusan ini tidak bisa diakhiri lagi.",
|
||||
"admin_and_system.enforcement_deletion_started": "Penghapusan akun ini sudah dimulai, jadi keputusan ini tidak bisa diakhiri lagi.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Pesan dalam pesan langsung hanya bisa digunakan sebagai bukti jika ada laporan tertaut yang mencakup percakapan tersebut.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Pesan yang dihapus sudah disimpan sebagai bukti, jadi jangan sertakan pesan bukti terpisah.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Salah satu pesan bukti tidak ditemukan.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Setiap pesan bukti harus berasal dari akun atau komunitas yang menjadi subjek keputusan ini.",
|
||||
"admin_and_system.enforcement_evidence_required": "Keputusan ini memerlukan setidaknya satu pesan bukti.",
|
||||
"admin_and_system.enforcement_facts_required": "Tambahkan pesan bukti atau catatan untuk pengguna.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Tambahkan catatan internal di header X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Alasan ini tidak bisa digunakan untuk tindakan ini.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Hanya pembatasan laporan yang memiliki tanggal berakhir, dan tanggal itu harus dalam 365 hari ke depan.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Alasan ini tidak bisa digunakan untuk pembatasan ini.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Hanya penangguhan permanen atau penutupan karena pelanggaran aturan yang bisa memblokir jaringan.",
|
||||
"admin_and_system.enforcement_network_shared": "Akun lain yang tidak dibatasi terakhir aktif di jaringan ini, jadi jaringan ini tidak bisa diblokir.",
|
||||
"admin_and_system.enforcement_network_unknown": "Akun ini tidak menggunakan jaringan ini dalam 30 hari terakhir.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Keputusan jenis ini hanya bisa diakhiri dengan pembatalan, karena tidak ada yang perlu dicabut.",
|
||||
"admin_and_system.enforcement_permanent_required": "Penangguhan karena alasan ini harus permanen.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Setiap laporan tertaut harus ada dan berkaitan dengan akun atau komunitas yang menjadi subjek keputusan ini.",
|
||||
"admin_and_system.enforcement_report_required": "Tautkan setidaknya satu laporan jika sumbernya adalah laporan.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Pemegang hak hanya bisa diisi untuk keputusan hak cipta.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Keputusan hak cipta memerlukan pemegang hak atau hak yang bersangkutan.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Keputusan karena alasan ini tidak bisa menyertakan catatan untuk pengguna.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Penanda ini adalah bagian dari pembatasan. Ubah melalui rute penangguhan, penghapusan, atau pembatasan fitur.",
|
||||
"admin_and_system.general_error": "Ada yang salah. Coba lagi nanti.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "ID komunitas diperlukan untuk indeks pencarian pesan saluran dan anggota.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Perubahan kebijakan instance ini tidak diizinkan.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Timestamp tidak valid.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Pengenal zona waktu tidak valid.",
|
||||
"admin_and_system.missing_acl": "ACL tidak ada.",
|
||||
"admin_and_system.moderation_basis_required": "Berikan dasar untuk menghapus pesan.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Harus berupa ISO timestamp yang valid.",
|
||||
"admin_and_system.processing_failed": "Tidak bisa memproses permintaan. Coba lagi.",
|
||||
"admin_and_system.resource_locked": "Sumber daya ini sedang diubah. Coba lagi dalam beberapa saat.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Penukaran kode hadiah sedang berlangsung. Coba lagi beberapa saat lagi.",
|
||||
"invites_and_gifts.unknown_gift_code": "Kode hadiah tidak dikenal.",
|
||||
"invites_and_packs.max_emojis_reached": "Kamu sudah mencapai batas maksimum {count} {count, plural, other {emoji}}.",
|
||||
"limits.at_least_one_entry_required": "Minimal satu entri diperlukan.",
|
||||
"limits.base64_length_invalid": "Panjang string Base64 harus antara {min} dan {maxLength} karakter.",
|
||||
"limits.cannot_specify_before_and_after": "Kamu tidak bisa menentukan `before` dan `after` sekaligus.",
|
||||
"limits.content_exceeds_max_length": "Teks tidak boleh melebihi {maxLength} {maxLength, plural, other {karakter}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Kode verifikasi DSA tidak valid.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Jawaban ini tidak sesuai dengan formulir laporan. Mulai ulang laporanmu.",
|
||||
"moderation_and_reports.ip_ban_declined": "Alamat IP ini tidak dapat ditambahkan ke daftar blokir.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Blokir jaringan ini terikat pada keputusan penegakan. Akhiri keputusan tersebut untuk menghapusnya.",
|
||||
"moderation_and_reports.report_already_resolved": "Laporan sudah ditangani.",
|
||||
"moderation_and_reports.report_banned": "Kamu dilarang mengirim laporan.",
|
||||
"moderation_and_reports.report_flow_outdated": "Formulir laporan berubah saat kamu mengisinya. Mulai ulang laporanmu.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Penyelesaian dengan tindakan memerlukan hasil selain tanpa pelanggaran. Penyelesaian duplikat memerlukan laporan aslinya dan tidak boleh memakai hasil. Penyelesaian tanpa pelanggaran tidak boleh memakai hasil lain.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Laporan ini sedang ditahan karena alasan hukum dan tidak dapat dihapus.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Kamu perlu menyelesaikan penyiapan akunmu sebelum bisa mengirim laporan.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Keputusan penegakan tidak dikenal.",
|
||||
"moderation_and_reports.unknown_report": "Laporan tidak dikenal.",
|
||||
"moderation_and_reports.user_is_not_banned": "Pengguna ini tidak diblokir.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Nama tidak bisa kosong setelah normalisasi.",
|
||||
"permissions.global_ip_banned": "Alamat IP kamu {ipAddress} telah diblokir permanen dari {product_name} API oleh admin platform. {appealEmail, select, null {Jika kamu merasa ini keliru, hubungi administrator instance ini untuk mengajukan banding.} other {Jika kamu merasa ini keliru, hubungi {appealEmail} untuk mengajukan banding.}} Sertakan alamat IP ini dalam bandingmu.",
|
||||
"permissions.global_ip_temporarily_banned": "Alamat IP kamu {ipAddress} diblokir sementara dari {product_name} API. Pemblokiran akan dicabut secara otomatis saat masa berlakunya habis. {appealEmail, select, null {Jika kamu merasa ini keliru, hubungi administrator instance ini dan sertakan alamat IP ini.} other {Jika kamu merasa ini keliru, hubungi {appealEmail} dan sertakan alamat IP ini.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} memblokir akses dari jaringan ini karena aktivitas yang melanggar aturannya.} other {{product_name} memblokir akses dari jaringan ini.}} Jika kamu berbagi jaringan ini dengan orang lain, misalnya di sekolah, di tempat kerja, di Wi-Fi publik, melalui operator selulermu, atau lewat VPN, blokir ini mungkin tidak ada hubungannya denganmu. Cara tercepat untuk mengatasinya adalah berganti jaringan, misalnya memakai data seluler alih-alih Wi-Fi, atau menyalakan atau mematikan VPN-mu.{appealEmail, select, null {} other { Jika menurutmu blokir ini keliru, kirim email ke {appealEmail} dan sertakan alamat IP-mu, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} memblokir akses dari jaringan ini karena aktivitas yang melanggar aturannya.} other {{product_name} memblokir akses dari jaringan ini.}} Blokir berakhir pada {expiresAt}. Jika kamu berbagi jaringan ini dengan orang lain, misalnya di sekolah, di tempat kerja, di Wi-Fi publik, melalui operator selulermu, atau lewat VPN, blokir ini mungkin tidak ada hubungannya denganmu. Cara tercepat untuk mengatasinya adalah berganti jaringan, misalnya memakai data seluler alih-alih Wi-Fi, atau menyalakan atau mematikan VPN-mu.{appealEmail, select, null {} other { Jika menurutmu blokir ini keliru, kirim email ke {appealEmail} dan sertakan alamat IP-mu, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Kamu tidak memiliki akses ke sumber daya atau fitur ini.",
|
||||
"permissions.missing_permissions": "Kamu tidak memiliki izin yang diperlukan untuk melakukan tindakan ini.",
|
||||
"permissions.user_banned_from_guild": "Pengguna ini diblokir dari komunitas ini.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "Le ACL non possono essere vuote.",
|
||||
"admin_and_system.admin_api_key_not_found": "La chiave API admin non è stata trovata.",
|
||||
"admin_and_system.deletion_failed": "Non è stato possibile eliminare la risorsa. Riprova.",
|
||||
"admin_and_system.enforcement_account_closed": "Questo account è chiuso, quindi non può essere sospeso.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Conferma che le prove sono state conservate e che ogni segnalazione obbligatoria è stata inviata.",
|
||||
"admin_and_system.enforcement_decision_ended": "Questa decisione è già terminata.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Questa restrizione dipende da una decisione di moderazione. Termina invece la decisione.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Una decisione successiva ha sostituito questa, quindi non può più essere terminata.",
|
||||
"admin_and_system.enforcement_deletion_started": "L'eliminazione di questo account è già iniziata, quindi la decisione non può più essere terminata.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "I messaggi diretti possono essere usati come prove solo se una segnalazione collegata riguarda quella conversazione.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "I messaggi da rimuovere vengono salvati come prove, quindi non aggiungere messaggi di prova separati.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Uno dei messaggi di prova non è stato trovato.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Ogni messaggio di prova deve provenire dall'account o dalla community a cui si riferisce questa decisione.",
|
||||
"admin_and_system.enforcement_evidence_required": "Questa decisione richiede almeno un messaggio di prova.",
|
||||
"admin_and_system.enforcement_facts_required": "Aggiungi un messaggio di prova o una nota per l'utente.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Aggiungi una nota interna nell'header X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Questo motivo non può essere usato per questa azione.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Solo un limite sulle segnalazioni ha una data di fine, che deve essere entro i prossimi 365 giorni.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Questo motivo non può essere usato per questo limite.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Solo una sospensione permanente o una chiusura per violazione di una regola può bloccare le reti.",
|
||||
"admin_and_system.enforcement_network_shared": "L'ultima attività di altri account senza restrizioni è avvenuta su questa rete, quindi non può essere bloccata.",
|
||||
"admin_and_system.enforcement_network_unknown": "Questo account non ha usato questa rete negli ultimi 30 giorni.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Solo un annullamento può terminare questo tipo di decisione, perché non c'è nulla da revocare.",
|
||||
"admin_and_system.enforcement_permanent_required": "Le sospensioni per questo motivo devono essere permanenti.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Ogni segnalazione collegata deve esistere e riguardare l'account o la community a cui si riferisce questa decisione.",
|
||||
"admin_and_system.enforcement_report_required": "Collega almeno una segnalazione quando l'origine è una segnalazione.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Un titolare dei diritti può essere indicato solo per le decisioni sul diritto d'autore.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Le decisioni sul diritto d'autore richiedono il titolare dei diritti o il diritto in questione.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Le decisioni per questo motivo non possono includere una nota per l'utente.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Questo flag fa parte di una restrizione. Modificalo tramite le route di sospensione, eliminazione o limitazione delle funzionalità.",
|
||||
"admin_and_system.general_error": "Qualcosa è andato storto. Riprova più tardi.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "È necessario l'ID della community per gli indici di ricerca dei messaggi e dei membri del canale.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Questa modifica delle policy dell'istanza non è consentita.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Timestamp non valido.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Identificatore del fuso orario non valido.",
|
||||
"admin_and_system.missing_acl": "ACL assente.",
|
||||
"admin_and_system.moderation_basis_required": "Indica un fondamento per eliminare i messaggi.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Deve essere un timestamp ISO valido.",
|
||||
"admin_and_system.processing_failed": "Non è stato possibile elaborare la richiesta. Riprova.",
|
||||
"admin_and_system.resource_locked": "Questa risorsa è in fase di modifica. Riprova tra breve.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Il riscatto del codice regalo è in corso. Riprova tra un momento.",
|
||||
"invites_and_gifts.unknown_gift_code": "Codice regalo sconosciuto.",
|
||||
"invites_and_packs.max_emojis_reached": "Hai raggiunto il massimo di {count, plural, one {# emoji} other {# emoji}}.",
|
||||
"limits.at_least_one_entry_required": "È richiesta almeno una voce.",
|
||||
"limits.base64_length_invalid": "La lunghezza della stringa base64 deve essere compresa tra {min} e {maxLength} caratteri.",
|
||||
"limits.cannot_specify_before_and_after": "Non puoi specificare sia `before` che `after`.",
|
||||
"limits.content_exceeds_max_length": "Il testo non può superare {maxLength, plural, one {# carattere} other {# caratteri}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Codice di verifica DSA non valido.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Queste risposte non corrispondono al modulo di segnalazione. Ricomincia la segnalazione.",
|
||||
"moderation_and_reports.ip_ban_declined": "Questo indirizzo IP non può essere aggiunto all'elenco di blocco.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Questo blocco di rete appartiene a una decisione di moderazione. Termina la decisione per rimuoverlo.",
|
||||
"moderation_and_reports.report_already_resolved": "La segnalazione è già stata risolta.",
|
||||
"moderation_and_reports.report_banned": "Non hai più il permesso di inviare segnalazioni.",
|
||||
"moderation_and_reports.report_flow_outdated": "Il modulo di segnalazione è cambiato mentre lo stavi compilando. Ricomincia la segnalazione.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Una risoluzione con provvedimento richiede un esito, che non può essere l'assenza di violazione. Una risoluzione duplicata richiede la segnalazione originale e non ammette alcun esito. Una risoluzione senza violazione non ammette altri esiti.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Questa segnalazione è soggetta a un vincolo di conservazione legale e non può essere eliminata.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Devi completare la registrazione del tuo account prima di poter inviare segnalazioni.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Decisione di moderazione sconosciuta.",
|
||||
"moderation_and_reports.unknown_report": "Segnalazione sconosciuta.",
|
||||
"moderation_and_reports.user_is_not_banned": "L'utente non è bannato.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Il nome non può essere vuoto dopo la normalizzazione.",
|
||||
"permissions.global_ip_banned": "Il tuo indirizzo IP {ipAddress} è stato bloccato in modo permanente dall'API {product_name} dagli amministratori della piattaforma. {appealEmail, select, null {Se pensi che sia un errore, contatta gli amministratori di questa istanza per fare ricorso.} other {Se pensi che sia un errore, contatta {appealEmail} per fare ricorso.}} Includi questo indirizzo IP nel ricorso.",
|
||||
"permissions.global_ip_temporarily_banned": "Il tuo indirizzo IP {ipAddress} è stato bloccato temporaneamente dall'API {product_name}. Il blocco verrà rimosso automaticamente alla scadenza. {appealEmail, select, null {Se pensi che sia un errore, contatta gli amministratori di questa istanza indicando questo indirizzo IP.} other {Se pensi che sia un errore, contatta {appealEmail} indicando questo indirizzo IP.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} ha bloccato l'accesso da questa rete a causa di attività che violavano le sue regole.} other {{product_name} ha bloccato l'accesso da questa rete.}} Se condividi questa rete, ad esempio a scuola, al lavoro, su una rete Wi-Fi pubblica, tramite il tuo operatore mobile o una VPN, questo blocco potrebbe non avere nulla a che fare con te. La soluzione più rapida è cambiare rete, ad esempio passando ai dati mobili invece del Wi-Fi, oppure attivare o disattivare la VPN.{appealEmail, select, null {} other { Se pensi che questo blocco sia un errore, scrivi a {appealEmail} indicando il tuo indirizzo IP, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} ha bloccato l'accesso da questa rete a causa di attività che violavano le sue regole.} other {{product_name} ha bloccato l'accesso da questa rete.}} Il blocco termina il {expiresAt}. Se condividi questa rete, ad esempio a scuola, al lavoro, su una rete Wi-Fi pubblica, tramite il tuo operatore mobile o una VPN, questo blocco potrebbe non avere nulla a che fare con te. La soluzione più rapida è cambiare rete, ad esempio passando ai dati mobili invece del Wi-Fi, oppure attivare o disattivare la VPN.{appealEmail, select, null {} other { Se pensi che questo blocco sia un errore, scrivi a {appealEmail} indicando il tuo indirizzo IP, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Non hai accesso a questa risorsa o funzionalità.",
|
||||
"permissions.missing_permissions": "Non hai le autorizzazioni necessarie per eseguire questa azione.",
|
||||
"permissions.user_banned_from_guild": "L'utente è bannato da questa community.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACLは空にできません。",
|
||||
"admin_and_system.admin_api_key_not_found": "管理者APIキーが見つかりませんでした。",
|
||||
"admin_and_system.deletion_failed": "リソースを削除できませんでした。もう一度お試しください。",
|
||||
"admin_and_system.enforcement_account_closed": "このアカウントは閉鎖済みのため、一時停止できません。",
|
||||
"admin_and_system.enforcement_confirmations_required": "証拠が保全されていること、および必要な報告が提出済みであることを確認してください。",
|
||||
"admin_and_system.enforcement_decision_ended": "この決定はすでに終了しています。",
|
||||
"admin_and_system.enforcement_decision_owns_state": "この制限は措置決定によって管理されています。代わりに決定を終了してください。",
|
||||
"admin_and_system.enforcement_decision_replaced": "後の決定に置き換えられたため、この決定は終了できなくなりました。",
|
||||
"admin_and_system.enforcement_deletion_started": "このアカウントの削除はすでに始まっているため、決定を終了できなくなりました。",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "ダイレクトメッセージ内のメッセージは、その会話を対象とする報告がリンクされている場合にのみ証拠として使用できます。",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "削除されるメッセージは証拠として保存されるため、個別の証拠メッセージは指定しないでください。",
|
||||
"admin_and_system.enforcement_evidence_not_found": "証拠メッセージのうち1件が見つかりませんでした。",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "すべての証拠メッセージは、この決定の対象となるアカウントまたはコミュニティのものである必要があります。",
|
||||
"admin_and_system.enforcement_evidence_required": "この決定には、少なくとも1件の証拠メッセージが必要です。",
|
||||
"admin_and_system.enforcement_facts_required": "証拠メッセージまたはユーザーへのメモを追加してください。",
|
||||
"admin_and_system.enforcement_internal_note_required": "X-Audit-Log-Reasonヘッダーに内部メモを追加してください。",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "この理由はこの措置には使用できません。",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "終了日を設定できるのは報告の制限のみで、今日から365日以内である必要があります。",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "この理由はこの制限には使用できません。",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "ネットワークをブロックできるのは、ルール違反による永久停止または閉鎖のみです。",
|
||||
"admin_and_system.enforcement_network_shared": "制限されていない他のアカウントがこのネットワークで最後にアクティブだったため、ブロックできません。",
|
||||
"admin_and_system.enforcement_network_unknown": "このアカウントは過去30日間にこのネットワークを使用していません。",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "解除する対象がないため、この種類の決定は取り消しでのみ終了できます。",
|
||||
"admin_and_system.enforcement_permanent_required": "この理由による停止は永久停止である必要があります。",
|
||||
"admin_and_system.enforcement_report_mismatch": "リンクするすべての報告が存在し、この決定の対象となるアカウントまたはコミュニティに関するものである必要があります。",
|
||||
"admin_and_system.enforcement_report_required": "ソースが報告の場合は、少なくとも1件の報告をリンクしてください。",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "権利者を指定できるのは、著作権に関する決定のみです。",
|
||||
"admin_and_system.enforcement_rights_holder_required": "著作権に関する決定には、権利者または関係する権利が必要です。",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "この理由による決定には、ユーザーへのメモを含めることはできません。",
|
||||
"admin_and_system.flag_requires_enforcement_route": "このフラグは制限の一部です。停止、削除、または機能制限のルートから変更してください。",
|
||||
"admin_and_system.general_error": "問題が発生しました。後でもう一度お試しください。",
|
||||
"admin_and_system.guild_id_required_for_search_index": "チャンネルメッセージとメンバーの検索インデックスにはコミュニティIDが必要です。",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "このインスタンスポリシーの変更は許可されていません。",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "タイムスタンプが無効です。",
|
||||
"admin_and_system.invalid_timezone_identifier": "タイムゾーンIDが無効です。",
|
||||
"admin_and_system.missing_acl": "ACLがありません。",
|
||||
"admin_and_system.moderation_basis_required": "メッセージを削除する根拠を指定してください。",
|
||||
"admin_and_system.must_be_iso_timestamp": "有効なISOタイムスタンプである必要があります。",
|
||||
"admin_and_system.processing_failed": "リクエストを処理できませんでした。もう一度お試しください。",
|
||||
"admin_and_system.resource_locked": "このリソースは現在変更されています。しばらくしてからもう一度お試しください。",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "ギフトコードを引き換え中です。しばらくしてからもう一度お試しください。",
|
||||
"invites_and_gifts.unknown_gift_code": "不明なギフトコードです。",
|
||||
"invites_and_packs.max_emojis_reached": "絵文字の上限{count, plural, other {#個}}に達しました。",
|
||||
"limits.at_least_one_entry_required": "1つ以上のエントリが必要です。",
|
||||
"limits.base64_length_invalid": "Base64文字列の長さは{min}~{maxLength}文字である必要があります。",
|
||||
"limits.cannot_specify_before_and_after": "`before`と`after`は同時に指定できません。",
|
||||
"limits.content_exceeds_max_length": "テキストは{maxLength, plural, other {#文字}}を超えることはできません。",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "DSA確認コードが無効です。",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "これらの回答は報告フォームと一致しません。最初から報告し直してください。",
|
||||
"moderation_and_reports.ip_ban_declined": "このIPアドレスはブロックリストに追加できません。",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "このネットワークブロックは措置決定に紐づいています。削除するには決定を終了してください。",
|
||||
"moderation_and_reports.report_already_resolved": "報告はすでに解決済みです。",
|
||||
"moderation_and_reports.report_banned": "報告の送信は禁止されています。",
|
||||
"moderation_and_reports.report_flow_outdated": "入力中に報告フォームが変更されました。最初から報告し直してください。",
|
||||
"moderation_and_reports.report_outcome_invalid": "対応済みの解決には違反なし以外の結果が必要です。重複には重複元の報告が必要で、結果は指定できません。違反なしの解決には他の結果を指定できません。",
|
||||
"moderation_and_reports.report_under_legal_hold": "この報告は法的保全の対象のため削除できません。",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "報告を送信する前に、アカウント設定を完了する必要があります。",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "不明な措置決定です。",
|
||||
"moderation_and_reports.unknown_report": "不明な報告です。",
|
||||
"moderation_and_reports.user_is_not_banned": "このユーザーはBANされていません。",
|
||||
"names_and_normalization.name_empty_after_normalization": "正規化後、名前は空にできません。",
|
||||
"permissions.global_ip_banned": "IPアドレス{ipAddress}は、プラットフォーム管理者により{product_name} APIから永久にブロックされました。{appealEmail, select, null {誤りだと思う場合は、このインスタンスの管理者に連絡して異議申し立てをしてください。} other {誤りだと思う場合は、{appealEmail}に連絡して異議申し立てをしてください。}}申し立てにはこのIPアドレスを記載してください。",
|
||||
"permissions.global_ip_temporarily_banned": "IPアドレス{ipAddress}は、{product_name} APIから一時的にブロックされました。ブロックは期限が切れると自動的に解除されます。{appealEmail, select, null {誤りだと思う場合は、このIPアドレスを記載のうえ、このインスタンスの管理者に連絡してください。} other {誤りだと思う場合は、このIPアドレスを記載のうえ、{appealEmail}に連絡してください。}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name}は、ルールに違反する活動があったため、このネットワークからのアクセスをブロックしました。} other {{product_name}は、このネットワークからのアクセスをブロックしました。}}学校、職場、公共Wi-Fi、モバイルキャリア、VPNなどでこのネットワークを他の人と共有している場合、このブロックはあなたとは関係ないかもしれません。いちばん早い解決策は、Wi-Fiからモバイルデータに切り替えるなどしてネットワークを変えるか、VPNをオンまたはオフにすることです。{appealEmail, select, null {} other {このブロックが誤りだと思われる場合は、IPアドレス({ipAddress})を記載して{appealEmail}までメールでご連絡ください。}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name}は、ルールに違反する活動があったため、このネットワークからのアクセスをブロックしました。} other {{product_name}は、このネットワークからのアクセスをブロックしました。}}ブロックは{expiresAt}に解除されます。学校、職場、公共Wi-Fi、モバイルキャリア、VPNなどでこのネットワークを他の人と共有している場合、このブロックはあなたとは関係ないかもしれません。いちばん早い解決策は、Wi-Fiからモバイルデータに切り替えるなどしてネットワークを変えるか、VPNをオンまたはオフにすることです。{appealEmail, select, null {} other {このブロックが誤りだと思われる場合は、IPアドレス({ipAddress})を記載して{appealEmail}までメールでご連絡ください。}}",
|
||||
"permissions.missing_access": "このリソースや機能にアクセスする権限がありません。",
|
||||
"permissions.missing_permissions": "この操作を実行するために必要な権限がありません。",
|
||||
"permissions.user_banned_from_guild": "このユーザーはこのコミュニティでBANされています。",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL은 비어 있을 수 없어요.",
|
||||
"admin_and_system.admin_api_key_not_found": "관리자 API 키를 찾을 수 없어요.",
|
||||
"admin_and_system.deletion_failed": "리소스를 삭제하지 못했어요. 다시 시도해 주세요.",
|
||||
"admin_and_system.enforcement_account_closed": "이 계정은 폐쇄되어 정지할 수 없어요.",
|
||||
"admin_and_system.enforcement_confirmations_required": "증거가 보존되었고 필요한 보고가 제출되었는지 확인해 주세요.",
|
||||
"admin_and_system.enforcement_decision_ended": "이 결정은 이미 종료되었어요.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "이 제한은 제재 결정에 따라 관리돼요. 대신 결정을 종료해 주세요.",
|
||||
"admin_and_system.enforcement_decision_replaced": "이후의 결정이 이 결정을 대체해서 더 이상 종료할 수 없어요.",
|
||||
"admin_and_system.enforcement_deletion_started": "이 계정의 삭제가 이미 시작되어 더 이상 결정을 종료할 수 없어요.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "DM 속 메시지는 연결된 신고가 해당 대화를 다룰 때만 증거로 사용할 수 있어요.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "삭제되는 메시지는 증거로 저장되므로 별도의 증거 메시지는 빼 주세요.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "증거 메시지 중 하나를 찾을 수 없어요.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "모든 증거 메시지는 이 결정의 대상인 계정이나 커뮤니티의 것이어야 해요.",
|
||||
"admin_and_system.enforcement_evidence_required": "이 결정에는 증거 메시지가 하나 이상 필요해요.",
|
||||
"admin_and_system.enforcement_facts_required": "증거 메시지나 사용자에게 보낼 메모를 추가해 주세요.",
|
||||
"admin_and_system.enforcement_internal_note_required": "X-Audit-Log-Reason 헤더에 내부 메모를 추가해 주세요.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "이 사유는 이 조치에 사용할 수 없어요.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "종료일은 신고 제한에만 지정할 수 있으며, 앞으로 365일 이내여야 해요.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "이 사유는 이 제한에 사용할 수 없어요.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "네트워크는 규칙 위반에 따른 영구 정지나 폐쇄로만 차단할 수 있어요.",
|
||||
"admin_and_system.enforcement_network_shared": "제한되지 않은 다른 계정이 마지막으로 이 네트워크에서 활동해서 차단할 수 없어요.",
|
||||
"admin_and_system.enforcement_network_unknown": "이 계정은 최근 30일 동안 이 네트워크를 사용하지 않았어요.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "해제할 대상이 없으므로 이 유형의 결정은 취소로만 종료할 수 있어요.",
|
||||
"admin_and_system.enforcement_permanent_required": "이 사유로 인한 정지는 영구 정지여야 해요.",
|
||||
"admin_and_system.enforcement_report_mismatch": "연결된 모든 신고는 존재해야 하며, 이 결정의 대상인 계정이나 커뮤니티에 관한 것이어야 해요.",
|
||||
"admin_and_system.enforcement_report_required": "출처가 신고라면 신고를 하나 이상 연결해 주세요.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "권리자는 저작권 결정에만 지정할 수 있어요.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "저작권 결정에는 권리자 또는 관련 권리가 필요해요.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "이 사유로 내린 결정에는 사용자에게 보낼 메모를 포함할 수 없어요.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "이 플래그는 제한의 일부예요. 정지, 삭제 또는 기능 제한 경로에서 변경해 주세요.",
|
||||
"admin_and_system.general_error": "문제가 발생했어요. 나중에 다시 시도해 주세요.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "채널 메시지 및 멤버 검색 인덱스에는 커뮤니티 ID가 필요해요.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "이 인스턴스 정책 변경은 허용되지 않아요.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "타임스탬프가 유효하지 않아요.",
|
||||
"admin_and_system.invalid_timezone_identifier": "시간대 식별자가 유효하지 않아요.",
|
||||
"admin_and_system.missing_acl": "ACL이 누락되었어요.",
|
||||
"admin_and_system.moderation_basis_required": "메시지를 삭제할 근거를 입력해 주세요.",
|
||||
"admin_and_system.must_be_iso_timestamp": "유효한 ISO 타임스탬프여야 해요.",
|
||||
"admin_and_system.processing_failed": "요청을 처리하지 못했어요. 다시 시도해 주세요.",
|
||||
"admin_and_system.resource_locked": "이 리소스는 지금 수정 중이에요. 잠시 후 다시 시도해 주세요.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "선물 코드 사용이 진행 중이에요. 잠시 후 다시 시도해 주세요.",
|
||||
"invites_and_gifts.unknown_gift_code": "알 수 없는 선물 코드예요.",
|
||||
"invites_and_packs.max_emojis_reached": "최대 {count, plural, other {#개}}의 이모지에 도달했어요.",
|
||||
"limits.at_least_one_entry_required": "최소 한 개의 항목이 필요해요.",
|
||||
"limits.base64_length_invalid": "Base64 문자열 길이는 {min}자에서 {maxLength}자 사이여야 해요.",
|
||||
"limits.cannot_specify_before_and_after": "`before`와 `after`를 동시에 지정할 수 없어요.",
|
||||
"limits.content_exceeds_max_length": "텍스트는 {maxLength, plural, other {#자}}를 초과할 수 없어요.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "DSA 인증 코드가 올바르지 않아요.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "이 답변은 신고 양식과 맞지 않아요. 신고를 다시 시작해 주세요.",
|
||||
"moderation_and_reports.ip_ban_declined": "이 IP 주소는 차단 목록에 추가할 수 없어요.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "이 네트워크 차단은 제재 결정에 속해 있어요. 차단을 없애려면 결정을 종료해 주세요.",
|
||||
"moderation_and_reports.report_already_resolved": "이미 해결된 신고예요.",
|
||||
"moderation_and_reports.report_banned": "신고 제출이 금지되었어요.",
|
||||
"moderation_and_reports.report_flow_outdated": "작성하는 동안 신고 양식이 변경되었어요. 신고를 다시 시작해 주세요.",
|
||||
"moderation_and_reports.report_outcome_invalid": "조치 완료 처리에는 위반 없음 이외의 결과가 필요해요. 중복 처리에는 원래 신고가 필요하고 결과를 지정할 수 없어요. 위반 없음 처리에는 다른 결과를 지정할 수 없어요.",
|
||||
"moderation_and_reports.report_under_legal_hold": "이 신고는 법적 보존 조치 대상이라 삭제할 수 없어요.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "신고를 제출하려면 계정 설정을 완료해야 해요.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "알 수 없는 제재 결정이에요.",
|
||||
"moderation_and_reports.unknown_report": "알 수 없는 신고예요.",
|
||||
"moderation_and_reports.user_is_not_banned": "이 사용자는 차단되지 않았어요.",
|
||||
"names_and_normalization.name_empty_after_normalization": "정규화 후 이름은 비워둘 수 없어요.",
|
||||
"permissions.global_ip_banned": "회원님의 IP 주소 {ipAddress}는 플랫폼 관리자가 {product_name} API에서 영구 차단했어요. {appealEmail, select, null {오류라고 생각한다면 이 인스턴스의 관리자에게 문의해 이의를 제기해 주세요.} other {오류라고 생각한다면 {appealEmail}으로 문의해 이의를 제기해 주세요.}} 이의 제기에는 이 IP 주소를 포함해 주세요.",
|
||||
"permissions.global_ip_temporarily_banned": "회원님의 IP 주소 {ipAddress}는 {product_name} API에서 일시 차단되었어요. 차단은 기간이 끝나면 자동으로 해제돼요. {appealEmail, select, null {오류라고 생각한다면 이 IP 주소를 포함해 이 인스턴스의 관리자에게 문의해 주세요.} other {오류라고 생각한다면 이 IP 주소를 포함해 {appealEmail}으로 문의해 주세요.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {규칙을 위반한 활동 때문에 {product_name}에서 이 네트워크의 접속을 차단했어요.} other {{product_name}에서 이 네트워크의 접속을 차단했어요.}} 학교, 직장, 공용 Wi-Fi, 이동통신사, VPN 등으로 이 네트워크를 다른 사람과 함께 쓰고 있다면 이 차단은 본인과 관계없을 수도 있어요. 가장 빠른 해결 방법은 Wi-Fi 대신 모바일 데이터를 쓰는 등 네트워크를 바꾸거나, VPN을 켜거나 끄는 거예요.{appealEmail, select, null {} other { 이 차단이 잘못되었다고 생각하면 IP 주소({ipAddress})를 적어 {appealEmail} 주소로 이메일을 보내 주세요.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {규칙을 위반한 활동 때문에 {product_name}에서 이 네트워크의 접속을 차단했어요.} other {{product_name}에서 이 네트워크의 접속을 차단했어요.}} 차단은 {expiresAt}에 해제돼요. 학교, 직장, 공용 Wi-Fi, 이동통신사, VPN 등으로 이 네트워크를 다른 사람과 함께 쓰고 있다면 이 차단은 본인과 관계없을 수도 있어요. 가장 빠른 해결 방법은 Wi-Fi 대신 모바일 데이터를 쓰는 등 네트워크를 바꾸거나, VPN을 켜거나 끄는 거예요.{appealEmail, select, null {} other { 이 차단이 잘못되었다고 생각하면 IP 주소({ipAddress})를 적어 {appealEmail} 주소로 이메일을 보내 주세요.}}",
|
||||
"permissions.missing_access": "이 리소스 또는 기능에 접근할 권한이 없어요.",
|
||||
"permissions.missing_permissions": "이 작업을 수행하는 데 필요한 권한이 없어요.",
|
||||
"permissions.user_banned_from_guild": "이 사용자는 이 커뮤니티에서 차단되었어요.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL negali būti tuščias.",
|
||||
"admin_and_system.admin_api_key_not_found": "Nerastas administratoriaus API raktas.",
|
||||
"admin_and_system.deletion_failed": "Ištekliaus ištrinti nepavyko. Pabandyk dar kartą.",
|
||||
"admin_and_system.enforcement_account_closed": "Ši paskyra uždaryta, todėl jos negalima sustabdyti.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Patvirtink, kad įrodymai išsaugoti ir kad visi privalomi pranešimai pateikti.",
|
||||
"admin_and_system.enforcement_decision_ended": "Šis sprendimas jau nebegalioja.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Šis apribojimas priklauso moderavimo sprendimui. Vietoj to nutrauk sprendimo galiojimą.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Šį sprendimą pakeitė vėlesnis, todėl jo galiojimo nebegalima nutraukti.",
|
||||
"admin_and_system.enforcement_deletion_started": "Šios paskyros ištrynimas jau prasidėjo, todėl sprendimo galiojimo nebegalima nutraukti.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Žinutes iš tiesioginių žinučių pokalbių kaip įrodymus galima naudoti tik tada, kai tą pokalbį apima susietas pranešimas.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Šalinamos žinutės išsaugomos kaip įrodymai, todėl atskirų įrodymų žinučių nenurodyk.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Viena iš įrodymų žinučių nerasta.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Kiekviena įrodymų žinutė turi būti iš paskyros ar bendruomenės, kuriai skirtas šis sprendimas.",
|
||||
"admin_and_system.enforcement_evidence_required": "Šiam sprendimui reikia bent vienos įrodymų žinutės.",
|
||||
"admin_and_system.enforcement_facts_required": "Pridėk įrodymų žinutę arba pastabą naudotojui.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Pridėk vidinę pastabą antraštėje X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Šios priežasties negalima naudoti šiam veiksmui.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Pabaigos datą gali turėti tik pranešimų apribojimas, ir ji turi būti per artimiausias 365 dienas.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Šios priežasties negalima naudoti šiam apribojimui.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Tinklus blokuoti galima tik sustabdant paskyrą visam laikui arba ją uždarant dėl taisyklės pažeidimo.",
|
||||
"admin_and_system.enforcement_network_shared": "Šiame tinkle paskutinį kartą buvo aktyvios kitos neapribotos paskyros, todėl jo blokuoti negalima.",
|
||||
"admin_and_system.enforcement_network_unknown": "Ši paskyra per pastarąsias 30 dienų šiuo tinklu nesinaudojo.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Tokio tipo sprendimą galima nutraukti tik jį atšaukiant, nes nėra ką panaikinti.",
|
||||
"admin_and_system.enforcement_permanent_required": "Dėl šios priežasties taikomi sustabdymai turi būti visam laikui.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Kiekvienas susietas pranešimas turi egzistuoti ir būti apie paskyrą ar bendruomenę, kuriai skirtas šis sprendimas.",
|
||||
"admin_and_system.enforcement_report_required": "Kai šaltinis yra pranešimas, susiek bent vieną pranešimą.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Teisių turėtoją galima nurodyti tik sprendimuose dėl autorių teisių.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Sprendimuose dėl autorių teisių reikia nurodyti teisių turėtoją arba susijusią teisę.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Sprendimuose dėl šios priežasties negalima pateikti pastabos naudotojui.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Ši žymė yra apribojimo dalis. Keisk ją per sustabdymo, ištrynimo arba funkcijų apribojimo maršrutus.",
|
||||
"admin_and_system.general_error": "Kažkas nepavyko. Pabandyk dar kartą vėliau.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Bendruomenės ID reikalingas kanalo žinučių ir narių paieškos indeksams.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Šis instancijos politikos keitimas neleidžiamas.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Netinkama laiko žyma.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Netinkamas laiko juostos identifikatorius.",
|
||||
"admin_and_system.missing_acl": "Nėra ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Nurodyk žinučių ištrynimo pagrindą.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Turi būti galiojanti ISO laiko žyma.",
|
||||
"admin_and_system.processing_failed": "Užklausos apdoroti nepavyko. Pabandyk dar kartą.",
|
||||
"admin_and_system.resource_locked": "Šis išteklius šiuo metu keičiamas. Pabandyk dar kartą netrukus.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Dovanos kodas jau išperkamas. Pabandyk dar kartą po akimirkos.",
|
||||
"invites_and_gifts.unknown_gift_code": "Nežinomas dovanos kodas.",
|
||||
"invites_and_packs.max_emojis_reached": "Pasiekei {count, plural, one {# emoji} few {# emoji} many {# emoji} other {# emoji}} ribą.",
|
||||
"limits.at_least_one_entry_required": "Reikalingas bent vienas įrašas.",
|
||||
"limits.base64_length_invalid": "Base64 eilutės ilgis turi būti nuo {min} iki {maxLength} simbolių.",
|
||||
"limits.cannot_specify_before_and_after": "Negali nurodyti `before` ir `after` vienu metu.",
|
||||
"limits.content_exceeds_max_length": "Tekstas neturi viršyti {maxLength, plural, one {# simbolio} few {# simbolių} many {# simbolio} other {# simbolių}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Neteisingas DSA patvirtinimo kodas.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Šie atsakymai neatitinka pranešimo formos. Pradėk pranešimą iš naujo.",
|
||||
"moderation_and_reports.ip_ban_declined": "Šio IP adreso negalima įtraukti į blokavimo sąrašą.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Šis tinklo blokavimas priklauso moderavimo sprendimui. Kad jį pašalintum, nutrauk sprendimo galiojimą.",
|
||||
"moderation_and_reports.report_already_resolved": "Pranešimas jau išnagrinėtas.",
|
||||
"moderation_and_reports.report_banned": "Tau uždrausta teikti pranešimus.",
|
||||
"moderation_and_reports.report_flow_outdated": "Pranešimo forma pasikeitė, kol ją pildei. Pradėk pranešimą iš naujo.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Sprendimui „imtasi veiksmų“ reikia nurodyti kitą rezultatą nei „pažeidimo nėra“. Sprendimui „dublikatas“ reikia nurodyti pranešimą, kurį jis kartoja, o rezultato nurodyti negalima. Sprendimui „pažeidimo nėra“ kito rezultato nurodyti negalima.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Šiam pranešimui taikomas teisinis išsaugojimas, todėl jo ištrinti negalima.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Kad galėtum teikti pranešimus, turi užbaigti paskyros nustatymą.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Nežinomas moderavimo sprendimas.",
|
||||
"moderation_and_reports.unknown_report": "Nežinomas pranešimas.",
|
||||
"moderation_and_reports.user_is_not_banned": "Šis naudotojas nėra užblokuotas.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Po normalizavimo pavadinimas negali būti tuščias.",
|
||||
"permissions.global_ip_banned": "Tavo IP adresas {ipAddress} platformos administratorių visam laikui užblokuotas {product_name} API. {appealEmail, select, null {Jei manai, kad tai klaida, dėl apeliacijos susisiek su šios instancijos administratoriais.} other {Jei manai, kad tai klaida, dėl apeliacijos susisiek adresu {appealEmail}.}} Apeliacijoje nurodyk šį IP adresą.",
|
||||
"permissions.global_ip_temporarily_banned": "Tavo IP adresas {ipAddress} laikinai užblokuotas {product_name} API. Blokavimas bus panaikintas automatiškai, kai baigsis jo laikas. {appealEmail, select, null {Jei manai, kad tai klaida, susisiek su šios instancijos administratoriais ir nurodyk šį IP adresą.} other {Jei manai, kad tai klaida, susisiek adresu {appealEmail} ir nurodyk šį IP adresą.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} užblokavo prieigą iš šio tinklo dėl veiklos, pažeidusios taisykles.} other {{product_name} užblokavo prieigą iš šio tinklo.}} Jei šiuo tinklu naudojiesi kartu su kitais, pavyzdžiui, mokykloje, darbe, viešajame Wi-Fi tinkle, per mobiliojo ryšio operatorių ar VPN, šis blokavimas gali būti visai nesusijęs su tavimi. Greičiausiai padės pakeisti tinklą, pavyzdžiui, vietoj Wi-Fi naudoti mobiliuosius duomenis, arba įjungti ar išjungti VPN.{appealEmail, select, null {} other { Jei manai, kad šis blokavimas yra klaida, parašyk adresu {appealEmail} ir nurodyk savo IP adresą: {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} užblokavo prieigą iš šio tinklo dėl veiklos, pažeidusios taisykles.} other {{product_name} užblokavo prieigą iš šio tinklo.}} Blokavimas baigsis {expiresAt}. Jei šiuo tinklu naudojiesi kartu su kitais, pavyzdžiui, mokykloje, darbe, viešajame Wi-Fi tinkle, per mobiliojo ryšio operatorių ar VPN, šis blokavimas gali būti visai nesusijęs su tavimi. Greičiausiai padės pakeisti tinklą, pavyzdžiui, vietoj Wi-Fi naudoti mobiliuosius duomenis, arba įjungti ar išjungti VPN.{appealEmail, select, null {} other { Jei manai, kad šis blokavimas yra klaida, parašyk adresu {appealEmail} ir nurodyk savo IP adresą: {ipAddress}.}}",
|
||||
"permissions.missing_access": "Neturi prieigos prie šio ištekliaus ar funkcijos.",
|
||||
"permissions.missing_permissions": "Neturi reikiamų leidimų atlikti šį veiksmą.",
|
||||
"permissions.user_banned_from_guild": "Šis naudotojas užblokuotas šioje bendruomenėje.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL's mogen niet leeg zijn.",
|
||||
"admin_and_system.admin_api_key_not_found": "Admin-API-sleutel is niet gevonden.",
|
||||
"admin_and_system.deletion_failed": "We konden het item niet verwijderen. Probeer het opnieuw.",
|
||||
"admin_and_system.enforcement_account_closed": "Dit account is gesloten en kan daarom niet worden geschorst.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Bevestig dat het bewijs is bewaard en dat elke verplichte melding is gedaan.",
|
||||
"admin_and_system.enforcement_decision_ended": "Deze beslissing is al beëindigd.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Deze beperking hoort bij een handhavingsbeslissing. Beëindig in plaats daarvan de beslissing.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Een latere beslissing heeft deze vervangen, dus deze kan niet meer worden beëindigd.",
|
||||
"admin_and_system.enforcement_deletion_started": "De verwijdering van dit account is al begonnen, dus de beslissing kan niet meer worden beëindigd.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Berichten uit directe berichten kunnen alleen als bewijs worden gebruikt als een gekoppelde melding dat gesprek dekt.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "De berichten die worden verwijderd, worden als bewijs bewaard, dus laat aparte bewijsberichten weg.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Een van de bewijsberichten is niet gevonden.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Elk bewijsbericht moet afkomstig zijn van het account of de community waar deze beslissing over gaat.",
|
||||
"admin_and_system.enforcement_evidence_required": "Deze beslissing heeft minstens één bewijsbericht nodig.",
|
||||
"admin_and_system.enforcement_facts_required": "Voeg een bewijsbericht of een opmerking voor de gebruiker toe.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Voeg een interne notitie toe in de header X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Deze reden kan niet worden gebruikt voor deze actie.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Alleen een beperking op meldingen heeft een einddatum, en die moet binnen de komende 365 dagen liggen.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Deze reden kan niet worden gebruikt voor deze beperking.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Alleen een permanente schorsing of een sluiting wegens een overtreden regel kan netwerken blokkeren.",
|
||||
"admin_and_system.enforcement_network_shared": "Andere accounts die niet zijn beperkt, waren als laatste actief op dit netwerk, dus het kan niet worden geblokkeerd.",
|
||||
"admin_and_system.enforcement_network_unknown": "Dit account heeft dit netwerk de afgelopen 30 dagen niet gebruikt.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Dit soort beslissing kan alleen worden beëindigd door terugdraaien, omdat er niets op te heffen valt.",
|
||||
"admin_and_system.enforcement_permanent_required": "Schorsingen om deze reden moeten permanent zijn.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Elke gekoppelde melding moet bestaan en gaan over het account of de community waar deze beslissing over gaat.",
|
||||
"admin_and_system.enforcement_report_required": "Koppel minstens één melding als de bron een melding is.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Een rechthebbende kan alleen worden opgegeven bij auteursrechtbeslissingen.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Auteursrechtbeslissingen hebben de rechthebbende of het betrokken recht nodig.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Beslissingen om deze reden mogen geen opmerking voor de gebruiker bevatten.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Deze vlag hoort bij een beperking. Wijzig hem via de routes voor schorsing, verwijdering of functiebeperking.",
|
||||
"admin_and_system.general_error": "Er is iets misgegaan. Probeer het later nog eens.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Een community-ID is vereist voor de zoekindexen van kanaalberichten en leden.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Deze wijziging van het instantiebeleid is niet toegestaan.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Ongeldige tijdstempel.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Ongeldige tijdzone-ID.",
|
||||
"admin_and_system.missing_acl": "Een ACL ontbreekt.",
|
||||
"admin_and_system.moderation_basis_required": "Geef een grondslag op om de berichten te verwijderen.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Moet een geldige ISO-tijdstempel zijn.",
|
||||
"admin_and_system.processing_failed": "We konden het verzoek niet verwerken. Probeer het opnieuw.",
|
||||
"admin_and_system.resource_locked": "Dit item wordt momenteel gewijzigd. Probeer het zo opnieuw.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "De cadeaucode wordt ingewisseld. Probeer het zo opnieuw.",
|
||||
"invites_and_gifts.unknown_gift_code": "Onbekende cadeaucode.",
|
||||
"invites_and_packs.max_emojis_reached": "Je hebt het maximum van {count, plural, one {# emoji} other {# emoji’s}} bereikt.",
|
||||
"limits.at_least_one_entry_required": "Minimaal één invoer is vereist.",
|
||||
"limits.base64_length_invalid": "De Base64-string moet tussen {min} en {maxLength} tekens lang zijn.",
|
||||
"limits.cannot_specify_before_and_after": "Je kunt niet zowel `before` als `after` opgeven.",
|
||||
"limits.content_exceeds_max_length": "Tekst mag niet meer dan {maxLength, plural, one {# teken} other {# tekens}} bevatten.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Ongeldige DSA-verificatiecode.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Deze antwoorden passen niet bij het meldingsformulier. Begin opnieuw met je melding.",
|
||||
"moderation_and_reports.ip_ban_declined": "Dit IP-adres kan niet aan de blokkeerlijst worden toegevoegd.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Deze netwerkblokkade hoort bij een handhavingsbeslissing. Beëindig de beslissing om de blokkade op te heffen.",
|
||||
"moderation_and_reports.report_already_resolved": "De melding is al afgehandeld.",
|
||||
"moderation_and_reports.report_banned": "Je bent uitgesloten van het indienen van meldingen.",
|
||||
"moderation_and_reports.report_flow_outdated": "Het meldingsformulier is gewijzigd terwijl je het invulde. Begin opnieuw met je melding.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Een afhandeling met maatregel heeft een andere uitkomst nodig dan \"geen overtreding\". Een duplicaat heeft de melding nodig die het herhaalt en mag geen uitkomst hebben. Een afhandeling zonder overtreding mag geen andere uitkomst hebben.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Deze melding valt onder een juridische bewaarplicht en kan niet worden verwijderd.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Je moet de registratie van je account voltooien voordat je meldingen kunt indienen.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Onbekende handhavingsbeslissing.",
|
||||
"moderation_and_reports.unknown_report": "Onbekende melding.",
|
||||
"moderation_and_reports.user_is_not_banned": "Deze gebruiker is niet verbannen.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Naam kan niet leeg zijn na normalisatie.",
|
||||
"permissions.global_ip_banned": "Je IP-adres {ipAddress} is door platformbeheerders permanent geblokkeerd voor de {product_name} API. {appealEmail, select, null {Als je denkt dat dit een fout is, neem dan contact op met de beheerders van deze instantie om bezwaar te maken.} other {Als je denkt dat dit een fout is, neem dan contact op met {appealEmail} om bezwaar te maken.}} Vermeld dit IP-adres in je bezwaar.",
|
||||
"permissions.global_ip_temporarily_banned": "Je IP-adres {ipAddress} is tijdelijk geblokkeerd voor de {product_name} API. De blokkade wordt automatisch opgeheven zodra deze verloopt. {appealEmail, select, null {Als je denkt dat dit een fout is, neem dan contact op met de beheerders van deze instantie en vermeld dit IP-adres.} other {Als je denkt dat dit een fout is, neem dan contact op met {appealEmail} en vermeld dit IP-adres.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} heeft de toegang vanaf dit netwerk geblokkeerd vanwege activiteit die de regels overtrad.} other {{product_name} heeft de toegang vanaf dit netwerk geblokkeerd.}} Als je dit netwerk met anderen deelt, bijvoorbeeld op school, op je werk, via openbare wifi, via je mobiele provider of een VPN, heeft deze blokkade misschien niets met jou te maken. De snelste oplossing is om van netwerk te wisselen, bijvoorbeeld naar mobiele data in plaats van wifi, of om je VPN aan of uit te zetten.{appealEmail, select, null {} other { Als je denkt dat deze blokkade een vergissing is, stuur dan een e-mail naar {appealEmail} en vermeld je IP-adres, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} heeft de toegang vanaf dit netwerk geblokkeerd vanwege activiteit die de regels overtrad.} other {{product_name} heeft de toegang vanaf dit netwerk geblokkeerd.}} De blokkade eindigt op {expiresAt}. Als je dit netwerk met anderen deelt, bijvoorbeeld op school, op je werk, via openbare wifi, via je mobiele provider of een VPN, heeft deze blokkade misschien niets met jou te maken. De snelste oplossing is om van netwerk te wisselen, bijvoorbeeld naar mobiele data in plaats van wifi, of om je VPN aan of uit te zetten.{appealEmail, select, null {} other { Als je denkt dat deze blokkade een vergissing is, stuur dan een e-mail naar {appealEmail} en vermeld je IP-adres, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Je hebt geen toegang tot dit item of deze functie.",
|
||||
"permissions.missing_permissions": "Je hebt niet de benodigde machtigingen om deze actie uit te voeren.",
|
||||
"permissions.user_banned_from_guild": "Deze gebruiker is verbannen uit deze community.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL-er må ikke være tomme.",
|
||||
"admin_and_system.admin_api_key_not_found": "API-nøkkelen for administrasjon ble ikke funnet.",
|
||||
"admin_and_system.deletion_failed": "Vi kunne ikke slette ressursen. Prøv på nytt.",
|
||||
"admin_and_system.enforcement_account_closed": "Denne kontoen er stengt, så den kan ikke suspenderes.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Bekreft at bevisene er sikret, og at eventuelle pålagte innrapporteringer er sendt inn.",
|
||||
"admin_and_system.enforcement_decision_ended": "Denne avgjørelsen er allerede avsluttet.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Denne begrensningen hører til en håndhevingsavgjørelse. Avslutt avgjørelsen i stedet.",
|
||||
"admin_and_system.enforcement_decision_replaced": "En senere avgjørelse erstattet denne, så den kan ikke lenger avsluttes.",
|
||||
"admin_and_system.enforcement_deletion_started": "Slettingen av denne kontoen har allerede startet, så avgjørelsen kan ikke lenger avsluttes.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Meldinger i direktemeldinger kan bare brukes som bevis når en tilknyttet rapport dekker den samtalen.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Meldingene som fjernes, lagres som bevis, så utelat separate bevismeldinger.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "En av bevismeldingene ble ikke funnet.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Alle bevismeldinger må være fra kontoen eller fellesskapet denne avgjørelsen gjelder.",
|
||||
"admin_and_system.enforcement_evidence_required": "Denne avgjørelsen trenger minst én bevismelding.",
|
||||
"admin_and_system.enforcement_facts_required": "Legg til en bevismelding eller en merknad til brukeren.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Legg til et internt notat i headeren X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Denne årsaken kan ikke brukes for denne handlingen.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Bare en begrensning av rapporter har en sluttdato, og den må være innen de neste 365 dagene.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Denne årsaken kan ikke brukes for denne begrensningen.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Bare en permanent suspensjon eller en stenging for brudd på en regel kan blokkere nettverk.",
|
||||
"admin_and_system.enforcement_network_shared": "Andre kontoer som ikke er begrenset, var sist aktive på dette nettverket, så det kan ikke blokkeres.",
|
||||
"admin_and_system.enforcement_network_unknown": "Denne kontoen har ikke brukt dette nettverket de siste 30 dagene.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Bare en omgjøring kan avslutte denne typen avgjørelse, fordi det ikke er noe å oppheve.",
|
||||
"admin_and_system.enforcement_permanent_required": "Suspensjoner av denne årsaken må være permanente.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Alle tilknyttede rapporter må finnes og gjelde kontoen eller fellesskapet denne avgjørelsen gjelder.",
|
||||
"admin_and_system.enforcement_report_required": "Knytt til minst én rapport når kilden er en rapport.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "En rettighetshaver kan bare oppgis for avgjørelser om opphavsrett.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Avgjørelser om opphavsrett trenger rettighetshaveren eller den berørte rettigheten.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Avgjørelser av denne årsaken kan ikke inneholde en merknad til brukeren.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Dette flagget er en del av en begrensning. Endre det via rutene for suspensjon, sletting eller funksjonsbegrensning.",
|
||||
"admin_and_system.general_error": "Noe gikk galt. Prøv igjen senere.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Fellesskaps-ID kreves for søkeindekser for kanalmeldinger og medlemmer.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Denne endringen av instansens retningslinjer er ikke tillatt.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Ugyldig tidsstempel.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Ugyldig tidssoneidentifikator.",
|
||||
"admin_and_system.missing_acl": "ACL mangler.",
|
||||
"admin_and_system.moderation_basis_required": "Oppgi et grunnlag for å slette meldingene.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Må være et gyldig ISO-tidsstempel.",
|
||||
"admin_and_system.processing_failed": "Vi kunne ikke behandle forespørselen. Prøv på nytt.",
|
||||
"admin_and_system.resource_locked": "Denne ressursen blir endret. Prøv igjen om kort tid.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Innløsning av gavekode pågår. Prøv igjen om et øyeblikk.",
|
||||
"invites_and_gifts.unknown_gift_code": "Ukjent gavekode.",
|
||||
"invites_and_packs.max_emojis_reached": "Du har nådd grensen på {count, plural, one {# emoji} other {# emojier}}.",
|
||||
"limits.at_least_one_entry_required": "Minst én oppføring er påkrevd.",
|
||||
"limits.base64_length_invalid": "Base64-strengen må inneholde mellom {min} og {maxLength} tegn.",
|
||||
"limits.cannot_specify_before_and_after": "Du kan ikke angi både `before` og `after`.",
|
||||
"limits.content_exceeds_max_length": "Teksten kan ikke overstige {maxLength, plural, one {# tegn} other {# tegn}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Ugyldig DSA-bekreftelseskode.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Disse svarene stemmer ikke med rapportskjemaet. Start rapporten på nytt.",
|
||||
"moderation_and_reports.ip_ban_declined": "Denne IP-adressen kan ikke legges til i blokkeringslisten.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Denne nettverksblokkeringen hører til en håndhevingsavgjørelse. Avslutt avgjørelsen for å fjerne den.",
|
||||
"moderation_and_reports.report_already_resolved": "Rapporten er allerede behandlet.",
|
||||
"moderation_and_reports.report_banned": "Du er utestengt fra å sende rapporter.",
|
||||
"moderation_and_reports.report_flow_outdated": "Rapportskjemaet ble endret mens du fylte det ut. Start rapporten på nytt.",
|
||||
"moderation_and_reports.report_outcome_invalid": "En avslutning med tiltak trenger et annet utfall enn «ingen brudd». Et duplikat trenger rapporten det gjentar, og skal ikke ha noe utfall. En avslutning uten brudd skal ikke ha noe annet utfall.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Denne rapporten er underlagt rettslig bevaring og kan ikke slettes.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Du må fullføre registreringen av kontoen din før du kan sende rapporter.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Ukjent håndhevingsavgjørelse.",
|
||||
"moderation_and_reports.unknown_report": "Ukjent rapport.",
|
||||
"moderation_and_reports.user_is_not_banned": "Denne brukeren er ikke utestengt.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Navnet kan ikke være tomt etter normalisering.",
|
||||
"permissions.global_ip_banned": "IP-adressen din {ipAddress} er permanent blokkert fra {product_name}-API-et av plattformadministratorene. {appealEmail, select, null {Hvis du mener dette er en feil, kan du kontakte administratorene av denne instansen for å klage.} other {Hvis du mener dette er en feil, kan du kontakte {appealEmail} for å klage.}} Ta med denne IP-adressen i klagen.",
|
||||
"permissions.global_ip_temporarily_banned": "IP-adressen din {ipAddress} er midlertidig blokkert fra {product_name}-API-et. Blokkeringen oppheves automatisk når den utløper. {appealEmail, select, null {Hvis du mener dette er en feil, kan du kontakte administratorene av denne instansen og oppgi denne IP-adressen.} other {Hvis du mener dette er en feil, kan du kontakte {appealEmail} og oppgi denne IP-adressen.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} har blokkert tilgang fra dette nettverket på grunn av aktivitet som brøt reglene.} other {{product_name} har blokkert tilgang fra dette nettverket.}} Hvis du deler dette nettverket med andre, for eksempel på skolen, på jobb, på offentlig Wi-Fi, via mobiloperatøren din eller et VPN, er det ikke sikkert at blokkeringen har noe med deg å gjøre. Den raskeste løsningen er å bytte nettverk, for eksempel til mobildata i stedet for Wi-Fi, eller å slå VPN-et av eller på.{appealEmail, select, null {} other { Hvis du mener at blokkeringen er en feil, send en e-post til {appealEmail} og oppgi IP-adressen din, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} har blokkert tilgang fra dette nettverket på grunn av aktivitet som brøt reglene.} other {{product_name} har blokkert tilgang fra dette nettverket.}} Blokkeringen opphører den {expiresAt}. Hvis du deler dette nettverket med andre, for eksempel på skolen, på jobb, på offentlig Wi-Fi, via mobiloperatøren din eller et VPN, er det ikke sikkert at blokkeringen har noe med deg å gjøre. Den raskeste løsningen er å bytte nettverk, for eksempel til mobildata i stedet for Wi-Fi, eller å slå VPN-et av eller på.{appealEmail, select, null {} other { Hvis du mener at blokkeringen er en feil, send en e-post til {appealEmail} og oppgi IP-adressen din, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Du har ikke tilgang til denne ressursen eller funksjonen.",
|
||||
"permissions.missing_permissions": "Du har ikke de nødvendige tillatelsene til å utføre denne handlingen.",
|
||||
"permissions.user_banned_from_guild": "Denne brukeren er utestengt fra dette fellesskapet.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL-e nie mogą być puste.",
|
||||
"admin_and_system.admin_api_key_not_found": "Nie znaleziono klucza API administratora.",
|
||||
"admin_and_system.deletion_failed": "Nie udało się usunąć zasobu. Spróbuj jeszcze raz.",
|
||||
"admin_and_system.enforcement_account_closed": "To konto jest zamknięte, więc nie można go zawiesić.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Potwierdź, że dowody zostały zabezpieczone, a wszystkie wymagane zgłoszenia zostały złożone.",
|
||||
"admin_and_system.enforcement_decision_ended": "Ta decyzja już przestała obowiązywać.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "To ograniczenie wynika z decyzji moderacyjnej. Zamiast tego zakończ decyzję.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Tę decyzję zastąpiła późniejsza, więc nie można już jej zakończyć.",
|
||||
"admin_and_system.enforcement_deletion_started": "Usuwanie tego konta już się rozpoczęło, więc nie można już zakończyć decyzji.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Wiadomości z rozmów prywatnych mogą posłużyć jako dowody tylko wtedy, gdy powiązane zgłoszenie obejmuje tę rozmowę.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Usuwane wiadomości są zapisywane jako dowody, więc nie dodawaj osobnych wiadomości dowodowych.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Nie znaleziono jednej z wiadomości dowodowych.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Każda wiadomość dowodowa musi pochodzić z konta lub społeczności, których dotyczy ta decyzja.",
|
||||
"admin_and_system.enforcement_evidence_required": "Ta decyzja wymaga co najmniej jednej wiadomości dowodowej.",
|
||||
"admin_and_system.enforcement_facts_required": "Dodaj wiadomość dowodową lub komentarz dla użytkownika.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Dodaj notatkę wewnętrzną w nagłówku X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Tego powodu nie można użyć dla tej akcji.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Datę zakończenia ma tylko ograniczenie zgłoszeń i musi ona przypadać w ciągu najbliższych 365 dni.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Tego powodu nie można użyć dla tego ograniczenia.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Sieci można blokować tylko przy bezterminowym zawieszeniu lub zamknięciu konta za naruszenie zasady.",
|
||||
"admin_and_system.enforcement_network_shared": "Inne konta bez ograniczeń były ostatnio aktywne w tej sieci, więc nie można jej zablokować.",
|
||||
"admin_and_system.enforcement_network_unknown": "To konto nie korzystało z tej sieci w ciągu ostatnich 30 dni.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Decyzję tego rodzaju można zakończyć tylko przez jej cofnięcie, ponieważ nie ma czego znosić.",
|
||||
"admin_and_system.enforcement_permanent_required": "Zawieszenia z tego powodu muszą być bezterminowe.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Każde powiązane zgłoszenie musi istnieć i dotyczyć konta lub społeczności, których dotyczy ta decyzja.",
|
||||
"admin_and_system.enforcement_report_required": "Gdy źródłem jest zgłoszenie, powiąż co najmniej jedno zgłoszenie.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Właściciela praw można podać tylko w decyzjach dotyczących praw autorskich.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Decyzje dotyczące praw autorskich wymagają podania właściciela praw lub prawa, którego dotyczy sprawa.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Decyzje z tego powodu nie mogą zawierać komentarza dla użytkownika.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Ta flaga jest częścią ograniczenia. Zmień ją przez ścieżki zawieszenia, usunięcia lub ograniczenia funkcji.",
|
||||
"admin_and_system.general_error": "Coś poszło nie tak. Spróbuj jeszcze raz później.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Identyfikator społeczności jest wymagany dla indeksów wyszukiwania wiadomości w kanałach i członków.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Ta zmiana zasad instancji jest niedozwolona.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Nieprawidłowy znacznik czasu.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Nieprawidłowy identyfikator strefy czasowej.",
|
||||
"admin_and_system.missing_acl": "Brak ACL-a.",
|
||||
"admin_and_system.moderation_basis_required": "Podaj podstawę usunięcia wiadomości.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Wymagany prawidłowy znacznik czasu ISO.",
|
||||
"admin_and_system.processing_failed": "Nie udało się przetworzyć żądania. Spróbuj jeszcze raz.",
|
||||
"admin_and_system.resource_locked": "Ten zasób jest aktualnie modyfikowany. Spróbuj ponownie za kilka chwil.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Trwa realizacja kodu podarunkowego. Spróbuj ponownie za chwilę.",
|
||||
"invites_and_gifts.unknown_gift_code": "Nieznany kod podarunkowy.",
|
||||
"invites_and_packs.max_emojis_reached": "Osiągnięto limit {count, plural, one {# emoji} few {# emoji} many {# emoji} other {# emoji}}.",
|
||||
"limits.at_least_one_entry_required": "Wymagany jest co najmniej jeden wpis.",
|
||||
"limits.base64_length_invalid": "Długość ciągu Base64 musi wynosić od {min} do {maxLength} znaków.",
|
||||
"limits.cannot_specify_before_and_after": "Nie możesz określić jednocześnie `before` i `after`.",
|
||||
"limits.content_exceeds_max_length": "Tekst nie może mieć więcej niż {maxLength, plural, one {# znak} few {# znaki} many {# znaków} other {# znaku}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Nieprawidłowy kod weryfikacyjny DSA.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Te odpowiedzi nie pasują do formularza zgłoszenia. Rozpocznij zgłoszenie ponownie.",
|
||||
"moderation_and_reports.ip_ban_declined": "Ten adres IP nie może zostać dodany do listy blokowanych.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Ta blokada sieci należy do decyzji moderacyjnej. Aby ją usunąć, zakończ decyzję.",
|
||||
"moderation_and_reports.report_already_resolved": "Zgłoszenie zostało już rozpatrzone.",
|
||||
"moderation_and_reports.report_banned": "Zablokowano Ci możliwość przesyłania zgłoszeń.",
|
||||
"moderation_and_reports.report_flow_outdated": "Formularz zgłoszenia zmienił się podczas jego wypełniania. Rozpocznij zgłoszenie ponownie.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Rozstrzygnięcie „podjęto działania” wymaga wyniku innego niż „brak naruszenia”. Rozstrzygnięcie „duplikat” wymaga wskazania zgłoszenia, które powtarza, i nie przyjmuje wyniku. Rozstrzygnięcie „brak naruszenia” nie przyjmuje innego wyniku.",
|
||||
"moderation_and_reports.report_under_legal_hold": "To zgłoszenie podlega prawnemu zabezpieczeniu i nie można go usunąć.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Dokończ rejestrację konta, zanim wyślesz zgłoszenia.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Nieznana decyzja moderacyjna.",
|
||||
"moderation_and_reports.unknown_report": "Nieznane zgłoszenie.",
|
||||
"moderation_and_reports.user_is_not_banned": "Ten użytkownik nie ma bana.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Nazwa nie może być pusta po normalizacji.",
|
||||
"permissions.global_ip_banned": "Twój adres IP {ipAddress} został trwale zablokowany w {product_name} API przez administratorów platformy. {appealEmail, select, null {Jeśli uważasz, że to błąd, skontaktuj się z administratorami tej instancji, aby się odwołać.} other {Jeśli uważasz, że to błąd, skontaktuj się z {appealEmail}, aby się odwołać.}} Podaj ten adres IP w odwołaniu.",
|
||||
"permissions.global_ip_temporarily_banned": "Twój adres IP {ipAddress} został tymczasowo zablokowany w {product_name} API. Blokada zostanie zdjęta automatycznie po jej wygaśnięciu. {appealEmail, select, null {Jeśli uważasz, że to błąd, skontaktuj się z administratorami tej instancji i podaj ten adres IP.} other {Jeśli uważasz, że to błąd, skontaktuj się z {appealEmail} i podaj ten adres IP.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} zablokował dostęp z tej sieci z powodu aktywności naruszającej jego zasady.} other {{product_name} zablokował dostęp z tej sieci.}} Jeśli korzystasz z tej sieci razem z innymi, na przykład w szkole, w pracy, w publicznej sieci Wi-Fi, przez operatora komórkowego lub VPN, ta blokada może nie mieć z Tobą nic wspólnego. Najszybciej pomoże zmiana sieci, na przykład przejście z Wi-Fi na dane komórkowe, albo włączenie lub wyłączenie VPN.{appealEmail, select, null {} other { Jeśli uważasz, że ta blokada to pomyłka, napisz na adres {appealEmail} i podaj swój adres IP: {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} zablokował dostęp z tej sieci z powodu aktywności naruszającej jego zasady.} other {{product_name} zablokował dostęp z tej sieci.}} Blokada obowiązuje do {expiresAt}. Jeśli korzystasz z tej sieci razem z innymi, na przykład w szkole, w pracy, w publicznej sieci Wi-Fi, przez operatora komórkowego lub VPN, ta blokada może nie mieć z Tobą nic wspólnego. Najszybciej pomoże zmiana sieci, na przykład przejście z Wi-Fi na dane komórkowe, albo włączenie lub wyłączenie VPN.{appealEmail, select, null {} other { Jeśli uważasz, że ta blokada to pomyłka, napisz na adres {appealEmail} i podaj swój adres IP: {ipAddress}.}}",
|
||||
"permissions.missing_access": "Brak dostępu do tego zasobu lub funkcji.",
|
||||
"permissions.missing_permissions": "Brak wymaganych uprawnień do wykonania tej akcji.",
|
||||
"permissions.user_banned_from_guild": "Ten użytkownik ma bana w tej społeczności.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "As ACLs não podem estar vazias.",
|
||||
"admin_and_system.admin_api_key_not_found": "A chave da API de administrador não foi encontrada.",
|
||||
"admin_and_system.deletion_failed": "Não foi possível excluir o recurso. Tente de novo.",
|
||||
"admin_and_system.enforcement_account_closed": "Esta conta está encerrada, então não pode ser suspensa.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Confirme que as provas foram preservadas e que qualquer comunicação obrigatória foi feita.",
|
||||
"admin_and_system.enforcement_decision_ended": "Esta decisão já terminou.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Uma decisão de moderação controla esta restrição. Encerre essa decisão.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Uma decisão posterior substituiu esta, então ela não pode mais ser encerrada.",
|
||||
"admin_and_system.enforcement_deletion_started": "A exclusão desta conta já começou, então a decisão não pode mais ser encerrada.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Mensagens diretas só podem ser usadas como prova quando uma denúncia vinculada abrange essa conversa.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "As mensagens que estão sendo removidas são salvas como prova, então não inclua mensagens de prova separadas.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Uma das mensagens de prova não foi encontrada.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Toda mensagem de prova deve ser da conta ou da comunidade a que esta decisão se refere.",
|
||||
"admin_and_system.enforcement_evidence_required": "Esta decisão precisa de pelo menos uma mensagem de prova.",
|
||||
"admin_and_system.enforcement_facts_required": "Adicione uma mensagem de prova ou uma nota ao usuário.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Adicione uma nota interna no cabeçalho X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Este motivo não pode ser usado para esta ação.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Somente um limite de denúncias tem data de término, e ela deve estar dentro dos próximos 365 dias.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Este motivo não pode ser usado para este limite.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Somente uma suspensão permanente ou um encerramento por violação de regra pode bloquear redes.",
|
||||
"admin_and_system.enforcement_network_shared": "Outras contas sem restrições tiveram sua última atividade nesta rede, então ela não pode ser bloqueada.",
|
||||
"admin_and_system.enforcement_network_unknown": "Esta conta não usou esta rede nos últimos 30 dias.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Somente uma reversão pode encerrar este tipo de decisão, porque não há nada a remover.",
|
||||
"admin_and_system.enforcement_permanent_required": "Suspensões por este motivo devem ser permanentes.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Toda denúncia vinculada deve existir e se referir à conta ou à comunidade a que esta decisão se refere.",
|
||||
"admin_and_system.enforcement_report_required": "Vincule pelo menos uma denúncia quando a origem for uma denúncia.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Um titular de direitos só pode ser informado em decisões de direitos autorais.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Decisões de direitos autorais precisam do titular dos direitos ou do direito em questão.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Decisões por este motivo não podem incluir uma nota ao usuário.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Esta flag faz parte de uma restrição. Altere-a pelas rotas de suspensão, exclusão ou limite de recursos.",
|
||||
"admin_and_system.general_error": "Algo deu errado. Tente de novo mais tarde.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "É necessário o ID da comunidade para os índices de pesquisa de canais, mensagens e membros.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Esta alteração da política da instância não é permitida.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Timestamp inválido.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Identificador de fuso horário inválido.",
|
||||
"admin_and_system.missing_acl": "ACL ausente.",
|
||||
"admin_and_system.moderation_basis_required": "Informe um fundamento para excluir as mensagens.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Deve ser um timestamp ISO válido.",
|
||||
"admin_and_system.processing_failed": "Não foi possível processar a solicitação. Tente de novo.",
|
||||
"admin_and_system.resource_locked": "Este recurso está sendo modificado. Tente novamente em breve.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "O resgate do código de presente está em andamento. Tente novamente em instantes.",
|
||||
"invites_and_gifts.unknown_gift_code": "Código de presente desconhecido.",
|
||||
"invites_and_packs.max_emojis_reached": "Você atingiu o máximo de {count, plural, =1 {# emoji} other {# emojis}}.",
|
||||
"limits.at_least_one_entry_required": "Pelo menos uma entrada é obrigatória.",
|
||||
"limits.base64_length_invalid": "O comprimento da string Base64 precisa estar entre {min} e {maxLength} caracteres.",
|
||||
"limits.cannot_specify_before_and_after": "Você não pode especificar `before` e `after` ao mesmo tempo.",
|
||||
"limits.content_exceeds_max_length": "O texto não deve exceder {maxLength, plural, =1 {# caractere} other {# caracteres}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Código de verificação do DSA inválido.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Estas respostas não correspondem ao formulário de denúncia. Inicie a denúncia novamente.",
|
||||
"moderation_and_reports.ip_ban_declined": "Este endereço IP não pode ser adicionado à lista de bloqueio.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Este bloqueio de rede pertence a uma decisão de moderação. Encerre a decisão para removê-lo.",
|
||||
"moderation_and_reports.report_already_resolved": "A denúncia já foi resolvida.",
|
||||
"moderation_and_reports.report_banned": "Você foi impedido de enviar denúncias.",
|
||||
"moderation_and_reports.report_flow_outdated": "O formulário de denúncia mudou enquanto você o preenchia. Comece a denúncia novamente.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Uma resolução com medida precisa de um resultado, que não pode ser a ausência de violação. Uma resolução duplicada precisa indicar a denúncia original e não aceita nenhum resultado. Uma resolução sem violação não aceita nenhum outro resultado.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Esta denúncia está sob retenção legal e não pode ser excluída.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Você precisa terminar a configuração da sua conta antes de fazer denúncias.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Decisão de moderação desconhecida.",
|
||||
"moderation_and_reports.unknown_report": "Denúncia não encontrada.",
|
||||
"moderation_and_reports.user_is_not_banned": "Este usuário não está banido.",
|
||||
"names_and_normalization.name_empty_after_normalization": "O nome não pode ficar vazio após a normalização.",
|
||||
"permissions.global_ip_banned": "Seu endereço IP {ipAddress} foi bloqueado permanentemente na {product_name} API pelos administradores da plataforma. {appealEmail, select, null {Se você acredita que isso é um erro, entre em contato com os administradores desta instância para recorrer.} other {Se você acredita que isso é um erro, entre em contato com {appealEmail} para recorrer.}} Inclua este endereço IP no recurso.",
|
||||
"permissions.global_ip_temporarily_banned": "Seu endereço IP {ipAddress} foi bloqueado temporariamente na {product_name} API. O bloqueio será removido automaticamente quando expirar. {appealEmail, select, null {Se você acredita que isso é um erro, entre em contato com os administradores desta instância e informe este endereço IP.} other {Se você acredita que isso é um erro, entre em contato com {appealEmail} e informe este endereço IP.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {O {product_name} bloqueou o acesso a partir desta rede por causa de atividades que violaram as regras do serviço.} other {O {product_name} bloqueou o acesso a partir desta rede.}} Se você compartilha esta rede, por exemplo na escola, no trabalho, em um Wi-Fi público, pela sua operadora de celular ou por uma VPN, este bloqueio pode não ter nada a ver com você. A solução mais rápida é trocar de rede, por exemplo usar os dados móveis em vez do Wi-Fi, ou ativar ou desativar sua VPN.{appealEmail, select, null {} other { Se você acha que este bloqueio é um erro, envie um e-mail para {appealEmail} informando seu endereço IP, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {O {product_name} bloqueou o acesso a partir desta rede por causa de atividades que violaram as regras do serviço.} other {O {product_name} bloqueou o acesso a partir desta rede.}} O bloqueio termina em {expiresAt}. Se você compartilha esta rede, por exemplo na escola, no trabalho, em um Wi-Fi público, pela sua operadora de celular ou por uma VPN, este bloqueio pode não ter nada a ver com você. A solução mais rápida é trocar de rede, por exemplo usar os dados móveis em vez do Wi-Fi, ou ativar ou desativar sua VPN.{appealEmail, select, null {} other { Se você acha que este bloqueio é um erro, envie um e-mail para {appealEmail} informando seu endereço IP, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Você não tem acesso a este recurso ou funcionalidade.",
|
||||
"permissions.missing_permissions": "Você não tem as permissões necessárias para executar esta ação.",
|
||||
"permissions.user_banned_from_guild": "Este usuário está banido desta comunidade.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL-urile nu pot fi goale.",
|
||||
"admin_and_system.admin_api_key_not_found": "Cheia API de administrator nu a fost găsită.",
|
||||
"admin_and_system.deletion_failed": "Nu s-a putut șterge resursa. Încearcă din nou.",
|
||||
"admin_and_system.enforcement_account_closed": "Acest cont este închis, așa că nu poate fi suspendat.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Confirmă că dovezile sunt păstrate și că orice raportare obligatorie a fost trimisă.",
|
||||
"admin_and_system.enforcement_decision_ended": "Această decizie s-a încheiat deja.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Această restricție aparține unei decizii de moderare. Încheie decizia respectivă.",
|
||||
"admin_and_system.enforcement_decision_replaced": "O decizie ulterioară a înlocuit-o pe aceasta, așa că nu mai poate fi încheiată.",
|
||||
"admin_and_system.enforcement_deletion_started": "Ștergerea acestui cont a început deja, așa că decizia nu mai poate fi încheiată.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Mesajele directe pot fi folosite ca dovezi doar dacă un raport asociat acoperă acea conversație.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Mesajele care sunt eliminate sunt salvate ca dovezi, așa că nu adăuga mesaje-dovadă separate.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Unul dintre mesajele-dovadă nu a fost găsit.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Fiecare mesaj-dovadă trebuie să provină din contul sau comunitatea la care se referă această decizie.",
|
||||
"admin_and_system.enforcement_evidence_required": "Această decizie necesită cel puțin un mesaj-dovadă.",
|
||||
"admin_and_system.enforcement_facts_required": "Adaugă un mesaj-dovadă sau o notă pentru utilizator.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Adaugă o notă internă în antetul X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Acest motiv nu poate fi folosit pentru această acțiune.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Doar o limită pentru rapoarte are dată de încheiere, iar aceasta trebuie să fie în următoarele 365 de zile.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Acest motiv nu poate fi folosit pentru această limită.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Doar o suspendare permanentă sau o închidere pentru încălcarea unei reguli poate bloca rețele.",
|
||||
"admin_and_system.enforcement_network_shared": "Alte conturi fără restricții au fost active ultima dată în această rețea, așa că nu poate fi blocată.",
|
||||
"admin_and_system.enforcement_network_unknown": "Acest cont nu a folosit această rețea în ultimele 30 de zile.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Doar o anulare poate încheia acest tip de decizie, deoarece nu există nimic de ridicat.",
|
||||
"admin_and_system.enforcement_permanent_required": "Suspendările pentru acest motiv trebuie să fie permanente.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Fiecare raport asociat trebuie să existe și să se refere la contul sau comunitatea la care se referă această decizie.",
|
||||
"admin_and_system.enforcement_report_required": "Asociază cel puțin un raport când sursa este un raport.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Un titular de drepturi poate fi indicat doar pentru deciziile privind drepturile de autor.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Deciziile privind drepturile de autor necesită titularul drepturilor sau dreptul în cauză.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Deciziile pentru acest motiv nu pot include o notă pentru utilizator.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Acest indicator face parte dintr-o restricție. Modifică-l prin rutele de suspendare, ștergere sau limitare a funcțiilor.",
|
||||
"admin_and_system.general_error": "Ceva nu a mers bine. Încearcă din nou mai târziu.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Este necesar un ID de comunitate pentru indexurile de căutare a mesajelor din canale și a membrilor.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Această modificare a politicii instanței nu este permisă.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Marca de timp este invalidă.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Identificatorul de fus orar este invalid.",
|
||||
"admin_and_system.missing_acl": "ACL lipsă.",
|
||||
"admin_and_system.moderation_basis_required": "Indică un temei pentru ștergerea mesajelor.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Trebuie să fie o marcă de timp ISO validă.",
|
||||
"admin_and_system.processing_failed": "Solicitarea nu a putut fi procesată. Încearcă din nou.",
|
||||
"admin_and_system.resource_locked": "Această resursă este în curs de modificare. Încearcă din nou peste puțin timp.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Revendicarea codului cadou este în curs. Încearcă din nou peste puțin timp.",
|
||||
"invites_and_gifts.unknown_gift_code": "Cod cadou necunoscut.",
|
||||
"invites_and_packs.max_emojis_reached": "Ai atins numărul maxim de {count, plural, one {# emoji} few {# emoji} other {# de emoji}}.",
|
||||
"limits.at_least_one_entry_required": "Este necesară cel puțin o intrare.",
|
||||
"limits.base64_length_invalid": "Lungimea șirului Base64 trebuie să fie între {min} și {maxLength} caractere.",
|
||||
"limits.cannot_specify_before_and_after": "Nu poți specifica atât `before`, cât și `after`.",
|
||||
"limits.content_exceeds_max_length": "Textul nu trebuie să depășească {maxLength, plural, one {# caracter} few {# caractere} other {# de caractere}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Cod de verificare DSA invalid.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Aceste răspunsuri nu corespund formularului de raportare. Repornește raportarea.",
|
||||
"moderation_and_reports.ip_ban_declined": "Această adresă IP nu poate fi adăugată pe lista de blocare.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Acest blocaj de rețea aparține unei decizii de moderare. Încheie decizia pentru a-l elimina.",
|
||||
"moderation_and_reports.report_already_resolved": "Raportul a fost deja rezolvat.",
|
||||
"moderation_and_reports.report_banned": "Ți s-a interzis să trimiți rapoarte.",
|
||||
"moderation_and_reports.report_flow_outdated": "Formularul de raportare s-a modificat în timp ce îl completai. Repornește raportarea.",
|
||||
"moderation_and_reports.report_outcome_invalid": "O rezoluție cu măsuri necesită un rezultat, care nu poate fi lipsa încălcării. O rezoluție duplicată necesită raportul original și nu acceptă niciun rezultat. O rezoluție fără încălcare nu acceptă niciun alt rezultat.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Acest raport este supus unei rețineri legale și nu poate fi șters.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Trebuie să-ți finalizezi configurarea contului înainte să poți trimite rapoarte.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Decizie de moderare necunoscută.",
|
||||
"moderation_and_reports.unknown_report": "Raport necunoscut.",
|
||||
"moderation_and_reports.user_is_not_banned": "Acest utilizator nu este banat.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Numele nu poate fi gol după normalizare.",
|
||||
"permissions.global_ip_banned": "Accesul adresei tale IP {ipAddress} la {product_name} API a fost blocat permanent de administratorii platformei. {appealEmail, select, null {Dacă crezi că este o greșeală, contactează administratorii acestei instanțe pentru a depune o contestație.} other {Dacă crezi că este o greșeală, contactează {appealEmail} pentru a depune o contestație.}} Include această adresă IP în contestație.",
|
||||
"permissions.global_ip_temporarily_banned": "Accesul adresei tale IP {ipAddress} la {product_name} API a fost blocat temporar. Blocarea se ridică automat când expiră. {appealEmail, select, null {Dacă crezi că este o greșeală, contactează administratorii acestei instanțe și include această adresă IP.} other {Dacă crezi că este o greșeală, contactează {appealEmail} și include această adresă IP.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} a blocat accesul din această rețea din cauza unei activități care i-a încălcat regulile.} other {{product_name} a blocat accesul din această rețea.}} Dacă folosești această rețea împreună cu alte persoane, de exemplu la școală, la serviciu, pe o rețea Wi-Fi publică, prin operatorul de telefonie mobilă sau printr-un VPN, este posibil ca acest blocaj să nu aibă nicio legătură cu tine. Cea mai rapidă soluție este să schimbi rețeaua, de exemplu să folosești datele mobile în loc de Wi-Fi sau să pornești ori să oprești VPN-ul.{appealEmail, select, null {} other { Dacă crezi că acest blocaj este o greșeală, scrie la {appealEmail} și include adresa ta IP, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} a blocat accesul din această rețea din cauza unei activități care i-a încălcat regulile.} other {{product_name} a blocat accesul din această rețea.}} Blocajul se încheie pe {expiresAt}. Dacă folosești această rețea împreună cu alte persoane, de exemplu la școală, la serviciu, pe o rețea Wi-Fi publică, prin operatorul de telefonie mobilă sau printr-un VPN, este posibil ca acest blocaj să nu aibă nicio legătură cu tine. Cea mai rapidă soluție este să schimbi rețeaua, de exemplu să folosești datele mobile în loc de Wi-Fi sau să pornești ori să oprești VPN-ul.{appealEmail, select, null {} other { Dacă crezi că acest blocaj este o greșeală, scrie la {appealEmail} și include adresa ta IP, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Nu ai acces la această resursă sau funcție.",
|
||||
"permissions.missing_permissions": "Nu ai permisiunile necesare pentru a efectua această acțiune.",
|
||||
"permissions.user_banned_from_guild": "Acest utilizator este banat din această comunitate.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "Списки ACL не могут быть пустыми.",
|
||||
"admin_and_system.admin_api_key_not_found": "Ключ Admin API не найден.",
|
||||
"admin_and_system.deletion_failed": "Не удалось удалить ресурс. Попробуй ещё раз.",
|
||||
"admin_and_system.enforcement_account_closed": "Этот аккаунт закрыт, поэтому его нельзя временно заблокировать.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Подтверди, что доказательства сохранены и все обязательные уведомления поданы.",
|
||||
"admin_and_system.enforcement_decision_ended": "Это решение уже прекратило действие.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Это ограничение установлено решением о применении мер. Вместо этого заверши решение.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Это решение заменено более поздним, поэтому его больше нельзя завершить.",
|
||||
"admin_and_system.enforcement_deletion_started": "Удаление этого аккаунта уже началось, поэтому решение больше нельзя завершить.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Сообщения из личной переписки можно использовать как доказательства, только если эта переписка указана в связанной жалобе.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Удаляемые сообщения сохраняются как доказательства, поэтому не указывай отдельные сообщения-доказательства.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Одно из сообщений-доказательств не найдено.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Каждое сообщение-доказательство должно принадлежать аккаунту или сообществу, к которому относится это решение.",
|
||||
"admin_and_system.enforcement_evidence_required": "Для этого решения нужно хотя бы одно сообщение-доказательство.",
|
||||
"admin_and_system.enforcement_facts_required": "Добавь сообщение-доказательство или комментарий для пользователя.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Добавь внутреннюю заметку в заголовке X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Эту причину нельзя использовать для этого действия.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Дата окончания есть только у ограничения на жалобы, и она должна быть в пределах следующих 365 дней.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Эту причину нельзя использовать для этого ограничения.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Блокировать сети можно только при бессрочной блокировке или закрытии аккаунта за нарушение правила.",
|
||||
"admin_and_system.enforcement_network_shared": "В этой сети последний раз были активны другие аккаунты без ограничений, поэтому её нельзя заблокировать.",
|
||||
"admin_and_system.enforcement_network_unknown": "Этот аккаунт не использовал эту сеть за последние 30 дней.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Решение такого типа можно завершить только отменой, потому что снимать нечего.",
|
||||
"admin_and_system.enforcement_permanent_required": "Блокировки по этой причине должны быть бессрочными.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Каждая связанная жалоба должна существовать и относиться к аккаунту или сообществу, к которому относится это решение.",
|
||||
"admin_and_system.enforcement_report_required": "Если источником является жалоба, свяжи с решением хотя бы одну жалобу.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Правообладателя можно указать только в решениях об авторском праве.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "В решениях об авторском праве нужно указать правообладателя или затронутое право.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Решения по этой причине не могут содержать комментарий для пользователя.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Этот флаг входит в ограничение. Измени его через маршруты временной блокировки, удаления или ограничения функций.",
|
||||
"admin_and_system.general_error": "Что-то пошло не так. Попробуй позже.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "ID сообщества обязателен для индексов поиска по сообщениям канала и участникам.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Это изменение политики экземпляра не разрешено.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Неверная метка времени.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Неверный идентификатор часового пояса.",
|
||||
"admin_and_system.missing_acl": "Отсутствует ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Укажи основание для удаления сообщений.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Требуется действительная метка времени ISO.",
|
||||
"admin_and_system.processing_failed": "Не удалось обработать запрос. Попробуй ещё раз.",
|
||||
"admin_and_system.resource_locked": "Этот ресурс сейчас изменяется. Попробуй ещё раз через пару секунд.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Подарочный код уже активируется. Попробуй ещё раз чуть позже.",
|
||||
"invites_and_gifts.unknown_gift_code": "Неизвестный подарочный код.",
|
||||
"invites_and_packs.max_emojis_reached": "Ты достиг максимума: {count} {count, plural, one {эмодзи} few {эмодзи} many {эмодзи} other {эмодзи}}.",
|
||||
"limits.at_least_one_entry_required": "Требуется хотя бы одна запись.",
|
||||
"limits.base64_length_invalid": "Длина строки Base64 должна быть от {min} до {maxLength} символов.",
|
||||
"limits.cannot_specify_before_and_after": "Нельзя указывать `before` и `after` одновременно.",
|
||||
"limits.content_exceeds_max_length": "Текст не должен превышать {maxLength} {maxLength, plural, one {символ} few {символа} many {символов} other {символа}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Неверный код подтверждения DSA.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Эти ответы не соответствуют форме жалобы. Начни жалобу заново.",
|
||||
"moderation_and_reports.ip_ban_declined": "Этот IP-адрес нельзя добавить в чёрный список.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Эта блокировка сети относится к решению о применении мер. Чтобы снять её, заверши решение.",
|
||||
"moderation_and_reports.report_already_resolved": "Жалоба уже рассмотрена.",
|
||||
"moderation_and_reports.report_banned": "Ты забанен и не можешь отправлять жалобы.",
|
||||
"moderation_and_reports.report_flow_outdated": "Форма жалобы изменилась во время заполнения. Начни жалобу заново.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Для статуса «приняты меры» нужен результат, отличный от «нарушений нет». Для статуса «дубликат» нужна жалоба, которую он повторяет, а результат указывать нельзя. Для статуса «нарушений нет» другой результат указывать нельзя.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Эта жалоба находится на юридическом удержании и не может быть удалена.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Тебе нужно завершить настройку аккаунта, чтобы подавать жалобы.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Неизвестное решение о применении мер.",
|
||||
"moderation_and_reports.unknown_report": "Жалоба не найдена.",
|
||||
"moderation_and_reports.user_is_not_banned": "Этот пользователь не забанен.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Имя не может быть пустым после нормализации.",
|
||||
"permissions.global_ip_banned": "Твой IP-адрес {ipAddress} навсегда заблокирован в {product_name} API администраторами платформы. {appealEmail, select, null {Если считаешь, что это ошибка, свяжись с администраторами этого экземпляра, чтобы подать апелляцию.} other {Если считаешь, что это ошибка, напиши на {appealEmail}, чтобы подать апелляцию.}} Укажи в ней этот IP-адрес.",
|
||||
"permissions.global_ip_temporarily_banned": "Твой IP-адрес {ipAddress} временно заблокирован в {product_name} API. Блокировка снимется автоматически, когда истечёт её срок. {appealEmail, select, null {Если считаешь, что это ошибка, свяжись с администраторами этого экземпляра и укажи этот IP-адрес.} other {Если считаешь, что это ошибка, напиши на {appealEmail} и укажи этот IP-адрес.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} заблокировал доступ из этой сети из-за действий, нарушивших его правила.} other {{product_name} заблокировал доступ из этой сети.}} Если ты пользуешься этой сетью вместе с другими людьми, например в школе, на работе, в общественной сети Wi-Fi, через мобильного оператора или VPN, эта блокировка может быть никак не связана с тобой. Быстрее всего сменить сеть, например перейти с Wi-Fi на мобильный интернет, или включить либо выключить VPN.{appealEmail, select, null {} other { Если ты считаешь, что эта блокировка ошибочна, напиши на {appealEmail} и укажи свой IP-адрес: {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} заблокировал доступ из этой сети из-за действий, нарушивших его правила.} other {{product_name} заблокировал доступ из этой сети.}} Блокировка действует до {expiresAt}. Если ты пользуешься этой сетью вместе с другими людьми, например в школе, на работе, в общественной сети Wi-Fi, через мобильного оператора или VPN, эта блокировка может быть никак не связана с тобой. Быстрее всего сменить сеть, например перейти с Wi-Fi на мобильный интернет, или включить либо выключить VPN.{appealEmail, select, null {} other { Если ты считаешь, что эта блокировка ошибочна, напиши на {appealEmail} и укажи свой IP-адрес: {ipAddress}.}}",
|
||||
"permissions.missing_access": "У тебя нет доступа к этому ресурсу или функции.",
|
||||
"permissions.missing_permissions": "У тебя нет необходимых разрешений для выполнения этого действия.",
|
||||
"permissions.user_banned_from_guild": "Этот пользователь забанен в этом сообществе.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "Åtkomstkontrollistorna får inte vara tomma.",
|
||||
"admin_and_system.admin_api_key_not_found": "Admin-API-nyckeln hittades inte.",
|
||||
"admin_and_system.deletion_failed": "Det gick inte att radera resursen. Försök igen.",
|
||||
"admin_and_system.enforcement_account_closed": "Det här kontot är stängt och kan därför inte stängas av.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Bekräfta att bevisen är säkrade och att alla obligatoriska rapporter har lämnats in.",
|
||||
"admin_and_system.enforcement_decision_ended": "Det här beslutet har redan avslutats.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Den här begränsningen hör till ett åtgärdsbeslut. Avsluta beslutet i stället.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Ett senare beslut har ersatt det här, så det kan inte längre avslutas.",
|
||||
"admin_and_system.enforcement_deletion_started": "Raderingen av det här kontot har redan påbörjats, så beslutet kan inte längre avslutas.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Meddelanden i direktmeddelanden kan bara användas som bevis när en länkad anmälan omfattar den konversationen.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Meddelandena som tas bort sparas som bevis, så utelämna separata bevismeddelanden.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Ett av bevismeddelandena hittades inte.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Varje bevismeddelande måste komma från kontot eller communityn som beslutet gäller.",
|
||||
"admin_and_system.enforcement_evidence_required": "Det här beslutet behöver minst ett bevismeddelande.",
|
||||
"admin_and_system.enforcement_facts_required": "Lägg till ett bevismeddelande eller en kommentar till användaren.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Lägg till en intern anteckning i headern X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Den här anledningen kan inte användas för den här åtgärden.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Bara en begränsning av anmälningar har ett slutdatum, och det måste ligga inom de kommande 365 dagarna.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Den här anledningen kan inte användas för den här begränsningen.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Bara en permanent avstängning eller en stängning för ett regelbrott kan blockera nätverk.",
|
||||
"admin_and_system.enforcement_network_shared": "Andra konton som inte är begränsade var senast aktiva på det här nätverket, så det kan inte blockeras.",
|
||||
"admin_and_system.enforcement_network_unknown": "Det här kontot har inte använt det här nätverket under de senaste 30 dagarna.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Bara ett upphävande kan avsluta den här typen av beslut, eftersom det inte finns något att häva.",
|
||||
"admin_and_system.enforcement_permanent_required": "Avstängningar av den här anledningen måste vara permanenta.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Varje länkad anmälan måste finnas och gälla kontot eller communityn som beslutet gäller.",
|
||||
"admin_and_system.enforcement_report_required": "Länka minst en anmälan när källan är en anmälan.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "En rättighetshavare kan bara anges för upphovsrättsbeslut.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Upphovsrättsbeslut behöver rättighetshavaren eller den berörda rättigheten.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Beslut av den här anledningen får inte innehålla en kommentar till användaren.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Den här flaggan är en del av en begränsning. Ändra den via routerna för avstängning, radering eller funktionsbegränsning.",
|
||||
"admin_and_system.general_error": "Något gick fel. Försök igen senare.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Ett community-ID krävs för sökindex för kanalmeddelanden och medlemmar.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Den här ändringen av instanspolicyn är inte tillåten.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Ogiltig tidsstämpel.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Ogiltig tidszonsidentifierare.",
|
||||
"admin_and_system.missing_acl": "Åtkomstkontrollista saknas.",
|
||||
"admin_and_system.moderation_basis_required": "Ange en grund för att radera meddelandena.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Måste vara en giltig ISO-tidsstämpel.",
|
||||
"admin_and_system.processing_failed": "Det gick inte att behandla begäran. Försök igen.",
|
||||
"admin_and_system.resource_locked": "Den här resursen ändras just nu. Försök igen om en liten stund.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Presentkoden löses in. Försök igen om en liten stund.",
|
||||
"invites_and_gifts.unknown_gift_code": "Okänd presentkod.",
|
||||
"invites_and_packs.max_emojis_reached": "Du har nått gränsen på {count, plural, one {# emoji} other {# emojis}}.",
|
||||
"limits.at_least_one_entry_required": "Minst en post krävs.",
|
||||
"limits.base64_length_invalid": "Base64-strängens längd måste vara mellan {min} och {maxLength} tecken.",
|
||||
"limits.cannot_specify_before_and_after": "Du kan inte ange både `before` och `after`.",
|
||||
"limits.content_exceeds_max_length": "Texten får inte innehålla fler än {maxLength, number} tecken.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Ogiltig DSA-verifieringskod.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Svaren stämmer inte med anmälningsformuläret. Börja om med anmälan.",
|
||||
"moderation_and_reports.ip_ban_declined": "Den här IP-adressen kan inte läggas till i blocklistan.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Den här nätverksblockeringen hör till ett åtgärdsbeslut. Avsluta beslutet för att ta bort den.",
|
||||
"moderation_and_reports.report_already_resolved": "Anmälan har redan behandlats.",
|
||||
"moderation_and_reports.report_banned": "Du har förbjudits att skicka in anmälningar.",
|
||||
"moderation_and_reports.report_flow_outdated": "Anmälningsformuläret ändrades medan du fyllde i det. Börja om med anmälan.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Ett avslut med åtgärd kräver ett annat utfall än \"ingen överträdelse\". En dubblett kräver anmälan som den upprepar och får inte ha något utfall. Ett avslut utan överträdelse får inte ha något annat utfall.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Den här anmälan omfattas av ett rättsligt bevarandekrav och kan inte raderas.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Du måste slutföra konfigureringen av ditt konto innan du kan skicka in anmälningar.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Okänt åtgärdsbeslut.",
|
||||
"moderation_and_reports.unknown_report": "Okänd anmälan.",
|
||||
"moderation_and_reports.user_is_not_banned": "Den här användaren är inte bannlyst.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Namnet kan inte vara tomt efter att ha normaliserats.",
|
||||
"permissions.global_ip_banned": "Din IP-adress {ipAddress} har blockerats permanent från {product_name}-API:et av plattformsadministratörerna. {appealEmail, select, null {Om du anser att detta är ett misstag kan du kontakta administratörerna för den här instansen för att överklaga.} other {Om du anser att detta är ett misstag kan du kontakta {appealEmail} för att överklaga.}} Ange den här IP-adressen i ditt överklagande.",
|
||||
"permissions.global_ip_temporarily_banned": "Din IP-adress {ipAddress} har blockerats tillfälligt från {product_name}-API:et. Blockeringen hävs automatiskt när den löper ut. {appealEmail, select, null {Om du anser att detta är ett misstag kan du kontakta administratörerna för den här instansen och ange den här IP-adressen.} other {Om du anser att detta är ett misstag kan du kontakta {appealEmail} och ange den här IP-adressen.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} har blockerat åtkomst från det här nätverket på grund av aktivitet som bröt mot reglerna.} other {{product_name} har blockerat åtkomst från det här nätverket.}} Om du delar det här nätverket med andra, till exempel i skolan, på jobbet, på ett offentligt Wi-Fi, via din mobiloperatör eller ett VPN, kanske blockeringen inte har något med dig att göra. Det snabbaste sättet att lösa det är att byta nätverk, till exempel till mobildata i stället för Wi-Fi, eller att slå på eller av ditt VPN.{appealEmail, select, null {} other { Om du tror att blockeringen är ett misstag kan du mejla {appealEmail} och ange din IP-adress, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} har blockerat åtkomst från det här nätverket på grund av aktivitet som bröt mot reglerna.} other {{product_name} har blockerat åtkomst från det här nätverket.}} Blockeringen upphör den {expiresAt}. Om du delar det här nätverket med andra, till exempel i skolan, på jobbet, på ett offentligt Wi-Fi, via din mobiloperatör eller ett VPN, kanske blockeringen inte har något med dig att göra. Det snabbaste sättet att lösa det är att byta nätverk, till exempel till mobildata i stället för Wi-Fi, eller att slå på eller av ditt VPN.{appealEmail, select, null {} other { Om du tror att blockeringen är ett misstag kan du mejla {appealEmail} och ange din IP-adress, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Du har inte åtkomst till denna resurs eller funktion.",
|
||||
"permissions.missing_permissions": "Du har inte de behörigheter som krävs för att utföra denna åtgärd.",
|
||||
"permissions.user_banned_from_guild": "Den här användaren är bannlyst från den här communityn.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL ต้องไม่ว่างเปล่า",
|
||||
"admin_and_system.admin_api_key_not_found": "ไม่พบ Admin API key",
|
||||
"admin_and_system.deletion_failed": "ไม่สามารถลบทรัพยากรได้ โปรดลองอีกครั้ง",
|
||||
"admin_and_system.enforcement_account_closed": "บัญชีนี้ถูกปิดแล้ว จึงไม่สามารถระงับได้",
|
||||
"admin_and_system.enforcement_confirmations_required": "โปรดยืนยันว่าได้เก็บรักษาหลักฐานไว้แล้ว และได้ยื่นรายงานที่จำเป็นทั้งหมดแล้ว",
|
||||
"admin_and_system.enforcement_decision_ended": "คำตัดสินนี้สิ้นสุดไปแล้ว",
|
||||
"admin_and_system.enforcement_decision_owns_state": "ข้อจำกัดนี้เป็นของคำตัดสินการบังคับใช้ โปรดสิ้นสุดคำตัดสินแทน",
|
||||
"admin_and_system.enforcement_decision_replaced": "คำตัดสินที่ใหม่กว่าได้แทนที่คำตัดสินนี้แล้ว จึงไม่สามารถสิ้นสุดได้อีก",
|
||||
"admin_and_system.enforcement_deletion_started": "การลบบัญชีนี้เริ่มต้นแล้ว จึงไม่สามารถสิ้นสุดคำตัดสินได้อีก",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "ข้อความในข้อความส่วนตัวจะใช้เป็นหลักฐานได้ก็ต่อเมื่อมีรายงานที่เชื่อมโยงครอบคลุมการสนทนานั้น",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "ข้อความที่กำลังถูกลบจะถูกบันทึกเป็นหลักฐานอยู่แล้ว จึงไม่ต้องระบุข้อความหลักฐานแยก",
|
||||
"admin_and_system.enforcement_evidence_not_found": "ไม่พบข้อความหลักฐานรายการหนึ่ง",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "ข้อความหลักฐานทุกรายการต้องมาจากบัญชีหรือคอมมูนิตี้ที่คำตัดสินนี้เกี่ยวข้อง",
|
||||
"admin_and_system.enforcement_evidence_required": "คำตัดสินนี้ต้องมีข้อความหลักฐานอย่างน้อยหนึ่งรายการ",
|
||||
"admin_and_system.enforcement_facts_required": "เพิ่มข้อความหลักฐานหรือหมายเหตุถึงผู้ใช้",
|
||||
"admin_and_system.enforcement_internal_note_required": "เพิ่มหมายเหตุภายในในส่วนหัว X-Audit-Log-Reason",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "ไม่สามารถใช้เหตุผลนี้กับการดำเนินการนี้ได้",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "เฉพาะข้อจำกัดการรายงานเท่านั้นที่มีวันสิ้นสุด และต้องอยู่ภายใน 365 วันข้างหน้า",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "ไม่สามารถใช้เหตุผลนี้กับข้อจำกัดนี้ได้",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "เฉพาะการระงับถาวรหรือการปิดบัญชีเนื่องจากละเมิดกฎเท่านั้นที่บล็อกเครือข่ายได้",
|
||||
"admin_and_system.enforcement_network_shared": "มีบัญชีอื่นที่ไม่ถูกจำกัดใช้งานเครือข่ายนี้ล่าสุด จึงไม่สามารถบล็อกได้",
|
||||
"admin_and_system.enforcement_network_unknown": "บัญชีนี้ไม่ได้ใช้เครือข่ายนี้ในช่วง 30 วันที่ผ่านมา",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "คำตัดสินประเภทนี้สิ้นสุดได้ด้วยการกลับคำตัดสินเท่านั้น เนื่องจากไม่มีสิ่งใดให้ยกเลิก",
|
||||
"admin_and_system.enforcement_permanent_required": "การระงับด้วยเหตุผลนี้ต้องเป็นการระงับถาวร",
|
||||
"admin_and_system.enforcement_report_mismatch": "รายงานที่เชื่อมโยงทุกรายการต้องมีอยู่จริงและเกี่ยวกับบัญชีหรือคอมมูนิตี้ที่คำตัดสินนี้เกี่ยวข้อง",
|
||||
"admin_and_system.enforcement_report_required": "เชื่อมโยงรายงานอย่างน้อยหนึ่งรายการเมื่อแหล่งที่มาคือรายงาน",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "ระบุผู้ถือสิทธิ์ได้เฉพาะในคำตัดสินเรื่องลิขสิทธิ์เท่านั้น",
|
||||
"admin_and_system.enforcement_rights_holder_required": "คำตัดสินเรื่องลิขสิทธิ์ต้องระบุผู้ถือสิทธิ์หรือสิทธิ์ที่เกี่ยวข้อง",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "คำตัดสินด้วยเหตุผลนี้ไม่สามารถมีหมายเหตุถึงผู้ใช้ได้",
|
||||
"admin_and_system.flag_requires_enforcement_route": "แฟล็กนี้เป็นส่วนหนึ่งของข้อจำกัด โปรดเปลี่ยนผ่านเส้นทางการระงับ การลบ หรือการจำกัดฟีเจอร์",
|
||||
"admin_and_system.general_error": "เกิดข้อผิดพลาด โปรดลองอีกครั้งในภายหลัง",
|
||||
"admin_and_system.guild_id_required_for_search_index": "จำเป็นต้องมี ID คอมมูนิตี้สำหรับดัชนีการค้นหาข้อความในช่องและสมาชิก",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "ไม่อนุญาตให้เปลี่ยนนโยบายอินสแตนซ์นี้",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "การประทับเวลาไม่ถูกต้อง",
|
||||
"admin_and_system.invalid_timezone_identifier": "ตัวระบุเขตเวลาไม่ถูกต้อง",
|
||||
"admin_and_system.missing_acl": "ACL หายไป",
|
||||
"admin_and_system.moderation_basis_required": "ระบุเหตุผลรองรับในการลบข้อความ",
|
||||
"admin_and_system.must_be_iso_timestamp": "ต้องเป็นการประทับเวลา ISO ที่ถูกต้อง",
|
||||
"admin_and_system.processing_failed": "ไม่สามารถดำเนินการตามคำขอได้ โปรดลองอีกครั้ง",
|
||||
"admin_and_system.resource_locked": "ทรัพยากรนี้กำลังถูกแก้ไข โปรดลองอีกครั้งในอีกสักครู่",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "กำลังดำเนินการแลกรหัสของขวัญ โปรดลองอีกครั้งในอีกสักครู่",
|
||||
"invites_and_gifts.unknown_gift_code": "ไม่พบรหัสของขวัญ",
|
||||
"invites_and_packs.max_emojis_reached": "คุณใช้อิโมจิครบ {count} {count, plural, other {ตัว}} แล้ว",
|
||||
"limits.at_least_one_entry_required": "ต้องมีอย่างน้อยหนึ่งรายการ",
|
||||
"limits.base64_length_invalid": "ความยาวสตริง Base64 ต้องอยู่ระหว่าง {min} ถึง {maxLength} ตัวอักษร",
|
||||
"limits.cannot_specify_before_and_after": "คุณไม่สามารถระบุทั้ง `before` และ `after` ได้",
|
||||
"limits.content_exceeds_max_length": "ข้อความต้องไม่เกิน {maxLength} {maxLength, plural, other {ตัวอักษร}}",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "รหัสยืนยัน DSA ไม่ถูกต้อง",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "คำตอบเหล่านี้ไม่ตรงกับแบบฟอร์มรายงาน โปรดเริ่มรายงานใหม่อีกครั้ง",
|
||||
"moderation_and_reports.ip_ban_declined": "ไม่สามารถเพิ่มที่อยู่ IP นี้ไปยังรายการบล็อกได้",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "การบล็อกเครือข่ายนี้เป็นของคำตัดสินการบังคับใช้ โปรดสิ้นสุดคำตัดสินเพื่อนำการบล็อกออก",
|
||||
"moderation_and_reports.report_already_resolved": "รายงานนี้ได้รับการดำเนินการแล้ว",
|
||||
"moderation_and_reports.report_banned": "คุณถูกแบนจากการส่งรายงาน",
|
||||
"moderation_and_reports.report_flow_outdated": "แบบฟอร์มรายงานมีการเปลี่ยนแปลงขณะที่คุณกำลังกรอกข้อมูลอยู่ โปรดเริ่มรายงานใหม่อีกครั้ง",
|
||||
"moderation_and_reports.report_outcome_invalid": "การปิดรายงานแบบดำเนินการแล้วต้องระบุผลลัพธ์ที่ไม่ใช่ไม่พบการละเมิด การปิดแบบซ้ำต้องระบุรายงานต้นฉบับและต้องไม่ระบุผลลัพธ์ การปิดแบบไม่พบการละเมิดต้องไม่ระบุผลลัพธ์อื่น",
|
||||
"moderation_and_reports.report_under_legal_hold": "รายงานนี้อยู่ระหว่างการระงับตามกฎหมายและไม่สามารถลบได้",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "คุณต้องตั้งค่าบัญชีให้เสร็จสมบูรณ์ก่อนจึงจะสามารถส่งรายงานได้",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "ไม่พบคำตัดสินการบังคับใช้",
|
||||
"moderation_and_reports.unknown_report": "ไม่พบรายงาน",
|
||||
"moderation_and_reports.user_is_not_banned": "ผู้ใช้รายนี้ไม่ได้ถูกแบน",
|
||||
"names_and_normalization.name_empty_after_normalization": "ชื่อต้องไม่ว่างเปล่าหลังจากการปรับให้เป็นมาตรฐาน",
|
||||
"permissions.global_ip_banned": "ที่อยู่ IP ของคุณ {ipAddress} ถูกบล็อกจาก {product_name} API อย่างถาวรโดยผู้ดูแลแพลตฟอร์ม {appealEmail, select, null {หากคุณเชื่อว่านี่เป็นข้อผิดพลาด โปรดติดต่อผู้ดูแลระบบของอินสแตนซ์นี้เพื่ออุทธรณ์} other {หากคุณเชื่อว่านี่เป็นข้อผิดพลาด โปรดติดต่อ {appealEmail} เพื่ออุทธรณ์}} โปรดแนบที่อยู่ IP นี้ในการอุทธรณ์",
|
||||
"permissions.global_ip_temporarily_banned": "ที่อยู่ IP ของคุณ {ipAddress} ถูกบล็อกจาก {product_name} API ชั่วคราว การบล็อกจะถูกยกเลิกโดยอัตโนมัติเมื่อหมดเวลา {appealEmail, select, null {หากคุณเชื่อว่านี่เป็นข้อผิดพลาด โปรดติดต่อผู้ดูแลระบบของอินสแตนซ์นี้และแนบที่อยู่ IP นี้มาด้วย} other {หากคุณเชื่อว่านี่เป็นข้อผิดพลาด โปรดติดต่อ {appealEmail} และแนบที่อยู่ IP นี้มาด้วย}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} บล็อกการเข้าถึงจากเครือข่ายนี้ เนื่องจากมีกิจกรรมที่ละเมิดกฎ} other {{product_name} บล็อกการเข้าถึงจากเครือข่ายนี้}} หากคุณใช้เครือข่ายนี้ร่วมกับผู้อื่น เช่น ที่โรงเรียน ที่ทำงาน Wi-Fi สาธารณะ ผ่านผู้ให้บริการมือถือ หรือ VPN การบล็อกนี้อาจไม่เกี่ยวข้องกับคุณเลย วิธีแก้ที่เร็วที่สุดคือเปลี่ยนเครือข่าย เช่น ใช้อินเทอร์เน็ตมือถือแทน Wi-Fi หรือเปิดหรือปิด VPN{appealEmail, select, null {} other { หากคุณคิดว่าการบล็อกนี้ผิดพลาด โปรดส่งอีเมลไปที่ {appealEmail} และระบุที่อยู่ IP ของคุณ ซึ่งคือ {ipAddress}}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} บล็อกการเข้าถึงจากเครือข่ายนี้ เนื่องจากมีกิจกรรมที่ละเมิดกฎ} other {{product_name} บล็อกการเข้าถึงจากเครือข่ายนี้}} การบล็อกจะสิ้นสุดเมื่อ {expiresAt} หากคุณใช้เครือข่ายนี้ร่วมกับผู้อื่น เช่น ที่โรงเรียน ที่ทำงาน Wi-Fi สาธารณะ ผ่านผู้ให้บริการมือถือ หรือ VPN การบล็อกนี้อาจไม่เกี่ยวข้องกับคุณเลย วิธีแก้ที่เร็วที่สุดคือเปลี่ยนเครือข่าย เช่น ใช้อินเทอร์เน็ตมือถือแทน Wi-Fi หรือเปิดหรือปิด VPN{appealEmail, select, null {} other { หากคุณคิดว่าการบล็อกนี้ผิดพลาด โปรดส่งอีเมลไปที่ {appealEmail} และระบุที่อยู่ IP ของคุณ ซึ่งคือ {ipAddress}}}",
|
||||
"permissions.missing_access": "คุณไม่มีสิทธิ์เข้าถึงทรัพยากรหรือฟีเจอร์นี้",
|
||||
"permissions.missing_permissions": "คุณไม่มีสิทธิ์ที่จำเป็นในการดำเนินการนี้",
|
||||
"permissions.user_banned_from_guild": "ผู้ใช้รายนี้ถูกแบนจากคอมมูนิตี้นี้",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL'ler boş olamaz.",
|
||||
"admin_and_system.admin_api_key_not_found": "Yönetici API anahtarı bulunamadı.",
|
||||
"admin_and_system.deletion_failed": "Kaynağı silemedik. Tekrar dene.",
|
||||
"admin_and_system.enforcement_account_closed": "Bu hesap kapatıldı, bu nedenle askıya alınamaz.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Kanıtların saklandığını ve gerekli tüm bildirimlerin yapıldığını onayla.",
|
||||
"admin_and_system.enforcement_decision_ended": "Bu karar zaten sona erdi.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Bu kısıtlama bir yaptırım kararına ait. Bunun yerine kararı sonlandır.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Daha sonraki bir karar bunun yerini aldı, bu nedenle artık sonlandırılamaz.",
|
||||
"admin_and_system.enforcement_deletion_started": "Bu hesabın silinmesi zaten başladı, bu nedenle karar artık sonlandırılamaz.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Doğrudan mesaj sohbetlerindeki mesajlar, yalnızca bağlı bir rapor o sohbeti kapsadığında kanıt olarak kullanılabilir.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Kaldırılan mesajlar kanıt olarak kaydedilir, bu nedenle ayrı kanıt mesajları ekleme.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Kanıt mesajlarından biri bulunamadı.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Her kanıt mesajı, bu kararın ilgili olduğu hesaba veya topluluğa ait olmalı.",
|
||||
"admin_and_system.enforcement_evidence_required": "Bu karar için en az bir kanıt mesajı gerekli.",
|
||||
"admin_and_system.enforcement_facts_required": "Bir kanıt mesajı veya kullanıcıya bir not ekle.",
|
||||
"admin_and_system.enforcement_internal_note_required": "X-Audit-Log-Reason başlığına bir dahili not ekle.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Bu neden bu işlem için kullanılamaz.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Yalnızca rapor kısıtlamasının bitiş tarihi olabilir ve bu tarih önümüzdeki 365 gün içinde olmalı.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Bu neden bu kısıtlama için kullanılamaz.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Ağları yalnızca kalıcı askıya alma veya ihlal edilen bir kural nedeniyle kapatma engelleyebilir.",
|
||||
"admin_and_system.enforcement_network_shared": "Bu ağda en son kısıtlanmamış başka hesaplar etkindi, bu nedenle ağ engellenemez.",
|
||||
"admin_and_system.enforcement_network_unknown": "Bu hesap son 30 gün içinde bu ağı kullanmadı.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Bu tür bir karar yalnızca geri alınarak sonlandırılabilir, çünkü kaldırılacak bir kısıtlama yok.",
|
||||
"admin_and_system.enforcement_permanent_required": "Bu nedenle yapılan askıya almalar kalıcı olmalı.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Bağlı her rapor mevcut olmalı ve bu kararın ilgili olduğu hesap veya toplulukla ilgili olmalı.",
|
||||
"admin_and_system.enforcement_report_required": "Kaynak bir rapor olduğunda en az bir rapor bağla.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Hak sahibi yalnızca telif hakkı kararlarında belirtilebilir.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Telif hakkı kararları için hak sahibi veya ilgili hak gerekli.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Bu nedenle verilen kararlar kullanıcıya not içeremez.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Bu bayrak bir kısıtlamanın parçası. Bunu askıya alma, silme veya özellik kısıtlama rotaları üzerinden değiştir.",
|
||||
"admin_and_system.general_error": "Bir şeyler ters gitti. Daha sonra tekrar dene.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Topluluk kimliği, kanal mesajı ve üye arama indeksleri için gerekli.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Bu kurulum politikası değişikliğine izin verilmiyor.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Geçersiz zaman damgası.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Geçersiz saat dilimi tanımlayıcısı.",
|
||||
"admin_and_system.missing_acl": "ACL eksik.",
|
||||
"admin_and_system.moderation_basis_required": "Mesajları silmek için bir dayanak belirt.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Geçerli bir ISO zaman damgası olmalı.",
|
||||
"admin_and_system.processing_failed": "İsteği işleyemedik. Tekrar dene.",
|
||||
"admin_and_system.resource_locked": "Bu kaynak şu anda değiştiriliyor. Lütfen kısa süre sonra tekrar dene.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Hediye kodu kullanılıyor. Birazdan tekrar dene.",
|
||||
"invites_and_gifts.unknown_gift_code": "Bilinmeyen hediye kodu.",
|
||||
"invites_and_packs.max_emojis_reached": "{count, plural, one {# emoji} other {# emoji}} sınırına ulaştın.",
|
||||
"limits.at_least_one_entry_required": "En az bir öğe gerekli.",
|
||||
"limits.base64_length_invalid": "Base64 dize uzunluğu {min} ile {maxLength} karakter arasında olmalı.",
|
||||
"limits.cannot_specify_before_and_after": "Hem `before` hem de `after` belirtemezsin.",
|
||||
"limits.content_exceeds_max_length": "Metin {maxLength, plural, one {# karakteri} other {# karakteri}} geçemez.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Geçersiz DSA doğrulama kodu.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Bu yanıtlar rapor formuyla eşleşmiyor. Raporu yeniden başlat.",
|
||||
"moderation_and_reports.ip_ban_declined": "Bu IP adresi engelleme listesine eklenemez.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Bu ağ engeli bir yaptırım kararına ait. Kaldırmak için kararı sonlandır.",
|
||||
"moderation_and_reports.report_already_resolved": "Rapor zaten çözüldü.",
|
||||
"moderation_and_reports.report_banned": "Rapor göndermen yasaklandı.",
|
||||
"moderation_and_reports.report_flow_outdated": "Rapor formu sen doldururken değişti. Raporu yeniden başlat.",
|
||||
"moderation_and_reports.report_outcome_invalid": "“İşlem yapıldı” çözümü için “ihlal yok” dışında bir sonuç gerekir. “Yinelenen” çözümü için tekrarladığı rapor gerekir ve bu çözüme sonuç verilemez. “İhlal yok” çözümüne başka bir sonuç verilemez.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Bu rapor yasal saklama kapsamında olduğu için silinemez.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Rapor göndermeden önce hesap kurulumunu tamamlamalısın.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Bilinmeyen yaptırım kararı.",
|
||||
"moderation_and_reports.unknown_report": "Bilinmeyen rapor.",
|
||||
"moderation_and_reports.user_is_not_banned": "Bu kullanıcı yasaklı değil.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Ad, normalleştirildikten sonra boş olamaz.",
|
||||
"permissions.global_ip_banned": "IP adresin {ipAddress}, platform yöneticileri tarafından {product_name} API'den kalıcı olarak engellendi. {appealEmail, select, null {Bunun bir hata olduğunu düşünüyorsan itiraz etmek için bu kurulumun yöneticileriyle iletişime geç.} other {Bunun bir hata olduğunu düşünüyorsan itiraz etmek için {appealEmail} ile iletişime geç.}} İtirazına bu IP adresini ekle.",
|
||||
"permissions.global_ip_temporarily_banned": "IP adresin {ipAddress}, {product_name} API'den geçici olarak engellendi. Engelleme süresi dolduğunda kendiliğinden kalkar. {appealEmail, select, null {Bunun bir hata olduğunu düşünüyorsan bu kurulumun yöneticileriyle iletişime geç ve bu IP adresini belirt.} other {Bunun bir hata olduğunu düşünüyorsan {appealEmail} ile iletişime geç ve bu IP adresini belirt.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name}, kurallarını ihlal eden etkinlik nedeniyle bu ağdan erişimi engelledi.} other {{product_name} bu ağdan erişimi engelledi.}} Bu ağı başkalarıyla paylaşıyorsan, örneğin okulda, işte, halka açık bir Wi-Fi ağında, mobil operatörün aracılığıyla ya da bir VPN üzerinden, bu engellemenin seninle hiçbir ilgisi olmayabilir. En hızlı çözüm ağ değiştirmektir, örneğin Wi-Fi yerine mobil veriye geçmek ya da VPN bağlantını açmak ya da kapatmak.{appealEmail, select, null {} other { Bu engellemenin bir hata olduğunu düşünüyorsan {appealEmail} adresine e-posta gönder ve IP adresini belirt: {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name}, kurallarını ihlal eden etkinlik nedeniyle bu ağdan erişimi engelledi.} other {{product_name} bu ağdan erişimi engelledi.}} Engelleme {expiresAt} tarihinde sona eriyor. Bu ağı başkalarıyla paylaşıyorsan, örneğin okulda, işte, halka açık bir Wi-Fi ağında, mobil operatörün aracılığıyla ya da bir VPN üzerinden, bu engellemenin seninle hiçbir ilgisi olmayabilir. En hızlı çözüm ağ değiştirmektir, örneğin Wi-Fi yerine mobil veriye geçmek ya da VPN bağlantını açmak ya da kapatmak.{appealEmail, select, null {} other { Bu engellemenin bir hata olduğunu düşünüyorsan {appealEmail} adresine e-posta gönder ve IP adresini belirt: {ipAddress}.}}",
|
||||
"permissions.missing_access": "Bu kaynağa veya özelliğe erişimin yok.",
|
||||
"permissions.missing_permissions": "Bu eylemi gerçekleştirmek için gerekli izinlere sahip değilsin.",
|
||||
"permissions.user_banned_from_guild": "Bu kullanıcı bu topluluktan yasaklandı.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL не можуть бути порожніми.",
|
||||
"admin_and_system.admin_api_key_not_found": "API-ключ адміністратора не знайдено.",
|
||||
"admin_and_system.deletion_failed": "Не вдалося видалити ресурс. Спробуй ще раз.",
|
||||
"admin_and_system.enforcement_account_closed": "Цей акаунт закрито, тому його не можна тимчасово заблокувати.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Підтверди, що докази збережено і всі обов'язкові повідомлення подано.",
|
||||
"admin_and_system.enforcement_decision_ended": "Це рішення вже припинило дію.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Це обмеження встановлено рішенням про застосування заходів. Натомість заверши рішення.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Це рішення замінено пізнішим, тому його вже не можна завершити.",
|
||||
"admin_and_system.enforcement_deletion_started": "Видалення цього акаунта вже почалося, тому рішення вже не можна завершити.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Повідомлення з особистого листування можна використати як докази, лише якщо це листування охоплює пов'язана скарга.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Повідомлення, які видаляються, зберігаються як докази, тому не додавай окремих повідомлень-доказів.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Одне з повідомлень-доказів не знайдено.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Кожне повідомлення-доказ має належати акаунту або спільноті, яких стосується це рішення.",
|
||||
"admin_and_system.enforcement_evidence_required": "Для цього рішення потрібне принаймні одне повідомлення-доказ.",
|
||||
"admin_and_system.enforcement_facts_required": "Додай повідомлення-доказ або коментар для користувача.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Додай внутрішню нотатку в заголовку X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Цю причину не можна використати для цієї дії.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Дату завершення має лише обмеження на скарги, і вона має бути в межах наступних 365 днів.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Цю причину не можна використати для цього обмеження.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Блокувати мережі можна лише в разі безстрокового блокування або закриття акаунта за порушення правила.",
|
||||
"admin_and_system.enforcement_network_shared": "У цій мережі востаннє були активні інші акаунти без обмежень, тому її не можна заблокувати.",
|
||||
"admin_and_system.enforcement_network_unknown": "Цей акаунт не використовував цю мережу протягом останніх 30 днів.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Рішення такого типу можна завершити лише скасуванням, бо знімати нічого.",
|
||||
"admin_and_system.enforcement_permanent_required": "Блокування з цієї причини мають бути безстроковими.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Кожна пов'язана скарга має існувати й стосуватися акаунта або спільноти, яких стосується це рішення.",
|
||||
"admin_and_system.enforcement_report_required": "Якщо джерелом є скарга, пов'яжи з рішенням принаймні одну скаргу.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Правовласника можна вказати лише в рішеннях щодо авторського права.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "У рішеннях щодо авторського права потрібно вказати правовласника або відповідне право.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Рішення з цієї причини не можуть містити коментар для користувача.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Цей прапорець є частиною обмеження. Зміни його через маршрути тимчасового блокування, видалення або обмеження функцій.",
|
||||
"admin_and_system.general_error": "Щось пішло не так. Спробуй пізніше.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Для пошукових індексів повідомлень каналу та учасників потрібен ID спільноти.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Цю зміну правил екземпляра не дозволено.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Недійсна мітка часу.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Недійсний ідентифікатор часового поясу.",
|
||||
"admin_and_system.missing_acl": "Немає ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Укажи підставу для видалення повідомлень.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Має бути дійсна мітка часу ISO.",
|
||||
"admin_and_system.processing_failed": "Не вдалося обробити запит. Спробуй ще раз.",
|
||||
"admin_and_system.resource_locked": "Цей ресурс зараз змінюється. Спробуй ще раз за мить.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Активація подарункового коду триває. Спробуй ще раз за мить.",
|
||||
"invites_and_gifts.unknown_gift_code": "Невідомий подарунковий код.",
|
||||
"invites_and_packs.max_emojis_reached": "Досягнуто максимуму: {count} {count, plural, one {емоджі} few {емоджі} many {емоджі} other {емоджі}}.",
|
||||
"limits.at_least_one_entry_required": "Потрібен принаймні один запис.",
|
||||
"limits.base64_length_invalid": "Довжина рядка Base64 має бути від {min} до {maxLength} символів.",
|
||||
"limits.cannot_specify_before_and_after": "Ти не можеш вказати одночасно `before` та `after`.",
|
||||
"limits.content_exceeds_max_length": "Текст не повинен перевищувати {maxLength} {maxLength, plural, one {символ} few {символи} many {символів} other {символа}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Недійсний код підтвердження DSA.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Ці відповіді не відповідають формі звіту. Почни звіт заново.",
|
||||
"moderation_and_reports.ip_ban_declined": "Цю IP-адресу неможливо додати до чорного списку.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Це блокування мережі належить до рішення про застосування заходів. Щоб його зняти, заверши рішення.",
|
||||
"moderation_and_reports.report_already_resolved": "Звіт вже розглянуто.",
|
||||
"moderation_and_reports.report_banned": "Тобі заборонено надсилати звіти.",
|
||||
"moderation_and_reports.report_flow_outdated": "Форма звіту змінилася під час заповнення. Почни звіт заново.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Для статусу «вжито заходів» потрібен результат, відмінний від «порушень немає». Для статусу «дублікат» потрібна скарга, яку він повторює, а результат указувати не можна. Для статусу «порушень немає» інший результат указувати не можна.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Цей звіт перебуває під юридичним утриманням, і його не можна видалити.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Тобі потрібно завершити налаштування акаунта, щоб надсилати звіти.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Невідоме рішення про застосування заходів.",
|
||||
"moderation_and_reports.unknown_report": "Невідомий звіт.",
|
||||
"moderation_and_reports.user_is_not_banned": "Цей користувач не забанений.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Ім'я не може бути порожнім після нормалізації.",
|
||||
"permissions.global_ip_banned": "Адміністратори платформи назавжди заблокували твоїй IP-адресі {ipAddress} доступ до {product_name} API. {appealEmail, select, null {Якщо ти вважаєш, що це помилка, звернися до адміністраторів цього екземпляра, щоб подати апеляцію.} other {Якщо ти вважаєш, що це помилка, напиши на {appealEmail}, щоб подати апеляцію.}} Вкажи цю IP-адресу в апеляції.",
|
||||
"permissions.global_ip_temporarily_banned": "Твоїй IP-адресі {ipAddress} тимчасово заблоковано доступ до {product_name} API. Блокування зніметься автоматично, коли завершиться його строк. {appealEmail, select, null {Якщо ти вважаєш, що це помилка, звернися до адміністраторів цього екземпляра і вкажи цю IP-адресу.} other {Якщо ти вважаєш, що це помилка, напиши на {appealEmail} і вкажи цю IP-адресу.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} заблокував доступ із цієї мережі через дії, що порушили його правила.} other {{product_name} заблокував доступ із цієї мережі.}} Якщо ти користуєшся цією мережею разом з іншими людьми, наприклад у школі, на роботі, у громадській мережі Wi-Fi, через мобільного оператора чи VPN, це блокування може бути ніяк не пов'язане з тобою. Найшвидше змінити мережу, наприклад перейти з Wi-Fi на мобільний інтернет, або ввімкнути чи вимкнути VPN.{appealEmail, select, null {} other { Якщо ти вважаєш, що це блокування помилкове, напиши на {appealEmail} і вкажи свою IP-адресу: {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} заблокував доступ із цієї мережі через дії, що порушили його правила.} other {{product_name} заблокував доступ із цієї мережі.}} Блокування діє до {expiresAt}. Якщо ти користуєшся цією мережею разом з іншими людьми, наприклад у школі, на роботі, у громадській мережі Wi-Fi, через мобільного оператора чи VPN, це блокування може бути ніяк не пов'язане з тобою. Найшвидше змінити мережу, наприклад перейти з Wi-Fi на мобільний інтернет, або ввімкнути чи вимкнути VPN.{appealEmail, select, null {} other { Якщо ти вважаєш, що це блокування помилкове, напиши на {appealEmail} і вкажи свою IP-адресу: {ipAddress}.}}",
|
||||
"permissions.missing_access": "Ти не маєш доступу до цього ресурсу або функції.",
|
||||
"permissions.missing_permissions": "Ти не маєш потрібних дозволів для цієї дії.",
|
||||
"permissions.user_banned_from_guild": "Цей користувач забанений у цій спільноті.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL không được để trống.",
|
||||
"admin_and_system.admin_api_key_not_found": "Không tìm thấy khóa API quản trị.",
|
||||
"admin_and_system.deletion_failed": "Không thể xóa tài nguyên. Vui lòng thử lại.",
|
||||
"admin_and_system.enforcement_account_closed": "Tài khoản này đã bị đóng nên không thể đình chỉ.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Hãy xác nhận rằng bằng chứng đã được lưu giữ và mọi báo cáo bắt buộc đã được gửi.",
|
||||
"admin_and_system.enforcement_decision_ended": "Quyết định này đã kết thúc.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "Hạn chế này thuộc về một quyết định xử lý vi phạm. Hãy kết thúc quyết định đó.",
|
||||
"admin_and_system.enforcement_decision_replaced": "Một quyết định sau đó đã thay thế quyết định này nên không thể kết thúc nó nữa.",
|
||||
"admin_and_system.enforcement_deletion_started": "Quá trình xóa tài khoản này đã bắt đầu nên không thể kết thúc quyết định nữa.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Tin nhắn trong tin nhắn trực tiếp chỉ có thể dùng làm bằng chứng khi có báo cáo được liên kết bao gồm cuộc trò chuyện đó.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "Các tin nhắn bị xóa được lưu làm bằng chứng, vì vậy đừng thêm tin nhắn bằng chứng riêng.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "Không tìm thấy một trong các tin nhắn bằng chứng.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Mọi tin nhắn bằng chứng phải đến từ tài khoản hoặc cộng đồng mà quyết định này nhắm đến.",
|
||||
"admin_and_system.enforcement_evidence_required": "Quyết định này cần ít nhất một tin nhắn bằng chứng.",
|
||||
"admin_and_system.enforcement_facts_required": "Hãy thêm một tin nhắn bằng chứng hoặc một ghi chú gửi người dùng.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Hãy thêm ghi chú nội bộ vào header X-Audit-Log-Reason.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "Không thể dùng lý do này cho hành động này.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Chỉ giới hạn báo cáo mới có ngày kết thúc, và ngày đó phải nằm trong 365 ngày tới.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "Không thể dùng lý do này cho giới hạn này.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Chỉ lệnh đình chỉ vĩnh viễn hoặc việc đóng tài khoản do vi phạm quy tắc mới có thể chặn mạng.",
|
||||
"admin_and_system.enforcement_network_shared": "Các tài khoản khác không bị hạn chế đã hoạt động gần nhất trên mạng này nên không thể chặn mạng.",
|
||||
"admin_and_system.enforcement_network_unknown": "Tài khoản này chưa sử dụng mạng này trong 30 ngày qua.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Chỉ có thể kết thúc loại quyết định này bằng cách đảo ngược, vì không có gì để gỡ bỏ.",
|
||||
"admin_and_system.enforcement_permanent_required": "Lệnh đình chỉ vì lý do này phải là vĩnh viễn.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Mọi báo cáo được liên kết phải tồn tại và liên quan đến tài khoản hoặc cộng đồng mà quyết định này nhắm đến.",
|
||||
"admin_and_system.enforcement_report_required": "Hãy liên kết ít nhất một báo cáo khi nguồn là báo cáo.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "Chỉ có thể nêu chủ sở hữu quyền cho các quyết định về bản quyền.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Quyết định về bản quyền cần có chủ sở hữu quyền hoặc quyền liên quan.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Quyết định vì lý do này không thể kèm ghi chú gửi người dùng.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "Cờ này là một phần của một hạn chế. Hãy thay đổi nó qua các route đình chỉ, xóa hoặc giới hạn tính năng.",
|
||||
"admin_and_system.general_error": "Đã xảy ra lỗi. Vui lòng thử lại sau.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "ID cộng đồng là bắt buộc để tạo chỉ mục tìm kiếm cho tin nhắn kênh và thành viên.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "Không được phép thực hiện thay đổi này đối với chính sách của phiên bản.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Mốc thời gian không hợp lệ.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Mã định danh múi giờ không hợp lệ.",
|
||||
"admin_and_system.missing_acl": "Thiếu ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Hãy nêu căn cứ để xóa các tin nhắn.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Phải là mốc thời gian ISO hợp lệ.",
|
||||
"admin_and_system.processing_failed": "Không thể xử lý yêu cầu. Vui lòng thử lại.",
|
||||
"admin_and_system.resource_locked": "Tài nguyên này đang được sửa đổi. Vui lòng thử lại sau một lát.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Đang đổi mã quà tặng. Hãy thử lại sau giây lát.",
|
||||
"invites_and_gifts.unknown_gift_code": "Mã quà tặng không xác định.",
|
||||
"invites_and_packs.max_emojis_reached": "Bạn đã đạt tối đa {count} {count, plural, other {emoji}}.",
|
||||
"limits.at_least_one_entry_required": "Cần ít nhất một mục.",
|
||||
"limits.base64_length_invalid": "Độ dài chuỗi Base64 phải từ {min} đến {maxLength} ký tự.",
|
||||
"limits.cannot_specify_before_and_after": "Bạn không thể chỉ định đồng thời `before` và `after`.",
|
||||
"limits.content_exceeds_max_length": "Văn bản không được dài quá {maxLength} {maxLength, plural, other {ký tự}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Mã xác minh DSA không hợp lệ.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "Những câu trả lời này không khớp với biểu mẫu báo cáo. Hãy bắt đầu lại báo cáo.",
|
||||
"moderation_and_reports.ip_ban_declined": "Không thể thêm địa chỉ IP này vào danh sách chặn.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "Lệnh chặn mạng này thuộc về một quyết định xử lý vi phạm. Hãy kết thúc quyết định đó để gỡ bỏ lệnh chặn.",
|
||||
"moderation_and_reports.report_already_resolved": "Báo cáo đã được giải quyết.",
|
||||
"moderation_and_reports.report_banned": "Bạn đã bị cấm gửi báo cáo.",
|
||||
"moderation_and_reports.report_flow_outdated": "Biểu mẫu báo cáo đã thay đổi trong khi bạn đang điền. Hãy bắt đầu lại báo cáo.",
|
||||
"moderation_and_reports.report_outcome_invalid": "Cách giải quyết “đã xử lý” cần có kết quả khác “không vi phạm”. Cách giải quyết “trùng lặp” cần có báo cáo mà nó trùng lặp và không được có kết quả. Cách giải quyết “không vi phạm” không được có kết quả nào khác.",
|
||||
"moderation_and_reports.report_under_legal_hold": "Báo cáo này đang bị lưu giữ theo yêu cầu pháp lý và không thể xóa.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "Bạn cần hoàn tất thiết lập tài khoản trước khi có thể gửi báo cáo.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Quyết định xử lý vi phạm không xác định.",
|
||||
"moderation_and_reports.unknown_report": "Báo cáo không xác định.",
|
||||
"moderation_and_reports.user_is_not_banned": "Người dùng này không bị cấm.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Tên không được để trống sau khi chuẩn hóa.",
|
||||
"permissions.global_ip_banned": "Địa chỉ IP của bạn {ipAddress} đã bị quản trị viên nền tảng chặn vĩnh viễn khỏi {product_name} API. {appealEmail, select, null {Nếu bạn cho rằng đây là nhầm lẫn, hãy liên hệ quản trị viên của máy chủ này để khiếu nại.} other {Nếu bạn cho rằng đây là nhầm lẫn, hãy liên hệ {appealEmail} để khiếu nại.}} Hãy kèm địa chỉ IP này trong khiếu nại.",
|
||||
"permissions.global_ip_temporarily_banned": "Địa chỉ IP của bạn {ipAddress} đã bị chặn tạm thời khỏi {product_name} API. Lệnh chặn sẽ tự động được gỡ khi hết hạn. {appealEmail, select, null {Nếu bạn cho rằng đây là nhầm lẫn, hãy liên hệ quản trị viên của máy chủ này và kèm theo địa chỉ IP này.} other {Nếu bạn cho rằng đây là nhầm lẫn, hãy liên hệ {appealEmail} và kèm theo địa chỉ IP này.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} đã chặn quyền truy cập từ mạng này do có hoạt động vi phạm quy tắc.} other {{product_name} đã chặn quyền truy cập từ mạng này.}} Nếu bạn dùng chung mạng này với người khác, ví dụ ở trường học, nơi làm việc, Wi-Fi công cộng, qua nhà mạng di động hoặc VPN, việc chặn này có thể không liên quan gì đến bạn. Cách khắc phục nhanh nhất là chuyển sang mạng khác, ví dụ dùng dữ liệu di động thay cho Wi-Fi, hoặc bật hay tắt VPN.{appealEmail, select, null {} other { Nếu bạn cho rằng việc chặn này là nhầm lẫn, hãy gửi email đến {appealEmail} và ghi kèm địa chỉ IP của bạn, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} đã chặn quyền truy cập từ mạng này do có hoạt động vi phạm quy tắc.} other {{product_name} đã chặn quyền truy cập từ mạng này.}} Việc chặn sẽ kết thúc vào {expiresAt}. Nếu bạn dùng chung mạng này với người khác, ví dụ ở trường học, nơi làm việc, Wi-Fi công cộng, qua nhà mạng di động hoặc VPN, việc chặn này có thể không liên quan gì đến bạn. Cách khắc phục nhanh nhất là chuyển sang mạng khác, ví dụ dùng dữ liệu di động thay cho Wi-Fi, hoặc bật hay tắt VPN.{appealEmail, select, null {} other { Nếu bạn cho rằng việc chặn này là nhầm lẫn, hãy gửi email đến {appealEmail} và ghi kèm địa chỉ IP của bạn, {ipAddress}.}}",
|
||||
"permissions.missing_access": "Bạn không có quyền truy cập vào tài nguyên hoặc tính năng này.",
|
||||
"permissions.missing_permissions": "Bạn không có quyền cần thiết để thực hiện hành động này.",
|
||||
"permissions.user_banned_from_guild": "Người dùng này đã bị cấm khỏi cộng đồng này.",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACL 不能为空。",
|
||||
"admin_and_system.admin_api_key_not_found": "未找到管理员 API 密钥。",
|
||||
"admin_and_system.deletion_failed": "无法删除资源。请重试。",
|
||||
"admin_and_system.enforcement_account_closed": "此账号已关闭,因此无法封禁。",
|
||||
"admin_and_system.enforcement_confirmations_required": "请确认证据已保全,且所有必要的报告均已提交。",
|
||||
"admin_and_system.enforcement_decision_ended": "此决定已结束。",
|
||||
"admin_and_system.enforcement_decision_owns_state": "此限制由一项处置决定管理。请改为结束该决定。",
|
||||
"admin_and_system.enforcement_decision_replaced": "此决定已被后续决定取代,因此无法再结束。",
|
||||
"admin_and_system.enforcement_deletion_started": "此账号的删除已经开始,因此无法再结束该决定。",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "只有当关联的举报涵盖该对话时,私信中的消息才能用作证据。",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "被删除的消息会作为证据保存,因此请勿另外添加证据消息。",
|
||||
"admin_and_system.enforcement_evidence_not_found": "找不到其中一条证据消息。",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "每条证据消息都必须来自此决定所针对的账号或社区。",
|
||||
"admin_and_system.enforcement_evidence_required": "此决定至少需要一条证据消息。",
|
||||
"admin_and_system.enforcement_facts_required": "请添加一条证据消息或给用户的说明。",
|
||||
"admin_and_system.enforcement_internal_note_required": "请在 X-Audit-Log-Reason 标头中添加内部备注。",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "此原因不能用于此操作。",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "只有举报限制可以设置结束日期,且必须在未来 365 天内。",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "此原因不能用于此限制。",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "只有因违反规则而作出的永久封禁或关闭才能封锁网络。",
|
||||
"admin_and_system.enforcement_network_shared": "其他未受限制的账号最近一次活跃也是在此网络上,因此无法封锁此网络。",
|
||||
"admin_and_system.enforcement_network_unknown": "此账号在过去 30 天内未使用过此网络。",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "由于没有可解除的限制,此类决定只能通过撤销来结束。",
|
||||
"admin_and_system.enforcement_permanent_required": "因此原因作出的封禁必须是永久封禁。",
|
||||
"admin_and_system.enforcement_report_mismatch": "每个关联的举报都必须存在,且必须与此决定所针对的账号或社区有关。",
|
||||
"admin_and_system.enforcement_report_required": "来源为举报时,请至少关联一个举报。",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "只有版权决定可以指定权利人。",
|
||||
"admin_and_system.enforcement_rights_holder_required": "版权决定需要提供权利人或相关权利。",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "因此原因作出的决定不能包含给用户的说明。",
|
||||
"admin_and_system.flag_requires_enforcement_route": "此标记是某项限制的一部分。请通过封禁、删除或功能限制路由进行更改。",
|
||||
"admin_and_system.general_error": "出错了。请稍后重试。",
|
||||
"admin_and_system.guild_id_required_for_search_index": "频道消息和成员搜索索引需要提供社区 ID。",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "不允许进行此实例策略变更。",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "时间戳无效。",
|
||||
"admin_and_system.invalid_timezone_identifier": "时区标识符无效。",
|
||||
"admin_and_system.missing_acl": "缺少 ACL。",
|
||||
"admin_and_system.moderation_basis_required": "请提供删除这些消息的依据。",
|
||||
"admin_and_system.must_be_iso_timestamp": "必须是有效的 ISO 时间戳。",
|
||||
"admin_and_system.processing_failed": "无法处理请求。请重试。",
|
||||
"admin_and_system.resource_locked": "此资源正在修改中。请稍后重试。",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "礼品码正在兑换中。请稍后重试。",
|
||||
"invites_and_gifts.unknown_gift_code": "未知礼品码。",
|
||||
"invites_and_packs.max_emojis_reached": "你已达到 {count, plural, other {# 个表情}}的上限。",
|
||||
"limits.at_least_one_entry_required": "至少需要一个条目。",
|
||||
"limits.base64_length_invalid": "Base64 字符串长度必须在 {min} 到 {maxLength} 个字符之间。",
|
||||
"limits.cannot_specify_before_and_after": "你不能同时指定 `before` 和 `after`。",
|
||||
"limits.content_exceeds_max_length": "文本不能超过 {maxLength, plural, other {# 个字符}}。",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "DSA 验证码无效。",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "这些回答与举报表单不匹配。请重新开始举报。",
|
||||
"moderation_and_reports.ip_ban_declined": "此 IP 地址无法添加到黑名单。",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "此网络封锁属于一项处置决定。请结束该决定以将其移除。",
|
||||
"moderation_and_reports.report_already_resolved": "举报已解决。",
|
||||
"moderation_and_reports.report_banned": "你已被禁止提交举报。",
|
||||
"moderation_and_reports.report_flow_outdated": "举报表单在你填写过程中已更新。请重新开始举报。",
|
||||
"moderation_and_reports.report_outcome_invalid": "以“已处理”结案时必须指定“无违规”以外的结果。以“重复”结案时必须指定其重复的举报,且不能指定结果。以“无违规”结案时不能指定其他结果。",
|
||||
"moderation_and_reports.report_under_legal_hold": "该举报处于法律保全状态,无法删除。",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "你需要完成账号设置才能提交举报。",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "未知的处置决定。",
|
||||
"moderation_and_reports.unknown_report": "未知举报。",
|
||||
"moderation_and_reports.user_is_not_banned": "此用户未被封禁。",
|
||||
"names_and_normalization.name_empty_after_normalization": "规范化后名称不能为空。",
|
||||
"permissions.global_ip_banned": "你的 IP 地址 {ipAddress} 已被平台管理员永久禁止访问 {product_name} API。{appealEmail, select, null {如果你认为这是误判,请联系此实例的管理员申诉。} other {如果你认为这是误判,请联系 {appealEmail} 申诉。}}请在申诉中附上此 IP 地址。",
|
||||
"permissions.global_ip_temporarily_banned": "你的 IP 地址 {ipAddress} 已被临时禁止访问 {product_name} API。限制到期后会自动解除。{appealEmail, select, null {如果你认为这是误判,请联系此实例的管理员并附上此 IP 地址。} other {如果你认为这是误判,请联系 {appealEmail} 并附上此 IP 地址。}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {由于存在违反规则的活动,{product_name} 已封锁来自此网络的访问。} other {{product_name} 已封锁来自此网络的访问。}}如果你与他人共用此网络,例如在学校、在公司、使用公共 Wi-Fi、通过移动运营商或 VPN 上网,此封锁可能与你无关。最快的解决方法是切换网络,例如改用移动数据而不是 Wi-Fi,或者开启或关闭 VPN。{appealEmail, select, null {} other {如果你认为此封锁有误,请发送邮件至 {appealEmail},并附上你的 IP 地址 {ipAddress}。}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {由于存在违反规则的活动,{product_name} 已封锁来自此网络的访问。} other {{product_name} 已封锁来自此网络的访问。}}此封锁将于 {expiresAt} 结束。如果你与他人共用此网络,例如在学校、在公司、使用公共 Wi-Fi、通过移动运营商或 VPN 上网,此封锁可能与你无关。最快的解决方法是切换网络,例如改用移动数据而不是 Wi-Fi,或者开启或关闭 VPN。{appealEmail, select, null {} other {如果你认为此封锁有误,请发送邮件至 {appealEmail},并附上你的 IP 地址 {ipAddress}。}}",
|
||||
"permissions.missing_access": "你无权访问此资源或功能。",
|
||||
"permissions.missing_permissions": "你没有执行此操作所需的权限。",
|
||||
"permissions.user_banned_from_guild": "此用户已被此社区封禁。",
|
||||
|
||||
+33
-3
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "存取控制清單 (ACL) 不可為空。",
|
||||
"admin_and_system.admin_api_key_not_found": "找不到管理 API 金鑰。",
|
||||
"admin_and_system.deletion_failed": "我們無法刪除資源。請再試一次。",
|
||||
"admin_and_system.enforcement_account_closed": "此帳號已關閉,因此無法停權。",
|
||||
"admin_and_system.enforcement_confirmations_required": "請確認證據已保全,且所有必要的通報均已提出。",
|
||||
"admin_and_system.enforcement_decision_ended": "此決定已經結束。",
|
||||
"admin_and_system.enforcement_decision_owns_state": "此限制由一項處置決定管理。請改為結束該決定。",
|
||||
"admin_and_system.enforcement_decision_replaced": "此決定已被後續的決定取代,因此無法再結束。",
|
||||
"admin_and_system.enforcement_deletion_started": "此帳號的刪除已經開始,因此無法再結束該決定。",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "只有在關聯的檢舉涵蓋該對話時,私訊中的訊息才能用作證據。",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "被移除的訊息會作為證據保存,因此請勿另外加入證據訊息。",
|
||||
"admin_and_system.enforcement_evidence_not_found": "找不到其中一則證據訊息。",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "每則證據訊息都必須來自此決定所針對的帳號或社群。",
|
||||
"admin_and_system.enforcement_evidence_required": "此決定至少需要一則證據訊息。",
|
||||
"admin_and_system.enforcement_facts_required": "請加入一則證據訊息或給使用者的說明。",
|
||||
"admin_and_system.enforcement_internal_note_required": "請在 X-Audit-Log-Reason 標頭中加入內部備註。",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "此原因不能用於此操作。",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "只有檢舉限制可以設定結束日期,且必須在未來 365 天內。",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "此原因不能用於此限制。",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "只有因違反規則而做出的永久停權或關閉才能封鎖網路。",
|
||||
"admin_and_system.enforcement_network_shared": "其他未受限制的帳號最近一次活動也是在此網路上,因此無法封鎖此網路。",
|
||||
"admin_and_system.enforcement_network_unknown": "此帳號在過去 30 天內沒有使用過此網路。",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "由於沒有可解除的限制,這類決定只能透過撤銷來結束。",
|
||||
"admin_and_system.enforcement_permanent_required": "因此原因做出的停權必須是永久停權。",
|
||||
"admin_and_system.enforcement_report_mismatch": "每則關聯的檢舉都必須存在,且必須與此決定所針對的帳號或社群有關。",
|
||||
"admin_and_system.enforcement_report_required": "來源為檢舉時,請至少關聯一則檢舉。",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "只有著作權決定可以指定權利人。",
|
||||
"admin_and_system.enforcement_rights_holder_required": "著作權決定需要提供權利人或相關權利。",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "因此原因做出的決定不能包含給使用者的說明。",
|
||||
"admin_and_system.flag_requires_enforcement_route": "此標記是某項限制的一部分。請透過停權、刪除或功能限制路由進行變更。",
|
||||
"admin_and_system.general_error": "發生錯誤。請稍後再試。",
|
||||
"admin_and_system.guild_id_required_for_search_index": "頻道訊息和成員搜尋索引需要社群 ID。",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "不允許進行此實例政策變更。",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "時間戳記無效。",
|
||||
"admin_and_system.invalid_timezone_identifier": "時區識別碼無效。",
|
||||
"admin_and_system.missing_acl": "缺少存取控制清單 (ACL)。",
|
||||
"admin_and_system.moderation_basis_required": "請提供刪除這些訊息的依據。",
|
||||
"admin_and_system.must_be_iso_timestamp": "必須為有效的 ISO 時間戳記。",
|
||||
"admin_and_system.processing_failed": "我們無法處理要求。請再試一次。",
|
||||
"admin_and_system.resource_locked": "這個資源正在修改中。請稍後再試一次。",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "禮物代碼兌換正在進行中。請稍後再試。",
|
||||
"invites_and_gifts.unknown_gift_code": "未知的禮物代碼。",
|
||||
"invites_and_packs.max_emojis_reached": "你已達到 {count, plural, other {# 個表情符號}}的上限。",
|
||||
"limits.at_least_one_entry_required": "至少需要一個項目。",
|
||||
"limits.base64_length_invalid": "Base64 字串長度必須介於 {min} 到 {maxLength} 個字元之間。",
|
||||
"limits.cannot_specify_before_and_after": "你無法同時指定 `before` 和 `after`。",
|
||||
"limits.content_exceeds_max_length": "文字不得超過 {maxLength, plural, other {# 個字元}}。",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "無效的 DSA 驗證碼。",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "這些回答與檢舉表單不符。請重新開始檢舉。",
|
||||
"moderation_and_reports.ip_ban_declined": "無法將此 IP 位址加入封鎖名單。",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "此網路封鎖屬於一項處置決定。請結束該決定以將其移除。",
|
||||
"moderation_and_reports.report_already_resolved": "檢舉已解決。",
|
||||
"moderation_and_reports.report_banned": "你已被禁止送出檢舉。",
|
||||
"moderation_and_reports.report_flow_outdated": "檢舉表單在你填寫時已變更。請重新開始檢舉。",
|
||||
"moderation_and_reports.report_outcome_invalid": "以「已處理」結案時必須指定「無違規」以外的結果。以「重複」結案時必須指定所重複的檢舉,且不能指定結果。以「無違規」結案時不能指定其他結果。",
|
||||
"moderation_and_reports.report_under_legal_hold": "此檢舉受法律保全約束,無法刪除。",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "你必須完成帳號設定才能送出檢舉。",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "未知的處置決定。",
|
||||
"moderation_and_reports.unknown_report": "未知的檢舉。",
|
||||
"moderation_and_reports.user_is_not_banned": "此使用者未被封鎖。",
|
||||
"names_and_normalization.name_empty_after_normalization": "名稱正規化後不能為空。",
|
||||
"permissions.global_ip_banned": "你的 IP 位址 {ipAddress} 已被平台管理員永久禁止存取 {product_name} API。{appealEmail, select, null {如果你認為這是誤判,請聯絡此實例的管理員申訴。} other {如果你認為這是誤判,請聯絡 {appealEmail} 申訴。}}請在申訴中附上此 IP 位址。",
|
||||
"permissions.global_ip_temporarily_banned": "你的 IP 位址 {ipAddress} 已被暫時禁止存取 {product_name} API。限制到期後會自動解除。{appealEmail, select, null {如果你認為這是誤判,請聯絡此實例的管理員並附上此 IP 位址。} other {如果你認為這是誤判,請聯絡 {appealEmail} 並附上此 IP 位址。}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {由於有違反規則的活動,{product_name} 已封鎖來自此網路的存取。} other {{product_name} 已封鎖來自此網路的存取。}}如果您與他人共用此網路,例如在學校、在公司、使用公共 Wi-Fi、透過電信業者或 VPN 上網,這項封鎖可能與您無關。最快的解決方法是切換網路,例如改用行動數據而非 Wi-Fi,或開啟或關閉 VPN。{appealEmail, select, null {} other {如果您認為這項封鎖有誤,請寄信至 {appealEmail},並附上您的 IP 位址 {ipAddress}。}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {由於有違反規則的活動,{product_name} 已封鎖來自此網路的存取。} other {{product_name} 已封鎖來自此網路的存取。}}這項封鎖將於 {expiresAt} 結束。如果您與他人共用此網路,例如在學校、在公司、使用公共 Wi-Fi、透過電信業者或 VPN 上網,這項封鎖可能與您無關。最快的解決方法是切換網路,例如改用行動數據而非 Wi-Fi,或開啟或關閉 VPN。{appealEmail, select, null {} other {如果您認為這項封鎖有誤,請寄信至 {appealEmail},並附上您的 IP 位址 {ipAddress}。}}",
|
||||
"permissions.missing_access": "你沒有權限使用此資源或功能。",
|
||||
"permissions.missing_permissions": "你沒有執行此動作所需的權限。",
|
||||
"permissions.user_banned_from_guild": "此使用者已被此社群封鎖。",
|
||||
|
||||
@@ -15,6 +15,33 @@
|
||||
"admin_and_system.acls_must_be_non_empty": "ACLs must be non-empty.",
|
||||
"admin_and_system.admin_api_key_not_found": "Admin API key wasn't found.",
|
||||
"admin_and_system.deletion_failed": "We couldn't delete the resource. Please try again.",
|
||||
"admin_and_system.enforcement_account_closed": "This account is closed, so it can't be suspended.",
|
||||
"admin_and_system.enforcement_confirmations_required": "Confirm that the evidence is preserved and that any required report is filed.",
|
||||
"admin_and_system.enforcement_decision_ended": "This decision has already ended.",
|
||||
"admin_and_system.enforcement_decision_owns_state": "An enforcement decision owns this restriction. End the decision instead.",
|
||||
"admin_and_system.enforcement_decision_replaced": "A later decision replaced this one, so it can no longer be ended.",
|
||||
"admin_and_system.enforcement_deletion_started": "The deletion of this account has already started, so the decision can no longer be ended.",
|
||||
"admin_and_system.enforcement_evidence_dm_unreported": "Messages in direct messages can only be used as evidence when a linked report covers that conversation.",
|
||||
"admin_and_system.enforcement_evidence_not_allowed": "The messages being removed are saved as evidence, so leave out separate evidence messages.",
|
||||
"admin_and_system.enforcement_evidence_not_found": "One of the evidence messages wasn't found.",
|
||||
"admin_and_system.enforcement_evidence_not_subject": "Every evidence message must be from the account or community this decision is about.",
|
||||
"admin_and_system.enforcement_evidence_required": "This decision needs at least one evidence message.",
|
||||
"admin_and_system.enforcement_facts_required": "Add an evidence message or a note to the user.",
|
||||
"admin_and_system.enforcement_internal_note_required": "Add an internal note in the X-Audit-Log-Reason header.",
|
||||
"admin_and_system.enforcement_kind_not_allowed": "This reason can't be used for this action.",
|
||||
"admin_and_system.enforcement_limit_end_invalid": "Only a reports limit has an end date, and it must be within the next 365 days.",
|
||||
"admin_and_system.enforcement_limit_not_allowed": "This reason can't be used for this limit.",
|
||||
"admin_and_system.enforcement_network_block_not_allowed": "Only a permanent suspension or a closure for a broken rule can block networks.",
|
||||
"admin_and_system.enforcement_network_shared": "Other accounts that aren't restricted were last active on this network, so it can't be blocked.",
|
||||
"admin_and_system.enforcement_network_unknown": "This account hasn't used this network in the last 30 days.",
|
||||
"admin_and_system.enforcement_outcome_not_allowed": "Only a reversal can end this kind of decision, because there is nothing to lift.",
|
||||
"admin_and_system.enforcement_permanent_required": "Suspensions for this reason must be permanent.",
|
||||
"admin_and_system.enforcement_report_mismatch": "Every linked report must exist and be about the account or community this decision is about.",
|
||||
"admin_and_system.enforcement_report_required": "Link at least one report when the source is a report.",
|
||||
"admin_and_system.enforcement_rights_holder_not_allowed": "A rights holder can only be given for copyright decisions.",
|
||||
"admin_and_system.enforcement_rights_holder_required": "Copyright decisions need the rights holder or the right concerned.",
|
||||
"admin_and_system.enforcement_statement_not_allowed": "Decisions for this reason can't include a note to the user.",
|
||||
"admin_and_system.flag_requires_enforcement_route": "This flag is part of a restriction. Change it through the suspension, deletion or feature limit routes.",
|
||||
"admin_and_system.general_error": "Something went wrong. Please try again later.",
|
||||
"admin_and_system.guild_id_required_for_search_index": "Community ID is required for channel message and member search indexes.",
|
||||
"admin_and_system.instance_policy_transition_not_allowed": "This instance policy change is not allowed.",
|
||||
@@ -31,6 +58,7 @@
|
||||
"admin_and_system.invalid_timestamp": "Invalid timestamp.",
|
||||
"admin_and_system.invalid_timezone_identifier": "Invalid time zone identifier.",
|
||||
"admin_and_system.missing_acl": "Missing ACL.",
|
||||
"admin_and_system.moderation_basis_required": "Give a basis to delete the messages.",
|
||||
"admin_and_system.must_be_iso_timestamp": "Must be a valid ISO timestamp.",
|
||||
"admin_and_system.processing_failed": "We couldn't process the request. Please try again.",
|
||||
"admin_and_system.resource_locked": "This resource is being modified. Please try again shortly.",
|
||||
@@ -293,7 +321,6 @@
|
||||
"invites_and_gifts.stripe_gift_redemption_in_progress": "Gift code redemption is in progress. Try again in a moment.",
|
||||
"invites_and_gifts.unknown_gift_code": "Unknown gift code.",
|
||||
"invites_and_packs.max_emojis_reached": "You've reached the maximum of {count, plural, one {# emoji} other {# emojis}}.",
|
||||
"limits.at_least_one_entry_required": "At least one entry is required.",
|
||||
"limits.base64_length_invalid": "Base64 string length must be between {min} and {maxLength} characters.",
|
||||
"limits.cannot_specify_before_and_after": "You can't specify both `before` and `after`.",
|
||||
"limits.content_exceeds_max_length": "Text must not exceed {maxLength, plural, one {# character} other {# characters}}.",
|
||||
@@ -358,16 +385,19 @@
|
||||
"moderation_and_reports.invalid_dsa_verification_code": "Invalid DSA verification code.",
|
||||
"moderation_and_reports.invalid_report_flow_answers": "These answers don't match the report form. Start the report again.",
|
||||
"moderation_and_reports.ip_ban_declined": "This IP address cannot be added to the blocklist.",
|
||||
"moderation_and_reports.ip_ban_linked_to_decision": "This network block belongs to an enforcement decision. End the decision to remove it.",
|
||||
"moderation_and_reports.report_already_resolved": "Report already resolved.",
|
||||
"moderation_and_reports.report_banned": "You've been banned from submitting reports.",
|
||||
"moderation_and_reports.report_flow_outdated": "The report form changed while you were filling it in. Start the report again.",
|
||||
"moderation_and_reports.report_outcome_invalid": "An actioned resolution needs an outcome other than no violation. A duplicate needs the report it repeats and takes no outcome. A no violation resolution takes no other outcome.",
|
||||
"moderation_and_reports.report_under_legal_hold": "This report is under a legal hold and can't be deleted.",
|
||||
"moderation_and_reports.unclaimed_account_cannot_submit_reports": "You need to complete your account setup before you can submit reports.",
|
||||
"moderation_and_reports.unknown_enforcement_decision": "Unknown enforcement decision.",
|
||||
"moderation_and_reports.unknown_report": "Unknown report.",
|
||||
"moderation_and_reports.user_is_not_banned": "This user isn't banned.",
|
||||
"names_and_normalization.name_empty_after_normalization": "Name can't be empty after normalization.",
|
||||
"permissions.global_ip_banned": "Your IP address {ipAddress} has been permanently blocked from the {product_name} API by platform administrators. {appealEmail, select, null {If you believe this is a mistake, contact the administrators of this instance to appeal.} other {If you believe this is a mistake, contact {appealEmail} to appeal.}} Include this IP address in your appeal.",
|
||||
"permissions.global_ip_temporarily_banned": "Your IP address {ipAddress} has been temporarily blocked from the {product_name} API. The block lifts on its own when it expires. {appealEmail, select, null {If you think this is a mistake, contact the administrators of this instance and include this IP address.} other {If you think this is a mistake, contact {appealEmail} and include this IP address.}}",
|
||||
"permissions.global_ip_banned": "{reason, select, shown {{product_name} blocked access from this network because of activity that broke its rules.} other {{product_name} blocked access from this network.}} If you share this network, for example at school, at work, on public Wi-Fi, through your mobile carrier or a VPN, this block may have nothing to do with you. The quickest fix is to switch networks, for example to mobile data instead of Wi-Fi, or to turn your VPN on or off.{appealEmail, select, null {} other { If you think this block is a mistake, email {appealEmail} and include your IP address, {ipAddress}.}}",
|
||||
"permissions.global_ip_temporarily_banned": "{reason, select, shown {{product_name} blocked access from this network because of activity that broke its rules.} other {{product_name} blocked access from this network.}} The block ends on {expiresAt}. If you share this network, for example at school, at work, on public Wi-Fi, through your mobile carrier or a VPN, this block may have nothing to do with you. The quickest fix is to switch networks, for example to mobile data instead of Wi-Fi, or to turn your VPN on or off.{appealEmail, select, null {} other { If you think this block is a mistake, email {appealEmail} and include your IP address, {ipAddress}.}}",
|
||||
"permissions.missing_access": "You don't have access to this resource or feature.",
|
||||
"permissions.missing_permissions": "You don't have the permissions required to perform this action.",
|
||||
"permissions.user_banned_from_guild": "This user is banned from this community.",
|
||||
|
||||
@@ -25,17 +25,16 @@ type PlaceholderName<T extends string> = ValidPlaceholderName<PlaceholderHead<T>
|
||||
type PlaceholderNameAfterOpen<T extends string> = T extends `${infer Placeholder}}${string}`
|
||||
? PlaceholderName<Placeholder>
|
||||
: never;
|
||||
type RestAfterPlaceholder<T extends string> = T extends `${string}}${infer Rest}` ? Rest : '';
|
||||
type NumericPlaceholderNameAfterOpen<T extends string> = T extends `${infer Name}, plural,${string}`
|
||||
? PlaceholderName<Name>
|
||||
? ValidPlaceholderName<Trim<Name>>
|
||||
: T extends `${infer Name}, selectordinal,${string}`
|
||||
? PlaceholderName<Name>
|
||||
? ValidPlaceholderName<Trim<Name>>
|
||||
: never;
|
||||
type TemplatePlaceholderNames<T extends string> = T extends `${string}{${infer AfterOpen}`
|
||||
? PlaceholderNameAfterOpen<AfterOpen> | TemplatePlaceholderNames<RestAfterPlaceholder<AfterOpen>>
|
||||
? PlaceholderNameAfterOpen<AfterOpen> | TemplatePlaceholderNames<AfterOpen>
|
||||
: never;
|
||||
type NumericTemplatePlaceholderNames<T extends string> = T extends `${string}{${infer AfterOpen}`
|
||||
? NumericPlaceholderNameAfterOpen<AfterOpen> | NumericTemplatePlaceholderNames<RestAfterPlaceholder<AfterOpen>>
|
||||
? NumericPlaceholderNameAfterOpen<AfterOpen> | NumericTemplatePlaceholderNames<AfterOpen>
|
||||
: never;
|
||||
export type MessageVariablesForTemplate<T extends string> = [TemplatePlaceholderNames<T>] extends [never]
|
||||
? never
|
||||
|
||||
@@ -43,4 +43,13 @@ describe('message catalog type helpers', () => {
|
||||
expectTypeOf<Args>().toEqualTypeOf<[variables: {userName: string | number | boolean | Date}]>();
|
||||
expectTypeOf<NoArgs>().toEqualTypeOf<[variables?: undefined]>();
|
||||
});
|
||||
it('types placeholders nested inside select and plural cases', () => {
|
||||
type Variables =
|
||||
MessageVariablesForTemplate<'{all, select, yes {All gone.} other {{count, plural, =1 {# item} other {# items}} until {ends_at}.}}'>;
|
||||
expectTypeOf<Variables>().toEqualTypeOf<{
|
||||
all: string | number | boolean | Date;
|
||||
count: number;
|
||||
ends_at: string | number | boolean | Date;
|
||||
}>();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,89 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import * as fs from 'node:fs';
|
||||
import * as path from 'node:path';
|
||||
import {fileURLToPath} from 'node:url';
|
||||
import {extractMessageTemplateVariables} from '@fluxer/i18n/src/runtime/MessageCatalogTypes';
|
||||
import MessageFormat from '@messageformat/core';
|
||||
import {describe, expect, it} from 'vitest';
|
||||
|
||||
const REPO_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../../..');
|
||||
|
||||
const CATALOG_DIRS = {
|
||||
content: 'fluxer_api/src/api/content_i18n/weblate',
|
||||
email: 'fluxer_api/pkgs/email/src/email_i18n/weblate',
|
||||
errors: 'packages/errors/src/i18n/weblate',
|
||||
} as const;
|
||||
|
||||
type CatalogEntry = string | {subject: string; body: string};
|
||||
|
||||
function readCatalog(file: string): Record<string, CatalogEntry> {
|
||||
return JSON.parse(fs.readFileSync(file, 'utf8')) as Record<string, CatalogEntry>;
|
||||
}
|
||||
|
||||
function templates(entry: CatalogEntry): Array<[string, string]> {
|
||||
return typeof entry === 'string'
|
||||
? [['', entry]]
|
||||
: [
|
||||
['.subject', entry.subject],
|
||||
['.body', entry.body],
|
||||
];
|
||||
}
|
||||
|
||||
function sortedVariables(template: string): Array<string> {
|
||||
return [...extractMessageTemplateVariables(template)].sort();
|
||||
}
|
||||
|
||||
const CASES = Object.entries(CATALOG_DIRS).flatMap(([catalog, dir]) => {
|
||||
const localeDir = path.join(REPO_ROOT, dir, 'locales');
|
||||
return fs
|
||||
.readdirSync(localeDir)
|
||||
.filter((file) => file.endsWith('.json'))
|
||||
.map((file) => ({
|
||||
catalog,
|
||||
locale: file.slice(0, -'.json'.length),
|
||||
source: readCatalog(path.join(REPO_ROOT, dir, 'messages.json')),
|
||||
messages: readCatalog(path.join(localeDir, file)),
|
||||
}));
|
||||
});
|
||||
|
||||
describe('static i18n catalogs', () => {
|
||||
it('finds every catalog', () => {
|
||||
expect(new Set(CASES.map((entry) => entry.catalog))).toEqual(new Set(Object.keys(CATALOG_DIRS)));
|
||||
});
|
||||
|
||||
it.each(CASES.map((entry) => [`${entry.catalog} ${entry.locale}`, entry] as const))(
|
||||
'%s compiles under the plural rules of its locale',
|
||||
(_label, {locale, messages}) => {
|
||||
const messageFormat = new MessageFormat(locale);
|
||||
const failures = Object.entries(messages).flatMap(([key, entry]) =>
|
||||
templates(entry).flatMap(([part, template]) => {
|
||||
try {
|
||||
messageFormat.compile(template);
|
||||
return [];
|
||||
} catch (error) {
|
||||
return [`${key}${part}: ${String(error).split('\n')[0]}`];
|
||||
}
|
||||
}),
|
||||
);
|
||||
expect(failures).toEqual([]);
|
||||
},
|
||||
);
|
||||
|
||||
it.each(CASES.map((entry) => [`${entry.catalog} ${entry.locale}`, entry] as const))(
|
||||
'%s uses the variables of the English source',
|
||||
(_label, {source, messages}) => {
|
||||
const mismatches = Object.entries(messages).flatMap(([key, entry]) => {
|
||||
const sourceEntry = source[key];
|
||||
if (sourceEntry === undefined) return [`${key}: not in the source catalog`];
|
||||
const sourceTemplates = new Map(templates(sourceEntry));
|
||||
return templates(entry).flatMap(([part, template]) => {
|
||||
const expected = sortedVariables(sourceTemplates.get(part) ?? '');
|
||||
const actual = sortedVariables(template);
|
||||
return expected.join(',') === actual.join(',') ? [] : [`${key}${part}: ${actual} != ${expected}`];
|
||||
});
|
||||
});
|
||||
expect(mismatches).toEqual([]);
|
||||
},
|
||||
);
|
||||
});
|
||||
@@ -5,6 +5,7 @@ import {
|
||||
GuildOperations,
|
||||
GuildOperationsDescriptions,
|
||||
} from '@fluxer/constants/src/GuildConstants';
|
||||
import {CommunityRemovalBasis} from '@fluxer/schema/src/domains/admin/EnforcementSchemas';
|
||||
import {GuildAuditLogListResponse} from '@fluxer/schema/src/domains/guild/GuildAuditLogSchemas';
|
||||
import {GuildBanCreateRequest} from '@fluxer/schema/src/domains/guild/GuildRequestSchemas';
|
||||
import {GuildFeatureSchema} from '@fluxer/schema/src/domains/guild/GuildResponseSchemas';
|
||||
@@ -139,6 +140,12 @@ export const ClearGuildFieldsRequest = z.object({
|
||||
|
||||
export type ClearGuildFieldsRequest = z.infer<typeof ClearGuildFieldsRequest>;
|
||||
|
||||
export const AdminGuildDeleteRequest = z.object({
|
||||
basis: CommunityRemovalBasis,
|
||||
});
|
||||
|
||||
export type AdminGuildDeleteRequest = z.infer<typeof AdminGuildDeleteRequest>;
|
||||
|
||||
export const UpdateGuildVanityRequest = z.object({
|
||||
guild_id: SnowflakeType.describe('ID of the guild to update'),
|
||||
vanity_url_code: VanityURLCodeType.nullable().describe('New vanity URL code, or null to remove'),
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {
|
||||
BulkModerationBasis,
|
||||
MessageDeletionBasis,
|
||||
ModerationBasis,
|
||||
} from '@fluxer/schema/src/domains/admin/EnforcementSchemas';
|
||||
import {FilenameType} from '@fluxer/schema/src/primitives/FileValidators';
|
||||
import {createQueryIntegerType} from '@fluxer/schema/src/primitives/QueryValidators';
|
||||
import {Int32Type, SnowflakeType} from '@fluxer/schema/src/primitives/SchemaPrimitives';
|
||||
import {Int32Type, SnowflakeStringType, SnowflakeType} from '@fluxer/schema/src/primitives/SchemaPrimitives';
|
||||
import {z} from 'zod';
|
||||
|
||||
const FALSE_QUERY_VALUES = ['false', 'False', '0'];
|
||||
@@ -24,51 +29,39 @@ export const LookupMessageByAttachmentRequest = z.object({
|
||||
|
||||
export type LookupMessageByAttachmentRequest = z.infer<typeof LookupMessageByAttachmentRequest>;
|
||||
|
||||
export const DeleteMessageRequest = z.object({
|
||||
channel_id: SnowflakeType,
|
||||
message_id: SnowflakeType,
|
||||
export const AdminMessageDeleteRequest = z.object({
|
||||
basis: MessageDeletionBasis,
|
||||
});
|
||||
|
||||
export type DeleteMessageRequest = z.infer<typeof DeleteMessageRequest>;
|
||||
export type AdminMessageDeleteRequest = z.infer<typeof AdminMessageDeleteRequest>;
|
||||
|
||||
const MessageShredEntryType = z.object({
|
||||
channel_id: SnowflakeType,
|
||||
message_id: SnowflakeType,
|
||||
});
|
||||
export const MessageShredRequest = z.object({
|
||||
user_id: SnowflakeType,
|
||||
entries: z.array(MessageShredEntryType).min(1).max(1000),
|
||||
});
|
||||
|
||||
export type MessageShredRequest = z.infer<typeof MessageShredRequest>;
|
||||
|
||||
export const MessageShredResponse = z.object({
|
||||
success: z.literal(true),
|
||||
job_id: z.string(),
|
||||
requested: z.number().int().min(0).optional(),
|
||||
decision_id: SnowflakeStringType.optional().describe('The content removal decision, for an enforcement basis'),
|
||||
});
|
||||
|
||||
export type MessageShredResponse = z.infer<typeof MessageShredResponse>;
|
||||
|
||||
export const DeleteAllUserMessagesRequest = z.object({
|
||||
user_id: SnowflakeType,
|
||||
dry_run: z.boolean().default(true),
|
||||
});
|
||||
|
||||
export type DeleteAllUserMessagesRequest = z.infer<typeof DeleteAllUserMessagesRequest>;
|
||||
|
||||
export const DeleteAllUserMessagesResponse = z.object({
|
||||
success: z.literal(true),
|
||||
dry_run: z.boolean(),
|
||||
channel_count: Int32Type,
|
||||
message_count: Int32Type,
|
||||
job_id: z.string().optional(),
|
||||
decision_id: SnowflakeStringType.optional().describe('The content removal decision, for an enforcement basis'),
|
||||
});
|
||||
|
||||
export type DeleteAllUserMessagesResponse = z.infer<typeof DeleteAllUserMessagesResponse>;
|
||||
|
||||
export const BulkDeleteUserMessagesRequest = z.object({
|
||||
user_ids: z.array(SnowflakeType).max(1000).describe('List of user IDs whose messages will be deleted'),
|
||||
basis: BulkModerationBasis,
|
||||
});
|
||||
|
||||
export type BulkDeleteUserMessagesRequest = z.infer<typeof BulkDeleteUserMessagesRequest>;
|
||||
@@ -82,6 +75,7 @@ export type AdminMessageDetailQuery = z.infer<typeof AdminMessageDetailQuery>;
|
||||
|
||||
export const AdminUserMessageShredRequest = z.object({
|
||||
entries: z.array(MessageShredEntryType).min(1).max(1000),
|
||||
basis: ModerationBasis,
|
||||
});
|
||||
|
||||
export type AdminUserMessageShredRequest = z.infer<typeof AdminUserMessageShredRequest>;
|
||||
@@ -98,6 +92,14 @@ export const AdminUserMessageDeleteQuery = z.object({
|
||||
|
||||
export type AdminUserMessageDeleteQuery = z.infer<typeof AdminUserMessageDeleteQuery>;
|
||||
|
||||
export const AdminUserMessageDeleteRequest = z.object({
|
||||
basis: ModerationBasis.optional().describe(
|
||||
'Why the messages are removed. Required unless dry_run is true. An enforcement basis refuses child safety and violent extremism reasons',
|
||||
),
|
||||
});
|
||||
|
||||
export type AdminUserMessageDeleteRequest = z.infer<typeof AdminUserMessageDeleteRequest>;
|
||||
|
||||
export const MessageShredJobIdParam = z.object({
|
||||
job_id: SnowflakeType.describe('The ID of the message shred job'),
|
||||
});
|
||||
|
||||
@@ -246,6 +246,18 @@ const ReportResolutionEnum = createNamedStringLiteralUnion(
|
||||
'How the report was resolved',
|
||||
);
|
||||
|
||||
const ReportItemOutcomeEnum = createNamedStringLiteralUnion(
|
||||
[
|
||||
['removed', 'removed', 'The reported content, profile field or community was removed'],
|
||||
['restricted', 'restricted', 'The reported account was restricted and the content was left up'],
|
||||
['action_taken', 'action_taken', 'Action was taken under the rules, and the reporter is not told which'],
|
||||
['no_violation', 'no_violation', 'The reported content or account does not break the rules and was left as it is'],
|
||||
],
|
||||
'What happened to the reported item',
|
||||
);
|
||||
|
||||
export type ReportItemOutcome = z.infer<typeof ReportItemOutcomeEnum>;
|
||||
|
||||
export const UpdateReportRequest = z.object({
|
||||
status: z.literal('resolved').describe('The status to move the report to'),
|
||||
public_comment: createStringType(0, 512).optional().describe('Public comment to include with the resolution'),
|
||||
@@ -255,7 +267,13 @@ export const UpdateReportRequest = z.object({
|
||||
.describe(
|
||||
'Whether to include the public comment in the notice sent to the reporter. The reporter is notified either way',
|
||||
),
|
||||
resolution: ReportResolutionEnum.optional().describe('How the report was resolved'),
|
||||
resolution: ReportResolutionEnum.describe('How the report was resolved'),
|
||||
outcome: ReportItemOutcomeEnum.optional().describe(
|
||||
'What happened to the reported content or account. Required for actioned, where no_violation is refused. Optional for no_violation, where it can only be no_violation. Refused for duplicate. The reporter is told it',
|
||||
),
|
||||
duplicate_of: SnowflakeType.optional().describe(
|
||||
'The report this one repeats. Required for duplicate and refused otherwise. The reporter is told the outcome of that report, or nothing while it has none',
|
||||
),
|
||||
});
|
||||
|
||||
export type UpdateReportRequest = z.infer<typeof UpdateReportRequest>;
|
||||
@@ -1173,6 +1191,9 @@ export const BanCheckResponseSchema = z.object({
|
||||
.describe(
|
||||
'ISO 8601 timestamp when the matching ban expires. Null when the ban is permanent, when nothing matches, and on every blocklist other than ip.',
|
||||
),
|
||||
decision_id: SnowflakeStringType.nullable().describe(
|
||||
'Enforcement decision the matching ip block belongs to. Null for a block added through the blocklist, when nothing matches, and on every blocklist other than ip.',
|
||||
),
|
||||
});
|
||||
export const BulkJobResponse = z.object({
|
||||
job_id: SnowflakeStringType,
|
||||
|
||||
@@ -8,6 +8,12 @@ import {
|
||||
UserFlagsDescriptions,
|
||||
} from '@fluxer/constants/src/UserConstants';
|
||||
import {ADMIN_ACL_COUNT, AdminAclType} from '@fluxer/schema/src/domains/admin/AdminAclType';
|
||||
import {
|
||||
BulkModerationBasis,
|
||||
ModerationBasis,
|
||||
NetworkBlockRequest,
|
||||
SkippedNetworkBlock,
|
||||
} from '@fluxer/schema/src/domains/admin/EnforcementSchemas';
|
||||
import {CalendarDateType} from '@fluxer/schema/src/primitives/DateValidators';
|
||||
import {NSFWLevelSchema} from '@fluxer/schema/src/primitives/GuildValidators';
|
||||
import {createQueryIntegerType, QueryBooleanType} from '@fluxer/schema/src/primitives/QueryValidators';
|
||||
@@ -20,11 +26,16 @@ import {
|
||||
Int32Type,
|
||||
SnowflakeStringType,
|
||||
SnowflakeType,
|
||||
withFieldDescription,
|
||||
} from '@fluxer/schema/src/primitives/SchemaPrimitives';
|
||||
import {DiscriminatorType, EmailType, UsernameType} from '@fluxer/schema/src/primitives/UserValidators';
|
||||
import {z} from 'zod';
|
||||
|
||||
const DeletionReasonCodeType = createInt32EnumType(
|
||||
Object.entries(DeletionReasons).map(([name, value]) => [value, name] as const),
|
||||
'Reason the account was scheduled for deletion',
|
||||
'DeletionReasonCode',
|
||||
);
|
||||
|
||||
export const UserAdminResponseSchema = z.object({
|
||||
id: SnowflakeStringType,
|
||||
username: z.string(),
|
||||
@@ -57,8 +68,11 @@ export const UserAdminResponseSchema = z.object({
|
||||
temp_banned_until: z.string().nullable(),
|
||||
pending_deletion_at: z.string().nullable(),
|
||||
pending_bulk_message_deletion_at: z.string().nullable(),
|
||||
deletion_reason_code: Int32Type.nullable(),
|
||||
deletion_public_reason: z.string().nullable(),
|
||||
deletion_reason_code: DeletionReasonCodeType.nullable(),
|
||||
deletion_public_reason: z
|
||||
.string()
|
||||
.nullable()
|
||||
.describe('Public reason of a deletion scheduled before enforcement decisions existed. No longer written'),
|
||||
deletion_audit_log_reason: z
|
||||
.string()
|
||||
.nullable()
|
||||
@@ -67,6 +81,9 @@ export const UserAdminResponseSchema = z.object({
|
||||
'ID of the account that scheduled the pending deletion, null when it was not recorded',
|
||||
),
|
||||
deletion_scheduled_at: z.string().nullable().describe('ISO 8601 timestamp when the pending deletion was scheduled'),
|
||||
enforcement_decision_id: SnowflakeStringType.nullable().describe(
|
||||
'The enforcement decision behind the current suspension or closure, null when none owns it',
|
||||
),
|
||||
acls: z.array(z.string()).max(ADMIN_ACL_COUNT),
|
||||
traits: z.array(z.string()).max(100),
|
||||
has_totp: z.boolean(),
|
||||
@@ -119,6 +136,12 @@ export const UserMutationResponse = z.object({
|
||||
|
||||
export type UserMutationResponse = z.infer<typeof UserMutationResponse>;
|
||||
|
||||
export const UserRestrictionResponse = UserMutationResponse.extend({
|
||||
skipped_ips: z.array(SkippedNetworkBlock).describe('Requested network blocks that were not written, with the reason'),
|
||||
});
|
||||
|
||||
export type UserRestrictionResponse = z.infer<typeof UserRestrictionResponse>;
|
||||
|
||||
export const LookupUserResponse = z.object({
|
||||
users: z.array(UserAdminResponseSchema),
|
||||
});
|
||||
@@ -245,12 +268,7 @@ const UserProfileFieldEnum = createNamedStringLiteralUnion(
|
||||
],
|
||||
'User profile field that can be cleared',
|
||||
);
|
||||
export const ClearUserFieldsRequest = z.object({
|
||||
user_id: SnowflakeType.describe('ID of the user to clear fields for'),
|
||||
fields: z.array(UserProfileFieldEnum).max(10).describe('List of profile fields to clear'),
|
||||
});
|
||||
|
||||
export type ClearUserFieldsRequest = z.infer<typeof ClearUserFieldsRequest>;
|
||||
export type UserProfileField = z.infer<typeof UserProfileFieldEnum>;
|
||||
|
||||
export const SetUserBotStatusRequest = z.object({
|
||||
user_id: SnowflakeType.describe('ID of the user to update'),
|
||||
@@ -312,50 +330,14 @@ export const TerminateSessionsRequest = z.object({
|
||||
|
||||
export type TerminateSessionsRequest = z.infer<typeof TerminateSessionsRequest>;
|
||||
|
||||
export const TempBanUserRequest = z.object({
|
||||
user_id: SnowflakeType.describe('ID of the user to temporarily ban'),
|
||||
duration_hours: z
|
||||
.number()
|
||||
.int()
|
||||
.min(0)
|
||||
.max(8760)
|
||||
.describe('Duration of the ban in hours. Use 0 for a permanent ban (until manually unbanned).'),
|
||||
reason: createStringType(0, 512).optional().describe('Reason shown to the user in the ban email'),
|
||||
notify_user: z
|
||||
.boolean()
|
||||
.default(true)
|
||||
.describe('Whether to email the user about a temporary ban. Permanent bans (duration_hours 0) are never emailed'),
|
||||
});
|
||||
|
||||
export type TempBanUserRequest = z.infer<typeof TempBanUserRequest>;
|
||||
|
||||
const DeletionReasonCodeType = createInt32EnumType(
|
||||
Object.entries(DeletionReasons).map(([name, value]) => [value, name] as const),
|
||||
'Reason the account was scheduled for deletion',
|
||||
'DeletionReasonCode',
|
||||
);
|
||||
|
||||
export const ScheduleAccountDeletionRequest = z.object({
|
||||
user_id: SnowflakeType.describe('ID of the user to schedule deletion for'),
|
||||
reason_code: withFieldDescription(DeletionReasonCodeType, 'Code indicating the reason for deletion'),
|
||||
public_reason: createStringType(0, 512).optional().describe('Public-facing reason for the deletion'),
|
||||
days_until_deletion: z
|
||||
.number()
|
||||
.int()
|
||||
.min(1)
|
||||
.max(365)
|
||||
.default(60)
|
||||
.describe('Number of days until the account is deleted'),
|
||||
replace_pending_deletion_at: z.iso
|
||||
.datetime()
|
||||
.optional()
|
||||
.describe(
|
||||
'pending_deletion_at of the deletion this request replaces. Required when a deletion is already scheduled for the account',
|
||||
),
|
||||
notify_user: z.boolean().default(true).describe('Whether to email the user about the scheduled deletion'),
|
||||
});
|
||||
|
||||
export type ScheduleAccountDeletionRequest = z.infer<typeof ScheduleAccountDeletionRequest>;
|
||||
const DaysUntilDeletionType = z
|
||||
.number()
|
||||
.int()
|
||||
.min(1)
|
||||
.max(365)
|
||||
.describe(
|
||||
'Days until the account is deleted. Raised to 14, or to 74 when a rule was broken so an appeal can be reviewed first. Self-hosted instances have no appeals and raise every basis to 14',
|
||||
);
|
||||
|
||||
export const SetUserAclsRequest = z.object({
|
||||
user_id: SnowflakeType.describe('ID of the user to set ACLs for'),
|
||||
@@ -392,14 +374,10 @@ export const BulkUpdateUserFlagsRequest = z.object({
|
||||
|
||||
export type BulkUpdateUserFlagsRequest = z.infer<typeof BulkUpdateUserFlagsRequest>;
|
||||
|
||||
export const BulkScheduleUserDeletionRequest = ScheduleAccountDeletionRequest.omit({
|
||||
user_id: true,
|
||||
replace_pending_deletion_at: true,
|
||||
}).extend({
|
||||
export const BulkScheduleUserDeletionRequest = z.object({
|
||||
user_ids: z.array(SnowflakeType).max(1000).describe('List of user IDs to schedule deletion for'),
|
||||
days_until_deletion: ScheduleAccountDeletionRequest.shape.days_until_deletion.describe(
|
||||
'Number of days until the accounts are deleted',
|
||||
),
|
||||
days_until_deletion: DaysUntilDeletionType,
|
||||
basis: BulkModerationBasis,
|
||||
});
|
||||
|
||||
export type BulkScheduleUserDeletionRequest = z.infer<typeof BulkScheduleUserDeletionRequest>;
|
||||
@@ -576,7 +554,10 @@ export const AdminUserWebAuthnCredentialParam = z.object({
|
||||
|
||||
export type AdminUserWebAuthnCredentialParam = z.infer<typeof AdminUserWebAuthnCredentialParam>;
|
||||
|
||||
export const AdminUserClearFieldsRequest = ClearUserFieldsRequest.omit({user_id: true});
|
||||
export const AdminUserClearFieldsRequest = z.object({
|
||||
fields: z.array(UserProfileFieldEnum).min(1).max(10).describe('List of profile fields to clear'),
|
||||
basis: ModerationBasis,
|
||||
});
|
||||
|
||||
export type AdminUserClearFieldsRequest = z.infer<typeof AdminUserClearFieldsRequest>;
|
||||
|
||||
@@ -596,11 +577,21 @@ export const AdminUserEmailUpdateRequest = ChangeEmailRequest.omit({user_id: tru
|
||||
|
||||
export type AdminUserEmailUpdateRequest = z.infer<typeof AdminUserEmailUpdateRequest>;
|
||||
|
||||
export const AdminUserBanRequest = TempBanUserRequest.omit({user_id: true});
|
||||
|
||||
export type AdminUserBanRequest = z.infer<typeof AdminUserBanRequest>;
|
||||
|
||||
export const AdminUserDeletionScheduleRequest = ScheduleAccountDeletionRequest.omit({user_id: true});
|
||||
export const AdminUserDeletionScheduleRequest = z.object({
|
||||
days_until_deletion: DaysUntilDeletionType,
|
||||
replace_pending_deletion_at: z.iso
|
||||
.datetime()
|
||||
.optional()
|
||||
.describe(
|
||||
'pending_deletion_at of the deletion this request replaces. Required when a deletion is already scheduled for the account',
|
||||
),
|
||||
basis: ModerationBasis,
|
||||
remove_evidence: z
|
||||
.boolean()
|
||||
.optional()
|
||||
.describe('Remove the evidence messages after they are snapshotted into the decision. Enforcement basis only'),
|
||||
block_networks: NetworkBlockRequest.optional(),
|
||||
});
|
||||
|
||||
export type AdminUserDeletionScheduleRequest = z.infer<typeof AdminUserDeletionScheduleRequest>;
|
||||
|
||||
@@ -608,27 +599,10 @@ export const AdminUserDeletionCancelRequest = z.object({
|
||||
expected_pending_deletion_at: z.iso
|
||||
.datetime()
|
||||
.describe('pending_deletion_at of the deletion being cancelled, as shown on the account'),
|
||||
notify_user: z.boolean().default(false).describe('Whether to email the user that the deletion was cancelled'),
|
||||
});
|
||||
|
||||
export type AdminUserDeletionCancelRequest = z.infer<typeof AdminUserDeletionCancelRequest>;
|
||||
|
||||
export const AdminUserUnbanRequest = z.object({
|
||||
notify_user: z.boolean().default(true).describe('Whether to email the user that the suspension was lifted'),
|
||||
public_reason: createStringType(0, 512)
|
||||
.optional()
|
||||
.describe('Reason shown to the user in the unban email. The audit log reason is never emailed'),
|
||||
});
|
||||
|
||||
export type AdminUserUnbanRequest = z.infer<typeof AdminUserUnbanRequest>;
|
||||
|
||||
export const AdminUserBanNoteRequest = z.object({
|
||||
ban_audit_log_id: SnowflakeType.describe('Audit log entry of the current ban that the note refers to'),
|
||||
note: createStringType(1, 512).describe('Note to append to the ban. Recorded as the reason of a new audit log entry'),
|
||||
});
|
||||
|
||||
export type AdminUserBanNoteRequest = z.infer<typeof AdminUserBanNoteRequest>;
|
||||
|
||||
export const AdminUserAclsRequest = SetUserAclsRequest.omit({user_id: true});
|
||||
|
||||
export type AdminUserAclsRequest = z.infer<typeof AdminUserAclsRequest>;
|
||||
|
||||
@@ -0,0 +1,346 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {DeletionReasons} from '@fluxer/constants/src/Core';
|
||||
import {isEnforcementReasonCode} from '@fluxer/constants/src/EnforcementReasons';
|
||||
import {EnforcementKindType, EnforcementNotice} from '@fluxer/schema/src/domains/auth/EnforcementNoticeSchemas';
|
||||
import {createQueryIntegerType, QueryBooleanType} from '@fluxer/schema/src/primitives/QueryValidators';
|
||||
import {
|
||||
createInt32EnumType,
|
||||
createStringType,
|
||||
Int32Type,
|
||||
SnowflakeStringType,
|
||||
SnowflakeType,
|
||||
} from '@fluxer/schema/src/primitives/SchemaPrimitives';
|
||||
import {z} from 'zod';
|
||||
|
||||
export const EnforcementReasonCodeType = createInt32EnumType(
|
||||
Object.entries(DeletionReasons).flatMap(([name, value]) =>
|
||||
isEnforcementReasonCode(value) ? [[value, name] as const] : [],
|
||||
),
|
||||
'Reason code of an enforcement decision',
|
||||
'EnforcementReasonCode',
|
||||
);
|
||||
|
||||
export const EnforcementDecisionInput = z
|
||||
.object({
|
||||
reason_code: EnforcementReasonCodeType,
|
||||
source: z
|
||||
.enum(['report', 'own_review'])
|
||||
.describe('Whether the team reviewed this after a report or found it in its own review'),
|
||||
automation: z
|
||||
.enum(['none', 'flagged'])
|
||||
.describe('Whether automated tools flagged this before a person on the team decided'),
|
||||
report_ids: z
|
||||
.array(SnowflakeType)
|
||||
.max(20)
|
||||
.optional()
|
||||
.describe('Reports about the subject that this decision resolves. Required when the source is a report'),
|
||||
evidence: z
|
||||
.array(z.object({channel_id: SnowflakeType, message_id: SnowflakeType}))
|
||||
.max(50)
|
||||
.optional()
|
||||
.describe(
|
||||
'Messages from the subject that the decision relies on. They are snapshotted when the decision is made',
|
||||
),
|
||||
statement: createStringType(1, 500)
|
||||
.optional()
|
||||
.describe('Note to the user, shown in the notice. Never name or describe other people'),
|
||||
rights_holder: createStringType(1, 200)
|
||||
.optional()
|
||||
.describe('The rights holder or the right concerned. Required for copyright decisions and refused otherwise'),
|
||||
confirmations: z
|
||||
.array(z.enum(['evidence_preserved', 'reports_filed_or_not_required']))
|
||||
.max(2)
|
||||
.optional()
|
||||
.describe('Required for child safety and violent extremism decisions'),
|
||||
})
|
||||
.describe('Why the restriction is applied. The X-Audit-Log-Reason header is required and becomes the first note');
|
||||
|
||||
export type EnforcementDecisionInput = z.infer<typeof EnforcementDecisionInput>;
|
||||
|
||||
export const BulkEnforcementDecisionInput = z
|
||||
.strictObject({
|
||||
reason_code: EnforcementReasonCodeType,
|
||||
source: z
|
||||
.literal('own_review')
|
||||
.describe('Bulk decisions cannot link reports, so the team always found them in its own review'),
|
||||
automation: EnforcementDecisionInput.shape.automation,
|
||||
statement: createStringType(1, 500).describe(
|
||||
'Note to the user, shown in every notice. It is the only fact a bulk decision can give',
|
||||
),
|
||||
})
|
||||
.describe('Why every account in the job is restricted. Reports and evidence messages are refused in bulk');
|
||||
|
||||
export type BulkEnforcementDecisionInput = z.infer<typeof BulkEnforcementDecisionInput>;
|
||||
|
||||
function enforcementBasis<Decision extends z.ZodType>(decision: Decision) {
|
||||
return z
|
||||
.object({type: z.literal('enforcement'), decision})
|
||||
.describe('A rule was broken. Records an enforcement decision and sends its notice');
|
||||
}
|
||||
|
||||
const HolderRequestBasis = z
|
||||
.object({type: z.literal('holder_request')})
|
||||
.describe('The account holder or community owner asked');
|
||||
|
||||
const HousekeepingBasis = z
|
||||
.object({type: z.literal('housekeeping')})
|
||||
.describe("Nobody's conduct is involved, such as inactivity or cleanup");
|
||||
|
||||
export const ModerationBasis = z
|
||||
.discriminatedUnion('type', [enforcementBasis(EnforcementDecisionInput), HolderRequestBasis, HousekeepingBasis])
|
||||
.describe('Why the action is taken');
|
||||
|
||||
export type ModerationBasis = z.infer<typeof ModerationBasis>;
|
||||
|
||||
export const BulkModerationBasis = z
|
||||
.discriminatedUnion('type', [enforcementBasis(BulkEnforcementDecisionInput), HolderRequestBasis, HousekeepingBasis])
|
||||
.describe('Why the action is taken');
|
||||
|
||||
export type BulkModerationBasis = z.infer<typeof BulkModerationBasis>;
|
||||
|
||||
export const MessageDeletionBasis = z
|
||||
.discriminatedUnion('type', [HolderRequestBasis, HousekeepingBasis])
|
||||
.describe(
|
||||
'Why the message is deleted. To remove a message for breaking a rule, shred it with an enforcement basis instead',
|
||||
);
|
||||
|
||||
export const CommunityRemovalBasis = z
|
||||
.discriminatedUnion('type', [enforcementBasis(EnforcementDecisionInput), HolderRequestBasis])
|
||||
.describe('Why the community is removed');
|
||||
|
||||
export type CommunityRemovalBasis = z.infer<typeof CommunityRemovalBasis>;
|
||||
|
||||
const NETWORK_BLOCK_DEFAULT_DAYS = 90;
|
||||
|
||||
const IpAddressType = z.union([z.ipv4(), z.ipv6()]);
|
||||
|
||||
export const NetworkBlockRequest = z
|
||||
.object({
|
||||
ips: z
|
||||
.array(
|
||||
createStringType(1, 45).refine(
|
||||
(value) => IpAddressType.safeParse(value).success,
|
||||
'Must be a valid IPv4 or IPv6 address',
|
||||
),
|
||||
)
|
||||
.min(1)
|
||||
.max(20)
|
||||
.describe(
|
||||
'Addresses the account used in the last 30 days. An address on which another account that is not suspended or closed was last active is refused',
|
||||
),
|
||||
days: z
|
||||
.number()
|
||||
.int()
|
||||
.min(1)
|
||||
.max(365)
|
||||
.default(NETWORK_BLOCK_DEFAULT_DAYS)
|
||||
.describe(
|
||||
'How many days the blocks last. Ending the decision or deleting the account removes them sooner. Defaults to 90',
|
||||
),
|
||||
})
|
||||
.describe(
|
||||
'Block networks the account used. Only with a permanent suspension or a closure for a broken rule. Requires BAN_IP_ADD and USER_VIEW_IP',
|
||||
);
|
||||
|
||||
export type NetworkBlockRequest = z.infer<typeof NetworkBlockRequest>;
|
||||
|
||||
export const SkippedNetworkBlock = z.object({
|
||||
ip: z.string(),
|
||||
reason: z
|
||||
.enum(['exempt', 'special_purpose', 'already_blocked'])
|
||||
.describe(
|
||||
'Exempt addresses and special-purpose ranges such as private, shared carrier and documentation ranges are never blocked. An address that is already blocked permanently or by another decision is left as it is',
|
||||
),
|
||||
});
|
||||
|
||||
export const NetworkBlockCandidatesResponse = z.object({
|
||||
networks: z
|
||||
.array(
|
||||
z.object({
|
||||
ip: z.string(),
|
||||
last_seen_at: z.string().describe('When the account last used this address'),
|
||||
skip_reason: z
|
||||
.enum(['exempt', 'special_purpose'])
|
||||
.nullable()
|
||||
.describe('Why this address would be skipped. Null when it can be blocked'),
|
||||
other_unrestricted_accounts: Int32Type.describe(
|
||||
'Other accounts that are not suspended or closed and were last active on this address. Blocking is refused when this is above zero',
|
||||
),
|
||||
}),
|
||||
)
|
||||
.describe('Addresses the account used in the last 30 days, most recent first'),
|
||||
});
|
||||
|
||||
export type NetworkBlockCandidatesResponse = z.infer<typeof NetworkBlockCandidatesResponse>;
|
||||
|
||||
export const AdminUserBanRequest = z.object({
|
||||
duration_hours: z
|
||||
.number()
|
||||
.int()
|
||||
.min(0)
|
||||
.max(8760)
|
||||
.describe('Duration of the suspension in hours. Use 0 for a permanent suspension'),
|
||||
decision: EnforcementDecisionInput,
|
||||
remove_evidence: z
|
||||
.boolean()
|
||||
.optional()
|
||||
.describe('Remove the evidence messages after they are snapshotted into the decision'),
|
||||
block_networks: NetworkBlockRequest.optional(),
|
||||
});
|
||||
|
||||
export type AdminUserBanRequest = z.infer<typeof AdminUserBanRequest>;
|
||||
|
||||
export const AdminUserWarningRequest = z.object({
|
||||
decision: EnforcementDecisionInput,
|
||||
});
|
||||
|
||||
export type AdminUserWarningRequest = z.infer<typeof AdminUserWarningRequest>;
|
||||
|
||||
export const AdminUserWarningResponse = z.object({
|
||||
decision_id: SnowflakeStringType.describe('The warning decision'),
|
||||
});
|
||||
|
||||
export const AdminUserFeatureLimitRequest = z.object({
|
||||
limit: z
|
||||
.enum(['direct_messages', 'reports', 'purchases'])
|
||||
.describe(
|
||||
'The one feature this decision limits. Direct messages are for spam, automation, fraud and malware reasons only, reports for misuse of reporting, purchases for payment reasons',
|
||||
),
|
||||
ends_at: z.iso
|
||||
.datetime()
|
||||
.optional()
|
||||
.describe('When a reports limit ends, at most 365 days away. Defaults to 90 days. Refused for other limits'),
|
||||
decision: EnforcementDecisionInput,
|
||||
});
|
||||
|
||||
export type AdminUserFeatureLimitRequest = z.infer<typeof AdminUserFeatureLimitRequest>;
|
||||
|
||||
export const EnforcementDecisionIdParam = z.object({
|
||||
decision_id: SnowflakeType.describe('The ID of the enforcement decision'),
|
||||
});
|
||||
|
||||
export const EnforcementDecisionListQuery = z
|
||||
.object({
|
||||
review_queue: QueryBooleanType.describe(
|
||||
'List the automated decisions waiting for a person to review them instead of one subject',
|
||||
),
|
||||
subject_type: z.enum(['user', 'guild']).optional().describe('Kind of subject whose decisions to list'),
|
||||
subject_id: SnowflakeType.optional().describe('ID of the user or community whose decisions to list'),
|
||||
limit: createQueryIntegerType({defaultValue: 50, minValue: 1, maxValue: 100}).describe(
|
||||
'Maximum number of decisions to return',
|
||||
),
|
||||
before: SnowflakeType.optional().describe('Return decisions with IDs lower than this decision ID'),
|
||||
})
|
||||
.refine((query) => query.review_queue || (query.subject_type !== undefined && query.subject_id !== undefined), {
|
||||
error: 'Give subject_type and subject_id, or review_queue=true',
|
||||
});
|
||||
|
||||
export type EnforcementDecisionListQuery = z.infer<typeof EnforcementDecisionListQuery>;
|
||||
|
||||
export const EnforcementDecisionNoteRequest = z.object({
|
||||
body: createStringType(1, 2000).describe('The internal note. Staff only'),
|
||||
});
|
||||
|
||||
export type EnforcementDecisionNoteRequest = z.infer<typeof EnforcementDecisionNoteRequest>;
|
||||
|
||||
export const EnforcementDecisionEndRequest = z.object({
|
||||
outcome: z
|
||||
.enum(['lifted', 'reversed'])
|
||||
.describe('Lifted ends a restriction that was correct. Reversed says the decision was wrong'),
|
||||
statement: createStringType(1, 500).optional().describe('Note to the user, shown in the email'),
|
||||
});
|
||||
|
||||
export type EnforcementDecisionEndRequest = z.infer<typeof EnforcementDecisionEndRequest>;
|
||||
|
||||
const EnforcementDecisionSummary = z.object({
|
||||
decision_id: SnowflakeStringType,
|
||||
subject_type: z.enum(['user', 'guild']),
|
||||
subject_id: SnowflakeStringType,
|
||||
subject_name: z.string().nullable().describe('Community name or bot username when the decision was made'),
|
||||
recipient_user_id: SnowflakeStringType.nullable().describe('Who receives the notice'),
|
||||
kind: EnforcementKindType,
|
||||
reason_code: Int32Type,
|
||||
source: z.enum(['report', 'own_review']),
|
||||
automation: z.enum(['none', 'flagged', 'automated']),
|
||||
statement: z.string().nullable(),
|
||||
rights_holder: z.string().nullable(),
|
||||
ends_at: z.string().nullable(),
|
||||
deletion_at: z.string().nullable(),
|
||||
limit: z.enum(['direct_messages', 'reports', 'purchases']).nullable(),
|
||||
profile_fields: z.array(z.string()),
|
||||
removed_message_count: Int32Type.nullable(),
|
||||
removed_all_messages: z.boolean(),
|
||||
payment_at: z.string().nullable(),
|
||||
report_ids: z.array(SnowflakeStringType).describe('Empty without the report view permission'),
|
||||
decided_by: SnowflakeStringType,
|
||||
created_at: z.string(),
|
||||
status: z.enum(['active', 'ended']),
|
||||
end_outcome: z
|
||||
.enum(['lifted', 'reversed', 'expired'])
|
||||
.nullable()
|
||||
.describe('Expired is recorded by Fluxer when a temporary suspension runs out'),
|
||||
ended_at: z.string().nullable(),
|
||||
ended_by: SnowflakeStringType.nullable(),
|
||||
end_statement: z.string().nullable(),
|
||||
notice_status: z.enum(['pending', 'sent', 'undelivered']),
|
||||
notice_channels: z.array(z.enum(['email', 'system_dm', 'sign_in'])),
|
||||
notice_locale: z.string().nullable(),
|
||||
notice_text: z.string().nullable().describe('The plain text that was sent'),
|
||||
notice_sent_at: z.string().nullable(),
|
||||
expired: z.boolean().describe('An active suspension or feature limit whose end has passed'),
|
||||
replaced: z.boolean().describe('An active suspension or closure that a later decision replaced'),
|
||||
});
|
||||
|
||||
const EnforcementDecisionNote = z.object({
|
||||
note_id: SnowflakeStringType,
|
||||
author_id: SnowflakeStringType,
|
||||
body: z.string(),
|
||||
created_at: z.string(),
|
||||
});
|
||||
|
||||
const EnforcementEvidenceMessage = z.object({
|
||||
message_id: SnowflakeStringType,
|
||||
channel_id: SnowflakeStringType.nullable(),
|
||||
timestamp: z.string(),
|
||||
content: z.string().nullable().describe('Null without the message lookup permission, and for restricted decisions'),
|
||||
attachments: z
|
||||
.array(
|
||||
z.object({
|
||||
filename: z.string(),
|
||||
size: z.string().nullable(),
|
||||
content_type: z.string().nullable(),
|
||||
}),
|
||||
)
|
||||
.nullable()
|
||||
.describe('Attachment details without the files. Null without the message lookup permission'),
|
||||
attachment_count: Int32Type,
|
||||
});
|
||||
|
||||
export const EnforcementDecisionResponse = EnforcementDecisionSummary.extend({
|
||||
notes: z.array(EnforcementDecisionNote),
|
||||
evidence: z.array(EnforcementEvidenceMessage).describe('Empty once the evidence has expired'),
|
||||
profile_values: z
|
||||
.record(z.string(), z.string())
|
||||
.nullable()
|
||||
.describe('Profile values before a reset. Null without the message lookup permission'),
|
||||
network_blocks: z
|
||||
.array(
|
||||
z.object({
|
||||
ip: z.string().describe('Masked without the IP view permission'),
|
||||
expires_at: z.string().nullable(),
|
||||
}),
|
||||
)
|
||||
.describe('Network blocks that belong to this decision and have not expired'),
|
||||
notice: EnforcementNotice.describe('What the holder sees now, rendered in English'),
|
||||
});
|
||||
|
||||
export type EnforcementDecisionResponse = z.infer<typeof EnforcementDecisionResponse>;
|
||||
|
||||
export const EnforcementDecisionListResponse = z.object({
|
||||
decisions: z.array(EnforcementDecisionSummary),
|
||||
});
|
||||
|
||||
export type EnforcementDecisionListResponse = z.infer<typeof EnforcementDecisionListResponse>;
|
||||
|
||||
export const EnforcementDecisionNoteResponse = EnforcementDecisionNote;
|
||||
@@ -0,0 +1,63 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {SnowflakeStringType} from '@fluxer/schema/src/primitives/SchemaPrimitives';
|
||||
import {z} from 'zod';
|
||||
|
||||
export const EnforcementKindType = z
|
||||
.enum(['warning', 'suspension', 'closure', 'feature_limit', 'content_removal', 'profile_reset', 'community_removal'])
|
||||
.describe('What the decision did');
|
||||
|
||||
export const EnforcementNotice = z.object({
|
||||
decision_id: SnowflakeStringType.nullable().describe(
|
||||
'The decision reference. Null for restrictions from before decisions',
|
||||
),
|
||||
kind: EnforcementKindType,
|
||||
permanent: z.boolean().describe('Whether this is a suspension with no end'),
|
||||
issued_at: z.string().nullable().describe('When the decision was made, as an ISO 8601 timestamp'),
|
||||
ends_at: z.string().nullable().describe('When a suspension or feature limit ends, as an ISO 8601 timestamp'),
|
||||
deletion_at: z.string().nullable().describe('When a closed account or bot is deleted, as an ISO 8601 timestamp'),
|
||||
summary: z.string().describe('One sentence saying what happened'),
|
||||
effects: z.array(z.string()).describe('What the decision means for the holder, one sentence each'),
|
||||
rule: z
|
||||
.object({
|
||||
title: z.string().describe('Title of the rule that was broken'),
|
||||
url: z.string().nullable().describe('Link to the rule, null when the instance publishes none'),
|
||||
})
|
||||
.nullable()
|
||||
.describe('The rule the decision relies on, null when none was recorded'),
|
||||
facts: z.array(z.string()).describe('The finding first, then where and when it happened'),
|
||||
statement: z.string().nullable().describe('Note to the holder from the team'),
|
||||
how_we_decided: z.array(z.string()).describe('How the case reached the team and who decided it'),
|
||||
appeal: z
|
||||
.object({
|
||||
email: z.string().describe('Address that takes appeals'),
|
||||
deadline: z.string().nullable().describe('Last day to appeal, already formatted for the reader'),
|
||||
account_has_email: z.boolean().describe('Whether the account has an email address to write from'),
|
||||
})
|
||||
.nullable()
|
||||
.describe('How to appeal, null when the instance offers no appeal route'),
|
||||
redress: z.array(z.string()).describe('Other ways to challenge the decision'),
|
||||
});
|
||||
|
||||
export type EnforcementNotice = z.infer<typeof EnforcementNotice>;
|
||||
|
||||
export const NetworkBlock = z.object({
|
||||
ip_address: z.string().describe('The blocked address the request came from'),
|
||||
appeal_email: z
|
||||
.string()
|
||||
.nullable()
|
||||
.describe('Address to write to about the block, null when the instance names none'),
|
||||
appeals_supported: z.boolean().describe('Whether the instance takes appeals'),
|
||||
ban_kind: z.enum(['permanent', 'temporary_24h']).describe('Whether the block has an end'),
|
||||
expires_at: z.string().nullable().describe('When the block ends, as an ISO 8601 timestamp'),
|
||||
reason: z
|
||||
.object({
|
||||
title: z.string().describe('Title of the rule behind the block'),
|
||||
url: z.string().nullable().describe('Link to the rule, null when the instance publishes none'),
|
||||
})
|
||||
.nullable()
|
||||
.describe('The rule behind the block, null when it is not shown'),
|
||||
product_name: z.string().describe('Name of the instance, as the server writes it in its own messages'),
|
||||
});
|
||||
|
||||
export type NetworkBlock = z.infer<typeof NetworkBlock>;
|
||||
Reference in new issue
Block a user