From 9b3773c1e69cb681fd0140843dfc097af4f9c96d Mon Sep 17 00:00:00 2001 From: Hampus Date: Sun, 6 Sep 2026 01:11:24 +0200 Subject: [PATCH] feat(auth): let phone-gated accounts set the check aside (#2478) --- fluxer_admin/openapi-admin.json | 1 + .../services/AdminUserSecurityService.ts | 9 +- .../api/auth/tests/DeferredPhoneGate.test.ts | 484 +++++++++++++++++- fluxer_api/src/api/openapi/openapi.json | 180 +++++++ .../rate_limit_configs/UserRateLimitConfig.ts | 8 + .../src/api/risk/DeferredPhoneGate.test.ts | 94 +++- fluxer_api/src/api/risk/DeferredPhoneGate.ts | 43 +- fluxer_api/src/api/user/UserHelpers.test.ts | 36 ++ .../user/controllers/UserAccountController.ts | 50 ++ .../services/UserAccountLifecycleService.ts | 188 ++++++- .../api/user/services/UserAccountService.ts | 1 + .../src/features/app/constants/Endpoints.ts | 1 + .../modals/RequiredActionModal.module.css | 28 + .../components/modals/RequiredActionModal.tsx | 121 ++++- .../RequiredActionDescriptors.ts | 99 ++++ .../RequiredActionEscapeCopy.test.ts | 98 ++++ .../RequiredActionEscapeCopy.ts | 63 +++ .../required_action/RequiredActionShared.tsx | 51 ++ .../src/features/i18n/locales/ar/messages.po | 174 +++++-- .../locales/auto-i18n-reviewed-unchanged.json | 36 ++ .../src/features/i18n/locales/bg/messages.po | 174 +++++-- .../src/features/i18n/locales/cs/messages.po | 174 +++++-- .../src/features/i18n/locales/da/messages.po | 174 +++++-- .../src/features/i18n/locales/de/messages.po | 174 +++++-- .../src/features/i18n/locales/el/messages.po | 174 +++++-- .../features/i18n/locales/en-GB/messages.po | 176 +++++-- .../features/i18n/locales/en-US/messages.po | 174 +++++-- .../features/i18n/locales/es-419/messages.po | 174 +++++-- .../features/i18n/locales/es-ES/messages.po | 174 +++++-- .../src/features/i18n/locales/fi/messages.po | 174 +++++-- .../src/features/i18n/locales/fr/messages.po | 174 +++++-- .../src/features/i18n/locales/he/messages.po | 174 +++++-- .../src/features/i18n/locales/hi/messages.po | 174 +++++-- .../src/features/i18n/locales/hr/messages.po | 174 +++++-- .../src/features/i18n/locales/hu/messages.po | 174 +++++-- .../src/features/i18n/locales/id/messages.po | 174 +++++-- .../src/features/i18n/locales/it/messages.po | 174 +++++-- .../src/features/i18n/locales/ja/messages.po | 174 +++++-- .../src/features/i18n/locales/ko/messages.po | 174 +++++-- .../src/features/i18n/locales/lt/messages.po | 174 +++++-- .../src/features/i18n/locales/nl/messages.po | 174 +++++-- .../src/features/i18n/locales/no/messages.po | 174 +++++-- .../src/features/i18n/locales/pl/messages.po | 174 +++++-- .../features/i18n/locales/pt-BR/messages.po | 174 +++++-- .../src/features/i18n/locales/ro/messages.po | 174 +++++-- .../src/features/i18n/locales/ru/messages.po | 174 +++++-- .../features/i18n/locales/sv-SE/messages.po | 174 +++++-- .../src/features/i18n/locales/th/messages.po | 174 +++++-- .../src/features/i18n/locales/tr/messages.po | 174 +++++-- .../src/features/i18n/locales/uk/messages.po | 174 +++++-- .../src/features/i18n/locales/vi/messages.po | 174 +++++-- .../features/i18n/locales/zh-CN/messages.po | 174 +++++-- .../features/i18n/locales/zh-TW/messages.po | 174 +++++-- .../features/user/commands/UserCommands.ts | 29 +- packages/constants/src/ApiErrorCodes.ts | 1 + packages/constants/src/UserConstants.ts | 5 +- .../user/PhoneGateEscapeUnavailableError.ts | 12 + packages/errors/src/i18n/ErrorCodeMappings.ts | 1 + packages/errors/src/i18n/ErrorI18nMessages.ts | 2 + packages/errors/src/i18n/locales/ar.ts | 1 + packages/errors/src/i18n/locales/bg.ts | 1 + packages/errors/src/i18n/locales/cs.ts | 1 + packages/errors/src/i18n/locales/da.ts | 1 + packages/errors/src/i18n/locales/de.ts | 1 + packages/errors/src/i18n/locales/el.ts | 1 + packages/errors/src/i18n/locales/en-GB.ts | 1 + packages/errors/src/i18n/locales/es-419.ts | 1 + packages/errors/src/i18n/locales/es-ES.ts | 1 + packages/errors/src/i18n/locales/fi.ts | 1 + packages/errors/src/i18n/locales/fr.ts | 1 + packages/errors/src/i18n/locales/he.ts | 1 + packages/errors/src/i18n/locales/hi.ts | 1 + packages/errors/src/i18n/locales/hr.ts | 1 + packages/errors/src/i18n/locales/hu.ts | 1 + packages/errors/src/i18n/locales/id.ts | 1 + packages/errors/src/i18n/locales/it.ts | 1 + packages/errors/src/i18n/locales/ja.ts | 1 + packages/errors/src/i18n/locales/ko.ts | 1 + packages/errors/src/i18n/locales/lt.ts | 1 + packages/errors/src/i18n/locales/nl.ts | 1 + packages/errors/src/i18n/locales/no.ts | 1 + packages/errors/src/i18n/locales/pl.ts | 1 + packages/errors/src/i18n/locales/pt-BR.ts | 1 + packages/errors/src/i18n/locales/ro.ts | 1 + packages/errors/src/i18n/locales/ru.ts | 1 + packages/errors/src/i18n/locales/sv-SE.ts | 1 + packages/errors/src/i18n/locales/th.ts | 1 + packages/errors/src/i18n/locales/tr.ts | 1 + packages/errors/src/i18n/locales/uk.ts | 1 + packages/errors/src/i18n/locales/vi.ts | 1 + packages/errors/src/i18n/locales/zh-CN.ts | 1 + packages/errors/src/i18n/locales/zh-TW.ts | 1 + .../errors/src/i18n/weblate/locales/ar.json | 1 + .../errors/src/i18n/weblate/locales/bg.json | 1 + .../errors/src/i18n/weblate/locales/cs.json | 1 + .../errors/src/i18n/weblate/locales/da.json | 1 + .../errors/src/i18n/weblate/locales/de.json | 1 + .../errors/src/i18n/weblate/locales/el.json | 1 + .../src/i18n/weblate/locales/en-GB.json | 1 + .../src/i18n/weblate/locales/es-419.json | 1 + .../src/i18n/weblate/locales/es-ES.json | 1 + .../errors/src/i18n/weblate/locales/fi.json | 1 + .../errors/src/i18n/weblate/locales/fr.json | 1 + .../errors/src/i18n/weblate/locales/he.json | 1 + .../errors/src/i18n/weblate/locales/hi.json | 1 + .../errors/src/i18n/weblate/locales/hr.json | 1 + .../errors/src/i18n/weblate/locales/hu.json | 1 + .../errors/src/i18n/weblate/locales/id.json | 1 + .../errors/src/i18n/weblate/locales/it.json | 1 + .../errors/src/i18n/weblate/locales/ja.json | 1 + .../errors/src/i18n/weblate/locales/ko.json | 1 + .../errors/src/i18n/weblate/locales/lt.json | 1 + .../errors/src/i18n/weblate/locales/nl.json | 1 + .../errors/src/i18n/weblate/locales/no.json | 1 + .../errors/src/i18n/weblate/locales/pl.json | 1 + .../src/i18n/weblate/locales/pt-BR.json | 1 + .../errors/src/i18n/weblate/locales/ro.json | 1 + .../errors/src/i18n/weblate/locales/ru.json | 1 + .../src/i18n/weblate/locales/sv-SE.json | 1 + .../errors/src/i18n/weblate/locales/th.json | 1 + .../errors/src/i18n/weblate/locales/tr.json | 1 + .../errors/src/i18n/weblate/locales/uk.json | 1 + .../errors/src/i18n/weblate/locales/vi.json | 1 + .../src/i18n/weblate/locales/zh-CN.json | 1 + .../src/i18n/weblate/locales/zh-TW.json | 1 + .../errors/src/i18n/weblate/messages.json | 1 + .../src/domains/user/UserResponseSchemas.ts | 17 + 127 files changed, 6233 insertions(+), 1410 deletions(-) create mode 100644 fluxer_app/src/features/auth/components/modals/required_action/RequiredActionEscapeCopy.test.ts create mode 100644 fluxer_app/src/features/auth/components/modals/required_action/RequiredActionEscapeCopy.ts create mode 100644 packages/errors/src/domains/user/PhoneGateEscapeUnavailableError.ts diff --git a/fluxer_admin/openapi-admin.json b/fluxer_admin/openapi-admin.json index b0346e279..eedc9c43c 100644 --- a/fluxer_admin/openapi-admin.json +++ b/fluxer_admin/openapi-admin.json @@ -9095,6 +9095,7 @@ "PASSKEYS_DISABLED", "PHONE_ADD_NOT_ELIGIBLE", "PHONE_ALREADY_USED", + "PHONE_GATE_ESCAPE_UNAVAILABLE", "PHONE_RATE_LIMIT_EXCEEDED", "PHONE_VERIFICATION_REQUIRED", "PREMIUM_PURCHASE_BLOCKED", diff --git a/fluxer_api/src/api/admin/services/AdminUserSecurityService.ts b/fluxer_api/src/api/admin/services/AdminUserSecurityService.ts index 67cbcc1e3..e142affa0 100644 --- a/fluxer_api/src/api/admin/services/AdminUserSecurityService.ts +++ b/fluxer_api/src/api/admin/services/AdminUserSecurityService.ts @@ -8,6 +8,7 @@ import { DEFERRABLE_PHONE_FLAGS, DEFERRED_PHONE_ON_COMMUNITY_JOIN, imposePhoneRequirements, + PHONE_GATE_PROMOTED_FROM_DEFERRAL, SuspiciousActivityFlags, UserFlags, } from '@fluxer/constants/src/UserConstants'; @@ -464,7 +465,13 @@ export class AdminUserSecurityService { (currentFlags & DEFERRED_PHONE_ON_COMMUNITY_JOIN) !== 0 && (data.flags & DEFERRABLE_PHONE_FLAGS) !== 0 && (data.flags & DEFERRABLE_PHONE_FLAGS) === (currentFlags & DEFERRABLE_PHONE_FLAGS); - const newFlags = keepsDeferral ? data.flags | DEFERRED_PHONE_ON_COMMUNITY_JOIN : data.flags; + const keepsPromotion = + (currentFlags & PHONE_GATE_PROMOTED_FROM_DEFERRAL) !== 0 && + (data.flags & DEFERRABLE_PHONE_FLAGS) !== 0 && + (data.flags & DEFERRABLE_PHONE_FLAGS) === (currentFlags & DEFERRABLE_PHONE_FLAGS); + const newFlags = + (keepsDeferral ? data.flags | DEFERRED_PHONE_ON_COMMUNITY_JOIN : data.flags) | + (keepsPromotion ? PHONE_GATE_PROMOTED_FROM_DEFERRAL : 0); const updatedUser = await userRepository.patchUpsert( userId, { diff --git a/fluxer_api/src/api/auth/tests/DeferredPhoneGate.test.ts b/fluxer_api/src/api/auth/tests/DeferredPhoneGate.test.ts index 7c71beef7..12d39395e 100644 --- a/fluxer_api/src/api/auth/tests/DeferredPhoneGate.test.ts +++ b/fluxer_api/src/api/auth/tests/DeferredPhoneGate.test.ts @@ -1,10 +1,20 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -import {DEFERRED_PHONE_ON_COMMUNITY_JOIN, SuspiciousActivityFlags} from '@fluxer/constants/src/UserConstants'; +import { + DEFERRED_PHONE_ON_COMMUNITY_JOIN, + PHONE_GATE_PROMOTED_FROM_DEFERRAL, + SuspiciousActivityFlags, +} from '@fluxer/constants/src/UserConstants'; import type {GuildResponse} from '@fluxer/schema/src/domains/guild/GuildResponseSchemas'; -import {afterAll, beforeAll, beforeEach, describe, expect, it} from 'vitest'; +import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; import {setInjectedRegistrationRiskEvaluator} from '../../middleware/ServiceMiddleware'; import {getInstanceConfigRepository} from '../../middleware/ServiceSingletons'; +import { + authorizeOAuth2, + createOAuth2Application, + exchangeOAuth2AuthorizationCode, +} from '../../oauth/tests/OAuthTestUtils'; +import {PHONE_GATE_ESCAPE_MAX_GUILDS} from '../../risk/DeferredPhoneGate'; import { RecommendedAction, RiskConfidence, @@ -13,6 +23,7 @@ import { type RiskLevel as RiskLevelType, } from '../../risk/RiskTypes'; import type {ApiTestHarness} from '../../test/ApiTestHarness'; +import {NoopGatewayService} from '../../test/NoopGatewayService'; import {createBuilder, createBuilderWithoutAuth} from '../../test/TestRequestBuilder'; import type {IRegistrationRiskEvaluator} from '../services/IRegistrationRiskEvaluator'; import { @@ -74,6 +85,27 @@ async function readFlags(userId: string): Promise { return user?.suspiciousActivityFlags ?? 0; } +async function readGuildIds(userId: string): Promise> { + const {GuildRepository} = await import('../../guild/repositories/GuildRepository'); + const {createUserID} = await import('../../BrandedTypes'); + const guilds = await new GuildRepository().listUserGuilds(createUserID(BigInt(userId))); + return guilds.map((guild) => guild.id.toString()); +} + +const ESCAPE_PATH = '/users/@me/required-actions/phone-gate-escape'; +const RATE_LIMIT_HEADER = 'x-fluxer-test-enable-rate-limits'; + +interface EscapeSubject { + userId: string; + token: string; +} + +interface EscapePreviewResponse { + available: boolean; + guilds: Array<{id: string; name: string}>; + owned_guilds: Array<{id: string; name: string}>; +} + describe('Deferred phone verification gate', () => { let harness: ApiTestHarness; beforeAll(async () => { @@ -208,4 +240,452 @@ describe('Deferred phone verification gate', () => { expect(flags & DEFERRED_PHONE_ON_COMMUNITY_JOIN).toBe(0); expect(flags & SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE).not.toBe(0); }); + + describe('phone gate escape', () => { + async function configurePhoneGate( + overrides: { + deferred_phone_gate_enabled?: boolean; + deferred_phone_gate_member_threshold?: number; + deferred_phone_gate_window_hours?: number; + single_community_enabled?: boolean; + single_community_guild_id?: string | null; + } = {}, + ): Promise { + await getInstanceConfigRepository().setInstancePolicyConfig({ + deferred_phone_gate_enabled: true, + deferred_phone_gate_member_threshold: 1, + deferred_phone_gate_window_hours: 24, + ...overrides, + }); + } + + async function registerDeferredUser(prefix: string): Promise { + setInjectedRegistrationRiskEvaluator(phoneRiskEvaluator(RiskLevel.High, 70)); + const registration = await registerUser(harness, { + email: createUniqueEmail(prefix), + username: createUniqueUsername(prefix), + global_name: 'Gate Escape', + password: 'StrongPassword!123', + date_of_birth: '2000-01-01', + consent: true, + }); + setInjectedRegistrationRiskEvaluator(undefined); + return {userId: registration.user_id, token: registration.token}; + } + + async function addFillerMember(inviteCode: string): Promise { + const filler = await createTestAccount(harness); + await createBuilder(harness, filler.token).post(`/invites/${inviteCode}`).expect(200).execute(); + } + + async function makeDiscoverable(guildId: string): Promise { + await createBuilderWithoutAuth(harness) + .post(`/test/guilds/${guildId}/features`) + .body({add_features: ['DISCOVERABLE']}) + .execute(); + } + + async function setSuspiciousFlags(userId: string, flags: number): Promise { + await createBuilderWithoutAuth(harness) + .post(`/test/users/${userId}/security-flags`) + .body({suspicious_activity_flags: flags}) + .execute(); + } + + async function promoteThroughRefusedJoin(subject: EscapeSubject, inviteCode: string): Promise { + await createBuilder(harness, subject.token).post(`/invites/${inviteCode}`).expect(403).execute(); + } + + async function createPromotedSubject(prefix: string): Promise { + const gate = await createGuildWithInvite(harness); + await addFillerMember(gate.inviteCode); + const subject = await registerDeferredUser(prefix); + await promoteThroughRefusedJoin(subject, gate.inviteCode); + return subject; + } + + function previewEscape(subject: EscapeSubject) { + return createBuilder(harness, subject.token).get(ESCAPE_PATH).expect(200).execute(); + } + + function executeEscape(subject: EscapeSubject) { + return createBuilder<{required_actions: Array | null}>(harness, subject.token) + .post(ESCAPE_PATH) + .body({}) + .expect(200) + .execute(); + } + + function expectEscapeRefused(subject: EscapeSubject) { + return createBuilder(harness, subject.token) + .post(ESCAPE_PATH) + .body({}) + .expect(400, 'PHONE_GATE_ESCAPE_UNAVAILABLE') + .execute(); + } + + it('answers both escape routes for an account every ordinary route refuses', async () => { + await configurePhoneGate(); + const subject = await createPromotedSubject('escape_reach'); + + await createBuilder(harness, subject.token) + .get('/users/@me/guilds') + .expect(403, 'ACCOUNT_SUSPICIOUS_ACTIVITY') + .execute(); + + const preview = await previewEscape(subject); + expect(preview.available).toBe(true); + await executeEscape(subject); + }); + + it('records the promotion without leaking the bit into the client projection', async () => { + await configurePhoneGate(); + const subject = await createPromotedSubject('escape_bit'); + + const flags = await readFlags(subject.userId); + expect(flags & DEFERRED_PHONE_ON_COMMUNITY_JOIN).toBe(0); + expect(flags & SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE).not.toBe(0); + expect(flags & PHONE_GATE_PROMOTED_FROM_DEFERRAL).not.toBe(0); + + const me = await createBuilder<{required_actions: Array | null; suspicious_activity_flags?: number}>( + harness, + subject.token, + ) + .get('/users/@me') + .expect(200) + .execute(); + expect(me.required_actions).toEqual(['REQUIRE_VERIFIED_PHONE']); + expect(me.suspicious_activity_flags).toBeUndefined(); + }); + + it('unlocks an account that is in no community at all', async () => { + await configurePhoneGate(); + const subject = await createPromotedSubject('escape_empty'); + expect(await readGuildIds(subject.userId)).toEqual([]); + + const preview = await previewEscape(subject); + expect(preview).toEqual({available: true, guilds: [], owned_guilds: []}); + + const updated = await executeEscape(subject); + expect(updated.required_actions ?? []).toEqual([]); + + const me = await createBuilder<{required_actions: Array | null}>(harness, subject.token) + .get('/users/@me') + .expect(200) + .execute(); + expect(me.required_actions ?? []).toEqual([]); + await createBuilder(harness, subject.token).get('/users/@me/guilds').expect(200).execute(); + + const flags = await readFlags(subject.userId); + expect(flags & DEFERRED_PHONE_ON_COMMUNITY_JOIN).not.toBe(0); + expect(flags & PHONE_GATE_PROMOTED_FROM_DEFERRAL).toBe(0); + expect(flags & SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE).not.toBe(0); + }); + + it('leaves the qualifying community, unlocks the account and dispatches a single user update', async () => { + await configurePhoneGate(); + const member = await createGuildWithInvite(harness); + const subject = await registerDeferredUser('escape_leave'); + await createBuilder(harness, subject.token).post(`/invites/${member.inviteCode}`).expect(200).execute(); + const gate = await createGuildWithInvite(harness); + await addFillerMember(gate.inviteCode); + await promoteThroughRefusedJoin(subject, gate.inviteCode); + + const preview = await previewEscape(subject); + expect(preview.guilds.map((guild) => guild.id)).toEqual([member.guildId]); + expect(preview.owned_guilds).toEqual([]); + + const dispatchSpy = vi.spyOn(NoopGatewayService.prototype, 'dispatchPresence'); + try { + const updated = await executeEscape(subject); + expect(updated.required_actions ?? []).toEqual([]); + const userUpdates = dispatchSpy.mock.calls.filter( + ([params]) => params.event === 'USER_UPDATE' && params.userId.toString() === subject.userId, + ); + expect(userUpdates).toHaveLength(1); + } finally { + dispatchSpy.mockRestore(); + } + + expect(await readGuildIds(subject.userId)).toEqual([]); + const flags = await readFlags(subject.userId); + expect(flags & DEFERRED_PHONE_ON_COMMUNITY_JOIN).not.toBe(0); + expect(flags & PHONE_GATE_PROMOTED_FROM_DEFERRAL).toBe(0); + }); + + it('applies the member threshold strictly, so a community sitting on it is kept', async () => { + await configurePhoneGate({deferred_phone_gate_member_threshold: 2}); + const onThreshold = await createGuildWithInvite(harness); + const aboveThreshold = await createGuildWithInvite(harness); + await addFillerMember(aboveThreshold.inviteCode); + const subject = await registerDeferredUser('escape_bound'); + await createBuilder(harness, subject.token).post(`/invites/${onThreshold.inviteCode}`).expect(200).execute(); + await createBuilder(harness, subject.token).post(`/invites/${aboveThreshold.inviteCode}`).expect(200).execute(); + const gate = await createGuildWithInvite(harness); + await addFillerMember(gate.inviteCode); + await addFillerMember(gate.inviteCode); + await promoteThroughRefusedJoin(subject, gate.inviteCode); + + const preview = await previewEscape(subject); + expect(preview.guilds.map((guild) => guild.id)).toEqual([aboveThreshold.guildId]); + + await executeEscape(subject); + expect(await readGuildIds(subject.userId)).toEqual([onThreshold.guildId]); + }); + + it('leaves a discoverable community that sits far below the member threshold', async () => { + await configurePhoneGate({deferred_phone_gate_member_threshold: 50}); + const discoverable = await createGuildWithInvite(harness); + const subject = await registerDeferredUser('escape_disc'); + await createBuilder(harness, subject.token).post(`/invites/${discoverable.inviteCode}`).expect(200).execute(); + await makeDiscoverable(discoverable.guildId); + const gate = await createGuildWithInvite(harness); + await makeDiscoverable(gate.guildId); + await promoteThroughRefusedJoin(subject, gate.inviteCode); + + const preview = await previewEscape(subject); + expect(preview.guilds.map((guild) => guild.id)).toEqual([discoverable.guildId]); + + await executeEscape(subject); + expect(await readGuildIds(subject.userId)).toEqual([]); + }); + + it('keeps a qualifying community the user owns and reports it separately', async () => { + await configurePhoneGate(); + const member = await createGuildWithInvite(harness); + const subject = await registerDeferredUser('escape_owned'); + await createBuilder(harness, subject.token).post(`/invites/${member.inviteCode}`).expect(200).execute(); + await createBuilderWithoutAuth(harness) + .post(`/test/users/${subject.userId}/security-flags`) + .body({email_verified: true}) + .execute(); + const owned = await createBuilder(harness, subject.token) + .post('/guilds') + .body({name: `PhoneGateOwned-${Date.now()}`}) + .execute(); + const ownedInvite = await createBuilder<{code: string}>(harness, subject.token) + .post(`/channels/${owned.system_channel_id}`.concat('/invites')) + .body({max_uses: 0, max_age: 0, unique: false, temporary: false}) + .execute(); + await addFillerMember(ownedInvite.code); + const gate = await createGuildWithInvite(harness); + await addFillerMember(gate.inviteCode); + await promoteThroughRefusedJoin(subject, gate.inviteCode); + + const preview = await previewEscape(subject); + expect(preview.guilds.map((guild) => guild.id)).toEqual([member.guildId]); + expect(preview.owned_guilds.map((guild) => guild.id)).toEqual([owned.id]); + + const updated = await executeEscape(subject); + expect(updated.required_actions ?? []).toEqual([]); + expect(await readGuildIds(subject.userId)).toEqual([owned.id]); + expect((await readFlags(subject.userId)) & DEFERRED_PHONE_ON_COMMUNITY_JOIN).not.toBe(0); + }); + + it('leaves what it can when the qualifying set exceeds the per-call limit, and finishes on a second call', async () => { + await configurePhoneGate(); + const subject = await registerDeferredUser('escape_batch'); + for (let index = 0; index < PHONE_GATE_ESCAPE_MAX_GUILDS + 1; index++) { + const guild = await createGuildWithInvite(harness); + await createBuilder(harness, subject.token).post(`/invites/${guild.inviteCode}`).expect(200).execute(); + } + const gate = await createGuildWithInvite(harness); + await addFillerMember(gate.inviteCode); + await promoteThroughRefusedJoin(subject, gate.inviteCode); + + const preview = await previewEscape(subject); + expect(preview.guilds).toHaveLength(PHONE_GATE_ESCAPE_MAX_GUILDS + 1); + + const afterFirst = await executeEscape(subject); + expect(afterFirst.required_actions ?? []).toEqual(['REQUIRE_VERIFIED_PHONE']); + expect(await readGuildIds(subject.userId)).toHaveLength(1); + const flagsAfterFirst = await readFlags(subject.userId); + expect(flagsAfterFirst & DEFERRED_PHONE_ON_COMMUNITY_JOIN).toBe(0); + expect(flagsAfterFirst & PHONE_GATE_PROMOTED_FROM_DEFERRAL).not.toBe(0); + + const afterSecond = await executeEscape(subject); + expect(afterSecond.required_actions ?? []).toEqual([]); + expect(await readGuildIds(subject.userId)).toEqual([]); + const flags = await readFlags(subject.userId); + expect(flags & DEFERRED_PHONE_ON_COMMUNITY_JOIN).not.toBe(0); + expect(flags & PHONE_GATE_PROMOTED_FROM_DEFERRAL).toBe(0); + }); + + it('refuses an account whose phone requirement was never deferred', async () => { + await configurePhoneGate(); + const member = await createGuildWithInvite(harness); + const account = await createTestAccount(harness); + await createBuilder(harness, account.token).post(`/invites/${member.inviteCode}`).expect(200).execute(); + await setSuspiciousFlags(account.userId, SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE); + const subject: EscapeSubject = {userId: account.userId, token: account.token}; + + const preview = await previewEscape(subject); + expect(preview).toEqual({available: false, guilds: [], owned_guilds: []}); + await expectEscapeRefused(subject); + expect(await readGuildIds(subject.userId)).toEqual([member.guildId]); + expect(await readFlags(subject.userId)).toBe(SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE); + }); + + it('refuses while the gate is switched off, leaving flags and memberships untouched', async () => { + await configurePhoneGate(); + const member = await createGuildWithInvite(harness); + const subject = await registerDeferredUser('escape_off'); + await createBuilder(harness, subject.token).post(`/invites/${member.inviteCode}`).expect(200).execute(); + const gate = await createGuildWithInvite(harness); + await addFillerMember(gate.inviteCode); + await promoteThroughRefusedJoin(subject, gate.inviteCode); + const flagsBefore = await readFlags(subject.userId); + + await configurePhoneGate({deferred_phone_gate_enabled: false}); + const preview = await previewEscape(subject); + expect(preview.available).toBe(false); + await expectEscapeRefused(subject); + + expect(await readFlags(subject.userId)).toBe(flagsBefore); + expect(await readGuildIds(subject.userId)).toEqual([member.guildId]); + }); + + it('refuses in single-community mode and leaves the designated community alone', async () => { + await configurePhoneGate(); + const member = await createGuildWithInvite(harness); + const subject = await registerDeferredUser('escape_single'); + await createBuilder(harness, subject.token).post(`/invites/${member.inviteCode}`).expect(200).execute(); + const gate = await createGuildWithInvite(harness); + await addFillerMember(gate.inviteCode); + await promoteThroughRefusedJoin(subject, gate.inviteCode); + + await configurePhoneGate({single_community_enabled: true, single_community_guild_id: member.guildId}); + const preview = await previewEscape(subject); + expect(preview.available).toBe(false); + await expectEscapeRefused(subject); + expect(await readGuildIds(subject.userId)).toEqual([member.guildId]); + }); + + it('refuses an account that is still deferred and has never been locked out', async () => { + await configurePhoneGate(); + const member = await createGuildWithInvite(harness); + const subject = await registerDeferredUser('escape_defer'); + await createBuilder(harness, subject.token).post(`/invites/${member.inviteCode}`).expect(200).execute(); + const flagsBefore = await readFlags(subject.userId); + + const preview = await previewEscape(subject); + expect(preview).toEqual({available: false, guilds: [], owned_guilds: []}); + await expectEscapeRefused(subject); + expect(await readFlags(subject.userId)).toBe(flagsBefore); + expect(await readGuildIds(subject.userId)).toEqual([member.guildId]); + }); + + it('refuses a promoted account that also carries the inbound-SMS tier', async () => { + await configurePhoneGate(); + const subject = await createPromotedSubject('escape_inbound'); + const promotedFlags = await readFlags(subject.userId); + await setSuspiciousFlags( + subject.userId, + promotedFlags | SuspiciousActivityFlags.REQUIRE_INBOUND_PHONE_VERIFICATION, + ); + + const preview = await previewEscape(subject); + expect(preview.available).toBe(false); + await expectEscapeRefused(subject); + }); + + it('closes itself after a successful escape', async () => { + await configurePhoneGate(); + const subject = await createPromotedSubject('escape_twice'); + await executeEscape(subject); + const flagsAfterFirst = await readFlags(subject.userId); + + await expectEscapeRefused(subject); + expect(await readFlags(subject.userId)).toBe(flagsAfterFirst); + const preview = await previewEscape(subject); + expect(preview.available).toBe(false); + }); + + it('leaves a remaining email requirement in place', async () => { + await configurePhoneGate(); + const subject = await createPromotedSubject('escape_email'); + const promotedFlags = await readFlags(subject.userId); + await setSuspiciousFlags(subject.userId, promotedFlags | SuspiciousActivityFlags.REQUIRE_VERIFIED_EMAIL); + + const updated = await executeEscape(subject); + expect(updated.required_actions ?? []).toEqual(['REQUIRE_VERIFIED_EMAIL']); + const me = await createBuilder<{required_actions: Array | null}>(harness, subject.token) + .get('/users/@me') + .expect(200) + .execute(); + expect(me.required_actions ?? []).toEqual(['REQUIRE_VERIFIED_EMAIL']); + }); + + it('restores the deferral, so a qualifying join re-promotes inside the window and not outside it', async () => { + await configurePhoneGate(); + const subject = await createPromotedSubject('escape_rearm'); + await executeEscape(subject); + + const insideWindow = await createGuildWithInvite(harness); + await addFillerMember(insideWindow.inviteCode); + await promoteThroughRefusedJoin(subject, insideWindow.inviteCode); + const repromoted = await readFlags(subject.userId); + expect(repromoted & DEFERRED_PHONE_ON_COMMUNITY_JOIN).toBe(0); + expect(repromoted & PHONE_GATE_PROMOTED_FROM_DEFERRAL).not.toBe(0); + + await executeEscape(subject); + await configurePhoneGate({deferred_phone_gate_window_hours: 0.0001}); + const outsideWindow = await createGuildWithInvite(harness); + await addFillerMember(outsideWindow.inviteCode); + await createBuilder(harness, subject.token).post(`/invites/${outsideWindow.inviteCode}`).expect(200).execute(); + + const flags = await readFlags(subject.userId); + expect(flags & DEFERRED_PHONE_ON_COMMUNITY_JOIN).not.toBe(0); + expect(flags & PHONE_GATE_PROMOTED_FROM_DEFERRAL).toBe(0); + }); + + it('refuses bot tokens and OAuth2 bearer tokens on both routes', async () => { + await configurePhoneGate(); + const owner = await createTestAccount(harness); + const redirectURI = 'https://example.com/callback'; + const application = await createOAuth2Application(harness, owner, {redirect_uris: [redirectURI]}); + const {code} = await authorizeOAuth2(harness, owner.token, { + client_id: application.id, + redirect_uri: redirectURI, + scope: 'identify', + }); + const {access_token: accessToken} = await exchangeOAuth2AuthorizationCode(harness, { + client_id: application.id, + client_secret: application.client_secret, + code, + redirect_uri: redirectURI, + }); + + for (const token of [`Bot ${application.bot.token}`, `Bearer ${accessToken}`]) { + await createBuilder(harness, token).get(ESCAPE_PATH).expect(403).execute(); + await createBuilder(harness, token).post(ESCAPE_PATH).body({}).expect(403).execute(); + } + }); + + it('spends the execute budget only on execute calls', async () => { + await configurePhoneGate(); + const subject = await createPromotedSubject('escape_limit'); + for (let index = 0; index < 3; index++) { + await createBuilder(harness, subject.token) + .get(ESCAPE_PATH) + .header(RATE_LIMIT_HEADER, 'true') + .expect(200) + .execute(); + } + for (let index = 0; index < 5; index++) { + const {response} = await createBuilder(harness, subject.token) + .post(ESCAPE_PATH) + .body({}) + .header(RATE_LIMIT_HEADER, 'true') + .executeRaw(); + expect(response.status).toBe(index === 0 ? 200 : 400); + } + const {response} = await createBuilder(harness, subject.token) + .post(ESCAPE_PATH) + .body({}) + .header(RATE_LIMIT_HEADER, 'true') + .executeRaw(); + expect(response.status).toBe(429); + }); + }); }); diff --git a/fluxer_api/src/api/openapi/openapi.json b/fluxer_api/src/api/openapi/openapi.json index 8641d54d5..92869787e 100644 --- a/fluxer_api/src/api/openapi/openapi.json +++ b/fluxer_api/src/api/openapi/openapi.json @@ -21048,6 +21048,142 @@ } } }, + "/users/@me/required-actions/phone-gate-escape": { + "get": { + "operationId": "get_phone_gate_escape", + "summary": "Preview setting the deferred phone check aside", + "tags": ["Users"], + "responses": { + "200": { + "description": "Success", + "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PhoneGateEscapePreviewResponse"}}} + }, + "400": { + "description": "Bad Request - The request was malformed or contained invalid data", + "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} + }, + "401": { + "description": "Unauthorized - Authentication is required or the token is invalid", + "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} + }, + "403": { + "description": "Forbidden - You do not have permission to perform this action", + "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} + }, + "429": { + "description": "Too Many Requests - You are being rate limited", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": {"type": "string", "enum": ["RATE_LIMITED"]}, + "message": {"type": "string"}, + "retry_after": {"type": "number", "description": "Seconds to wait before retrying"}, + "global": {"type": "boolean", "description": "Whether this is a global rate limit"} + }, + "required": ["code", "message", "retry_after"] + } + } + }, + "headers": { + "Retry-After": { + "description": "Number of seconds to wait before retrying (only on 429)", + "schema": {"type": "integer"} + }, + "X-RateLimit-Limit": { + "description": "The number of requests that can be made in the current window", + "schema": {"type": "integer"} + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests that can be made", + "schema": {"type": "integer"} + }, + "X-RateLimit-Reset": { + "description": "Unix timestamp when the rate limit resets", + "schema": {"type": "integer"} + } + } + }, + "500": { + "description": "Internal Server Error - An unexpected error occurred", + "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} + } + }, + "x-mint": {"metadata": {"title": "Preview setting the deferred phone check aside"}}, + "description": "Reports whether this account can set a deferred phone verification requirement aside, and which communities would be left if it did. Returns available false with empty lists for any account outside that state.", + "security": [{"sessionToken": []}] + }, + "post": { + "operationId": "execute_phone_gate_escape", + "summary": "Set the deferred phone check aside", + "tags": ["Users"], + "responses": { + "200": { + "description": "Success", + "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserPrivateResponse"}}} + }, + "400": { + "description": "Bad Request - The request was malformed or contained invalid data", + "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} + }, + "401": { + "description": "Unauthorized - Authentication is required or the token is invalid", + "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} + }, + "403": { + "description": "Forbidden - You do not have permission to perform this action", + "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} + }, + "429": { + "description": "Too Many Requests - You are being rate limited", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": {"type": "string", "enum": ["RATE_LIMITED"]}, + "message": {"type": "string"}, + "retry_after": {"type": "number", "description": "Seconds to wait before retrying"}, + "global": {"type": "boolean", "description": "Whether this is a global rate limit"} + }, + "required": ["code", "message", "retry_after"] + } + } + }, + "headers": { + "Retry-After": { + "description": "Number of seconds to wait before retrying (only on 429)", + "schema": {"type": "integer"} + }, + "X-RateLimit-Limit": { + "description": "The number of requests that can be made in the current window", + "schema": {"type": "integer"} + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests that can be made", + "schema": {"type": "integer"} + }, + "X-RateLimit-Reset": { + "description": "Unix timestamp when the rate limit resets", + "schema": {"type": "integer"} + } + } + }, + "500": { + "description": "Internal Server Error - An unexpected error occurred", + "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} + } + }, + "x-mint": {"metadata": {"title": "Set the deferred phone check aside"}}, + "description": "Leaves the communities that trigger the deferred phone verification check and restores the deferral, so the account works normally again. Communities the user owns are kept, and a run that hits the per-call community limit leaves what it can and can be repeated. Returns the updated private user object.", + "security": [{"sessionToken": []}], + "requestBody": { + "required": true, + "content": {"application/json": {"schema": {"$ref": "#/components/schemas/EmptyBodyRequest"}}} + } + } + }, "/users/@me/saved-messages": { "get": { "operationId": "list_saved_messages", @@ -23556,6 +23692,7 @@ "PASSKEYS_DISABLED", "PHONE_ADD_NOT_ELIGIBLE", "PHONE_ALREADY_USED", + "PHONE_GATE_ESCAPE_UNAVAILABLE", "PHONE_RATE_LIMIT_EXCEEDED", "PHONE_VERIFICATION_REQUIRED", "PREMIUM_PURCHASE_BLOCKED", @@ -23864,6 +24001,7 @@ "Passkeys are disabled.", "You are not eligible to add a phone number to your account.", "Phone number is already in use.", + "Setting the phone verification check aside is not available for this account.", "Phone rate limit exceeded.", "Phone verification is required.", "No active subscription.", @@ -34160,6 +34298,48 @@ }, "required": ["nickname"] }, + "PhoneGateEscapePreviewResponse": { + "type": "object", + "properties": { + "available": { + "type": "boolean", + "description": "Whether this account can set the deferred phone verification check aside right now" + }, + "guilds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)$", + "description": "The unique identifier (snowflake) for the community" + }, + "name": {"type": "string", "description": "The community name"} + }, + "required": ["id", "name"] + }, + "description": "Communities that trigger the phone check and will be left when the escape runs" + }, + "owned_guilds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^(0|[1-9][0-9]*)$", + "description": "The unique identifier (snowflake) for the community" + }, + "name": {"type": "string", "description": "The community name"} + }, + "required": ["id", "name"] + }, + "description": "Communities that trigger the phone check but are owned by this user, so they are kept" + } + }, + "required": ["available", "guilds", "owned_guilds"] + }, "SavedMessageEntryListResponse": { "type": "array", "items": {"$ref": "#/components/schemas/SavedMessageEntryResponse"} diff --git a/fluxer_api/src/api/rate_limit_configs/UserRateLimitConfig.ts b/fluxer_api/src/api/rate_limit_configs/UserRateLimitConfig.ts index 9f7f276ac..282a8044f 100644 --- a/fluxer_api/src/api/rate_limit_configs/UserRateLimitConfig.ts +++ b/fluxer_api/src/api/rate_limit_configs/UserRateLimitConfig.ts @@ -84,6 +84,14 @@ export const UserRateLimitConfigs = { bucket: 'user:account:delete', config: {limit: 5, windowMs: ms('1 hour')}, } as RouteRateLimitConfig, + USER_PHONE_GATE_ESCAPE_PREVIEW: { + bucket: 'user:phone_gate_escape:preview', + config: {limit: 20, windowMs: ms('1 minute')}, + } as RouteRateLimitConfig, + USER_PHONE_GATE_ESCAPE: { + bucket: 'user:phone_gate_escape:execute', + config: {limit: 5, windowMs: ms('1 hour')}, + } as RouteRateLimitConfig, USER_DATA_HARVEST: { bucket: 'user:data:harvest', config: {limit: 5, windowMs: ms('30 minutes')}, diff --git a/fluxer_api/src/api/risk/DeferredPhoneGate.test.ts b/fluxer_api/src/api/risk/DeferredPhoneGate.test.ts index d257e9a33..6cff920ac 100644 --- a/fluxer_api/src/api/risk/DeferredPhoneGate.test.ts +++ b/fluxer_api/src/api/risk/DeferredPhoneGate.test.ts @@ -1,13 +1,23 @@ // SPDX-License-Identifier: AGPL-3.0-or-later import {GuildFeatures} from '@fluxer/constants/src/GuildConstants'; -import {DEFERRED_PHONE_ON_COMMUNITY_JOIN, SuspiciousActivityFlags} from '@fluxer/constants/src/UserConstants'; +import { + DEFERRED_PHONE_ON_COMMUNITY_JOIN, + PHONE_GATE_PROMOTED_FROM_DEFERRAL, + SuspiciousActivityFlags, +} from '@fluxer/constants/src/UserConstants'; import {snowflakeToDate} from '@fluxer/snowflake/src/Snowflake'; import {ms} from 'itty-time'; import {describe, expect, it} from 'vitest'; import type {Guild} from '../models/Guild'; import type {User} from '../models/User'; -import {type DeferredPhoneGateConfig, evaluateDeferredPhoneGate, guildTriggersPhoneGate} from './DeferredPhoneGate'; +import { + canEscapePhoneGate, + type DeferredPhoneGateConfig, + evaluateDeferredPhoneGate, + guildTriggersPhoneGate, + restorePhoneGateDeferral, +} from './DeferredPhoneGate'; import {resolveDeferredPhoneGateEnabled} from './DeferredPhoneGateCache'; const CONFIG: DeferredPhoneGateConfig = { @@ -48,6 +58,7 @@ describe('evaluateDeferredPhoneGate', () => { if (!outcome.applies) return; expect(outcome.flags & DEFERRED_PHONE_ON_COMMUNITY_JOIN).toBe(0); expect(outcome.flags & SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE).not.toBe(0); + expect(outcome.flags & PHONE_GATE_PROMOTED_FROM_DEFERRAL).not.toBe(0); }); it('applies to a large non-discoverable guild inside the window', () => { @@ -124,7 +135,9 @@ describe('evaluateDeferredPhoneGate', () => { expect(outcome.applies).toBe(true); if (!outcome.applies) return; expect(outcome.flags).toBe( - SuspiciousActivityFlags.REQUIRE_VERIFIED_EMAIL | SuspiciousActivityFlags.REQUIRE_INBOUND_PHONE_VERIFICATION, + SuspiciousActivityFlags.REQUIRE_VERIFIED_EMAIL | + SuspiciousActivityFlags.REQUIRE_INBOUND_PHONE_VERIFICATION | + PHONE_GATE_PROMOTED_FROM_DEFERRAL, ); }); }); @@ -152,3 +165,78 @@ describe('guildTriggersPhoneGate', () => { expect(guildTriggersPhoneGate(createGuild({memberCount: 50}), 50)).toBe(false); }); }); + +describe('restorePhoneGateDeferral', () => { + it('sets the marker, clears the promotion bit and preserves the stored phone requirement', () => { + const promoted = SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | PHONE_GATE_PROMOTED_FROM_DEFERRAL; + expect(restorePhoneGateDeferral(promoted)).toBe( + SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | DEFERRED_PHONE_ON_COMMUNITY_JOIN, + ); + }); + + it('preserves every unrelated requirement bit', () => { + const promoted = + SuspiciousActivityFlags.REQUIRE_VERIFIED_EMAIL | + SuspiciousActivityFlags.REQUIRE_REVERIFIED_PHONE | + PHONE_GATE_PROMOTED_FROM_DEFERRAL; + const restored = restorePhoneGateDeferral(promoted); + expect(restored & SuspiciousActivityFlags.REQUIRE_VERIFIED_EMAIL).not.toBe(0); + expect(restored & SuspiciousActivityFlags.REQUIRE_REVERIFIED_PHONE).not.toBe(0); + expect(restored & PHONE_GATE_PROMOTED_FROM_DEFERRAL).toBe(0); + expect(restored & DEFERRED_PHONE_ON_COMMUNITY_JOIN).not.toBe(0); + }); + + it('is idempotent when applied twice', () => { + const promoted = SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | PHONE_GATE_PROMOTED_FROM_DEFERRAL; + const once = restorePhoneGateDeferral(promoted); + expect(restorePhoneGateDeferral(once)).toBe(once); + }); +}); + +describe('canEscapePhoneGate', () => { + const PROMOTED = SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | PHONE_GATE_PROMOTED_FROM_DEFERRAL; + + it('accepts a promoted account while the gate is on', () => { + expect(canEscapePhoneGate(createUser({suspiciousActivityFlags: PROMOTED}), 'ok')).toBe(true); + }); + + it('accepts a promoted account carrying a re-verification tier instead', () => { + const promotedReverify = SuspiciousActivityFlags.REQUIRE_REVERIFIED_PHONE | PHONE_GATE_PROMOTED_FROM_DEFERRAL; + expect(canEscapePhoneGate(createUser({suspiciousActivityFlags: promotedReverify}), 'ok')).toBe(true); + }); + + it('refuses an account with no promotion bit, whatever its flag shape looks like', () => { + const imposed = SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE; + expect(canEscapePhoneGate(createUser({suspiciousActivityFlags: imposed}), 'ok')).toBe(false); + }); + + it('refuses an account still carrying the deferral marker', () => { + const stillDeferred = + SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | + DEFERRED_PHONE_ON_COMMUNITY_JOIN | + PHONE_GATE_PROMOTED_FROM_DEFERRAL; + expect(canEscapePhoneGate(createUser({suspiciousActivityFlags: stillDeferred}), 'ok')).toBe(false); + }); + + it('refuses an account carrying the inbound-SMS tier, which is never suppressed at read time', () => { + const inbound = PROMOTED | SuspiciousActivityFlags.REQUIRE_INBOUND_PHONE_VERIFICATION; + expect(canEscapePhoneGate(createUser({suspiciousActivityFlags: inbound}), 'ok')).toBe(false); + }); + + it('refuses an account that already has a verified phone', () => { + expect(canEscapePhoneGate(createUser({hasVerifiedPhone: true, suspiciousActivityFlags: PROMOTED}), 'ok')).toBe( + false, + ); + }); + + it('refuses an account with no deferrable phone requirement left to suppress', () => { + const emailOnly = SuspiciousActivityFlags.REQUIRE_VERIFIED_EMAIL | PHONE_GATE_PROMOTED_FROM_DEFERRAL; + expect(canEscapePhoneGate(createUser({suspiciousActivityFlags: emailOnly}), 'ok')).toBe(false); + }); + + it('refuses whenever the gate is not readable as on, since the marker would suppress nothing', () => { + const user = createUser({suspiciousActivityFlags: PROMOTED}); + expect(canEscapePhoneGate(user, 'disabled')).toBe(false); + expect(canEscapePhoneGate(user, 'unreadable')).toBe(false); + }); +}); diff --git a/fluxer_api/src/api/risk/DeferredPhoneGate.ts b/fluxer_api/src/api/risk/DeferredPhoneGate.ts index feb4c55f8..3079eb8c4 100644 --- a/fluxer_api/src/api/risk/DeferredPhoneGate.ts +++ b/fluxer_api/src/api/risk/DeferredPhoneGate.ts @@ -5,6 +5,7 @@ import { DEFERRABLE_PHONE_FLAGS, DEFERRED_PHONE_ON_COMMUNITY_JOIN, NEVER_DEFERRABLE_PHONE_FLAGS, + PHONE_GATE_PROMOTED_FROM_DEFERRAL, } from '@fluxer/constants/src/UserConstants'; import {snowflakeToDate} from '@fluxer/snowflake/src/Snowflake'; import {ms} from 'itty-time'; @@ -22,16 +23,20 @@ export interface DeferredPhoneGateConfig { export const DEFAULT_PHONE_GATE_MEMBER_THRESHOLD = 50; +export const PHONE_GATE_ESCAPE_MAX_GUILDS = 25; + const DISABLED_CONFIG: DeferredPhoneGateConfig = { enabled: false, windowMs: Number.POSITIVE_INFINITY, memberThreshold: Number.POSITIVE_INFINITY, }; -type DeferredPhoneGateConfigResult = - | {status: 'ok'; config: DeferredPhoneGateConfig} - | {status: 'disabled'; config: DeferredPhoneGateConfig} - | {status: 'unreadable'; config: DeferredPhoneGateConfig}; +export type DeferredPhoneGateStatus = 'ok' | 'disabled' | 'unreadable'; + +interface DeferredPhoneGateConfigResult { + status: DeferredPhoneGateStatus; + config: DeferredPhoneGateConfig; +} export async function getDeferredPhoneGateConfig(): Promise { try { @@ -64,6 +69,30 @@ export async function deferPhoneFlagsUntilCommunityJoin(flagBits: number): Promi return flagBits | DEFERRED_PHONE_ON_COMMUNITY_JOIN; } +export function restorePhoneGateDeferral(flagBits: number): number { + return (flagBits | DEFERRED_PHONE_ON_COMMUNITY_JOIN) & ~PHONE_GATE_PROMOTED_FROM_DEFERRAL; +} + +export function canEscapePhoneGate(user: User, gateStatus: DeferredPhoneGateStatus): boolean { + if (gateStatus !== 'ok') { + return false; + } + if (user.hasVerifiedPhone) { + return false; + } + const flagBits = user.suspiciousActivityFlags ?? 0; + if ((flagBits & DEFERRABLE_PHONE_FLAGS) === 0) { + return false; + } + if ((flagBits & NEVER_DEFERRABLE_PHONE_FLAGS) !== 0) { + return false; + } + if ((flagBits & DEFERRED_PHONE_ON_COMMUNITY_JOIN) !== 0) { + return false; + } + return (flagBits & PHONE_GATE_PROMOTED_FROM_DEFERRAL) !== 0; +} + export function guildTriggersPhoneGate(guild: Guild, memberThreshold: number): boolean { return guild.features.has(GuildFeatures.DISCOVERABLE) || guild.memberCount > memberThreshold; } @@ -90,5 +119,9 @@ export function evaluateDeferredPhoneGate( if (now - snowflakeToDate(BigInt(user.id)).getTime() >= config.windowMs) { return {applies: false, reason: 'outside_window'}; } - return {applies: true, flags: (user.suspiciousActivityFlags ?? 0) & ~DEFERRED_PHONE_ON_COMMUNITY_JOIN}; + return { + applies: true, + flags: + ((user.suspiciousActivityFlags ?? 0) & ~DEFERRED_PHONE_ON_COMMUNITY_JOIN) | PHONE_GATE_PROMOTED_FROM_DEFERRAL, + }; } diff --git a/fluxer_api/src/api/user/UserHelpers.test.ts b/fluxer_api/src/api/user/UserHelpers.test.ts index f14bf3cdb..816681c8c 100644 --- a/fluxer_api/src/api/user/UserHelpers.test.ts +++ b/fluxer_api/src/api/user/UserHelpers.test.ts @@ -3,6 +3,7 @@ import { DEFERRED_PHONE_ON_COMMUNITY_JOIN, imposePhoneRequirements, + PHONE_GATE_PROMOTED_FROM_DEFERRAL, PremiumFlags, SuspiciousActivityFlags, UserPremiumTypes, @@ -103,6 +104,41 @@ describe('deferred phone gate marker', () => { expect(imposed & DEFERRED_PHONE_ON_COMMUNITY_JOIN).not.toBe(0); expect(getRequiredActions(createUser({suspiciousActivityFlags: imposed}))).toEqual(['REQUIRE_VERIFIED_EMAIL']); }); + it('revokes escape eligibility once another subsystem imposes the phone requirement directly', () => { + const promoted = SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | PHONE_GATE_PROMOTED_FROM_DEFERRAL; + const imposed = imposePhoneRequirements(promoted, SuspiciousActivityFlags.REQUIRE_REVERIFIED_PHONE); + expect(imposed & PHONE_GATE_PROMOTED_FROM_DEFERRAL).toBe(0); + expect(imposed & DEFERRED_PHONE_ON_COMMUNITY_JOIN).toBe(0); + expect(getRequiredActions(createUser({suspiciousActivityFlags: imposed}))).toEqual(['REQUIRE_REVERIFIED_PHONE']); + }); + it('keeps escape eligibility when a non-phone requirement is imposed', () => { + const promoted = SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | PHONE_GATE_PROMOTED_FROM_DEFERRAL; + const imposed = imposePhoneRequirements(promoted, SuspiciousActivityFlags.REQUIRE_VERIFIED_EMAIL); + expect(imposed & PHONE_GATE_PROMOTED_FROM_DEFERRAL).not.toBe(0); + expect(getRequiredActions(createUser({suspiciousActivityFlags: imposed}))).toEqual([ + 'REQUIRE_VERIFIED_EMAIL', + 'REQUIRE_VERIFIED_PHONE', + ]); + }); + it('keeps both bookkeeping bits when a non-phone requirement is imposed on a still-deferred account', () => { + const deferred = + SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | + DEFERRED_PHONE_ON_COMMUNITY_JOIN | + PHONE_GATE_PROMOTED_FROM_DEFERRAL; + const imposed = imposePhoneRequirements(deferred, SuspiciousActivityFlags.REQUIRE_VERIFIED_EMAIL); + expect(imposed & DEFERRED_PHONE_ON_COMMUNITY_JOIN).not.toBe(0); + expect(imposed & PHONE_GATE_PROMOTED_FROM_DEFERRAL).not.toBe(0); + }); + it('never turns the promotion bit into a requirement or an enforceable flag of its own', () => { + const promotedOnly = createUser({suspiciousActivityFlags: PHONE_GATE_PROMOTED_FROM_DEFERRAL}); + expect(getRequiredActions(promotedOnly)).toEqual([]); + expect(getEffectiveSuspiciousFlags(promotedOnly)).toBe(0); + const promoted = createUser({ + suspiciousActivityFlags: SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | PHONE_GATE_PROMOTED_FROM_DEFERRAL, + }); + expect(getRequiredActions(promoted)).toEqual(['REQUIRE_VERIFIED_PHONE']); + expect(getEffectiveSuspiciousFlags(promoted)).toBe(SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE); + }); it('yields no enforceable requirement for an account without an email, so the gate must not promote it', () => { const user = createUser({ email: null, diff --git a/fluxer_api/src/api/user/controllers/UserAccountController.ts b/fluxer_api/src/api/user/controllers/UserAccountController.ts index 5232b1d2f..d14cf209a 100644 --- a/fluxer_api/src/api/user/controllers/UserAccountController.ts +++ b/fluxer_api/src/api/user/controllers/UserAccountController.ts @@ -46,6 +46,7 @@ import { PasswordChangeCompleteResponse, PasswordChangeStartResponse, PasswordChangeVerifyResponse, + PhoneGateEscapePreviewResponse, PreloadMessagesResponse, PushSubscribeResponse, PushSubscriptionsListResponse, @@ -1174,6 +1175,55 @@ export function UserAccountController(app: HonoApp) { return ctx.body(null, 202); }, ); + app.get( + '/users/@me/required-actions/phone-gate-escape', + RateLimitMiddleware(RateLimitConfigs.USER_PHONE_GATE_ESCAPE_PREVIEW), + LoginRequiredAllowSuspicious, + DefaultUserOnly, + OpenAPI({ + operationId: 'get_phone_gate_escape', + summary: 'Preview setting the deferred phone check aside', + responseSchema: PhoneGateEscapePreviewResponse, + statusCode: 200, + security: ['bearerToken', 'sessionToken'], + tags: ['Users'], + description: + 'Reports whether this account can set a deferred phone verification requirement aside, and which communities would be left if it did. Returns available false with empty lists for any account outside that state.', + }), + async (ctx) => { + const {available, guilds, ownedGuilds} = await ctx + .get('userService') + .accountService.lifecycleService.previewPhoneGateEscape(ctx.get('user').id); + return ctx.json({ + available, + guilds: guilds.map((guild) => ({id: guild.id.toString(), name: guild.name})), + owned_guilds: ownedGuilds.map((guild) => ({id: guild.id.toString(), name: guild.name})), + }); + }, + ); + app.post( + '/users/@me/required-actions/phone-gate-escape', + RateLimitMiddleware(RateLimitConfigs.USER_PHONE_GATE_ESCAPE), + LoginRequiredAllowSuspicious, + DefaultUserOnly, + Validator('json', EmptyBodyRequest), + OpenAPI({ + operationId: 'execute_phone_gate_escape', + summary: 'Set the deferred phone check aside', + responseSchema: UserPrivateResponse, + statusCode: 200, + security: ['bearerToken', 'sessionToken'], + tags: ['Users'], + description: + 'Leaves the communities that trigger the deferred phone verification check and restores the deferral, so the account works normally again. Communities the user owns are kept, and a run that hits the per-call community limit leaves what it can and can be repeated. Returns the updated private user object.', + }), + async (ctx) => { + const {user} = await ctx + .get('userService') + .accountService.lifecycleService.executePhoneGateEscape(ctx.get('user').id); + return ctx.json(mapUserToPrivateResponse(user)); + }, + ); app.post( '/users/@me/terms-acceptance', RateLimitMiddleware(RateLimitConfigs.USER_UPDATE_SELF), diff --git a/fluxer_api/src/api/user/services/UserAccountLifecycleService.ts b/fluxer_api/src/api/user/services/UserAccountLifecycleService.ts index 6203d8c9d..1819a873b 100644 --- a/fluxer_api/src/api/user/services/UserAccountLifecycleService.ts +++ b/fluxer_api/src/api/user/services/UserAccountLifecycleService.ts @@ -1,9 +1,12 @@ // SPDX-License-Identifier: AGPL-3.0-or-later import {DeletionReasons} from '@fluxer/constants/src/Core'; -import {UserFlags} from '@fluxer/constants/src/UserConstants'; +import {DEFERRABLE_PHONE_FLAGS, DEFERRED_PHONE_ON_COMMUNITY_JOIN, UserFlags} from '@fluxer/constants/src/UserConstants'; +import {UnknownGuildMemberError} from '@fluxer/errors/src/domains/guild/UnknownGuildMemberError'; import {UserOwnsGuildsError} from '@fluxer/errors/src/domains/guild/UserOwnsGuildsError'; +import {PhoneGateEscapeUnavailableError} from '@fluxer/errors/src/domains/user/PhoneGateEscapeUnavailableError'; import {UnknownUserError} from '@fluxer/errors/src/domains/user/UnknownUserError'; +import {snowflakeToDate} from '@fluxer/snowflake/src/Snowflake'; import type {IEmailService} from '@pkgs/email/src/IEmailService'; import {ms} from 'itty-time'; import type {ApiContext} from '../../ApiContext'; @@ -11,21 +14,57 @@ import * as AuthSession from '../../auth/AuthSession'; import type {UserID} from '../../BrandedTypes'; import {Config} from '../../Config'; import type {IGuildRepositoryAggregate} from '../../guild/repositories/IGuildRepositoryAggregate'; +import type {GuildService} from '../../guild/services/GuildService'; import type {KVAccountDeletionQueueService} from '../../infrastructure/KVAccountDeletionQueueService'; +import {Logger} from '../../Logger'; +import type {Guild} from '../../models/Guild'; +import type {User} from '../../models/User'; +import { + canEscapePhoneGate, + type DeferredPhoneGateStatus, + getDeferredPhoneGateConfig, + guildTriggersPhoneGate, + PHONE_GATE_ESCAPE_MAX_GUILDS, + restorePhoneGateDeferral, +} from '../../risk/DeferredPhoneGate'; import type {IUserAccountRepository} from '../repositories/IUserAccountRepository'; +import {getEffectiveSuspiciousFlags} from '../UserHelpers'; import {hasPartialUserFieldsChanged} from '../UserMappers'; import {reschedulePendingDeletion} from './PendingDeletionCoordinator'; import type {UserAccountUpdatePropagator} from './UserAccountUpdatePropagator'; +const WRITE_RESTORED_DEFERRAL_ATTEMPTS = 3; + interface UserAccountLifecycleServiceDeps { apiContext: ApiContext; userAccountRepository: IUserAccountRepository; guildRepository: IGuildRepositoryAggregate; + guildService: GuildService; emailService: IEmailService; updatePropagator: UserAccountUpdatePropagator; kvDeletionQueue: KVAccountDeletionQueueService; } +interface PhoneGateEscapePlan { + available: boolean; + leavable: Array; + owned: Array; + gateStatus: DeferredPhoneGateStatus; + threshold: number; + refusedReason: 'ineligible' | 'not_locked' | null; +} + +interface PhoneGateEscapePreview { + available: boolean; + guilds: Array; + ownedGuilds: Array; +} + +interface PhoneGateEscapeResult { + user: User; + remainingGuildCount: number; +} + export class UserAccountLifecycleService { constructor(private readonly deps: UserAccountLifecycleServiceDeps) {} @@ -94,4 +133,151 @@ export class UserAccountLifecycleService { } } } + + private async buildPhoneGateEscapePlan(user: User): Promise { + const {status, config} = await getDeferredPhoneGateConfig(); + const refused = { + available: false, + leavable: [], + owned: [], + gateStatus: status, + threshold: config.memberThreshold, + }; + if (!canEscapePhoneGate(user, status)) { + return {...refused, refusedReason: 'ineligible'}; + } + if (getEffectiveSuspiciousFlags(user) === 0) { + return {...refused, refusedReason: 'not_locked'}; + } + const guilds = await this.deps.guildRepository.listUserGuilds(user.id); + const qualifying = guilds.filter((guild) => guildTriggersPhoneGate(guild, config.memberThreshold)); + return { + available: true, + leavable: qualifying.filter((guild) => guild.ownerId !== user.id), + owned: qualifying.filter((guild) => guild.ownerId === user.id), + gateStatus: status, + threshold: config.memberThreshold, + refusedReason: null, + }; + } + + async previewPhoneGateEscape(userId: UserID): Promise { + const user = await this.deps.userAccountRepository.findUnique(userId); + if (!user) { + throw new UnknownUserError(); + } + const plan = await this.buildPhoneGateEscapePlan(user); + Logger.debug( + { + userId: userId.toString(), + available: plan.available, + refusedReason: plan.refusedReason, + gateStatus: plan.gateStatus, + qualifyingCount: plan.leavable.length + plan.owned.length, + }, + 'deferred_phone_gate.escape_previewed', + ); + return {available: plan.available, guilds: plan.leavable, ownedGuilds: plan.owned}; + } + + async executePhoneGateEscape(userId: UserID): Promise { + const startedAt = Date.now(); + const user = await this.deps.userAccountRepository.findUnique(userId); + if (!user) { + throw new UnknownUserError(); + } + const plan = await this.buildPhoneGateEscapePlan(user); + const baseContext = { + userId: userId.toString(), + accountAgeMs: Date.now() - snowflakeToDate(BigInt(user.id)).getTime(), + gateStatus: plan.gateStatus, + threshold: plan.threshold, + }; + if (!plan.available) { + Logger.info({...baseContext, reason: plan.refusedReason}, 'deferred_phone_gate.escape_refused'); + throw new PhoneGateEscapeUnavailableError(); + } + const batch = plan.leavable.slice(0, PHONE_GATE_ESCAPE_MAX_GUILDS); + const remainingGuildCount = plan.leavable.length - batch.length; + const leftGuildIds: Array = []; + const skippedGuildIds: Array = []; + for (const guild of batch) { + try { + await this.deps.guildService.members.leaveGuild({userId: user.id, guildId: guild.id}); + leftGuildIds.push(guild.id.toString()); + } catch (error) { + if (error instanceof UnknownGuildMemberError) { + skippedGuildIds.push(guild.id.toString()); + continue; + } + Logger.warn( + { + ...baseContext, + leftGuildIds, + skippedGuildIds, + unattemptedCount: batch.length - leftGuildIds.length - skippedGuildIds.length, + error, + }, + 'deferred_phone_gate.escape_failed', + ); + throw error; + } + } + if (remainingGuildCount > 0) { + Logger.info( + {...baseContext, leftGuildIds, skippedGuildIds, remainingGuildCount}, + 'deferred_phone_gate.escape_batch_completed', + ); + return {user, remainingGuildCount}; + } + const updated = await this.writeRestoredDeferral(userId); + if ((getEffectiveSuspiciousFlags(updated) & DEFERRABLE_PHONE_FLAGS) !== 0) { + Logger.warn( + {...baseContext, flagsAfter: updated.suspiciousActivityFlags ?? 0}, + 'deferred_phone_gate.escape_ineffective', + ); + } + try { + await this.deps.updatePropagator.dispatchUserUpdate(updated); + } catch (error) { + Logger.warn({...baseContext, error}, 'deferred_phone_gate.escape_dispatch_failed'); + } + Logger.info( + { + ...baseContext, + leftGuildIds, + skippedGuildIds, + keptOwnedGuildIds: plan.owned.map((guild) => guild.id.toString()), + flagsBefore: user.suspiciousActivityFlags ?? 0, + flagsAfter: updated.suspiciousActivityFlags ?? 0, + durationMs: Date.now() - startedAt, + }, + 'deferred_phone_gate.escaped', + ); + return {user: updated, remainingGuildCount: 0}; + } + + private async writeRestoredDeferral(userId: UserID): Promise { + for (let attempt = 0; attempt < WRITE_RESTORED_DEFERRAL_ATTEMPTS; attempt++) { + const current = await this.deps.userAccountRepository.findUnique(userId); + if (!current) { + throw new UnknownUserError(); + } + if (((current.suspiciousActivityFlags ?? 0) & DEFERRED_PHONE_ON_COMMUNITY_JOIN) !== 0) { + return current; + } + try { + return await this.deps.userAccountRepository.patchUpsert( + current.id, + {suspicious_activity_flags: restorePhoneGateDeferral(current.suspiciousActivityFlags ?? 0)}, + current.toRow(), + ); + } catch (error) { + if (attempt === WRITE_RESTORED_DEFERRAL_ATTEMPTS - 1) { + throw error; + } + } + } + throw new UnknownUserError(); + } } diff --git a/fluxer_api/src/api/user/services/UserAccountService.ts b/fluxer_api/src/api/user/services/UserAccountService.ts index 8c7d5257d..0a3580fd0 100644 --- a/fluxer_api/src/api/user/services/UserAccountService.ts +++ b/fluxer_api/src/api/user/services/UserAccountService.ts @@ -131,6 +131,7 @@ export class UserAccountService { apiContext: this.apiContext, userAccountRepository, guildRepository, + guildService, emailService, updatePropagator: this.updatePropagator, kvDeletionQueue, diff --git a/fluxer_app/src/features/app/constants/Endpoints.ts b/fluxer_app/src/features/app/constants/Endpoints.ts index 36104239d..8596e91a9 100644 --- a/fluxer_app/src/features/app/constants/Endpoints.ts +++ b/fluxer_app/src/features/app/constants/Endpoints.ts @@ -173,6 +173,7 @@ export const Endpoints = { USER_PHONE_SEND_VERIFICATION: '/users/@me/phone/send-verification', USER_PHONE_INBOUND_CHALLENGE: '/users/@me/phone/inbound-challenge', USER_PHONE_VERIFY: '/users/@me/phone/verify', + USER_REQUIRED_ACTION_PHONE_GATE_ESCAPE: '/users/@me/required-actions/phone-gate-escape', USER_EMAIL_CHANGE_START: '/users/@me/email-change/start', USER_EMAIL_CHANGE_RESEND_ORIGINAL: '/users/@me/email-change/resend-original', USER_EMAIL_CHANGE_VERIFY_ORIGINAL: '/users/@me/email-change/verify-original', diff --git a/fluxer_app/src/features/auth/components/modals/RequiredActionModal.module.css b/fluxer_app/src/features/auth/components/modals/RequiredActionModal.module.css index 4278ec05e..ad521632f 100644 --- a/fluxer_app/src/features/auth/components/modals/RequiredActionModal.module.css +++ b/fluxer_app/src/features/auth/components/modals/RequiredActionModal.module.css @@ -124,6 +124,34 @@ line-height: 1.125rem; } +.altRoutesTitle { + margin: 0 0 0.375rem; + font-size: 0.875rem; + line-height: 1.25rem; + font-weight: 600; + color: var(--text-primary); +} + +.altRoutesBody { + margin: 0 0 0.5rem; +} + +.altRoutesDivider { + height: 0.0625rem; + margin: 0.75rem 0; + background-color: var(--background-header-secondary); +} + +.altRoutesAction { + margin-top: 0.5rem; +} + +.escapeConfirmLines { + display: flex; + flex-direction: column; + gap: 0.5rem; +} + .signOutRow { display: flex; align-items: center; diff --git a/fluxer_app/src/features/auth/components/modals/RequiredActionModal.tsx b/fluxer_app/src/features/auth/components/modals/RequiredActionModal.tsx index ee05b3ee8..6505c8af5 100644 --- a/fluxer_app/src/features/auth/components/modals/RequiredActionModal.tsx +++ b/fluxer_app/src/features/auth/components/modals/RequiredActionModal.tsx @@ -1,7 +1,8 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +import {ConfirmModal} from '@app/features/app/components/dialogs/ConfirmModal'; import * as Modal from '@app/features/app/components/dialogs/Modal'; -import {PRODUCT_NAME} from '@app/features/app/config/I18nDisplayConstants'; +import {PRODUCT_NAME, SUPPORT_EMAIL} from '@app/features/app/config/I18nDisplayConstants'; import * as AuthenticationCommands from '@app/features/auth/commands/AuthenticationCommands'; import { type RequiredActionFlow, @@ -14,6 +15,11 @@ import { CHOOSE_METHOD_DESCRIPTION_DESCRIPTOR, CHOOSE_METHOD_TITLE_DESCRIPTOR, CONTINUE_DESCRIPTOR, + ESCAPE_FAILED_NOTHING_CHANGED_DESCRIPTOR, + ESCAPE_FAILED_PARTIAL_DESCRIPTOR, + ESCAPE_SUCCESS_EMAIL_REMAINS_TOAST_DESCRIPTOR, + ESCAPE_SUCCESS_TOAST_DESCRIPTOR, + ESCAPE_UNAVAILABLE_DESCRIPTOR, GET_NEW_CODE_DESCRIPTOR, NEXT_DESCRIPTOR, RESEND_EMAIL_DESCRIPTOR, @@ -37,6 +43,7 @@ import { NewEmailStep, useEmailVerification, } from '@app/features/auth/components/modals/required_action/RequiredActionEmail'; +import {buildPhoneGateEscapeConfirmCopy} from '@app/features/auth/components/modals/required_action/RequiredActionEscapeCopy'; import { InboundPhoneInstructionStep, InboundPhoneStartStep, @@ -46,6 +53,7 @@ import { } from '@app/features/auth/components/modals/required_action/RequiredActionPhone'; import { BackButton, + RequiredActionAltRoutes, RequiredActionBackdrop, resolveRequiredActionErrorMessage, SignOutFooterRow, @@ -57,11 +65,16 @@ import type { PhoneScreen, } from '@app/features/auth/components/modals/required_action/RequiredActionTypes'; import DeveloperOptions from '@app/features/devtools/state/DeveloperOptions'; -import {VERIFY_DESCRIPTOR} from '@app/features/i18n/utils/CommonMessageDescriptors'; +import {CANCEL_DESCRIPTOR, VERIFY_DESCRIPTOR} from '@app/features/i18n/utils/CommonMessageDescriptors'; +import {failureCode} from '@app/features/platform/utils/ResponseInspection'; import {Button} from '@app/features/ui/button/Button'; import * as ModalCommands from '@app/features/ui/commands/ModalCommands'; +import * as ToastCommands from '@app/features/ui/commands/ToastCommands'; import {SteppedCarousel} from '@app/features/ui/stepped_carousel/SteppedCarousel'; +import * as UserCommands from '@app/features/user/commands/UserCommands'; import Users from '@app/features/user/state/Users'; +import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes'; +import type {PhoneGateEscapePreviewResponse} from '@fluxer/schema/src/domains/user/UserResponseSchemas'; import type {MessageDescriptor} from '@lingui/core'; import {useLingui} from '@lingui/react/macro'; import {observer} from 'mobx-react-lite'; @@ -188,6 +201,8 @@ const RequiredActionModal: React.FC<{mock?: boolean}> = observer(({mock = false} const [history, setHistory] = useState>([]); const [carouselDirection, setCarouselDirection] = useState(1); const [actionError, setActionError] = useState(null); + const [escapePreview, setEscapePreview] = useState(null); + const [escapeSubmitting, setEscapeSubmitting] = useState(false); const viewRef = useRef(view); const isEmailBounced = !mock && !!user?.emailBounced; const mockFlow = mock ? buildMockRequiredActionFlow() : null; @@ -219,6 +234,27 @@ const RequiredActionModal: React.FC<{mock?: boolean}> = observer(({mock = false} const requiresInboundPhone = effectiveFlow?.phone?.requiresInboundPhone ?? false; const canSelfServeEmailRecovery = !mock && !isEmailBounced && user?.verified !== true; const canUsePhoneRecovery = hasPhoneVerification; + useEffect(() => { + if (mock) { + setEscapePreview({available: true, guilds: [], owned_guilds: []}); + return; + } + if (!hasPhoneVerification) { + setEscapePreview(null); + return; + } + let cancelled = false; + void UserCommands.getPhoneGateEscapePreview() + .then((preview) => { + if (!cancelled) setEscapePreview(preview); + }) + .catch(() => { + if (!cancelled) setEscapePreview(null); + }); + return () => { + cancelled = true; + }; + }, [mock, hasPhoneVerification, flowKey]); const goTo = useCallback((nextView: RequiredActionView) => { setCarouselDirection(1); setActionError(null); @@ -348,6 +384,71 @@ const RequiredActionModal: React.FC<{mock?: boolean}> = observer(({mock = false} }, [i18n], ); + const handleEscape = useCallback(async () => { + const hadGuildsToLeave = (escapePreview?.guilds.length ?? 0) > 0; + setActionError(null); + setEscapeSubmitting(true); + try { + const updated = await UserCommands.executePhoneGateEscape(); + Users.handleUserUpdate(updated, {clearMissingOptionalFields: true}); + const remaining = updated.required_actions; + const phoneRemains = remaining.some((action) => action.includes('PHONE')); + if (phoneRemains) { + setActionError(i18n._(ESCAPE_UNAVAILABLE_DESCRIPTOR, {supportEmail: SUPPORT_EMAIL})); + return; + } + ToastCommands.success( + remaining.length === 0 + ? i18n._(ESCAPE_SUCCESS_TOAST_DESCRIPTOR) + : i18n._(ESCAPE_SUCCESS_EMAIL_REMAINS_TOAST_DESCRIPTOR), + ); + } catch (error) { + if (failureCode(error) === APIErrorCodes.PHONE_GATE_ESCAPE_UNAVAILABLE) { + setActionError(i18n._(ESCAPE_UNAVAILABLE_DESCRIPTOR, {supportEmail: SUPPORT_EMAIL})); + } else if (hadGuildsToLeave) { + setActionError(i18n._(ESCAPE_FAILED_PARTIAL_DESCRIPTOR)); + } else { + setActionError(i18n._(ESCAPE_FAILED_NOTHING_CHANGED_DESCRIPTOR)); + } + void UserCommands.getPhoneGateEscapePreview() + .then(setEscapePreview) + .catch(() => undefined); + } finally { + setEscapeSubmitting(false); + } + }, [escapePreview, i18n]); + const handleEscapePress = useCallback(() => { + if (!escapePreview?.available) return; + const copy = buildPhoneGateEscapeConfirmCopy(i18n, { + guildNames: escapePreview.guilds.map((guild) => guild.name), + ownedGuildNames: escapePreview.owned_guilds.map((guild) => guild.name), + emailStepRemains: hasEmailVerification, + }); + ModalCommands.push( + ModalCommands.modal(() => ( + + {copy.bodyLines.map((line) => ( +

+ {line} +

+ ))} + + } + primaryText={copy.primaryText} + primaryVariant={copy.primaryVariant} + secondaryText={i18n._(CANCEL_DESCRIPTOR)} + onPrimary={handleEscape} + data-flx="auth.required-action-modal.escape-confirm.confirm-modal" + /> + )), + ); + }, [escapePreview, hasEmailVerification, handleEscape, i18n]); + const escapeAction = escapePreview?.available + ? {guildCount: escapePreview.guilds.length, submitting: escapeSubmitting, onPress: handleEscapePress} + : null; const activeInboundChallenge: ActiveInboundChallenge | null = phoneVerification.screen.kind === 'phone-inbound-challenge' ? { @@ -368,6 +469,14 @@ const RequiredActionModal: React.FC<{mock?: boolean}> = observer(({mock = false} + ) : undefined + } data-flx="auth.required-action-modal.render-view.step-shell" /> ); @@ -804,6 +913,14 @@ const RequiredActionModal: React.FC<{mock?: boolean}> = observer(({mock = false} {actionError} ) : null} + {hasPhoneVerification && view.kind !== 'intro' ? ( +
+ +
+ ) : null} { + const descriptor = (value: unknown): unknown => (typeof value === 'string' ? {message: value} : value); + return {msg: descriptor, t: descriptor, plural: () => '', select: () => '', selectOrdinal: () => ''}; +}); + +vi.mock('@app/features/app/config/Config', () => ({ + default: { + PUBLIC_BUILD_VERSION: 'test', + PUBLIC_RELEASE_CHANNEL: 'canary', + PUBLIC_BOOTSTRAP_API_ENDPOINT: 'https://example.invalid', + PUBLIC_BOOTSTRAP_API_PUBLIC_ENDPOINT: 'https://example.invalid', + }, +})); + +const {buildPhoneGateEscapeConfirmCopy, buildPhoneGateEscapeHint} = await import('./RequiredActionEscapeCopy'); + +const i18n = setupI18n({locale: 'en', messages: {en: {}}}); + +function confirmCopy(overrides: Partial[1]> = {}) { + return buildPhoneGateEscapeConfirmCopy(i18n, { + guildNames: [], + ownedGuildNames: [], + emailStepRemains: false, + ...overrides, + }); +} + +describe('buildPhoneGateEscapeHint', () => { + it('promises no removal when the user is in no community the check applies to', () => { + const hint = buildPhoneGateEscapeHint(i18n, 0); + expect(hint).toContain('nothing is removed'); + expect(hint).not.toContain('leave'); + }); + + it('counts the communities that will be left', () => { + expect(buildPhoneGateEscapeHint(i18n, 1)).toContain('1 community'); + expect(buildPhoneGateEscapeHint(i18n, 4)).toContain('4 communities'); + }); +}); + +describe('buildPhoneGateEscapeConfirmCopy', () => { + it('never mentions leaving when nothing will be left', () => { + const copy = confirmCopy(); + expect(copy.title).toBe('Set this check aside?'); + expect(copy.primaryText).toBe('Set this check aside'); + expect(copy.primaryVariant).toBe('primary'); + expect(copy.bodyLines).toHaveLength(2); + for (const line of copy.bodyLines) { + expect(line).not.toContain('leave'); + expect(line).not.toContain('join'); + } + }); + + it('uses the singular form and the destructive style for a single community', () => { + const copy = confirmCopy({guildNames: ['Cat Fans']}); + expect(copy.title).toBe('Leave 1 community and set this check aside?'); + expect(copy.primaryText).toBe('Leave and set aside'); + expect(copy.primaryVariant).toBe('danger'); + expect(copy.bodyLines[1]).toContain('You will leave Cat Fans.'); + }); + + it('names every community that will be left', () => { + const copy = confirmCopy({guildNames: ['Cat Fans', 'Dog Fans', 'Bird Fans']}); + expect(copy.title).toBe('Leave 3 communities and set this check aside?'); + expect(copy.bodyLines[1]).toContain('You will leave Cat Fans, Dog Fans, Bird Fans.'); + }); + + it('explains kept communities without claiming anything is left', () => { + const copy = confirmCopy({ownedGuildNames: ['My Server']}); + expect(copy.title).toBe('Set this check aside?'); + expect(copy.primaryVariant).toBe('primary'); + expect(copy.bodyLines[1]).toBe( + 'You stay in My Server. Owners cannot leave their own community.', + ); + }); + + it('states the leave line before the ownership line', () => { + const copy = confirmCopy({guildNames: ['Cat Fans'], ownedGuildNames: ['My Server', 'My Other Server']}); + expect(copy.bodyLines[1]).toContain('You will leave Cat Fans.'); + expect(copy.bodyLines[2]).toBe( + 'You stay in My Server, My Other Server. Owners cannot leave their own community.', + ); + }); + + it('warns about the remaining email step before the support line, which is always last', () => { + const copy = confirmCopy({emailStepRemains: true}); + expect(copy.bodyLines.at(-2)).toBe('You will still need to finish the email step.'); + expect(copy.bodyLines.at(-1)).toBe('You can still email support@fluxer.app for a human review at any time.'); + expect(confirmCopy().bodyLines.at(-1)).toBe( + 'You can still email support@fluxer.app for a human review at any time.', + ); + }); +}); diff --git a/fluxer_app/src/features/auth/components/modals/required_action/RequiredActionEscapeCopy.ts b/fluxer_app/src/features/auth/components/modals/required_action/RequiredActionEscapeCopy.ts new file mode 100644 index 000000000..5edb04075 --- /dev/null +++ b/fluxer_app/src/features/auth/components/modals/required_action/RequiredActionEscapeCopy.ts @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {SUPPORT_EMAIL} from '@app/features/app/config/I18nDisplayConstants'; +import { + ESCAPE_CONFIRM_EMAIL_REMAINS_DESCRIPTOR, + ESCAPE_CONFIRM_LEAVE_DESCRIPTOR, + ESCAPE_CONFIRM_OUTCOME_DESCRIPTOR, + ESCAPE_CONFIRM_OWNED_DESCRIPTOR, + ESCAPE_CONFIRM_PRIMARY_NO_GUILDS_DESCRIPTOR, + ESCAPE_CONFIRM_PRIMARY_WITH_GUILDS_DESCRIPTOR, + ESCAPE_CONFIRM_SUPPORT_DESCRIPTOR, + ESCAPE_CONFIRM_TITLE_NO_GUILDS_DESCRIPTOR, + ESCAPE_CONFIRM_TITLE_WITH_GUILDS_DESCRIPTOR, + ESCAPE_HINT_NO_GUILDS_DESCRIPTOR, + ESCAPE_HINT_WITH_GUILDS_DESCRIPTOR, +} from '@app/features/auth/components/modals/required_action/RequiredActionDescriptors'; +import type {I18n} from '@lingui/core'; + +export interface PhoneGateEscapePlan { + guildNames: ReadonlyArray; + ownedGuildNames: ReadonlyArray; + emailStepRemains: boolean; +} + +export interface PhoneGateEscapeConfirmCopy { + title: string; + bodyLines: ReadonlyArray; + primaryText: string; + primaryVariant: 'primary' | 'danger'; +} + +export function buildPhoneGateEscapeHint(i18n: I18n, guildCount: number): string { + return guildCount === 0 + ? i18n._(ESCAPE_HINT_NO_GUILDS_DESCRIPTOR) + : i18n._(ESCAPE_HINT_WITH_GUILDS_DESCRIPTOR, {count: guildCount}); +} + +export function buildPhoneGateEscapeConfirmCopy(i18n: I18n, plan: PhoneGateEscapePlan): PhoneGateEscapeConfirmCopy { + const leaving = plan.guildNames.length > 0; + const bodyLines: Array = [i18n._(ESCAPE_CONFIRM_OUTCOME_DESCRIPTOR)]; + if (leaving) { + bodyLines.push(i18n._(ESCAPE_CONFIRM_LEAVE_DESCRIPTOR, {guildNames: plan.guildNames.join(', ')})); + } + if (plan.ownedGuildNames.length > 0) { + bodyLines.push( + i18n._(ESCAPE_CONFIRM_OWNED_DESCRIPTOR, {ownedNames: plan.ownedGuildNames.join(', ')}), + ); + } + if (plan.emailStepRemains) { + bodyLines.push(i18n._(ESCAPE_CONFIRM_EMAIL_REMAINS_DESCRIPTOR)); + } + bodyLines.push(i18n._(ESCAPE_CONFIRM_SUPPORT_DESCRIPTOR, {supportEmail: SUPPORT_EMAIL})); + return { + title: leaving + ? i18n._(ESCAPE_CONFIRM_TITLE_WITH_GUILDS_DESCRIPTOR, {count: plan.guildNames.length}) + : i18n._(ESCAPE_CONFIRM_TITLE_NO_GUILDS_DESCRIPTOR), + bodyLines, + primaryText: leaving + ? i18n._(ESCAPE_CONFIRM_PRIMARY_WITH_GUILDS_DESCRIPTOR) + : i18n._(ESCAPE_CONFIRM_PRIMARY_NO_GUILDS_DESCRIPTOR), + primaryVariant: leaving ? 'danger' : 'primary', + }; +} diff --git a/fluxer_app/src/features/auth/components/modals/required_action/RequiredActionShared.tsx b/fluxer_app/src/features/auth/components/modals/required_action/RequiredActionShared.tsx index f1c8bb9f6..0a4d1cff8 100644 --- a/fluxer_app/src/features/auth/components/modals/required_action/RequiredActionShared.tsx +++ b/fluxer_app/src/features/auth/components/modals/required_action/RequiredActionShared.tsx @@ -7,6 +7,8 @@ import {EXAMPLE_EMAIL, SUPPORT_EMAIL, SUPPORT_EMAIL_MAILTO} from '@app/features/ import styles from '@app/features/auth/components/modals/RequiredActionModal.module.css'; import { A_NEW_VERIFICATION_CODE_HAS_BEEN_SENT_DESCRIPTOR, + ALT_ROUTES_HUMAN_REVIEW_DESCRIPTOR, + ALT_ROUTES_TITLE_DESCRIPTOR, CAPTCHA_REQUIRED_DESCRIPTOR, CODE_DID_NOT_WORK_DESCRIPTOR, CODE_EXPIRED_DESCRIPTOR, @@ -16,6 +18,7 @@ import { EMAIL_MUST_BE_DIFFERENT_DESCRIPTOR, ENTER_VALID_EMAIL_DESCRIPTOR, ENTER_VALID_PHONE_DESCRIPTOR, + ESCAPE_BUTTON_DESCRIPTOR, FAILED_TO_RESEND_VERIFICATION_CODE_PLEASE_TRY_AGAIN_DESCRIPTOR, NEW_EMAIL_DESCRIPTOR, PHONE_ALREADY_USED_DESCRIPTOR, @@ -27,6 +30,7 @@ import { TOO_MANY_ATTEMPTS_DESCRIPTOR, VERIFICATION_SESSION_EXPIRED_DESCRIPTOR, } from '@app/features/auth/components/modals/required_action/RequiredActionDescriptors'; +import {buildPhoneGateEscapeHint} from '@app/features/auth/components/modals/required_action/RequiredActionEscapeCopy'; import type { CodeFormInputs, NewEmailFormInputs, @@ -278,6 +282,53 @@ export const SupportLinkLine: React.FC = () => { ); }; +interface RequiredActionAltRoutesProps { + escapeAction: { + guildCount: number; + submitting: boolean; + onPress: () => void; + } | null; +} + +export const RequiredActionAltRoutes: React.FC = ({escapeAction}) => { + const {i18n} = useLingui(); + return ( +
+

+ {i18n._(ALT_ROUTES_TITLE_DESCRIPTOR)} +

+

+ {i18n._(ALT_ROUTES_HUMAN_REVIEW_DESCRIPTOR)} +

+
+ +
+ {escapeAction ? ( + <> +
+

+ {buildPhoneGateEscapeHint(i18n, escapeAction.guildCount)} +

+ + + ) : null} +
+ ); +}; + interface NewEmailAddressFormProps { form: UseFormReturn; onSubmit: SubmitCallback; diff --git a/fluxer_app/src/features/i18n/locales/ar/messages.po b/fluxer_app/src/features/i18n/locales/ar/messages.po index afb7bfcd0..a5f59db46 100644 --- a/fluxer_app/src/features/i18n/locales/ar/messages.po +++ b/fluxer_app/src/features/i18n/locales/ar/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 أيام" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "يلزم إجراء فحص للمتصفح قبل التحقق من رقم الهاتف. حاول مرة أخرى من صفحة تسجيل الدخول أو اتصل بالدعم." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "إضافة كلمة…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "أضف بريدًا إلكترونيًا فعالًا" @@ -7390,7 +7390,7 @@ msgstr "سمة الفحم" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "البريد الإلكتروني غير متاح" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "تحديث البريد الإلكتروني غير متاح حاليًا. حاول مرة أخرى لاحقًا أو اتصل بالدعم." @@ -12375,6 +12375,11 @@ msgstr "تحديث البريد الإلكتروني غير متاح حاليً msgid "Email update required" msgstr "تحديث البريد الإلكتروني مطلوب" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "راسلنا عبر البريد الإلكتروني وسيقوم شخص بمراجعة حسابك. أخبرنا أنك لا تستطيع التحقق عبر الرسائل القصيرة وسنتولى الأمر. الردود تأتي عبر البريد الإلكتروني، لذا فهذه العملية ليست فورية." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "أدخل عنوان URL أو رمز قالب {theOtherPlatform} صالح #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "أدخل عنوان بريد إلكتروني صالحًا." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "أدخل رابط رسالة صالحًا." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "أدخل رقم هاتف جوال صالحًا." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "أدخل اسم مستخدم صالحًا ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "أدخل بريدًا إلكترونيًا يمكنك فتحه. سنرسل رمزًا إلى هناك." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "أدخل رمز الهدية…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "أدخل بريدًا إلكترونيًا جديدًا" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "أدخل الرمز المكون من {digitCount} أرقام من تطبيق المصادقة الخاص بك." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "أدخل الرمز المكون من {digitCount} أرقام الذي تم إرساله إلى {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "أدخل الرمز من تطبيق المصادقة الخاص بك." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "أدخل الرمز الذي تم إرساله إلى {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "أدخل الرمز المكون من {MFA_CODE_DIGIT_COUNT} أرقام الذي تم إرساله إلى {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "أدخل رمز البريد الإلكتروني" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "أدخل رمز PIN الخاص بمفتاح الأمان الخاص بك للمتابعة." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "أدخل رمز الرسالة النصية القصيرة" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "أدخل كلمة المرور الخاصة بك." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "أدخل رقم هاتفك" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "لي أنا" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "لهذا التحقق، سترسل لنا رسالة نصية بدلاً من أن تستقبلها منا." @@ -16437,6 +16442,11 @@ msgstr "إذا كان هذا البلاغ يتعلق برسالة معينة، msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "إذا كان هذا البلاغ يتعلق برسائل محددة، فبلّغ عن الرسالة الأكثر صلة بدلاً من ذلك. بلاغات الرسائل تمنح فريق السلامة لدينا أوضح سياق، وإضافة التفاصيل في التعليقات يمكن أن يساعدنا في مراجعتها بشكل أسرع. لا تتابع الإبلاغ عن المستخدم ككل إلا إذا كان الإبلاغ عن رسالة لن يوضح المشكلة الأوسع." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "إذا لم تتمكن من التحقق عبر الرسائل القصيرة" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "معرفة المزيد" msgid "Leave" msgstr "مغادرة" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "مغادرة {count, plural, one {# مجتمع} other {# مجتمعات}} وترك هذا التحقق جانباً؟" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "مغادرة وترك جانباً" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "افتح متصفحك، سجّل الدخول، ثم أدخل الرمز أدناه لربط حسابك." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "افتح رسائلك" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "افتح تطبيق الرسائل على هاتفك وابدأ رسالة نصية جديدة." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "رقم الهاتف مطلوب" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "خطوة الهاتف" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "التحقق من الهاتف غير متاح لهذا الحساب. استخدم طريقة أخرى أو اتصل بالدعم." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "إعادات النشر" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "اطلب رمزًا جديدًا أولاً." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "أرسل الرمز <0>{0} إلى <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "أرسل الرمز إلى رقم الهاتف أدناه." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "أرسل هذا الرمز" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "هل تريد إرجاع هذه الرسالة المثبتة بالزمن؟" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "إرسال إلى" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "الإرسال:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "إرسال رسالة نصية قصيرة إلى هذا الرقم مكلف، لذا نحتاج منك أن ترسل لنا رسالة نصية بدلاً من ذلك." @@ -28311,6 +28331,18 @@ msgstr "تعيين حد المستخدمين إلى {0}." msgid "Set the vanity URL to {0}." msgstr "تم تعيين عنوان URL المخصص إلى {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "تأجيل هذا التحقق" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "هل تريد تأجيل هذا التحقق؟" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "فيديو أكثر سلاسة" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "تعذرت عملية التحقق عبر الرسائل النصية القصيرة حاليًا. يُرجى المحاولة مرة أخرى لاحقًا أو التواصل مع فريق الدعم." @@ -29762,7 +29794,7 @@ msgstr "حدث خطأ ما. يُرجى المحاولة مرة أخرى لاحق #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "حدث خطأ ما. يُرجى المحاولة مرة أخرى." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "تسعير {baseCurrencyLabel} القياسي" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "قد يتم تطبيق أسعار الرسائل العادية من شركة الاتصالات الخاصة بك." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "تحويل النص إلى كلام" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "أرسل لنا رسالة نصية من هاتفك" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "شكرًا لك على المساعدة في الحفاظ على أمان {productName}. سنراجع تقريرك في أقرب وقت ممكن." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "هذا الرمز غير صحيح. يرجى التحقق منه والمحاولة مرة أخرى." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "انتهت صلاحية هذا الرمز. اطلب رمزًا جديدًا." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "لم يكتمل ذلك. قد يكون قد تم مغادرة بعض المجتمعات بالفعل، ولا يزال حسابك مقفلاً. اضغط على \"تأجيل هذا التحقق\" مرة أخرى للمتابعة." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "لم يتم ذلك. لم يتغير شيء. حاول مرة أخرى." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "هذا لا يبدو لونًا صالحًا. جرّب hex أو rgb() أو hsl() أو اسم لون CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "لا يبدو هذا رابطًا صالحًا." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "البريد الإلكتروني هذا مستخدم بالفعل." @@ -31588,6 +31630,11 @@ msgstr "ستعيد قناة الدردشة الصوتية الجديدة است msgid "The page you're looking for doesn't exist or has been moved." msgstr "الصفحة التي تبحث عنها غير موجودة أو تم نقلها." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "تم تأجيل التحقق من الهاتف. تبقى خطوة بريد إلكتروني واحدة." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "هذا معطّل" msgid "This is how messages appear" msgstr "هكذا تظهر الرسائل" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "هذا غير متاح في حسابك حاليًا. راسل {supportEmail} وسيتم مراجعته من قبل شخص ما." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "هذه ليست القناة التي تبحث عنها." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "سيكون اسم الشهرة هذا مرئيًا في هذا المجتمع فقط" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "يتطلب هذا الرقم التحقق عبر الرسائل النصية بدلاً من رسالة SMS منا." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "تم كتم صوت هذا المشارك من قبل المشرفين" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "لا يمكن استخدام رقم الهاتف هذا. جرّب رقم هاتف محمول آخر أو اتصل بالدعم." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "لقد تم استخدام رقم الهاتف هذا بالفعل. جرّب رقمًا آخر أو اتصل بالدعم." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "انتهت صلاحية جلسة التحقق هذه. ارجع إلى {productName} وابدأ عملية الدفع مرة أخرى." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "انتهت صلاحية جلسة التحقق هذه. ابدأ من جديد." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "سيؤدي هذا إلى الوثوق بجميع الروابط الخارجية وتجاوز التحذير لكل نطاق. سيتم استبدال نطاقاتك الموثوقة الحالية. هذا أقل أمانًا." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "سيتم تحديث هذه النافذة تلقائيًا بعد استلام رسالتك." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "تعيين نغمة صور HDR إلى النطاق القياسي، مما يقلل ذروة السطوع." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "محاولات كثيرة جدًا. انتظر قليلًا، ثم حاول مرة أخرى." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "استخدم تطبيق مصادقة لإنشاء رموز للمصادقة الثنائية" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "استخدم بريدًا إلكترونيًا مختلفًا عن بريدك الحالي." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "استخدم بريدًا إلكترونيًا يمكنك فتحه. سنرسل رمزًا إلى هناك." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "الانتظار بين الرسائل. يمكن لـ \"{bypassSlowmodePermissionLabel}\" تجاوز ذلك." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "انتظر هنا" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "سنقوم بملء {prefillEmail} مسبقًا بمجرد فتح تسجيل الدخول في المتصفح." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "سنرسل رمزًا عبر رسالة نصية قصيرة عند توفره." @@ -37255,6 +37307,11 @@ msgstr "يمكنك تسجيل الدخول مرة أخرى في أي وقت." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "لا يزال بإمكانك إنشاء حساب أو تسجيل الدخول. إذا أُعيد تمكين الدعوات لاحقًا، فيمكنك استخدام هذا الرابط نفسه للانضمام." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "لا يزال بإمكانك مراسلة {supportEmail} للمراجعة البشرية في أي وقت." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "يمكنك تخزين صور GIF المميزة بنجمة كمفضلة برابط فقط أو تحميلها إلى الوسائط المحفوظة لديك. اختر ما يناسب طريقة استخدامك لها. يمكنك تغيير ذلك في أي وقت في {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "يجب عليك تأكيد بريدك الإلكتروني لإرسال msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "لقد وصلت أنت أو أحد الأشخاص الذين تضيفهم إلى الحد الأقصى لعدد المحادثات الجماعية المفتوحة. غادر إحداها وحاول مرة أخرى." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "تبقى في {ownedNames}. لا يمكن للمالكين مغادرة مجتمعهم الخاص." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "تم كتم صوتك بواسطة المشرفين" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "سيتم توجيهك إلى {redirectHostname} بعد التفويض." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "ستغادر {count, plural, one {# مجتمعًا} other {# مجتمعات}} ينطبق عليها هذا الفحص، وستعمل حسابك بشكل طبيعي مرة أخرى." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "ستغادر {guildNames}. لم يتم حذف أي شيء نشرته، ويمكنك الانضمام مرة أخرى لاحقًا." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "لن تتمكن من حذف رسائلك المرسلة بعد حذف حسابك" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "لا يزال يتعين عليك إكمال خطوة البريد الإلكتروني." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "انتهت صلاحية جلسة {productName} الخاصة بك. سجّ msgid "Your account" msgstr "حسابك" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "يعود حسابك إلى طبيعته فورًا ولن تحتاج إلى رقم هاتف الآن. هذا ليس إعفاءً دائمًا. قد يؤدي الانضمام إلى مجتمع كبير أو عام إلى إعادة هذا التحقق." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "تم ربط حسابك بنجاح. يمكنك الآن إغلاق هذه النافذة والعودة إلى التطبيق." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "حسابك عاد إلى طبيعته." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "لم يتم تفعيل حسابك بعد. بدون بريد إلكتروني وكلمة مرور، لن تتمكن من تسجيل الدخول من أجهزة أخرى وقد تفقد الوصول إلى حسابك. فعّل حسابك الآن لتأمينه." @@ -38014,6 +38101,11 @@ msgstr "طلب حسابك بانتظار الموافقة. يمكنك تسجيل msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "يتطلب حسابك مصادقة متعددة العوامل، ولكن لم يتم إعداد أي طرق مدعومة على هذا الجهاز. سجّل الدخول على جهاز باستخدام تطبيق المصادقة أو مفتاح الأمان الخاص بك، أو اتصل بالدعم." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "يعود حسابك للعمل بشكل طبيعي فورًا ولن تتم إزالة أي شيء. يمكننا طلب إجراء هذا الفحص مرة أخرى لاحقًا." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "اسمك الجديد، أو اتركه فارغًا لإعادة تعيينه." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "رقمك غير مرتبط بحسابك. نحتفظ بعلامة مشفرة فقط، بدون معرّف مستخدم، لما يصل إلى {limit} عملية تحقق في حوالي {duration} يومًا." diff --git a/fluxer_app/src/features/i18n/locales/auto-i18n-reviewed-unchanged.json b/fluxer_app/src/features/i18n/locales/auto-i18n-reviewed-unchanged.json index d6175eb53..2570d393c 100644 --- a/fluxer_app/src/features/i18n/locales/auto-i18n-reviewed-unchanged.json +++ b/fluxer_app/src/features/i18n/locales/auto-i18n-reviewed-unchanged.json @@ -1470,6 +1470,9 @@ { "msgid": "Duplicate role" }, + { + "msgid": "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." + }, { "msgid": "Emulate decode codec (testing)" }, @@ -1554,6 +1557,9 @@ { "msgid": "How much of the member's recent message history to delete." }, + { + "msgid": "If you can't verify by SMS" + }, { "msgid": "Image assets" }, @@ -1581,6 +1587,12 @@ { "msgid": "Klipy GIFs" }, + { + "msgid": "Leave and set aside" + }, + { + "msgid": "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" + }, { "msgid": "Let people link their Bluesky account to their profile." }, @@ -1845,6 +1857,12 @@ { "msgid": "Serial send" }, + { + "msgid": "Set this check aside" + }, + { + "msgid": "Set this check aside?" + }, { "msgid": "Set up {productName}" }, @@ -1947,6 +1965,9 @@ { "msgid": "Text is rendered with grayscale antialiasing instead of ClearType while transparency is enabled, so it will look softer." }, + { + "msgid": "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." + }, { "msgid": "That image could not be used. Try a different file." }, @@ -1968,6 +1989,9 @@ { "msgid": "This instance has no accounts yet. The first account you create automatically becomes the administrator. Create it now, then return here to finish setup." }, + { + "msgid": "This is not available on your account right now. Email {supportEmail} and a person will review it." + }, { "msgid": "This option is required. Please provide a value." }, @@ -2022,9 +2046,21 @@ { "msgid": "Wordmark" }, + { + "msgid": "You can still email {supportEmail} for a human review at any time." + }, + { + "msgid": "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." + }, { "msgid": "YouTube enrichment" }, + { + "msgid": "Your account is back to normal." + }, + { + "msgid": "Your account works normally again straight away and nothing is removed. We can ask for this check again later." + }, { "msgid": "Your new nickname, or leave blank to reset it." }, diff --git a/fluxer_app/src/features/i18n/locales/bg/messages.po b/fluxer_app/src/features/i18n/locales/bg/messages.po index c5c8b070c..1ddb75915 100644 --- a/fluxer_app/src/features/i18n/locales/bg/messages.po +++ b/fluxer_app/src/features/i18n/locales/bg/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 дни" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Необходима е проверка на браузъра, преди да потвърдите телефона си. Опитайте отново от страницата за вход или се свържете с поддръжката." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Добавяне на дума…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Добавете работещ имейл адрес" @@ -7390,7 +7390,7 @@ msgstr "Тема \"Въглен\"" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "Имейлът не е наличен" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Актуализирането на имейла е недостъпно в момента. Опитайте отново по-късно или се свържете с поддръжката." @@ -12375,6 +12375,11 @@ msgstr "Актуализирането на имейла е недостъпно msgid "Email update required" msgstr "Изисква се актуализация на имейл" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Изпратете ни имейл и човек ще прегледа акаунта ви. Кажете ни, че не можете да потвърдите чрез SMS и ние ще се погрижим за останалото. Отговорите идват по имейл, така че това не е незабавно." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Въведете валиден URL адрес или код на шаб #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Въведете валиден имейл адрес." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Въведете валидна връзка към съобщение." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Въведете валиден мобилен телефонен номер." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Въведете валидно потребителско име ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Въведете имейл, до който имате достъп. Ще изпратим код там." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Въвеждане на код за подарък…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Въведете нов имейл адрес" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Въведете {digitCount}-цифрения код от приложението за удостоверяване." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Въведете {digitCount}-цифрения код, изпратен на {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Въведете кода от приложението за удостоверяване." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Въведете кода, изпратен на {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Въведете {MFA_CODE_DIGIT_COUNT}-цифрения код, изпратен на {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Въведете кода от имейла" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Въведете ПИН кода за вашата защитна ключалка, за да продължите." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Въведете SMS кода" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Въведете паролата си." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Въведете телефонния си номер" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "За мен" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "За тази проверка вие ни изпращате текстово съобщение, вместо да получавате такова от нас." @@ -16437,6 +16442,11 @@ msgstr "Ако този сигнал е за конкретно съобщени msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Ако този сигнал е за конкретни съобщения, докладвайте най-подходящото съобщение. Сигналите за съобщения дават на нашия екип за безопасност най-ясен контекст, а добавянето на подробности в коментарите може да ни помогне да го прегледаме по-бързо. Продължете със сигнализирането на потребителя като цяло само ако докладването на съобщение не би обхванало по-широкия проблем." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Ако не можете да потвърдите чрез SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Научете повече" msgid "Leave" msgstr "Напускане" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Напусни {count, plural, one {# общност} other {# общности}} и остави тази проверка настрана?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Напусни и остави настрана" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Отворете браузъра си, влезте в профила си, след което въведете кода по-долу, за да свържете акаунта си." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Отворете съобщенията си" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Отворете приложението за съобщения на телефона си и започнете ново текстово съобщение." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Изисква се телефонен номер" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Стъпка \"Телефон\"" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Потвърждаването по телефон не е налично за този акаунт. Използвайте друг метод или се свържете с поддръжката." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "репостове" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Първо заявете нов код." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Изпратете кода <0>{0} на <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Изпратете кода на телефонния номер по-долу." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Изпратете този код" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Да върна ли този карфица назад във времето?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Изпращане до" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Изпращане:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Изпращането на SMS до този номер е скъпо, затова трябва да ни изпратите съобщение вместо това." @@ -28311,6 +28331,18 @@ msgstr "Задайте лимит на потребителите на {0}." msgid "Set the vanity URL to {0}." msgstr "Задайте персонализиран URL адрес на {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Отложи тази проверка" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Отложите ли тази проверка?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "По-плавно видео" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "SMS потвърждението е недостъпно в момента. Опитайте отново по-късно или се свържете с поддръжката." @@ -29762,7 +29794,7 @@ msgstr "Нещо се обърка. Опитайте отново по-късн #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Нещо се обърка. Опитайте отново." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Стандартни цени в {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Възможно е да се прилагат стандартни такси за съобщения от вашия оператор." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Текст към говор" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Изпратете ни съобщение от телефона си" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Благодарим ви, че ни помагате да запазим {productName} безопасно. Ще прегледаме сигнала ви възможно най-скоро." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Този код не проработи. Проверете го и опитайте отново." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Този код е изтекъл. Заявете нов код." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Не завърши. Някои общности може вече да са напуснали, а акаунтът ви все още е заключен. Натиснете „Остави този чек“ отново, за да завършите." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Не се получи. Нищо не се промени. Опитайте отново." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Това не изглежда като валиден цвят. Опитайте шестнадесетичен код, rgb(), hsl() или име на CSS цвят." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Това не изглежда като валиден URL адрес." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Този имейл вече се използва." @@ -31588,6 +31630,11 @@ msgstr "Новият гласов канал ще използва повтор msgid "The page you're looking for doesn't exist or has been moved." msgstr "Търсената от вас страница не съществува или е преместена." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Телефонната проверка е оставена настрана. Остава една стъпка с имейл." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Деактивирано е" msgid "This is how messages appear" msgstr "Така изглеждат съобщенията" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Това не е налично в момента за вашия акаунт. Изпратете имейл на {supportEmail} и някой ще го прегледа." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Това не е каналът, който търсите." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Този псевдоним ще се вижда само в тази общност" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Този номер изисква текстова проверка вместо SMS от нас." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Този участник е заглушен от модератори" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Този телефонен номер не може да бъде използван. Опитайте друг мобилен номер или се свържете с поддръжката." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Този телефонен номер вече е използван. Опитайте друг номер или се свържете с поддръжката." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Сесията за потвърждение изтече. Върнете се в {productName} и започнете плащането отново." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Тази сесия за потвърждение изтече. Започнете отначало." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Това ще направи всички външни връзки надеждни и ще пропуска предупреждението за всеки домейн. Съществуващите ви надеждни домейни ще бъдат заменени. Това е по-малко сигурно." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Този прозорец се актуализира автоматично, след като получим вашето съобщение." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Преобразуване на HDR изображения в стандартен диапазон, намалявайки пиковата яркост." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Твърде много опити. Изчакайте малко, след което опитайте отново." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Използвайте приложение за удостоверяване, за да генерирате кодове за двуфакторно удостоверяване" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Използвайте имейл, различен от текущия." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Използвайте имейл, който можете да отворите. Ще изпратим код там." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Време между съобщенията. „{bypassSlowmodePermissionLabel}“ може да го заобиколи." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Изчакайте тук" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Ще попълним предварително {prefillEmail}, след като се отвори влизането в браузъра." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Ще изпратим SMS код, когато е наличен." @@ -37255,6 +37307,11 @@ msgstr "Можете да влезете отново по всяко време msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Все още можете да създадете акаунт или да влезете. Ако поканите бъдат активирани отново по-късно, можете да използвате същата връзка, за да се присъедините." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Можете да се свържете с нас по имейл на адрес {supportEmail} за преглед от човек по всяко време." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Можете да запазвате маркираните GIF файлове като любими само с URL адрес или да ги качвате в запазените си медии. Изберете опцията, която най-добре отговаря на начина, по който ги използвате. Можете да промените това по всяко време в {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Трябва да потвърдите имейла си, за да из msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Вие или някой, когото добавяте, вече имате максималния брой отворени групови директни съобщения. Напуснете едно и опитайте отново." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Оставате в {ownedNames}. Собствениците не могат да напуснат собствената си общност." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Бяхте заглушен от модератори" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Ще бъдете пренасочени към {redirectHostname} след упълномощаване." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Ще напуснете {count, plural, one {# общност} other {# общности}}, за които се отнася тази проверка, и акаунтът ви ще заработи отново нормално." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Ще напуснеш {guildNames}. Нищо от публикуваното от теб не се изтрива и можеш да се присъединиш отново по-късно." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Няма да можете да изтриете изпратените си съобщения, след като акаунтът ви бъде изтрит" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Ще трябва да завършите и стъпката с имейла." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Сесията ви във {productName} изтече. Влезте от msgid "Your account" msgstr "Вашият акаунт" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Профилът ви ще се върне към нормалното веднага и няма да ви е необходим телефонен номер. Това не е постоянно освобождаване. Присъединяването към голяма или публична общност може да върне тази проверка." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Профилът ви е свързан успешно. Вече може да затворите този раздел и да се върнете към приложението." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Профилът ви е възстановен." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Профилът ви все още не е заявен. Без имейл и парола няма да можете да влизате от други устройства и може да загубите достъп до профила си. Заявете профила си сега, за да го защитите." @@ -38014,6 +38101,11 @@ msgstr "Заявката ви за акаунт чака одобрение. М msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Профилът ви изисква многофакторно удостоверяване, но на това устройство не са настроени поддържани методи. Влезте в профила си на устройство с приложението за удостоверяване или ключ за сигурност, или се свържете с поддръжката." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Профилът ви отново работи нормално веднага и нищо не е премахнато. Можем да поискаме тази проверка отново по-късно." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Вашият нов прякор или оставете празно, за да го нулирате." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Номерът ви не е свързан с профила ви. Съхраняваме само криптиран маркер, без потребителски идентификатор, за най-много {limit} проверки за около {duration} дни." diff --git a/fluxer_app/src/features/i18n/locales/cs/messages.po b/fluxer_app/src/features/i18n/locales/cs/messages.po index 0a6ade3c0..8507877a4 100644 --- a/fluxer_app/src/features/i18n/locales/cs/messages.po +++ b/fluxer_app/src/features/i18n/locales/cs/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 dní" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Před ověřením telefonu je vyžadována kontrola prohlížeče. Zkuste to znovu z přihlašovací stránky nebo kontaktujte podporu." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Přidat slovo…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Přidejte funkční e-mail" @@ -7390,7 +7390,7 @@ msgstr "Motiv Uhelná" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-mail není k dispozici" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Aktualizace e-mailu momentálně není k dispozici. Zkuste to prosím později nebo kontaktujte podporu." @@ -12375,6 +12375,11 @@ msgstr "Aktualizace e-mailu momentálně není k dispozici. Zkuste to prosím po msgid "Email update required" msgstr "Je třeba aktualizovat e-mail" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Napište nám e-mail a váš účet zkontroluje člověk. Uveďte, že nemůžete ověřit pomocí SMS, a my se o zbytek postaráme. Odpovědi chodí e-mailem, takže to není okamžité." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Zadejte platnou šablonu URL nebo kód {theOtherPlatform}." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Zadejte platnou e-mailovou adresu." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Zadejte platný odkaz na zprávu." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Zadejte platné číslo mobilního telefonu." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Zadejte platné uživatelské jméno ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Zadejte e-mail, který můžete otevřít. Pošleme vám na něj kód." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Zadejte kód dárku…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Zadejte nový e-mail" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Zadejte {digitCount}místný kód z aplikace pro ověřování." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Zadejte {digitCount}místný kód odeslaný na číslo {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Zadejte kód z aplikace pro ověřování." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Zadejte kód odeslaný na adresu {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Zadejte {MFA_CODE_DIGIT_COUNT}místný kód odeslaný na {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Zadejte kód z e-mailu" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Zadejte PIN pro váš bezpečnostní klíč a pokračujte." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Zadejte kód SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Zadejte heslo." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Zadejte své telefonní číslo" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Pro mě" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Pro tuto kontrolu nám pošlete textovou zprávu, místo abyste ji od nás přijímali." @@ -16437,6 +16442,11 @@ msgstr "Pokud se toto nahlášení týká konkrétní zprávy, nahlaste místo t msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Pokud se toto nahlášení týká konkrétních zpráv, nahlaste místo toho tu nejrelevantnější. Nahlášení zpráv poskytuje našemu bezpečnostnímu týmu nejjasnější kontext a přidání podrobností do komentářů nám může pomoci s rychlejším posouzením. Pokračujte v nahlášení uživatele jako celku pouze v případě, že nahlášení zprávy by nevystihovalo širší problém." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Pokud nemůžete ověřit pomocí SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Zjistit více" msgid "Leave" msgstr "Opustit" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Opustit {count, plural, one {# komunitu} other {# komunit}} a odložit tuto kontrolu?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Odejít a odložit" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Otevřete prohlížeč, přihlaste se a poté zadejte níže uvedený kód pro propojení účtu." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Otevřete si zprávy" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Otevřete aplikaci pro zprávy v telefonu a začněte novou textovou zprávu." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Je vyžadováno telefonní číslo" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Krok telefonu" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Ověření telefonního čísla není pro tento účet k dispozici. Použijte jinou metodu nebo kontaktujte podporu." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "znovu odesláno" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Nejprve si vyžádejte nový kód." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Odeslat kód <0>{0} na <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Pošlete kód na níže uvedené telefonní číslo." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Odeslat tento kód" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Poslat tento připnutý příspěvek zpět v čase?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Odeslat na" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Odesílání:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Odeslání SMS na toto číslo je drahé, proto nám místo toho musíte poslat zprávu." @@ -28311,6 +28331,18 @@ msgstr "Nastavit limit uživatelů na {0}." msgid "Set the vanity URL to {0}." msgstr "Nastavil(a) vlastní URL na {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Odložit tuto kontrolu" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Odložit tuto kontrolu?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Plynulejší video" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Ověření SMS zprávou momentálně není k dispozici. Zkuste to prosím později, nebo kontaktujte podporu." @@ -29762,7 +29794,7 @@ msgstr "Něco se pokazilo. Zkuste to prosím později." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Něco se pokazilo. Zkuste to znovu." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standardní ceny ({baseCurrencyLabel})" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Mohou být účtovány standardní poplatky za zprávy od vašeho operátora." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Převod textu na řeč" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Pošlete nám SMS ze svého telefonu" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Děkujeme, že nám pomáháte udržovat {productName} v bezpečí. Vaši zprávu zkontrolujeme co nejdříve." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Tento kód nefungoval. Zkontrolujte ho a zkuste to znovu." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Platnost kódu vypršela. Vyžádejte si nový kód." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "To se nedokončilo. Některé komunity už mohly být opuštěny a váš účet je stále zamčený. Stisknutím „Odložit tento úkol“ to dokončíte." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Nepodařilo se to provést. Nic se nezměnilo. Zkuste to znovu." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Nevypadá to jako platná barva. Zkuste hex, rgb(), hsl() nebo název barvy CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Nevypadá to jako platná adresa URL." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Tento e-mail se již používá." @@ -31588,6 +31630,11 @@ msgstr "Nový hlasový kanál znovu použije oprávnění, limit uživatelů a d msgid "The page you're looking for doesn't exist or has been moved." msgstr "Stránka, kterou hledáte, neexistuje nebo byla přesunuta." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Telefonická kontrola je odložena. Zbývá jeden krok s e-mailem." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Toto je zakázáno" msgid "This is how messages appear" msgstr "Takto se zobrazují zprávy" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Toto není momentálně dostupné pro váš účet. Napište na {supportEmail} a někdo to zkontroluje." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Tohle není kanál, který hledáte." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Tato přezdívka bude viditelná pouze v této komunitě" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Toto číslo vyžaduje ověření textem namísto SMS od nás." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Tohoto účastníka ztlumili moderátoři" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Toto telefonní číslo nelze použít. Zkuste jiné mobilní číslo nebo kontaktujte podporu." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Toto telefonní číslo již bylo použito. Zkuste jiné číslo nebo kontaktujte podporu." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Platnost ověřovací relace vypršela. Vraťte se do aplikace {productName} a spusťte platbu znovu." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Ověřovací relace vypršela. Začněte znovu." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Tímto se budou důvěryhodně otevírat všechny externí odkazy a přeskočí se upozornění pro každou doménu. Vaše stávající důvěryhodné domény budou nahrazeny. Toto je méně bezpečné." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Toto okno se automaticky aktualizuje, jakmile obdržíme vaši zprávu." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Převést HDR snímky do standardního rozsahu, čímž se sníží maximální jas." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Příliš mnoho pokusů. Chvíli počkejte a zkuste to znovu." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Použijte ověřovací aplikaci ke generování kódů pro dvoufázové ověření" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Použijte e-mail, který se liší od vašeho současného." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Použijte e-mail, který můžete otevřít. Pošleme vám na něj kód." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Čas mezi zprávami. „{bypassSlowmodePermissionLabel}“ jej může obejít." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Počkejte zde" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Předvyplníme {prefillEmail}, jakmile se otevře přihlášení v prohlížeči." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Až to bude možné, pošleme SMS kód." @@ -37255,6 +37307,11 @@ msgstr "Kdykoli se můžete znovu přihlásit." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Účet si stále můžete vytvořit nebo se přihlásit. Pokud budou pozvánky později znovu povoleny, můžete se připojit pomocí stejného odkazu." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Stále můžete kdykoli poslat e-mail na adresu {supportEmail} pro lidskou kontrolu." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "GIFy označené hvězdičkou můžete ukládat jako oblíbené jen s odkazem, nebo je nahrát do uložených médií. Vyberte si, co vám víc vyhovuje. Změnit to můžete kdykoli v {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Abyste mohli v této komunitě posílat zprávy, musíte si ověřit e-m msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Vy nebo někdo, koho přidáváte, už má otevřený maximální počet skupinových DM. Opusťte jeden a zkuste to znovu." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Zůstáváš v komunitě {ownedNames}. Vlastníci nemohou opustit svou vlastní komunitu." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Byli jste ztlumeni moderátory" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Po autorizaci budete přesměrováni na {redirectHostname}." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Opustíte {count, plural, one {# komunitu} other {# komunit}}, na které se tato kontrola vztahuje, a váš účet bude opět fungovat normálně." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Opustíte {guildNames}. Nic z toho, co jste napsali, není smazáno a můžete se kdykoli znovu připojit." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Odeslané zprávy po smazání účtu nebude možné odstranit" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Stále bude potřeba dokončit krok s e-mailem." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Vaše relace {productName} vypršela. Přihlaste se znovu a pokračujte msgid "Your account" msgstr "Váš účet" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Váš účet se okamžitě vrátí do normálu a telefonní číslo nyní nebudete potřebovat. Toto není trvalá výjimka. Připojení k velké nebo veřejné komunitě může tuto kontrolu znovu vyvolat." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Váš účet byl úspěšně propojen. Nyní můžete zavřít tuto záložku a vrátit se do aplikace." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Tvůj účet je opět v pořádku." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Váš účet zatím není nárokován. Bez e-mailu a hesla se nebudete moct přihlásit z jiných zařízení a mohli byste ztratit přístup ke svému účtu. Nárokujte si svůj účet hned teď a zabezpečte ho." @@ -38014,6 +38101,11 @@ msgstr "Žádost o váš účet čeká na schválení. Přihlásit se můžete, msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Váš účet vyžaduje vícefaktorové ověření, ale na tomto zařízení nejsou nastaveny žádné podporované metody. Přihlaste se na zařízení s aplikací pro ověřování nebo bezpečnostním klíčem, nebo kontaktujte podporu." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Váš účet bude opět normálně fungovat okamžitě a nic se neodstraní. O tuto kontrolu můžeme požádat později." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Vaše nové přezdívka, nebo nechte prázdné pro resetování." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Vaše číslo není propojeno s vaším účtem. Uchováváme pouze zašifrovanou značku bez ID uživatele, a to maximálně pro {limit} ověření přibližně za {duration} dní." diff --git a/fluxer_app/src/features/i18n/locales/da/messages.po b/fluxer_app/src/features/i18n/locales/da/messages.po index 93aaf9b36..89b8ea5b7 100644 --- a/fluxer_app/src/features/i18n/locales/da/messages.po +++ b/fluxer_app/src/features/i18n/locales/da/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 dage" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Der kræves et browsertjek, før telefonbekræftelse kan udføres. Prøv igen fra loginskærmen, eller kontakt support." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Tilføj et ord …" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Tilføj en fungerende e-mail" @@ -7390,7 +7390,7 @@ msgstr "Kul-tema" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "Mailadresse utilgængelig" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "E-mailopdatering er ikke tilgængelig lige nu. Prøv igen senere, eller kontakt support." @@ -12375,6 +12375,11 @@ msgstr "E-mailopdatering er ikke tilgængelig lige nu. Prøv igen senere, eller msgid "Email update required" msgstr "E-mailopdatering påkrævet" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Send os en e-mail, og en person vil gennemgå din konto. Fortæl os, at du ikke kan verificere via SMS, så tager vi derfra. Svar kommer via e-mail, så det er ikke øjeblikkeligt." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Indtast en gyldig {theOtherPlatform} skabelon-URL eller kode." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Indtast en gyldig e-mailadresse." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Angiv et gyldigt beskedslink." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Indtast et gyldigt mobilnummer." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Indtast et gyldigt brugernavn ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Indtast en e-mailadresse, du kan åbne. Vi sender en kode dertil." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Indtast gavekode…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Angiv ny e-mail" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Indtast den {digitCount}cifrede kode fra din godkenderapp." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Indtast den {digitCount}cifrede kode, der er sendt til {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Indtast koden fra din godkenderapp." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Indtast koden, der er sendt til {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Indtast den {MFA_CODE_DIGIT_COUNT}cifrede kode, der er sendt til {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Indtast e-mailkoden" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Indtast pinkoden til din sikkerhedsnøgle for at fortsætte." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Indtast sms-koden" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Indtast din adgangskode." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Indtast dit telefonnummer" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Til mig" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Til dette tjek sender du os en sms i stedet for at modtage en fra os." @@ -16437,6 +16442,11 @@ msgstr "Hvis denne anmeldelse handler om en specifik besked, skal du anmelde den msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Hvis denne anmeldelse handler om specifikke beskeder, skal du i stedet anmelde den mest relevante besked. Beskedanmeldelser giver vores sikkerhedsteam den tydeligste kontekst, og hvis du tilføjer detaljer i kommentarerne, kan det hjælpe os med at gennemgå den hurtigere. Fortsæt kun med at anmelde brugeren som helhed, hvis en beskedanmeldelse ikke ville dække det bredere problem." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Hvis du ikke kan bekræfte via SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Læs mere" msgid "Leave" msgstr "Forlad" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Forlad {count, plural, one {# fællesskab} other {# fællesskaber}} og sæt denne kontrol til side?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Forlad og sæt til side" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Åbn din browser, log ind, og indtast derefter koden herunder for at forbinde din konto." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Åbn dine beskeder" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Åbn din telefons beskedapp, og start en ny sms." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Telefonnummer er påkrævet" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Telefon-trin" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Telefonbekræftelse er ikke tilgængelig for denne konto. Brug en anden metode, eller kontakt support." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "reopslag" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Anmod først om en ny kode." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Send koden <0>{0} til <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Send koden til telefonnummeret herunder." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Send denne kode" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Send denne fastgjorte besked tilbage i tiden?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Send til" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Send:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Det er dyrt at sende en sms til dette nummer, så vi har brug for, at du sender os en sms i stedet." @@ -28311,6 +28331,18 @@ msgstr "Angiv brugergrænsen til {0}." msgid "Set the vanity URL to {0}." msgstr "Indstil den tilpassede URL til {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Udsæt denne kontrol" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Gem denne kontrol til senere?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Mere flydende video" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "SMS-bekræftelse er ikke tilgængelig lige nu. Prøv igen senere, eller kontakt support." @@ -29762,7 +29794,7 @@ msgstr "Der opstod en fejl. Prøv igen senere." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Der opstod en fejl. Prøv igen." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standard {baseCurrencyLabel}-priser" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Standardtakster for beskeder fra din udbyder kan være gældende." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Tekst til tale" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Send os en sms fra din telefon" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Tak, fordi du hjælper med at holde {productName} sikkert. Vi gennemgår din rapport hurtigst muligt." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Koden virkede ikke. Tjek den, og prøv igen." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Koden er udløbet. Anmod om en ny kode." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Det blev ikke færdigt. Nogle communities er muligvis allerede blevet forladt, og din konto er stadig låst. Tryk på \"Sæt denne kontrol til side\" igen for at fuldføre." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Det gik ikke igennem. Intet er ændret. Prøv igen." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Det ligner ikke en gyldig farve. Prøv hex, rgb(), hsl() eller et CSS-farvenavn." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Det ligner ikke en gyldig URL." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Den e-mail er allerede i brug." @@ -31588,6 +31630,11 @@ msgstr "Den nye stemmekanal genbruger tilladelser, brugergrænse og bitrate fra msgid "The page you're looking for doesn't exist or has been moved." msgstr "Siden du leder efter, findes ikke eller er blevet flyttet." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Telefonkontrollen er sat til side. Ét e-mail-trin er tilbage." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Dette er deaktiveret" msgid "This is how messages appear" msgstr "Sådan vises beskeder" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Dette er ikke tilgængeligt på din konto lige nu. Send en e-mail til {supportEmail}, så vil en person gennemgå det." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Dette er ikke den kanal, du leder efter." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Dette kaldenavn vil kun være synligt i dette fællesskab" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Dette nummer kræver tekstbaseret bekræftelse i stedet for en sms fra os." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Denne deltager blev gjort døv af moderatorer" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Dette telefonnummer kan ikke bruges. Prøv et andet mobilnummer, eller kontakt support." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Dette telefonnummer er allerede i brug. Prøv et andet nummer, eller kontakt support." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Denne bekræftelsessession er udløbet. Vend tilbage til {productName}, og start betalingen igen." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Denne bekræftelsessession er udløbet. Start forfra." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Dette vil godkende alle eksterne links og springe advarslen over for alle domæner. Dine eksisterende godkendte domæner vil blive erstattet. Dette er mindre sikkert." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Dette vindue opdateres automatisk, når vi har modtaget din besked." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Tone-map HDR-billeder til standardområde, hvilket reducerer den maksimale lysstyrke." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "For mange forsøg. Vent lidt, og prøv så igen." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Brug en godkenderapp til at generere koder til totrinsgodkendelse" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Brug en anden e-mailadresse end din nuværende." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Brug en e-mail, du kan åbne. Vi sender en kode dertil." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Ventetid mellem beskeder. \"{bypassSlowmodePermissionLabel}\" kan tilsidesætte dette." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Vent her" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Vi udfylder automatisk {prefillEmail}, når browser-login åbnes." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Vi sender en SMS-kode, når den er tilgængelig." @@ -37255,6 +37307,11 @@ msgstr "Du kan logge ind igen når som helst." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Du kan stadig oprette en konto eller logge ind. Hvis invitationer genaktiveres senere, kan du bruge det samme link til at deltage." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Du kan stadig sende en e-mail til {supportEmail} for en manuel gennemgang når som helst." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Du kan gemme stjernemarkerede GIF'er som favoritter (kun URL) eller uploade dem til dine gemte medier. Vælg den løsning, der passer bedst til dig. Du kan altid ændre det under {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Du skal bekræfte din e-mail for at sende beskeder i dette fællesskab." msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Du eller en person, du tilføjer, har allerede det maksimale antal gruppe-DM'er åbne. Forlad en og prøv igen." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Du forbliver i {ownedNames}. Ejere kan ikke forlade deres egen community." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Du blev deaktiveret af moderatorer" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Du bliver ført til {redirectHostname} efter godkendelse." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Du vil forlade {count, plural, one {# fællesskab} other {# fællesskaber}}, som denne kontrol gælder for, og din konto fungerer normalt igen." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Du forlader {guildNames}. Intet af det, du har skrevet, bliver slettet, og du kan tilmelde dig igen senere." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Du kan ikke slette dine sendte beskeder, efter din konto er blevet slettet" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Du skal stadig afslutte e-mail-trinnet." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Din {productName}-session er udløbet. Log ind igen for at fortsætte me msgid "Your account" msgstr "Din konto" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Din konto vender tilbage til normal med det samme, og du behøver ikke et telefonnummer nu. Dette er ikke en permanent undtagelse. Tilmelding til et stort eller offentligt fællesskab kan medføre, at denne kontrol vender tilbage." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Din konto er blevet forbundet. Du kan nu lukke denne fane og vende tilbage til appen." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Din konto er tilbage til normal." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Din konto er endnu ikke bekræftet. Uden en e-mail og adgangskode kan du ikke logge ind fra andre enheder, og du risikerer at miste adgangen til din konto. Bekræft din konto nu for at sikre den." @@ -38014,6 +38101,11 @@ msgstr "Din kontoanmodning afventer godkendelse. Du kan logge ind, når en admin msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Din konto kræver tofaktorgodkendelse, men der er ingen understøttede metoder konfigureret på denne enhed. Log ind på en enhed med din godkenderapp eller sikkerhedsnøgle, eller kontakt support." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Din konto fungerer normalt igen med det samme, og intet bliver fjernet. Vi kan bede om denne kontrol igen senere." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Dit nye kaldenavn, eller lad stå tomt for at nulstille det." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Dit nummer er ikke knyttet til din konto. Vi gemmer kun en krypteret markør uden bruger-id i højst {limit} bekræftelser inden for ca. {duration} dage." diff --git a/fluxer_app/src/features/i18n/locales/de/messages.po b/fluxer_app/src/features/i18n/locales/de/messages.po index d3c4468fa..117b7b778 100644 --- a/fluxer_app/src/features/i18n/locales/de/messages.po +++ b/fluxer_app/src/features/i18n/locales/de/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 Tage" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Bevor du deine Telefonnummer verifizieren kannst, ist eine Browserprüfung erforderlich. Versuche es noch einmal über die Anmeldeseite oder kontaktiere den Support." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Wort hinzufügen …" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Funktionierende E-Mail-Adresse hinzufügen" @@ -7390,7 +7390,7 @@ msgstr "Kohle-Design" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-Mail nicht verfügbar" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "E-Mail-Aktualisierung ist zurzeit nicht verfügbar. Versuche es später erneut oder kontaktiere den Support." @@ -12375,6 +12375,11 @@ msgstr "E-Mail-Aktualisierung ist zurzeit nicht verfügbar. Versuche es später msgid "Email update required" msgstr "E-Mail-Aktualisierung erforderlich" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Schreib uns eine E-Mail und eine Person wird dein Konto überprüfen. Sag uns, dass du dich nicht per SMS verifizieren kannst, und wir kümmern uns um den Rest. Antworten kommen per E-Mail, daher ist das nicht sofort." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Gib eine gültige {theOtherPlatform} Vorlagen-URL oder einen Code ein." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Gib eine gültige E-Mail-Adresse ein." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Gib einen gültigen Nachrichtenlink ein." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Gib eine gültige Mobiltelefonnummer ein." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Gib einen gültigen Benutzernamen ein ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Gib eine E-Mail-Adresse ein, die du öffnen kannst. Wir senden dir einen Code dorthin." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Geschenkcode eingeben …" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Neue E-Mail-Adresse eingeben" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Gib den {digitCount}-stelligen Code aus deiner Authenticator-App ein." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Gib den {digitCount}-stelligen Code ein, der an {phoneNumber} gesendet wurde." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Gib den Code aus deiner Authenticator App ein." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Gib den Code ein, der an {emailAddress} gesendet wurde." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Gib den Code mit {MFA_CODE_DIGIT_COUNT} Ziffern ein, der an {0} gesendet wurde." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "E-Mail-Code eingeben" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Gebe die PIN für deinen Sicherheitsschlüssel ein, um fortzufahren." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "SMS-Code eingeben" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Gib dein Passwort ein." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Telefonnummer eingeben" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Für mich" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Sende uns für diese Überprüfung eine Textnachricht, anstatt eine von uns zu erhalten." @@ -16437,6 +16442,11 @@ msgstr "Wenn sich diese Meldung auf eine bestimmte Nachricht bezieht, melde stat msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Wenn sich diese Meldung auf bestimmte Nachrichten bezieht, melde stattdessen die relevanteste Nachricht. Nachrichtenmeldungen geben unserem Sicherheitsteam den klarsten Kontext, und das Hinzufügen von Details in den Kommentaren kann uns helfen, die Meldung schneller zu prüfen. Fahre nur mit der Meldung des gesamten Nutzers fort, wenn die Meldung einer Nachricht das umfassendere Problem nicht erfassen würde." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Wenn du dich nicht per SMS verifizieren kannst" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Mehr erfahren" msgid "Leave" msgstr "Verlassen" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "{count, plural, one {# Community} other {# Communities}} verlassen und diese Prüfung beiseitelegen?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Verlassen und beiseitelegen" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Öffne deinen Browser, melde dich an und gib dann den folgenden Code ein, um deinen Account zu verknüpfen." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Öffne deine Nachrichten" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Öffne deine Nachrichten-App auf dem Smartphone und starte eine neue Textnachricht." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Telefonnummer ist erforderlich" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Telefonschritt" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Telefonverifizierung ist für diesen Account nicht verfügbar. Verwende eine andere Methode oder kontaktiere den Support." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "Reposts" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Fordere zuerst einen neuen Code an." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Sende den Code <0>{0} an <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Sende den Code an die unten stehende Telefonnummer." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Diesen Code senden" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Diesen Pin in die Vergangenheit schicken?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Senden an" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Senden:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Das Senden einer SMS an diese Telefonnummer ist teuer, daher bitten wir dich, uns stattdessen eine Nachricht zu schicken." @@ -28311,6 +28331,18 @@ msgstr "Nutzerlimit auf {0} gesetzt." msgid "Set the vanity URL to {0}." msgstr "Die Vanity-URL wurde auf {0} gesetzt." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Diese Prüfung beiseitelegen" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Diese Prüfung beiseitelegen?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Flüssigeres Video" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Die SMS-Verifizierung ist derzeit nicht verfügbar. Versuche es später erneut oder kontaktiere den Support." @@ -29762,7 +29794,7 @@ msgstr "Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Es ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standardpreise ({baseCurrencyLabel})" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Es können die üblichen Nachrichtentarife deines Mobilfunkanbieters anfallen." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Text-to-Speech" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Sende uns eine SMS von deinem Telefon" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Vielen Dank, dass Sie uns helfen, {productName} sicher zu halten. Wir werden Ihren Bericht so schnell wie möglich prüfen." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Der Code hat nicht funktioniert. Bitte überprüfe ihn und versuche es erneut." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Dieser Code ist abgelaufen. Fordere einen neuen Code an." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Das wurde nicht abgeschlossen. Einige Communities wurden möglicherweise bereits verlassen und dein Konto ist immer noch gesperrt. Drücke erneut \"Diese Prüfung beiseite legen\", um fortzufahren." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Das hat nicht geklappt. Nichts hat sich geändert. Versuche es erneut." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Das sieht nicht nach einer gültigen Farbe aus. Versuche es mit Hex, rgb(), hsl() oder einem CSS-Farbnamen." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Das sieht nicht nach einer gültigen URL aus." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Diese E-Mail-Adresse wird bereits verwendet." @@ -31588,6 +31630,11 @@ msgstr "Der neue Sprachkanal übernimmt die Berechtigungen, das Nutzerlimit und msgid "The page you're looking for doesn't exist or has been moved." msgstr "Die Seite, die du suchst, existiert nicht oder wurde verschoben." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Die Telefonprüfung wurde zurückgestellt. Ein E-Mail-Schritt ist noch übrig." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Dies ist deaktiviert" msgid "This is how messages appear" msgstr "So werden Nachrichten angezeigt" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Das ist im Moment nicht für dein Konto verfügbar. Sende eine E-Mail an {supportEmail} und eine Person wird es überprüfen." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Das ist nicht der gewünschte Kanal." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Dieser Anzeigename ist nur in dieser Community sichtbar" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Diese Nummer muss per Texteingabe verifiziert werden, nicht per SMS von uns." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Dieser Teilnehmer wurde von Moderatoren stummgeschaltet" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Diese Telefonnummer kann nicht verwendet werden. Versuche es mit einer anderen Mobilnummer oder kontaktiere den Support." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Diese Telefonnummer wurde bereits verwendet. Versuche es mit einer anderen Nummer oder kontaktiere den Support." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Diese Verifizierungssitzung ist abgelaufen. Kehren Sie zu {productName} zurück und starten Sie den Bezahlvorgang erneut." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Diese Verifizierungssitzung ist abgelaufen. Bitte starte den Vorgang erneut." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Dadurch werden alle externen Links als vertrauenswürdig eingestuft und die Warnung für jede Domain übersprungen. Deine bestehenden vertrauenswürdigen Domains werden ersetzt. Dies ist weniger sicher." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Dieses Fenster wird automatisch aktualisiert, sobald wir deine Nachricht erhalten haben." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "HDR-Bilder auf den Standardbereich tonemappen, wodurch die Spitzenhelligkeit reduziert wird." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Zu viele Versuche. Warte einen Moment und versuche es dann erneut." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Authenticator-App zur Generierung von Codes für die Zwei-Faktor-Authentifizierung verwenden" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Verwende eine andere E-Mail-Adresse als deine aktuelle." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Verwende eine E-Mail-Adresse, die du öffnen kannst. Wir senden dir einen Code dorthin." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Wartezeit zwischen Nachrichten. \"{bypassSlowmodePermissionLabel}\" kann diese umgehen." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Hier warten" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Wir tragen \"{prefillEmail}\" automatisch ein, sobald sich die Browser-Anmeldung öffnet." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Wir senden dir einen SMS-Code, sobald dieser verfügbar ist." @@ -37255,6 +37307,11 @@ msgstr "Sie können sich jederzeit wieder anmelden." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Du kannst weiterhin einen Account erstellen oder dich anmelden. Wenn Einladungen später wieder aktiviert werden, kannst du denselben Link verwenden, um beizutreten." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Du kannst jederzeit eine menschliche Überprüfung per E-Mail an {supportEmail} anfordern." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Du kannst mit Stern markierte GIFs als Favoriten (nur URL) speichern oder in deine gespeicherten Medien hochladen. Wähle die Option, die am besten zu deiner Nutzung passt. Du kannst dies jederzeit unter {mediaSettingsPath} ändern." @@ -37699,6 +37756,11 @@ msgstr "Du musst deine E-Mail-Adresse bestätigen, um Nachrichten in dieser Comm msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Du oder jemand, den du hinzufügst, hat bereits die maximale Anzahl offener Gruppen-DMs erreicht. Verlasse eine und versuche es erneut." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Du bleibst in {ownedNames}. Besitzer können ihre eigene Community nicht verlassen." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Du wurdest von Moderatoren stummgeschaltet" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Nach der Autorisierung werden Sie zu {redirectHostname} weitergeleitet." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Du wirst {count, plural, one {# Community} other {# Communities}} verlassen, für die diese Prüfung gilt, und dein Konto funktioniert wieder normal." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Du wirst {guildNames} verlassen. Nichts, was du gepostet hast, wird gelöscht, und du kannst jederzeit wieder beitreten." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Gesendete Nachrichten können nach dem Löschen deines Accounts nicht mehr gelöscht werden" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Du musst den E-Mail-Schritt noch abschließen." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Ihre {productName}-Sitzung ist abgelaufen. Melden Sie sich erneut an, um msgid "Your account" msgstr "Dein Account" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Dein Konto wird sofort wieder normal und du benötigst jetzt keine Telefonnummer mehr. Dies ist keine dauerhafte Ausnahme. Wenn du einer großen oder öffentlichen Community beitrittst, kann diese Überprüfung wieder erscheinen." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Dein Account wurde erfolgreich verknüpft. Du kannst diesen Tab jetzt schließen und zur App zurückkehren." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Dein Konto ist wieder normal." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Dein Account ist noch nicht beansprucht. Ohne E-Mail-Adresse und Passwort kannst du dich nicht von anderen Geräten aus anmelden und könntest den Zugriff auf deinen Account verlieren. Beanspruche deinen Account jetzt, um es zu sichern." @@ -38014,6 +38101,11 @@ msgstr "Deine Accountanfrage wartet auf Genehmigung. Du kannst dich anmelden, na msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Für deinen Account ist die Multi-Faktor-Authentifizierung erforderlich, aber auf diesem Gerät sind keine unterstützten Methoden eingerichtet. Melde dich auf einem Gerät mit deiner Authentifizierungsapp oder deinem Sicherheitsschlüssel an oder wende dich an den Support." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Dein Konto funktioniert sofort wieder normal und nichts wird entfernt. Wir können später erneut nach dieser Überprüfung fragen." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Dein neuer Nickname oder leer lassen, um ihn zurückzusetzen." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Deine Telefonnummer ist nicht mit deinem Account verknüpft. Wir speichern nur eine verschlüsselte Markierung, ohne Benutzer-ID, für höchstens {limit} Verifizierungen in etwa {duration} Tagen." diff --git a/fluxer_app/src/features/i18n/locales/el/messages.po b/fluxer_app/src/features/i18n/locales/el/messages.po index cf00f4665..3c859ee58 100644 --- a/fluxer_app/src/features/i18n/locales/el/messages.po +++ b/fluxer_app/src/features/i18n/locales/el/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 ημέρες" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Απαιτείται έλεγχος προγράμματος περιήγησης πριν από την επαλήθευση τηλεφώνου. Δοκιμάστε ξανά από τη σελίδα σύνδεσης ή επικοινωνήστε με την υποστήριξη." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Προσθήκη λέξης…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Προσθέστε ένα λειτουργικό email" @@ -7390,7 +7390,7 @@ msgstr "Θέμα Coal" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "Email μη διαθέσιμο" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Η ενημέρωση email δεν είναι διαθέσιμη αυτήν τη στιγμή. Δοκιμάστε ξανά αργότερα ή επικοινωνήστε με την υποστήριξη." @@ -12375,6 +12375,11 @@ msgstr "Η ενημέρωση email δεν είναι διαθέσιμη αυτ msgid "Email update required" msgstr "Απαιτείται ενημέρωση email" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Στείλτε μας email και ένα άτομο θα ελέγξει τον λογαριασμό σας. Πείτε μας ότι δεν μπορείτε να επαληθεύσετε μέσω SMS και θα αναλάβουμε εμείς. Οι απαντήσεις έρχονται μέσω email, οπότε αυτό δεν είναι άμεσο." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Εισαγάγετε μια έγκυρη διεύθυνση URL ή κω #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Εισαγάγετε μια έγκυρη διεύθυνση email." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Εισαγάγετε έναν έγκυρο σύνδεσμο μηνύματος." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Εισαγάγετε έναν έγκυρο αριθμό κινητού τηλεφώνου." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Εισαγάγετε ένα έγκυρο όνομα χρήστη ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Εισαγάγετε ένα email που μπορείτε να ανοίξετε. Θα στείλουμε έναν κωδικό εκεί." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Εισαγωγή κωδικού δώρου…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Εισαγάγετε νέο email" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Εισαγάγετε τον {digitCount}-ψήφιο κωδικό από την εφαρμογή ελέγχου ταυτότητας." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Εισαγάγετε τον κωδικό {digitCount} ψηφίων που στάλθηκε στο {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Εισάγετε τον κωδικό από την εφαρμογή ελέγχου ταυτότητας." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Εισαγάγετε τον κωδικό που στάλθηκε στο {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Εισάγετε τον κωδικό {MFA_CODE_DIGIT_COUNT} ψηφίων που στάλθηκε στο {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Εισαγάγετε τον κωδικό email" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Εισαγάγετε τον κωδικό PIN για το κλειδί ασφαλείας σας, ώστε να συνεχίσετε." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Εισαγάγετε τον κωδικό SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Πληκτρολόγησε τον κωδικό σου." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Εισαγάγετε τον αριθμό τηλεφώνου σας" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Για μένα" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Για αυτόν τον έλεγχο, μας στέλνετε ένα μήνυμα αντί να λάβετε ένα από εμάς." @@ -16437,6 +16442,11 @@ msgstr "Αν αυτή η αναφορά αφορά ένα συγκεκριμέν msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Αν αυτή η αναφορά αφορά συγκεκριμένα μηνύματα, αναφέρετε το πιο σχετικό μήνυμα. Οι αναφορές μηνυμάτων δίνουν στην ομάδα ασφαλείας μας το σαφέστερο πλαίσιο και η προσθήκη λεπτομερειών στα σχόλια μπορεί να μας βοηθήσει να το εξετάσουμε πιο γρήγορα. Συνεχίστε με την αναφορά του χρήστη συνολικά μόνο αν η αναφορά ενός μηνύματος δεν θα κάλυπτε το ευρύτερο ζήτημα." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Αν δεν μπορείς να επαληθεύσεις μέσω SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Μάθετε περισσότερα" msgid "Leave" msgstr "Αποχώρηση" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Αποχώρηση από {count, plural, one {# κοινότητα} other {# κοινότητες}} και αναβολή αυτού του ελέγχου;" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Αποχώρηση και αναβολή" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Ανοίξτε το πρόγραμμα περιήγησής σας, συνδεθείτε και, στη συνέχεια, εισαγάγετε τον παρακάτω κωδικό για να συνδέσετε τον λογαριασμό σας." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Άνοιξε τα μηνύματά σου" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Ανοίξτε την εφαρμογή μηνυμάτων του τηλεφώνου σας και ξεκινήστε ένα νέο μήνυμα κειμένου." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Απαιτείται αριθμός τηλεφώνου" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Βήμα τηλεφώνου" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Η επαλήθευση τηλεφώνου δεν είναι διαθέσιμη για αυτόν τον λογαριασμό. Χρησιμοποιήστε άλλη μέθοδο ή επικοινωνήστε με την υποστήριξη." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "αναδημοσιεύσεις" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Ζητήστε πρώτα έναν νέο κωδικό." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Στείλτε τον κωδικό <0>{0} στο <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Στείλτε τον κωδικό στον παρακάτω αριθμό τηλεφώνου." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Στείλτε αυτόν τον κωδικό" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Να στείλετε αυτό το καρφί πίσω στον χρόνο;" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Αποστολή σε" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Αποστολή:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Η αποστολή SMS σε αυτόν τον αριθμό είναι ακριβή, γι' αυτό πρέπει να μας στείλετε εσείς μήνυμα." @@ -28311,6 +28331,18 @@ msgstr "Όριο χρηστών: {0}." msgid "Set the vanity URL to {0}." msgstr "Ορίστηκε η προσαρμοσμένη διεύθυνση URL σε {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Αναβολή αυτού του ελέγχου" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Αναβολή αυτού του ελέγχου;" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Ομαλότερο βίντεο" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Η επαλήθευση SMS δεν είναι διαθέσιμη αυτήν τη στιγμή. Δοκιμάστε ξανά αργότερα ή επικοινωνήστε με την υποστήριξη." @@ -29762,7 +29794,7 @@ msgstr "Κάτι πήγε στραβά. Δοκιμάστε ξανά αργότε #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Κάτι πήγε στραβά. Δοκιμάστε ξανά." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Τιμολόγηση Standard {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Ενδέχεται να ισχύουν οι τυπικές χρεώσεις μηνυμάτων του παρόχου σας." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Κείμενο σε ομιλία" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Στείλτε μας μήνυμα από το τηλέφωνό σας" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Σας ευχαριστούμε που συμβάλλετε στη διατήρηση της ασφάλειας του {productName}. Θα εξετάσουμε την αναφορά σας το συντομότερο δυνατό." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Αυτός ο κωδικός δεν λειτούργησε. Ελέγξτε τον και δοκιμάστε ξανά." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Αυτός ο κωδικός έληξε. Ζητήστε έναν νέο κωδικό." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Αυτό δεν ολοκληρώθηκε. Ορισμένες κοινότητες ενδέχεται να έχουν ήδη αποχωρήσει και ο λογαριασμός σας παραμένει κλειδωμένος. Πατήστε ξανά \"Αναβολή ελέγχου\" για να ολοκληρώσετε." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Δεν λειτούργησε. Τίποτα δεν άλλαξε. Δοκιμάστε ξανά." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Αυτό δεν μοιάζει με έγκυρο χρώμα. Δοκιμάστε hex, rgb(), hsl() ή ένα όνομα χρώματος CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Αυτό δεν μοιάζει με έγκυρη διεύθυνση URL." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Αυτό το email χρησιμοποιείται ήδη." @@ -31588,6 +31630,11 @@ msgstr "Το νέο κανάλι φωνής θα επαναχρησιμοποι msgid "The page you're looking for doesn't exist or has been moved." msgstr "Η σελίδα που ψάχνετε δεν υπάρχει ή έχει μετακινηθεί." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Το τηλεφωνικό έλεγχο αφήσαμε στην άκρη. Απομένει ένα βήμα με το email." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Αυτό είναι απενεργοποιημένο" msgid "This is how messages appear" msgstr "Έτσι εμφανίζονται τα μηνύματα" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Αυτό δεν είναι διαθέσιμο στον λογαριασμό σας αυτήν τη στιγμή. Στείλτε email στο {supportEmail} και κάποιος θα το ελέγξει." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Αυτό δεν είναι το κανάλι που ψάχνεις." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Αυτό το ψευδώνυμο θα είναι ορατό μόνο σε αυτήν την κοινότητα" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Αυτός ο αριθμός χρειάζεται επαλήθευση μέσω κειμένου αντί για SMS από εμάς." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Αυτός ο συμμετέχων τέθηκε σε σίγαση από συντονιστές" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Αυτός ο αριθμός τηλεφώνου δεν μπορεί να χρησιμοποιηθεί. Δοκιμάστε έναν άλλο αριθμό κινητού ή επικοινωνήστε με την υποστήριξη." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Αυτός ο αριθμός τηλεφώνου έχει ήδη χρησιμοποιηθεί. Δοκιμάστε έναν άλλο αριθμό ή επικοινωνήστε με την υποστήριξη." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Αυτή η περίοδος επαλήθευσης έληξε. Επιστρέψτε στο {productName} και ξεκινήστε ξανά την ολοκλήρωση αγοράς." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Αυτή η περίοδος επαλήθευσης έληξε. Ξεκινήστε ξανά." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Έτσι θα εμπιστεύεστε όλους τους εξωτερικούς συνδέσμους και θα παραλείπετε την προειδοποίηση για κάθε τομέα. Οι υπάρχοντες αξιόπιστοι τομείς σας θα αντικατασταθούν. Αυτό είναι λιγότερο ασφαλές." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Αυτό το παράθυρο ενημερώνεται αυτόματα μόλις λάβουμε το μήνυμά σας." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Προσαρμόστε τις εικόνες HDR στο τυπικό εύρος, μειώνοντας τη μέγιστη φωτεινότητα." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Πολλές προσπάθειες. Περιμένετε λίγο και δοκιμάστε ξανά." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Χρησιμοποιήστε μια εφαρμογή ελέγχου ταυτότητας για να δημιουργήσετε κωδικούς για έλεγχο ταυτότητας δύο παραγόντων" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Χρησιμοποιήστε ένα email διαφορετικό από το τρέχον." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Χρησιμοποιήστε ένα email που μπορείτε να ανοίξετε. Θα στείλουμε έναν κωδικό εκεί." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Χρονικό διάστημα μεταξύ των μηνυμάτων. Η άδεια \"{bypassSlowmodePermissionLabel}\" μπορεί να το παρακάμψει." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Περιμένετε εδώ" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Θα συμπληρώσουμε αυτόματα το {prefillEmail} μόλις ανοίξει η σύνδεση στο πρόγραμμα περιήγησης." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Θα στείλουμε έναν κωδικό SMS όταν είναι διαθέσιμος." @@ -37255,6 +37307,11 @@ msgstr "Μπορείτε να συνδεθείτε ξανά οποιαδήποτ msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Μπορείτε να δημιουργήσετε λογαριασμό ή να συνδεθείτε. Αν οι προσκλήσεις ενεργοποιηθούν ξανά αργότερα, μπορείτε να χρησιμοποιήσετε τον ίδιο σύνδεσμο για να συμμετάσχετε." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Μπορείς πάντα να στείλεις email στο {supportEmail} για ανθρώπινη αναθεώρηση." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Μπορείτε να αποθηκεύσετε τα αγαπημένα σας GIF μόνο ως URL ή να τα ανεβάσετε στα αποθηκευμένα πολυμέσα σας. Επιλέξτε αυτό που ταιριάζει στον τρόπο που τα χρησιμοποιείτε. Μπορείτε να το αλλάξετε οποιαδήποτε στιγμή στις {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Πρέπει να επιβεβαιώσεις το email σου για ν msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Εσείς ή κάποιος που προσθέτετε έχετε ήδη τον μέγιστο αριθμό ανοιχτών ομαδικών DM. Αφήστε ένα και δοκιμάστε ξανά." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Παραμένετε στο {ownedNames}. Οι ιδιοκτήτες δεν μπορούν να εγκαταλείψουν τη δική τους κοινότητα." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Σας έκαναν σίγαση οι συντονιστές" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Θα μεταφερθείτε στο {redirectHostname} μετά την εξουσιοδότηση." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Θα αποχωρήσεις από {count, plural, one {# κοινότητα} other {# κοινότητες}} στις οποίες ισχύει αυτός ο έλεγχος, και ο λογαριασμός σου θα λειτουργεί κανονικά ξανά." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Θα φύγεις από το {guildNames}. Τίποτα από όσα δημοσίευσες δεν διαγράφεται και μπορείς να ξαναγίνεις μέλος αργότερα." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Δεν θα μπορείτε να διαγράψετε τα απεσταλμένα μηνύματά σας αφού διαγραφεί ο λογαριασμός σας" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Θα χρειαστεί να ολοκληρώσεις ακόμα το βήμα του email." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Η περίοδος λειτουργίας σας στο {productName} msgid "Your account" msgstr "Ο λογαριασμός σας" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Ο λογαριασμός σας επανέρχεται αμέσως σε κανονική λειτουργία και δεν θα χρειαστείτε πλέον αριθμό τηλεφώνου. Αυτή δεν είναι μόνιμη εξαίρεση. Η ένταξη σε μια μεγάλη ή δημόσια κοινότητα μπορεί να επαναφέρει αυτόν τον έλεγχο." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Ο λογαριασμός σας έχει συνδεθεί επιτυχώς. Μπορείτε τώρα να κλείσετε αυτήν την καρτέλα και να επιστρέψετε στην εφαρμογή." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Ο λογαριασμός σας επανήλθε στο φυσιολογικό." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Ο λογαριασμός σας δεν έχει διεκδικηθεί ακόμα. Χωρίς email και κωδικό πρόσβασης, δεν θα μπορείτε να συνδεθείτε από άλλες συσκευές και μπορεί να χάσετε την πρόσβαση στον λογαριασμό σας. Διεκδικήστε τον λογαριασμό σας τώρα για να τον ασφαλίσετε." @@ -38014,6 +38101,11 @@ msgstr "Το αίτημα λογαριασμού σου εκκρεμεί για msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Ο λογαριασμός σας απαιτεί έλεγχο ταυτότητας πολλών παραγόντων, αλλά δεν έχουν ρυθμιστεί υποστηριζόμενες μέθοδοι σε αυτήν τη συσκευή. Συνδεθείτε σε μια συσκευή με την εφαρμογή ελέγχου ταυτότητας ή το κλειδί ασφαλείας σας ή επικοινωνήστε με την υποστήριξη." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Ο λογαριασμός σας λειτουργεί κανονικά αμέσως και τίποτα δεν αφαιρείται. Μπορούμε να ζητήσουμε ξανά αυτόν τον έλεγχο αργότερα." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Το νέο σου ψευδώνυμο, ή άφησέ το κενό για επαναφορά." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Ο αριθμός σας δεν είναι συνδεδεμένος με τον λογαριασμό σας. Διατηρούμε μόνο έναν κρυπτογραφημένο δείκτη, χωρίς αναγνωριστικό χρήστη, για έως {limit} επαληθεύσεις σε περίπου {duration} ημέρες." diff --git a/fluxer_app/src/features/i18n/locales/en-GB/messages.po b/fluxer_app/src/features/i18n/locales/en-GB/messages.po index 64627c9b6..3b7be2d84 100644 --- a/fluxer_app/src/features/i18n/locales/en-GB/messages.po +++ b/fluxer_app/src/features/i18n/locales/en-GB/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 days" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "A browser check is required before phone verification. Try again from the sign-in page or contact support." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Add a word…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Add a working email" @@ -7390,7 +7390,7 @@ msgstr "Coal theme" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "Email unavailable" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Email update is unavailable right now. Try again later or contact support." @@ -12375,6 +12375,11 @@ msgstr "Email update is unavailable right now. Try again later or contact suppor msgid "Email update required" msgstr "Email update required" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Enter a valid {theOtherPlatform} template URL or code." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Enter a valid email address." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Enter a valid message link." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Enter a valid mobile phone number." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Enter a valid username ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Enter an email you can open. We'll send a code there." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Enter gift code…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Enter new email" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Enter the {digitCount}-digit code from your authenticator app." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Enter the {digitCount}-digit code sent to {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Enter the code from your authenticator app." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Enter the code sent to {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Enter the {MFA_CODE_DIGIT_COUNT}-digit code sent to {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Enter the email code" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Enter the PIN for your security key to continue." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Enter the SMS code" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Enter your password." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Enter your phone number" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "For me" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "For this check, you send us a text message instead of receiving one from us." @@ -16437,6 +16442,11 @@ msgstr "If this report is about a specific message, please report that message i msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "If this report is about specific messages, please report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message wouldn't capture the broader issue." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "If you can't verify by SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Learn more" msgid "Leave" msgstr "Leave" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Leave and set aside" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Open your browser, sign in, then enter the code below to link your account." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Open your messages" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Open your phone messaging app and start a new text message." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Phone number is required" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Phone step" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Phone verification is not available for this account. Use another method or contact support." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "reposts" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Request a new code first." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Send the code <0>{0} to <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Send the code to the phone number below." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Send this code" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Send this pin back in time?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Send to" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Send:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Sending an SMS to this number is expensive, so we need you to text us instead." @@ -28311,6 +28331,18 @@ msgstr "Set the user limit to {0}." msgid "Set the vanity URL to {0}." msgstr "Set the vanity URL to {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Set this check aside" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Set this check aside?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Smoother video" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "SMS verification is unavailable right now. Try again later or contact support." @@ -29762,7 +29794,7 @@ msgstr "Something went wrong. Please try again later." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Something went wrong. Please try again." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standard {baseCurrencyLabel} pricing" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Standard messaging rates from your carrier may apply." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Text to speech" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Text us from your phone" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Thank you for helping to keep {productName} safe. We'll review your report as soon as possible." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "That code didn't work. Check it and try again." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "That code expired. Request a new code." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "That didn't go through. Nothing changed. Try again." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "That doesn't look like a valid colour. Try hex, rgb(), hsl(), or a CSS colour name." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "That doesn't look like a valid URL." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "That email is already in use." @@ -31588,6 +31630,11 @@ msgstr "The new voice channel will reuse the permissions, user limit, and bitrat msgid "The page you're looking for doesn't exist or has been moved." msgstr "The page you're looking for doesn't exist or has been moved." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "The phone check has been set aside. One email step remains." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "This is disabled" msgid "This is how messages appear" msgstr "This is how messages appear" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "This is not available on your account right now. Email {supportEmail} and a person will review it." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "This isn't the channel you're looking for." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "This nickname will only be visible in this community" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "This number needs text-in verification instead of an SMS from us." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "This participant was deafened by moderators" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "This phone number cannot be used. Try another mobile number or contact support." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "This phone number has already been used. Try another number or contact support." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "This verification session expired. Return to {productName} and start checkout again." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "This verification session expired. Start again." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "This will trust all external links and skip the warning for every domain. Your existing trusted domains will be replaced. This is less secure." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "This window updates automatically after we receive your message." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Tone-map HDR images to standard range, reducing peak brightness." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Too many attempts. Wait a bit, then try again." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Use an authenticator app to generate codes for two-factor authentication" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Use an email address that is different from your current one." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Use an email you can open. We'll send a code there." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Wait here" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "We'll pre-fill {prefillEmail} once browser sign-in opens." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "We'll send an SMS code when available." @@ -37255,6 +37307,11 @@ msgstr "You can sign back in at any time." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "You can still email {supportEmail} for a human review at any time." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "You can store starred GIFs as URL-only favourites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "You need to verify your email to send messages in this community." msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "You're staying in {ownedNames}. Owners can't leave their own community." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "You were deafened by moderators" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "You will be taken to {redirectHostname} after authorising." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account will work normally again." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "You won't be able to delete your sent messages after your account is deleted" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "You'll still need to finish the email step." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,21 @@ msgstr "Your {productName} session expired. Sign in again to continue authorisin msgid "Your account" msgstr "Your account" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Your account goes back to normal straight away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Your account has been linked successfully. You can now close this tab and return to the app." +# auto-i18n: reviewed unchanged +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Your account is back to normal." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Your account isn't claimed yet. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." @@ -38014,6 +38102,12 @@ msgstr "Your account request is pending approval. You can sign in after an admin msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." +# auto-i18n: reviewed unchanged +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Your account works normally again straight away and nothing is removed. We can ask for this check again later." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38303,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Your new nickname, or leave blank to reset it." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Your number isn't linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." diff --git a/fluxer_app/src/features/i18n/locales/en-US/messages.po b/fluxer_app/src/features/i18n/locales/en-US/messages.po index 41a72e6a6..acac7c891 100644 --- a/fluxer_app/src/features/i18n/locales/en-US/messages.po +++ b/fluxer_app/src/features/i18n/locales/en-US/messages.po @@ -1831,7 +1831,7 @@ msgid "7 days" msgstr "7 days" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "A browser check is required before phone verification. Try again from the sign-in page or contact support." @@ -2355,7 +2355,7 @@ msgid "Add a word…" msgstr "Add a word…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Add a working email" @@ -7391,7 +7391,7 @@ msgstr "Coal theme" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12367,7 +12367,7 @@ msgid "Email unavailable" msgstr "Email unavailable" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Email update is unavailable right now. Try again later or contact support." @@ -12376,6 +12376,11 @@ msgstr "Email update is unavailable right now. Try again later or contact suppor msgid "Email update required" msgstr "Email update required" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13018,7 +13023,7 @@ msgstr "Enter a valid {theOtherPlatform} template URL or code." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Enter a valid email address." @@ -13029,7 +13034,7 @@ msgid "Enter a valid message link." msgstr "Enter a valid message link." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Enter a valid mobile phone number." @@ -13046,7 +13051,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Enter a valid username ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Enter an email you can open. We will send a code there." @@ -13070,7 +13075,7 @@ msgid "Enter gift code…" msgstr "Enter gift code…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Enter new email" @@ -13105,7 +13110,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Enter the {digitCount}-digit code from your authenticator app." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Enter the {digitCount}-digit code sent to {phoneNumber}." @@ -13124,7 +13129,7 @@ msgid "Enter the code from your authenticator app." msgstr "Enter the code from your authenticator app." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Enter the code sent to {emailAddress}." @@ -13155,7 +13160,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Enter the email code" @@ -13173,7 +13178,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Enter the PIN for your security key to continue." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Enter the SMS code" @@ -13209,7 +13214,7 @@ msgid "Enter your password." msgstr "Enter your password." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Enter your phone number" @@ -14556,7 +14561,7 @@ msgid "For me" msgstr "For me" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "For this check, you send us a text message instead of receiving one from us." @@ -16438,6 +16443,11 @@ msgstr "If this report is about a specific message, report that message instead. msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "If you can't verify by SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18095,6 +18105,16 @@ msgstr "Learn more" msgid "Leave" msgstr "Leave" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Leave and set aside" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22635,12 +22655,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Open your browser, sign in, then enter the code below to link your account." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Open your messages" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Open your phone messaging app and start a new text message." @@ -23348,7 +23368,7 @@ msgid "Phone number is required" msgstr "Phone number is required" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23365,7 +23385,7 @@ msgid "Phone step" msgstr "Phone step" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Phone verification is not available for this account. Use another method or contact support." @@ -25783,7 +25803,7 @@ msgid "reposts" msgstr "reposts" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Request a new code first." @@ -27961,12 +27981,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Send the code <0>{0} to <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Send the code to the phone number below." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Send this code" @@ -27976,7 +27996,7 @@ msgid "Send this pin back in time?" msgstr "Send this pin back in time?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Send to" @@ -28004,7 +28024,7 @@ msgid "Send:" msgstr "Send:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Sending an SMS to this number is expensive, so we need you to text us instead." @@ -28312,6 +28332,18 @@ msgstr "Set the user limit to {0}." msgid "Set the vanity URL to {0}." msgstr "Set the vanity URL to {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Set this check aside" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Set this check aside?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29558,7 +29590,7 @@ msgid "Smoother video" msgstr "Smoother video" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "SMS verification is unavailable right now. Try again later or contact support." @@ -29763,7 +29795,7 @@ msgstr "Something went wrong. Try again later." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Something went wrong. Try again." @@ -30117,7 +30149,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standard {baseCurrencyLabel} pricing" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Standard messaging rates from your carrier may apply." @@ -31358,7 +31390,7 @@ msgid "Text to speech" msgstr "Text to speech" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Text us from your phone" @@ -31422,15 +31454,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Thank you for helping keep {productName} safe. We'll review your report as soon as possible." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "That code didn't work. Check it and try again." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "That code expired. Request a new code." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "That did not go through. Nothing changed. Try again." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." @@ -31440,7 +31482,7 @@ msgid "That doesn't look like a valid URL." msgstr "That doesn't look like a valid URL." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "That email is already in use." @@ -31589,6 +31631,11 @@ msgstr "The new voice channel will reuse the permissions, user limit, and bitrat msgid "The page you're looking for doesn't exist or has been moved." msgstr "The page you're looking for doesn't exist or has been moved." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "The phone check is set aside. One email step is left." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32200,6 +32247,11 @@ msgstr "This is disabled" msgid "This is how messages appear" msgstr "This is how messages appear" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "This is not available on your account right now. Email {supportEmail} and a person will review it." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "This is not the channel you're looking for." @@ -32303,7 +32355,7 @@ msgid "This nickname will only be visible in this community" msgstr "This nickname will only be visible in this community" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "This number needs text-in verification instead of an SMS from us." @@ -32328,12 +32380,12 @@ msgid "This participant was deafened by moderators" msgstr "This participant was deafened by moderators" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "This phone number cannot be used. Try another mobile number or contact support." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "This phone number has already been used. Try another number or contact support." @@ -32485,7 +32537,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "This verification session expired. Return to {productName} and start checkout again." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "This verification session expired. Start again." @@ -32584,7 +32636,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "This will trust all external links and skip the warning for every domain. Your existing trusted domains will be replaced. This is less secure." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "This window updates automatically after we receive your message." @@ -32901,7 +32953,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Tone-map HDR images to standard range, reducing peak brightness." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Too many attempts. Wait a bit, then try again." @@ -34731,12 +34783,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Use an authenticator app to generate codes for two-factor authentication" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Use an email that is different from your current one." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Use an email you can open. We will send a code there." @@ -36298,7 +36350,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Wait here" @@ -36487,7 +36539,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "We will prefill {prefillEmail} once browser sign-in opens." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "We will send an SMS code when available." @@ -37256,6 +37308,11 @@ msgstr "You can sign back in at any time." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "You can still email {supportEmail} for a human review at any time." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." @@ -37700,6 +37757,11 @@ msgstr "You need to verify your email to send messages in this community." msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "You stay in {ownedNames}. Owners cannot leave their own community." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37710,10 +37772,25 @@ msgstr "You were deafened by moderators" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "You will be taken to {redirectHostname} after authorizing." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "You will not be able to delete your sent messages after your account is deleted" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "You will still need to finish the email step." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37994,10 +38071,20 @@ msgstr "Your {productName} session expired. Sign in again to continue authorizin msgid "Your account" msgstr "Your account" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Your account has been linked successfully. You can now close this tab and return to the app." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Your account is back to normal." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." @@ -38015,6 +38102,11 @@ msgstr "Your account request is pending approval. You can sign in after an admin msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Your account works normally again straight away and nothing is removed. We can ask for this check again later." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38210,7 +38302,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Your new nickname, or leave blank to reset it." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." diff --git a/fluxer_app/src/features/i18n/locales/es-419/messages.po b/fluxer_app/src/features/i18n/locales/es-419/messages.po index c1db47091..093181de2 100644 --- a/fluxer_app/src/features/i18n/locales/es-419/messages.po +++ b/fluxer_app/src/features/i18n/locales/es-419/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 días" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Se requiere una verificación del navegador antes de la verificación telefónica. Intenta de nuevo desde la página de inicio de sesión o contacta a soporte." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Añadir una palabra…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Añade un correo electrónico que funcione" @@ -7390,7 +7390,7 @@ msgstr "Tema carbón" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "Correo electrónico no disponible" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "La actualización del correo electrónico no está disponible en este momento. Intenta de nuevo más tarde o contacta a soporte." @@ -12375,6 +12375,11 @@ msgstr "La actualización del correo electrónico no está disponible en este mo msgid "Email update required" msgstr "Actualización de correo electrónico requerida" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Envíanos un correo y una persona revisará tu cuenta. Indica que no puedes verificar por SMS y nos encargaremos del resto. Las respuestas llegan por correo electrónico, así que esto no es instantáneo." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Introduce una URL o código de plantilla {theOtherPlatform} válido." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Ingresa una dirección de correo electrónico válida." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Ingresa un enlace de mensaje válido." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Ingresa un número de teléfono celular válido." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Ingresa un nombre de usuario válido ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Ingresa un correo electrónico al que tengas acceso. Te enviaremos un código allí." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Ingresa el código de regalo…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Ingresa el correo electrónico nuevo" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Ingresa el código de {digitCount} dígitos de tu aplicación de autenticación." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Ingresa el código de {digitCount} dígitos que enviamos a {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Ingresa el código de tu app de autenticación." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Ingresa el código que enviamos a {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Ingresa el código de {MFA_CODE_DIGIT_COUNT} dígitos que enviamos a {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Ingresa el código de correo electrónico" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Ingresa el código PIN de tu clave de seguridad para continuar." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Ingresa el código SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Ingresa tu contraseña." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Ingresa tu número de teléfono" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Para mí" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Para esta verificación, nos envías un mensaje de texto en lugar de recibir uno nuestro." @@ -16437,6 +16442,11 @@ msgstr "Si este reporte es sobre un mensaje específico, reporta ese mensaje. Lo msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Si este reporte es sobre mensajes específicos, reporta el mensaje más relevante. Los reportes de mensajes le dan a nuestro equipo de seguridad el contexto más claro, y agregar detalles en los comentarios nos puede ayudar a revisarlo más rápido. Solo continúa reportando al usuario en general si reportar un mensaje no capturaría el problema más amplio." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Si no puedes verificar por SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Más información" msgid "Leave" msgstr "Salir" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "¿Dejar {count, plural, one {# comunidad} other {# comunidades}} y apartar esta verificación?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Salir y posponer" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Abre tu navegador, inicia sesión y luego ingresa el código a continuación para vincular tu cuenta." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Abre tus mensajes" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Abre tu app de mensajería y empieza un mensaje de texto nuevo." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Se requiere un número de teléfono" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Paso del teléfono" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "La verificación telefónica no está disponible para esta cuenta. Usa otro método o contacta a soporte." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "republicaciones" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Primero, solicita un código nuevo." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Enviar el código <0>{0} a <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Envía el código al número de teléfono de abajo." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Enviar este código" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "¿Enviar este pin al pasado?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Enviar a" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Enviar:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Enviar un SMS a este número es costoso, así que necesitamos que nos envíes un mensaje de texto en su lugar." @@ -28311,6 +28331,18 @@ msgstr "Estableció el límite de usuarios en {0}." msgid "Set the vanity URL to {0}." msgstr "Establecer la URL personalizada en {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Dejar esta verificación a un lado" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "¿Dejar esta verificación en espera?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Video más fluido" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "La verificación por SMS no está disponible en este momento. Intenta de nuevo más tarde o contacta a soporte." @@ -29762,7 +29794,7 @@ msgstr "Algo salió mal. Intenta de nuevo más tarde." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Algo salió mal. Intenta de nuevo." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Precios estándar en {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Pueden aplicarse las tarifas de mensajería estándar de tu operador." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Texto a voz" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Envíanos un mensaje de texto desde tu teléfono" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Gracias por ayudarnos a mantener {productName} seguro. Revisaremos tu informe lo antes posible." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Ese código no funcionó. Revísalo e inténtalo de nuevo." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Ese código caducó. Solicita un código nuevo." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Eso no terminó. Es posible que algunas comunidades ya hayan sido abandonadas y tu cuenta siga bloqueada. Presiona \"Dejar esta verificación a un lado\" nuevamente para finalizar." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "No se pudo completar. Nada cambió. Intenta de nuevo." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "No parece un color válido. Prueba con hexadecimal, rgb(), hsl() o un nombre de color CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Parece que no es una URL válida." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Ese correo electrónico ya está en uso." @@ -31588,6 +31630,11 @@ msgstr "El nuevo canal de voz reutilizará los permisos, el límite de usuarios msgid "The page you're looking for doesn't exist or has been moved." msgstr "La página que buscas no existe o se movió." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "La verificación del teléfono se ha pospuesto. Queda un paso por correo electrónico." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Esto está deshabilitado" msgid "This is how messages appear" msgstr "Así se ven los mensajes" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Esto no está disponible en tu cuenta en este momento. Envía un correo a {supportEmail} y una persona lo revisará." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Este no es el canal que buscas." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Este apodo solo será visible en esta comunidad" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Este número necesita verificación por mensaje de texto en lugar de un SMS nuestro." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Este participante fue silenciado por los moderadores" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "No se puede usar este número de teléfono. Prueba con otro número de celular o contacta a soporte." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Este número de teléfono ya ha sido utilizado. Prueba con otro número o contacta a soporte." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Esta sesión de verificación caducó. Vuelve a {productName} e inicia el proceso de pago de nuevo." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Esta sesión de verificación caducó. Vuelve a empezar." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Esto confiará en todos los enlaces externos y omitirá la advertencia para cada dominio. Tus dominios de confianza existentes serán reemplazados. Esto es menos seguro." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Esta ventana se actualiza automáticamente después de que recibamos tu mensaje." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Mapear el tono de las imágenes HDR al rango estándar, reduciendo el brillo máximo." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Demasiados intentos. Espera un poco y vuelve a intentarlo." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Usa una app de autenticación para generar códigos de verificación en dos pasos" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Usa un correo electrónico diferente al actual." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Usa un correo electrónico que puedas abrir. Te enviaremos un código allí." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Tiempo de espera entre mensajes. \"{bypassSlowmodePermissionLabel}\" puede omitirlo." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Espera aquí" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Vamos a rellenar automáticamente {prefillEmail} cuando se abra el inicio de sesión en el navegador." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Te enviaremos un código por SMS cuando esté disponible." @@ -37255,6 +37307,11 @@ msgstr "Puedes volver a iniciar sesión en cualquier momento." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Aún puedes crear una cuenta o iniciar sesión. Si las invitaciones se vuelven a habilitar más tarde, puedes usar este mismo enlace para unirte." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Aún puedes enviarnos un correo a {supportEmail} para una revisión humana en cualquier momento." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Puedes guardar los GIF destacados como favoritos solo con URL o subirlos a tus elementos guardados. Elige la opción que mejor se adapte a cómo los usas. Puedes cambiar esto en cualquier momento en {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Necesitas verificar tu correo electrónico para enviar mensajes en esta msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Tú o alguien que estás añadiendo ya tiene el número máximo de MD grupales abiertos. Sal de uno e inténtalo de nuevo." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Te quedas en {ownedNames}. Los propietarios no pueden abandonar su propia comunidad." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Los moderadores te silenciaron" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Se te redirigirá a {redirectHostname} después de autorizar." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Saldrás de {count, plural, one {# comunidad} other {# comunidades}} a las que se aplica esta verificación, y tu cuenta volverá a funcionar con normalidad." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Saldrás de {guildNames}. Nada de lo que publicaste se elimina y puedes volver a unirte más tarde." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "No podrás eliminar los mensajes que enviaste después de que se elimine tu cuenta" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Aún necesitarás completar el paso del correo electrónico." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Tu sesión de {productName} caducó. Inicia sesión de nuevo para seguir msgid "Your account" msgstr "Tu cuenta" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Tu cuenta vuelve a la normalidad de inmediato y no necesitarás un número de teléfono ahora. Esta no es una exención permanente. Unirte a una comunidad grande o pública puede hacer que esta verificación regrese." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Tu cuenta se vinculó correctamente. Ahora puedes cerrar esta pestaña y volver a la aplicación." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Tu cuenta volvió a la normalidad." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Tu cuenta aún no ha sido reclamada. Sin un correo electrónico y una contraseña, no podrás iniciar sesión desde otros dispositivos y podrías perder el acceso a tu cuenta. Reclama tu cuenta ahora para protegerla." @@ -38014,6 +38101,11 @@ msgstr "Tu solicitud de cuenta está pendiente de aprobación. Podrás iniciar s msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Tu cuenta requiere autenticación multifactor, pero no hay métodos compatibles configurados en este dispositivo. Inicia sesión en un dispositivo con tu aplicación de autenticación o llave de seguridad, o contacta a soporte." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Tu cuenta vuelve a funcionar con normalidad de inmediato y no se elimina nada. Podemos solicitar esta verificación más tarde." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Tu nuevo apodo, o déjalo en blanco para restablecerlo." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Tu número no está vinculado a tu cuenta. Solo guardamos un marcador cifrado, sin ID de usuario, para un máximo de {limit} verificaciones en aproximadamente {duration} días." diff --git a/fluxer_app/src/features/i18n/locales/es-ES/messages.po b/fluxer_app/src/features/i18n/locales/es-ES/messages.po index c0bd937ce..65b6358ae 100644 --- a/fluxer_app/src/features/i18n/locales/es-ES/messages.po +++ b/fluxer_app/src/features/i18n/locales/es-ES/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 días" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Se requiere una comprobación del navegador antes de la verificación del teléfono. Inténtalo de nuevo desde la página de inicio de sesión o contacta con el soporte." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Añadir una palabra…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Añade un correo electrónico que funcione" @@ -7390,7 +7390,7 @@ msgstr "Tema carbón" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "Correo electrónico no disponible" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "La actualización del correo electrónico no está disponible en este momento. Inténtalo de nuevo más tarde o contacta con el soporte." @@ -12375,6 +12375,11 @@ msgstr "La actualización del correo electrónico no está disponible en este mo msgid "Email update required" msgstr "Actualización de correo electrónico necesaria" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Envíanos un correo y una persona revisará tu cuenta. Indica que no puedes verificar por SMS y nos encargaremos del resto. Las respuestas llegan por correo electrónico, así que no es instantáneo." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Introduce una URL o código de plantilla de {theOtherPlatform} válido." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Introduce una dirección de correo electrónico válida." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Introduce un enlace de mensaje válido." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Introduce un número de teléfono móvil válido." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Introduce un nombre de usuario válido ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Introduce un correo electrónico que puedas abrir. Te enviaremos un código." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Introduce el código de regalo…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Introduce el nuevo correo electrónico" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Introduce el código de {digitCount} dígitos de tu aplicación de autenticación." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Introduce el código de {digitCount} dígitos enviado a {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Introduce el código de tu aplicación de autenticación." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Introduce el código enviado a {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Introduce el código de {MFA_CODE_DIGIT_COUNT} dígitos que te hemos enviado a {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Introduce el código de correo electrónico" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Introduce el código PIN de tu clave de seguridad para continuar." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Introduce el código SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Introduce tu contraseña." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Introduce tu número de teléfono" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Para mí" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Para esta verificación, nos envías un mensaje de texto en lugar de recibir uno nuestro." @@ -16437,6 +16442,11 @@ msgstr "Si este informe se refiere a un mensaje específico, informa de ese mens msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Si este informe trata sobre mensajes específicos, informa sobre el mensaje más relevante. Los informes de mensajes proporcionan a nuestro equipo de seguridad el contexto más claro, y añadir detalles en los comentarios puede ayudarnos a revisarlo más rápido. Solo continúa informando sobre el usuario en su conjunto si informar sobre un mensaje no capturaría el problema general." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Si no puedes verificar por SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Más información" msgid "Leave" msgstr "Salir" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "¿Abandonar {count, plural, one {# comunidad} other {# comunidades}} y dejar esta verificación en espera?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Abandonar y posponer" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Abre tu navegador, inicia sesión y, a continuación, introduce el código de abajo para vincular tu cuenta." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Abre tus mensajes" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Abre la aplicación de mensajería de tu teléfono e inicia un nuevo mensaje de texto." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Se requiere un número de teléfono" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Paso del teléfono" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "La verificación telefónica no está disponible para esta cuenta. Usa otro método o contacta con soporte." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "republicaciones" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Primero, solicita un código nuevo." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Envía el código <0>{0} a <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Envía el código al número de teléfono de abajo." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Enviar este código" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "¿Enviar este mensaje anclado al pasado?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Enviar a" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Enviar:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Enviar un SMS a este número es caro, así que necesitamos que nos envíes un mensaje de texto." @@ -28311,6 +28331,18 @@ msgstr "Establecer el límite de usuarios en {0}." msgid "Set the vanity URL to {0}." msgstr "Establece la URL personalizada en {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Dejar esta verificación a un lado" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "¿Dejar esta verificación en suspenso?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Vídeo más fluido" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "La verificación por SMS no está disponible en este momento. Inténtalo de nuevo más tarde o contacta con el soporte técnico." @@ -29762,7 +29794,7 @@ msgstr "Ha ocurrido un error. Inténtalo de nuevo más tarde." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Ha ocurrido un error. Inténtalo de nuevo." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Precios estándar en {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Pueden aplicarse las tarifas de mensajería estándar de tu operador." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Texto a voz" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Envíanos un mensaje desde tu teléfono" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Gracias por ayudarnos a mantener {productName} seguro. Revisaremos tu informe lo antes posible." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Ese código no funcionó. Compruébalo e inténtalo de nuevo." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Ese código ha caducado. Solicita un código nuevo." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "No se ha completado. Es posible que ya se hayan abandonado algunas comunidades y tu cuenta siga bloqueada. Pulsa \"Dejar esta verificación a un lado\" de nuevo para finalizar." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "No se ha podido completar. Nada ha cambiado. Inténtalo de nuevo." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "No parece un color válido. Prueba con un código hexadecimal, rgb(), hsl() o un nombre de color CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "No parece una URL válida." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Ese correo electrónico ya está en uso." @@ -31588,6 +31630,11 @@ msgstr "El nuevo canal de voz reutilizará los permisos, el límite de usuarios msgid "The page you're looking for doesn't exist or has been moved." msgstr "La página que buscas no existe o se ha movido." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "La verificación del teléfono se ha pospuesto. Queda un paso por correo electrónico." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Esto está deshabilitado" msgid "This is how messages appear" msgstr "Así se muestran los mensajes" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "En este momento no está disponible en tu cuenta. Envía un correo electrónico a {supportEmail} y una persona lo revisará." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Este no es el canal que buscas." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Este apodo solo será visible en esta comunidad" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Este número necesita verificación por texto en lugar de un SMS nuestro." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Este participante fue silenciado por los moderadores" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "No se puede usar este número de teléfono. Prueba con otro número de móvil o contacta con soporte." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Este número de teléfono ya se ha usado. Prueba con otro número o contacta con el equipo de soporte." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "La sesión de verificación ha caducado. Vuelve a {productName} y reinicia el proceso de compra." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "La sesión de verificación ha caducado. Vuelve a empezar." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Esto hará que se confíe en todos los enlaces externos y se omita la advertencia para cada dominio. Tus dominios de confianza existentes serán reemplazados. Esto es menos seguro." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Esta ventana se actualiza automáticamente cuando recibimos tu mensaje." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Mapea el tono de las imágenes HDR al rango estándar, reduciendo el brillo máximo." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Demasiados intentos. Espera un poco y vuelve a intentarlo." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Usa una aplicación de autenticación para generar códigos para la verificación en dos pasos" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Usa un correo electrónico diferente al actual." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Usa un correo electrónico que puedas abrir. Te enviaremos un código ahí." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Tiempo de espera entre mensajes. \"{bypassSlowmodePermissionLabel}\" puede omitirlo." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Espera aquí" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Rellenaremos automáticamente {prefillEmail} cuando se abra el inicio de sesión en el navegador." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Enviaremos un código SMS cuando esté disponible." @@ -37255,6 +37307,11 @@ msgstr "Puedes volver a iniciar sesión en cualquier momento." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Puedes crear una cuenta o iniciar sesión. Si las invitaciones se vuelven a habilitar más tarde, puedes usar este mismo enlace para unirte." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Aún puedes enviarnos un correo electrónico a {supportEmail} para una revisión humana en cualquier momento." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Puedes guardar los GIF destacados como favoritos solo con URL o subirlos a tus archivos multimedia guardados. Elige la opción que mejor se adapte a cómo los usas. Puedes cambiar esto en cualquier momento en {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Tienes que verificar tu correo electrónico para enviar mensajes en esta msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Tú o alguien a quien estás añadiendo ya tiene el número máximo de MD de grupo abiertos. Sal de uno e inténtalo de nuevo." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Permaneces en {ownedNames}. Los propietarios no pueden abandonar su propia comunidad." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Te silenciaron los moderadores" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Se te redirigirá a {redirectHostname} después de la autorización." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Saldrás de {count, plural, one {# comunidad} other {# comunidades}} a las que se aplica esta verificación y tu cuenta volverá a funcionar con normalidad." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Saldrás de {guildNames}. Nada de lo que publicaste se elimina y puedes volver a unirte más tarde." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "No podrás eliminar los mensajes que hayas enviado después de que se elimine tu cuenta" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Todavía tendrás que completar el paso del correo electrónico." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Tu sesión de {productName} ha caducado. Inicia sesión de nuevo para se msgid "Your account" msgstr "Tu cuenta" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Tu cuenta volverá a la normalidad de inmediato y no necesitarás un número de teléfono ahora. Esta no es una exención permanente. Unirte a una comunidad grande o pública puede hacer que esta verificación vuelva a aparecer." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Tu cuenta se ha vinculado correctamente. Ya puedes cerrar esta pestaña y volver a la aplicación." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Tu cuenta vuelve a la normalidad." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Tu cuenta aún no ha sido reclamada. Sin un correo electrónico y una contraseña, no podrás iniciar sesión desde otros dispositivos y podrías perder el acceso a tu cuenta. Reclama tu cuenta ahora para protegerla." @@ -38014,6 +38101,11 @@ msgstr "Tu solicitud de cuenta está pendiente de aprobación. Podrás iniciar s msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Tu cuenta requiere autenticación multifactor, pero no hay métodos compatibles configurados en este dispositivo. Inicia sesión en un dispositivo con tu aplicación de autenticación o clave de seguridad, o contacta con soporte." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Tu cuenta vuelve a funcionar con normalidad al instante y no se elimina nada. Podemos volver a solicitar esta comprobación más adelante." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Tu nuevo apodo, o déjalo en blanco para restablecerlo." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Tu número no está vinculado a tu cuenta. Solo guardamos un marcador cifrado, sin ID de usuario, para un máximo de {limit} verificaciones en aproximadamente {duration} días." diff --git a/fluxer_app/src/features/i18n/locales/fi/messages.po b/fluxer_app/src/features/i18n/locales/fi/messages.po index b0e2850da..959b008d2 100644 --- a/fluxer_app/src/features/i18n/locales/fi/messages.po +++ b/fluxer_app/src/features/i18n/locales/fi/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 päivää" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Selaimen tarkistus vaaditaan ennen puhelinnumeron vahvistamista. Yritä uudelleen kirjautumissivulta tai ota yhteyttä tukeen." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Lisää sana…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Lisää toimiva sähköpostiosoite" @@ -7390,7 +7390,7 @@ msgstr "Hiiliteema" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "Sähköposti ei saatavilla" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Sähköpostin päivitys ei ole käytettävissä juuri nyt. Yritä myöhemmin uudelleen tai ota yhteyttä tukeen." @@ -12375,6 +12375,11 @@ msgstr "Sähköpostin päivitys ei ole käytettävissä juuri nyt. Yritä myöhe msgid "Email update required" msgstr "Sähköpostin päivitys vaaditaan" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Lähetä meille sähköpostia, niin henkilö tarkistaa tilisi. Kerro, ettet voi vahvistaa tekstiviestillä, niin hoidamme loput. Vastaukset tulevat sähköpostitse, joten tämä ei ole välitöntä." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Anna kelvollinen {theOtherPlatform} -mallin URL-osoite tai koodi." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Anna kelvollinen sähköpostiosoite." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Anna kelvollinen viestilinkki." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Anna kelvollinen matkapuhelinnumero." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Anna kelvollinen käyttäjänimi ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Anna sähköpostiosoite, jonka voit avata. Lähetämme sinne koodin." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Anna lahjakoodi…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Anna uusi sähköpostiosoite" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Syötä todennussovelluksesi {digitCount}-numeroinen koodi." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Anna {phoneNumber}-numeroon lähetetty {digitCount}-numeroinen koodi." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Syötä koodi todennussovelluksestasi." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Anna osoitteeseen {emailAddress} lähetetty koodi." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Anna {MFA_CODE_DIGIT_COUNT}-numeroinen koodi, joka lähetettiin numeroon {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Anna sähköpostikoodi" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Syötä tietoturva-avaimen PIN-koodi jatkaaksesi." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Anna tekstiviestikoodi" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Anna salasanasi." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Anna puhelinnumerosi" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Minulle" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Tässä tarkistuksessa lähetät meille tekstiviestin sen sijaan, että saisit sen meiltä." @@ -16437,6 +16442,11 @@ msgstr "Jos ilmoitus koskee tiettyä viestiä, ilmoita siitä viestistä. Viesti msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Jos tämä ilmoitus koskee tiettyjä viestejä, ilmoita mieluummin niistä tärkeimmästä. Viesti-ilmoitukset antavat turvallisuustiimillemme selkeimmän kontekstin, ja lisätietojen lisääminen kommentteihin voi auttaa meitä käsittelemään sen nopeammin. Jatka käyttäjästä ilmoittamista kokonaisuutena vain, jos viestistä ilmoittaminen ei kattaisi laajempaa ongelmaa." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Jos et voi vahvistaa tekstiviestillä" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Lue lisää" msgid "Leave" msgstr "Poistu" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Poistuiko {count, plural, one {# yhteisö} other {# yhteisöä}} ja jätä tämä tarkistus sivuun?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Poistu ja siirrä sivuun" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Avaa selaimesi, kirjaudu sisään ja syötä sitten alla oleva koodi tilisi yhdistämiseksi." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Avaa viestisi" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Avaa puhelimen viestisovellus ja aloita uusi tekstiviesti." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Puhelinnumero vaaditaan" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Puhelinvaihe" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Puhelinnumeron vahvistus ei ole käytettävissä tällä tilillä. Käytä toista menetelmää tai ota yhteyttä tukeen." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "uudelleenjaot" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Pyydä ensin uusi koodi." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Lähetä koodi <0>{0} numeroon <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Lähetä koodi alla olevaan puhelinnumeroon." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Lähetä tämä koodi" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Lähetetäänkö tämä kiinnitys takaisin menneisyyteen?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Lähetä numeroon" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Lähetys:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Tekstiviestin lähettäminen tähän numeroon on kallista, joten pyydämme sinua lähettämään meille viestin sen sijaan." @@ -28311,6 +28331,18 @@ msgstr "Aseta käyttäjärajaksi {0}." msgid "Set the vanity URL to {0}." msgstr "Aseta vanity-URL osoitteeseen {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Siirrä tämä tarkistus sivuun" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Siirretäänkö tämä tarkistus sivuun?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Sujuvampi video" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Tekstiviestivahvistus ei ole käytettävissä juuri nyt. Yritä myöhemmin uudelleen tai ota yhteyttä tukeen." @@ -29762,7 +29794,7 @@ msgstr "Jokin meni pieleen. Yritä myöhemmin uudelleen." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Jokin meni pieleen. Yritä uudelleen." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Vakiotason {baseCurrencyLabel}-hinnoittelu" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Operaattorisi normaalit viestihinnat saattavat olla voimassa." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Tekstistä puheeksi" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Lähetä meille tekstiviesti puhelimestasi" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Kiitos, että autat pitämään palvelun {productName} turvallisena. Tarkistamme ilmoituksesi mahdollisimman pian." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Koodi ei toiminut. Tarkista se ja yritä uudelleen." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Koodi vanhentui. Pyydä uusi koodi." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Tämä ei valmistunut. Jotkin yhteisöt on ehkä jo poistettu, ja tilisi on edelleen lukittu. Paina \"Siirrä tämä tarkistus sivuun\" uudelleen valmistumista varten." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Tämä ei mennyt läpi. Mikään ei muuttunut. Yritä uudelleen." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Tuo ei näytä kelvolliselta väriltä. Kokeile heksakoodia, rgb()- tai hsl()-arvoa tai CSS-värinimeä." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Tuo ei näytä kelvolliselta URL-osoitteelta." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Sähköpostiosoite on jo käytössä." @@ -31588,6 +31630,11 @@ msgstr "Uusi äänikanava käyttää samoja oikeuksia, käyttäjärajoitusta ja msgid "The page you're looking for doesn't exist or has been moved." msgstr "Etsimääsi sivua ei löydy tai se on siirretty." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Puhelinvahvistus on jätetty sivuun. Yksi sähköpostivaihe on jäljellä." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Tämä on poistettu käytöstä" msgid "This is how messages appear" msgstr "Näin viestit näkyvät" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Tämä ei ole tällä hetkellä käytettävissä tililläsi. Lähetä sähköpostia osoitteeseen {supportEmail}, niin henkilö tarkistaa asian." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Tämä ei ole etsimäsi kanava." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Tämä lempinimi näkyy vain tässä yhteisössä" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Tämä numero vaatii tekstivahvistuksen meiltä tulevan tekstiviestin sijaan." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Moderaattorit mykistivät tämän osallistujan" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Tätä puhelinnumeroa ei voi käyttää. Kokeile toista matkapuhelinnumeroa tai ota yhteyttä tukeen." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Tätä puhelinnumeroa on jo käytetty. Kokeile toista numeroa tai ota yhteyttä tukeen." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Vahvistusistunto vanheni. Palaa takaisin sovellukseen {productName} ja aloita maksuprosessi uudelleen." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Tämä vahvistusistunto vanheni. Aloita alusta." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Tämä luottaa kaikkiin ulkoisiin linkkeihin ja ohittaa varoituksen jokaisella verkkotunnuksella. Nykyiset luotetut verkkotunnuksesi korvataan. Tämä on vähemmän turvallista." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Tämä ikkuna päivittyy automaattisesti, kun olemme vastaanottaneet viestisi." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Skaalaa HDR-kuvat vakioväriskaalalle, mikä vähentää kirkkauden huippua." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Liian monta yritystä. Odota hetki ja yritä sitten uudelleen." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Käytä todennussovellusta luodaksesi koodeja kaksivaiheiseen tunnistautumiseen" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Käytä eri sähköpostiosoitetta kuin nykyinen." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Käytä sähköpostiosoitetta, jonka voit avata. Lähetämme sinne koodin." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Viive viestien välillä. \"{bypassSlowmodePermissionLabel}\" voi ohittaa sen." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Odota tässä" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Esitäytämme sähköpostiosoitteen {prefillEmail}, kun kirjautuminen avautuu selaimessa." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Lähetämme tekstiviestikoodin, kun se on saatavilla." @@ -37255,6 +37307,11 @@ msgstr "Voit kirjautua takaisin milloin tahansa." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Voit silti luoda tilin tai kirjautua sisään. Jos kutsut otetaan myöhemmin uudelleen käyttöön, voit liittyä samalla linkillä." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Voit silti lähettää sähköpostia osoitteeseen {supportEmail} saadaksesi ihmisen tekemän tarkistuksen milloin tahansa." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Voit tallentaa tähdellä merkityt GIF-kuvat vain URL-osoitteina suosikkeihin tai ladata ne tallennettuun mediaasi. Valitse käyttötarkoitukseesi sopiva vaihtoehto. Voit muuttaa asetusta milloin tahansa kohdassa {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Sinun on vahvistettava sähköpostiosoitteesi lähettääksesi viestejä msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Sinulla tai jollakulla lisäämästäsi henkilöstä on jo suurin sallittu määrä ryhmäkeskusteluja avoinna. Poistu yhdestä ja yritä uudelleen." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Pysyt {ownedNames}-yhteisössä. Omistajat eivät voi poistua omasta yhteisöstään." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Moderaattorit mykistivät sinut" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Sinut ohjataan osoitteeseen {redirectHostname} valtuutuksen jälkeen." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Poistut {count, plural, one {# yhteisöstä} other {# yhteisöstä}}, joihin tämä tarkistus liittyy, ja tilisi toimii taas normaalisti." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Poistut kohteesta {guildNames}. Mitään julkaisemaasi ei poisteta, ja voit liittyä uudelleen myöhemmin." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Et voi poistaa lähettämiäsi viestejä tilin poistamisen jälkeen" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Sinun täytyy vielä suorittaa sähköpostivaihe." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "{productName}-istuntosi vanheni. Kirjaudu uudelleen sisään jatkaaksesi msgid "Your account" msgstr "Tilisi" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Tilisi palautuu normaaliksi heti, etkä tarvitse puhelinnumeroa nyt. Tämä ei ole pysyvä vapautus. Suureen tai julkiseen yhteisöön liittyminen voi tuoda tämän tarkistuksen takaisin." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Tilisi on nyt yhdistetty. Voit sulkea tämän välilehden ja palata takaisin sovellukseen." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Tilisi on taas kunnossa." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Tiliäsi ei ole vielä vahvistettu. Ilman sähköpostia ja salasanaa et voi kirjautua sisään muilta laitteilta ja saatat menettää pääsyn tiliisi. Vahvista tilisi nyt suojataksesi sen." @@ -38014,6 +38101,11 @@ msgstr "Tilipyyntösi odottaa hyväksyntää. Voit kirjautua sisään, kun yllä msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Tilisi edellyttää monivaiheista todennusta, mutta tällä laitteella ei ole tuettuja menetelmiä käytössä. Kirjaudu sisään laitteella, jossa on todennussovelluksesi tai suojausavaimesi, tai ota yhteyttä tukeen." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Tilisi toimii taas normaalisti heti, eikä mitään poisteta. Voimme pyytää tätä tarkistusta uudelleen myöhemmin." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Uusi lempinimesi, tai jätä tyhjäksi palauttaaksesi sen." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Puhelinnumeroasi ei ole linkitetty tiliisi. Säilytämme vain salatun tunnisteen ilman käyttäjätunnusta enintään {limit} vahvistusta varten noin {duration} päivän ajan." diff --git a/fluxer_app/src/features/i18n/locales/fr/messages.po b/fluxer_app/src/features/i18n/locales/fr/messages.po index bbeae021a..4adf7f7df 100644 --- a/fluxer_app/src/features/i18n/locales/fr/messages.po +++ b/fluxer_app/src/features/i18n/locales/fr/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 jours" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Une vérification du navigateur est requise avant la vérification du téléphone. Réessayez depuis la page de connexion ou contactez l'assistance." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Ajouter un mot…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Ajouter une adresse e-mail valide" @@ -7390,7 +7390,7 @@ msgstr "Thème charbon" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-mail non disponible" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "La mise à jour de l'e-mail est actuellement indisponible. Réessayez plus tard ou contactez l'assistance." @@ -12375,6 +12375,11 @@ msgstr "La mise à jour de l'e-mail est actuellement indisponible. Réessayez pl msgid "Email update required" msgstr "Mise à jour de l'e-mail requise" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Envoyez-nous un e-mail et une personne examinera votre compte. Indiquez-nous que vous ne pouvez pas vérifier par SMS et nous nous en chargerons. Les réponses arrivent par e-mail, ce n'est donc pas instantané." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Entrez une URL ou un code de modèle {theOtherPlatform} valide." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Saisissez une adresse e-mail valide." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Saisissez un lien de message valide." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Saisissez un numéro de téléphone mobile valide." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Saisissez un nom d'utilisateur valide ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Saisissez une adresse e-mail à laquelle vous avez accès. Nous vous enverrons un code à cette adresse." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Saisir le code cadeau…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Saisir la nouvelle adresse e-mail" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Saisissez le code à {digitCount} chiffres de votre application d'authentification." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Saisissez le code à {digitCount} chiffres envoyé au {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Saisissez le code de votre application d'authentification." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Saisissez le code envoyé à {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Saisissez le code à {MFA_CODE_DIGIT_COUNT} chiffres envoyé au {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Saisissez le code envoyé par e-mail" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Entrez le code PIN de votre clé de sécurité pour continuer." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Saisissez le code SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Saisissez votre mot de passe." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Saisissez votre numéro de téléphone" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Pour moi" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Pour cette vérification, vous nous envoyez un message texte au lieu d'en recevoir un de notre part." @@ -16437,6 +16442,11 @@ msgstr "Si ce signalement concerne un message spécifique, signalez plutôt ce m msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Si ce signalement concerne des messages spécifiques, signalez plutôt le message le plus pertinent. Les signalements de messages donnent à notre équipe de sécurité le contexte le plus clair, et l'ajout de détails dans les commentaires peut nous aider à l'examiner plus rapidement. Ne continuez à signaler l'utilisateur dans son ensemble que si le signalement d'un message ne permettrait pas de saisir le problème plus large." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Si vous ne pouvez pas vérifier par SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "En savoir plus" msgid "Leave" msgstr "Quitter" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Quitter {count, plural, one {# communauté} other {# communautés}} et mettre cette vérification de côté ?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Quitter et mettre de côté" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Ouvrez votre navigateur, connectez-vous, puis saisissez le code ci-dessous pour associer votre compte." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Ouvrez vos messages" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Ouvrez votre application de messagerie et commencez un nouveau message texte." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Numéro de téléphone requis" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Étape du téléphone" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "La vérification par téléphone n'est pas disponible pour ce compte. Utilisez une autre méthode ou contactez l'assistance." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "Reposts" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Demandez d'abord un nouveau code." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Envoyer le code <0>{0} au <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Envoyez le code au numéro de téléphone ci-dessous." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Envoyer ce code" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Renvoyer cet élément épinglé dans le passé ?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Envoyer à" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Envoi :" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "L'envoi d'un SMS à ce numéro est coûteux, nous avons donc besoin que vous nous envoyiez un message texte à la place." @@ -28311,6 +28331,18 @@ msgstr "Définir la limite d'utilisateurs à {0}." msgid "Set the vanity URL to {0}." msgstr "A défini l'URL personnalisée sur {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Mettre cette vérification de côté" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Mettre cette vérification de côté ?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Vidéo plus fluide" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "La vérification par SMS est indisponible pour le moment. Réessayez plus tard ou contactez l'assistance." @@ -29762,7 +29794,7 @@ msgstr "Un problème est survenu. Veuillez réessayer plus tard." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Une erreur est survenue. Veuillez réessayer." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Tarification standard en {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Des frais de messagerie standard de votre opérateur peuvent s'appliquer." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Synthèse vocale" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Envoyez-nous un SMS depuis votre téléphone" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Merci de nous aider à assurer la sécurité de {productName}. Nous examinerons votre signalement dès que possible." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Ce code n'a pas fonctionné. Vérifiez-le et réessayez." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Ce code a expiré. Demandez un nouveau code." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Cela n'a pas abouti. Certaines communautés ont peut-être déjà été quittées, et votre compte est toujours bloqué. Appuyez à nouveau sur Mettre cette vérification de côté pour terminer." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Cela n'a pas fonctionné. Rien n'a changé. Réessayez." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Ceci ne semble pas être une couleur valide. Essayez le format hexadécimal, rgb(), hsl() ou un nom de couleur CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Ceci ne semble pas être une URL valide." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Cet e-mail est déjà utilisé." @@ -31588,6 +31630,11 @@ msgstr "Le nouveau salon vocal réutilisera les permissions, la limite d'utilisa msgid "The page you're looking for doesn't exist or has been moved." msgstr "La page que vous recherchez n'existe pas ou a été déplacée." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "La vérification du téléphone est mise de côté. Il reste une étape par e-mail." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Ceci est désactivé" msgid "This is how messages appear" msgstr "Voici comment les messages s'affichent" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Ceci n'est pas disponible pour votre compte pour le moment. Envoyez un e-mail à {supportEmail} et une personne examinera votre demande." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Ce n'est pas le salon que vous cherchez." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Ce surnom ne sera visible que dans cette communauté" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Ce numéro nécessite une vérification par message texte plutôt qu'un SMS de notre part." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Ce participant a été mis en sourdine par les modérateurs" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Ce numéro de téléphone ne peut pas être utilisé. Essayez un autre numéro de mobile ou contactez l'assistance." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Ce numéro de téléphone a déjà été utilisé. Essayez un autre numéro ou contactez l'assistance." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Cette session de vérification a expiré. Retournez à {productName} et recommencez le paiement." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Cette session de vérification a expiré. Veuillez recommencer." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Cela approuvera tous les liens externes et ignorera l'avertissement pour chaque domaine. Vos domaines approuvés existants seront remplacés. C'est moins sécurisé." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Cette fenêtre se met à jour automatiquement après réception de votre message." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Convertir les images HDR en plage standard, réduisant ainsi la luminosité maximale." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Trop de tentatives. Attendez un peu, puis réessayez." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Utilisez une application d'authentification pour générer des codes de vérification en deux étapes" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Utilisez une adresse e-mail différente de celle que vous utilisez actuellement." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Utilisez une adresse e-mail à laquelle vous avez accès. Nous vous enverrons un code à cette adresse." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Attendre entre les messages. « {bypassSlowmodePermissionLabel} » peut contourner cette limite." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Veuillez patienter" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Nous allons préremplir {prefillEmail} une fois que la connexion par navigateur s'ouvrira." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Nous vous enverrons un code SMS dès que possible." @@ -37255,6 +37307,11 @@ msgstr "Vous pouvez vous reconnecter à tout moment." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Vous pouvez toujours créer un compte ou vous connecter. Si les invitations sont réactivées plus tard, vous pourrez utiliser ce même lien pour rejoindre." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Vous pouvez toujours nous envoyer un e-mail à {supportEmail} pour un examen humain à tout moment." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Vous pouvez enregistrer les GIF favoris en tant que favoris URL uniquement ou les importer dans vos médias enregistrés. Choisissez l'option qui correspond le mieux à votre utilisation. Vous pouvez modifier ce paramètre à tout moment dans {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Vous devez vérifier votre adresse e-mail pour envoyer des messages dans msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Vous ou l'un des destinataires avez déjà atteint le nombre maximal de MP de groupe ouverts. Quittez-en un et réessayez." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Vous restez dans {ownedNames}. Les propriétaires ne peuvent pas quitter leur propre communauté." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Vous avez été mis en sourdine par les modérateurs" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Vous serez redirigé vers {redirectHostname} après l'autorisation." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Vous quitterez {count, plural, one {# communauté} other {# communautés}} concernée par cette vérification, et votre compte fonctionnera à nouveau normalement." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Vous quitterez {guildNames}. Rien de ce que vous avez publié n'est supprimé, et vous pourrez revenir plus tard." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Vous ne pourrez plus supprimer les messages envoyés après la suppression de votre compte" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Vous devrez toujours terminer l'étape de l'e-mail." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Votre session {productName} a expiré. Connectez-vous à nouveau pour co msgid "Your account" msgstr "Votre compte" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Votre compte redevient normal immédiatement et vous n'aurez pas besoin de numéro de téléphone. Ce n'est pas une exemption permanente. Rejoindre une communauté grande ou publique peut réactiver cette vérification." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Votre compte a été lié avec succès. Vous pouvez maintenant fermer cet onglet et retourner à l'application." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Votre compte est de nouveau opérationnel." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Votre compte n'est pas encore réclamé. Sans e-mail ni mot de passe, vous ne pourrez pas vous connecter depuis d'autres appareils et vous risquez de perdre l'accès à votre compte. Réclamez votre compte maintenant pour le sécuriser." @@ -38014,6 +38101,11 @@ msgstr "Votre demande de compte est en attente d’approbation. Vous pourrez vou msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Votre compte nécessite une authentification multifacteur, mais aucune méthode prise en charge n'est configurée sur cet appareil. Connectez-vous sur un appareil doté de votre application d'authentification ou de votre clé de sécurité, ou contactez l'assistance." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Votre compte fonctionnera à nouveau normalement immédiatement et rien ne sera supprimé. Nous pourrons vous redemander cette vérification plus tard." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Votre nouveau surnom, ou laissez vide pour le réinitialiser." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Votre numéro n'est pas lié à votre compte. Nous ne conservons qu'un marqueur chiffré, sans identifiant d'utilisateur, pour un maximum de {limit} vérifications en environ {duration} jours." diff --git a/fluxer_app/src/features/i18n/locales/he/messages.po b/fluxer_app/src/features/i18n/locales/he/messages.po index cd33c3cff..df10cf1cf 100644 --- a/fluxer_app/src/features/i18n/locales/he/messages.po +++ b/fluxer_app/src/features/i18n/locales/he/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 ימים" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "נדרשת בדיקת דפדפן לפני אימות הטלפון. יש לנסות שוב מדף ההתחברות או ליצור קשר עם התמיכה." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "הוספת מילה…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "הוסף אימייל פעיל" @@ -7390,7 +7390,7 @@ msgstr "ערכת נושא פחם" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "האימייל אינו זמין" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "עדכון האימייל אינו זמין כרגע. נסה/נסי שוב מאוחר יותר או צור/צרי קשר עם התמיכה." @@ -12375,6 +12375,11 @@ msgstr "עדכון האימייל אינו זמין כרגע. נסה/נסי שו msgid "Email update required" msgstr "נדרש עדכון אימייל" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "שלח לנו אימייל ונציג יבדוק את חשבונך. ציין שאינך יכול לאמת באמצעות SMS ונטפל בזה. התשובות מגיעות באימייל, לכן זה לא מיידי." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "הזן כתובת URL או קוד תבנית חוקיים של {theOther #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "יש להזין כתובת אימייל חוקית." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "יש להזין קישור חוקי להודעה." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "יש להזין מספר טלפון נייד חוקי." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "הזן שם משתמש חוקי ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "הזן כתובת אימייל שתוכל לפתוח. נשלח לשם קוד." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "הזן קוד מתנה…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "הזן אימייל חדש" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "הזן את הקוד בן {digitCount} הספרות מאפליקציית האימות שלך." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "הזן את הקוד בן {digitCount} הספרות שנשלח אל {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "הזן את הקוד מאפליקציית האימות שלך." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "הזן את הקוד שנשלח אל {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "הזן את הקוד בן {MFA_CODE_DIGIT_COUNT} הספרות שנשלח אל {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "הזן את קוד האימייל" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "הזן את ה-PIN של מפתח האבטחה שלך כדי להמשיך." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "הזן את קוד ה-SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "הזן את הסיסמה שלך." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "הזן את מספר הטלפון שלך" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "בשבילי" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "עבור בדיקה זו, עליך לשלוח לנו הודעת טקסט במקום לקבל אחת מאיתנו." @@ -16437,6 +16442,11 @@ msgstr "אם הדיווח הזה נוגע להודעה ספציפית, דווח/ msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "אם דיווח זה נוגע להודעות ספציפיות, דווח/י על ההודעה הרלוונטית ביותר במקום זאת. דיווחי הודעות מספקים לצוות הבטיחות שלנו את ההקשר הברור ביותר, והוספת פרטים בתגובות יכולה לעזור לנו לבדוק זאת מהר יותר. המשך/י לדווח על המשתמש/ת כולו/ה רק אם דיווח על הודעה לא יתפוס את הבעיה הרחבה יותר." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "אם אינך יכול לאמת באמצעות SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "מידע נוסף" msgid "Leave" msgstr "יציאה" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "להשאיר את {count, plural, one {# הקהילה} other {# הקהילות}} ולשים את הבדיקה הזו בצד?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "עזוב/י והנח/י בצד" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "פתח את הדפדפן שלך, היכנס, ואז הזן את הקוד למטה כדי לקשר את חשבונך." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "פתחו את ההודעות שלכם" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "פתחו את אפליקציית ההודעות בטלפון שלכם והתחילו הודעת טקסט חדשה." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "נדרש מספר טלפון" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "שלב טלפון" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "אימות טלפוני אינו זמין עבור חשבון זה. השתמש/י בשיטה אחרת או צור/צרי קשר עם התמיכה." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "שליחות חוזרת" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "יש לבקש קוד חדש תחילה." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "שלח את הקוד <0>{0} אל <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "שלחו את הקוד למספר הטלפון למטה." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "שלח את הקוד הזה" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "לשלוח את ההצמדה הזו אחורה בזמן?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "שלח אל" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "שליחה:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "שליחת SMS למספר הזה יקרה, לכן אנחנו צריכים שתשלחו לנו הודעה במקום." @@ -28311,6 +28331,18 @@ msgstr "הגדרת מגבלת המשתמשים ל־{0}." msgid "Set the vanity URL to {0}." msgstr "הגדרת כתובת URL מותאמת אישית ל־{0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "דחה בדיקה זו" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "להניח לבדיקה זו בצד?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "וידאו חלק יותר" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "אימות ה-SMS אינו זמין כרגע. נסה שוב מאוחר יותר או צור קשר עם התמיכה." @@ -29762,7 +29794,7 @@ msgstr "משהו השתבש. יש לנסות שוב מאוחר יותר." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "משהו השתבש. יש לנסות שוב." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "תמחור {baseCurrencyLabel} רגיל" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "ייתכנו חיובי הודעות סטנדרטיים מהספק שלך." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "טקסט לדיבור" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "שלח/י לנו הודעה מהטלפון שלך" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "תודה שעזרת לשמור על {productName} בטוחה. נבדוק את הדיווח שלך בהקדם האפשרי." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "הקוד הזה לא עבד. יש לבדוק אותו ולנסות שוב." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "הקוד הזה פג תוקף. בקש קוד חדש." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "הפעולה לא הושלמה. ייתכן שכבר עזבת חלק מהקהילות, וחשבונך עדיין נעול. לחץ שוב על \"הנח לבדיקה זו בצד\" כדי להשלים." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "זה לא עבר. שום דבר לא השתנה. נסה שוב." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "זה לא נראה כמו צבע חוקי. נסה hex, rgb(), hsl(), או שם צבע CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "זה לא נראה כמו כתובת אתר חוקית." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "כתובת האימייל הזו כבר נמצאת בשימוש." @@ -31588,6 +31630,11 @@ msgstr "ערוץ הקולי החדש יעשה שימוש חוזר בהרשאות msgid "The page you're looking for doesn't exist or has been moved." msgstr "הדף שחיפשת אינו קיים או הועבר." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "בדיקת הטלפון נדחתה. נותרה פעולה אחת הקשורה למייל." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "זה מושבת" msgid "This is how messages appear" msgstr "כך נראות ההודעות" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "זה לא זמין בחשבונך כרגע. שלח אימייל ל-{supportEmail} ואדם יבדוק זאת." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "זה לא הערוץ שחיפשת." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "הכינוי הזה יהיה גלוי רק בקהילה הזו" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "המספר הזה דורש אימות בטקסט במקום הודעת SMS מאיתנו." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "המשתתף הושתק על ידי מנהלים" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "אי אפשר להשתמש במספר הטלפון הזה. יש לנסות מספר נייד אחר או ליצור קשר עם התמיכה." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "מספר הטלפון הזה כבר נמצא בשימוש. נסה מספר אחר או צור קשר עם התמיכה." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "תוקף סשן האימות פג. חזור/חזרי אל {productName} והתחל/התחילי את תהליך התשלום מחדש." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "תוקף סשן האימות הזה פג. יש להתחיל מחדש." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "פעולה זו תאפשר אמון בכל הקישורים החיצוניים ותדלג על האזהרה עבור כל דומיין. הדומיינים המהימנים הקיימים שלך יוחלפו. אפשרות זו פחות מאובטחת." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "החלון הזה יתעדכן אוטומטית לאחר שנקבל את ההודעה שלך." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "ממפה תמונות HDR לטווח רגיל, מפחית את בהירות השיא." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "ניסית יותר מדי פעמים. המתן מעט ונסה שוב." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "השתמש/י באפליקציית אימות כדי ליצור קודים לאימות דו-שלבי" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "יש להשתמש בכתובת אימייל ששונה מכתובת האימייל הנוכחית שלך." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "השתמש/י בכתובת אימייל שתוכל/י לפתוח. נשלח לשם קוד." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "המתנה בין הודעות. \"{bypassSlowmodePermissionLabel}\" יכול לעקוף זאת." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "המתן כאן" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "נמלא מראש את {prefillEmail} לאחר שההתחברות בדפדפן תיפתח." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "נשלח קוד אימות ב-SMS כשהשירות יהיה זמין." @@ -37255,6 +37307,11 @@ msgstr "תוכל להיכנס שוב בכל עת." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "עדיין אפשר ליצור חשבון או להיכנס. אם ההזמנות יופעלו מחדש מאוחר יותר, תוכלו להשתמש באותו קישור כדי להצטרף." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "אתה עדיין יכול לשלוח אימייל ל-{supportEmail} לבדיקה אנושית בכל עת." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "אפשר לשמור קובצי GIF מסומנים בכוכב כמועדפים בקישור בלבד, או להעלות אותם למדיה השמורה שלך. בחר/י את האפשרות המתאימה לאופן השימוש שלך. ניתן לשנות זאת בכל עת ב{mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "עליך לאמת את כתובת האימייל שלך כדי לשלו msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "לך או למישהו שאתה מצרף יש כבר את המספר המרבי של הודעות קבוצתיות פתוחות. צא מאחת ונסה שוב." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "אתה נשאר ב-{ownedNames}. בעלים לא יכולים לעזוב את הקהילה שלהם." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "הושתקת על ידי מנהלים" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "תועבר/י אל {redirectHostname} לאחר האישור." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "תעזוב/י את {count, plural, one {# הקהילה} other {# הקהילות}} שהבדיקה הזו חלה עליהן, וחשבונך יחזור לפעול כרגיל." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "את/ה תעזוב/י את {guildNames}. שום דבר שפרסמת לא נמחק, ואת/ה יכול/ה להצטרף שוב מאוחר יותר." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "לא תוכל/י למחוק את ההודעות ששלחת לאחר מחיקת החשבון שלך" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "עדיין תצטרך להשלים את שלב האימייל." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "ההפעלה שלך ב- {productName} פגה. היכנס/י שוב כד msgid "Your account" msgstr "החשבון שלך" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "החשבון שלך יחזור לקדמותו מיד ולא תזדקק למספר טלפון כעת. זו אינה פטורה קבועה. הצטרפות לקהילה גדולה או ציבורית עשויה להחזיר את הבדיקה הזו." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "החשבון שלך קושר בהצלחה. עכשיו אפשר לסגור את הלשונית הזו ולחזור לאפליקציה." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "החשבון שלך חזר לקדמותו." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "החשבון שלך עדיין לא נתבע. ללא אימייל וסיסמה, לא תוכל להיכנס ממכשירים אחרים וייתכן שתאבד גישה לחשבונך. תבע/י את חשבונך עכשיו כדי לאבטח אותו." @@ -38014,6 +38101,11 @@ msgstr "בקשת החשבון שלך ממתינה לאישור. אפשר להת msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "החשבון שלך דורש אימות רב-שלבי, אך לא הוגדרו שיטות נתמכות במכשיר זה. היכנס/י באמצעות מכשיר עם אפליקציית האימות או מפתח האבטחה שלך, או צור/צרי קשר עם התמיכה." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "החשבון שלך יחזור לפעולתו הרגילה באופן מיידי ושום דבר לא יוסר. נוכל לבקש בדיקה זו שוב מאוחר יותר." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "הכינוי החדש שלך, או השאר ריק כדי לאפס אותו." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "המספר שלך אינו מקושר לחשבונך. אנו שומרים רק סמן מוצפן, ללא מזהה משתמש, עבור לכל היותר {limit} אימותים בכ- {duration} ימים." diff --git a/fluxer_app/src/features/i18n/locales/hi/messages.po b/fluxer_app/src/features/i18n/locales/hi/messages.po index 91b94ee13..bd08d79cf 100644 --- a/fluxer_app/src/features/i18n/locales/hi/messages.po +++ b/fluxer_app/src/features/i18n/locales/hi/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 दिन" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "फ़ोन सत्यापन से पहले ब्राउज़र की जाँच ज़रूरी है। साइन-इन पेज से फिर से कोशिश करें या सहायता से संपर्क करें।" @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "कोई शब्द जोड़ें…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "एक काम करने वाला ईमेल जोड़ें" @@ -7390,7 +7390,7 @@ msgstr "कोल थीम" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "ईमेल अनुपलब्ध है" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "ईमेल अपडेट अभी अनुपलब्ध है। बाद में फिर से कोशिश करें या सहायता से संपर्क करें।" @@ -12375,6 +12375,11 @@ msgstr "ईमेल अपडेट अभी अनुपलब्ध है msgid "Email update required" msgstr "ईमेल अपडेट करना ज़रूरी है" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "हमें ईमेल करें और कोई व्यक्ति आपके खाते की समीक्षा करेगा। हमें बताएं कि आप एसएमएस द्वारा सत्यापित नहीं कर सकते हैं और हम आगे की कार्रवाई करेंगे। जवाब ईमेल द्वारा आते हैं, इसलिए यह तुरंत नहीं होता है।" + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "एक मान्य {theOtherPlatform} टेम्प्लेट UR #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "एक मान्य ईमेल पता डालें।" @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "एक वैध मैसेज लिंक डालें।" #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "एक मान्य मोबाइल फ़ोन नंबर डालें।" @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "एक मान्य उपयोगकर्ता नाम ({exampleFluxerTagFull}) दर्ज करें।" #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "एक ऐसा ईमेल डालें जिसे आप खोल सकें। हम उस पर एक कोड भेजेंगे।" @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "गिफ्ट कोड डालें…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "नया ईमेल डालें" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "अपने ऑथेंटिकेटर ऐप से {digitCount} अंकों वाला कोड डालें।" #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "{phoneNumber} पर भेजे गए {digitCount} अंकों वाला कोड डालें।" @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "अपने ऑथेंटिकेटर ऐप से कोड डालें।" #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "{emailAddress} पर भेजे गए कोड को दर्ज करें।" @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "{0} पर भेजे गए {MFA_CODE_DIGIT_COUNT} अंकों वाला कोड डालें।" #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "ईमेल कोड डालें" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "जारी रखने के लिए अपने सुरक्षा कुंजी का पिन दर्ज करें।" #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "एसएमएस कोड डालें" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "अपना पासवर्ड डालें।" #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "अपना फ़ोन नंबर डालें" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "मेरे लिए" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "इस जाँच के लिए, आप हमें एक टेक्स्ट मैसेज भेजेंगे, न कि हमसे प्राप्त करेंगे।" @@ -16437,6 +16442,11 @@ msgstr "अगर यह रिपोर्ट किसी खास मैस msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "अगर यह रिपोर्ट खास मैसेज के बारे में है, तो सबसे काम के मैसेज की रिपोर्ट करें. मैसेज रिपोर्ट से हमारी सुरक्षा टीम को सबसे साफ़ जानकारी मिलती है. कमेंट में जानकारी जोड़ने से हमें इसकी तेज़ी से समीक्षा करने में मदद मिल सकती है. यूज़र की रिपोर्ट तभी करें, जब मैसेज की रिपोर्ट करने से बड़ी समस्या का पता न चल पाए." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "अगर आप SMS से वेरिफाई नहीं कर सकते" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "और जानें" msgid "Leave" msgstr "छोड़ें" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "{count, plural, one {# समुदाय} other {# समुदाय}} छोड़ें और इस जाँच को अलग रखें?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "छोड़ें और अलग रखें" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "अपना ब्राउज़र खोलें, साइन इन करें, फिर अपना अकाउंट लिंक करने के लिए नीचे दिया गया कोड डालें।" #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "अपने मैसेज खोलें" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "अपने फ़ोन के मैसेजिंग ऐप को खोलें और एक नया टेक्स्ट मैसेज शुरू करें।" @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "फ़ोन नंबर ज़रूरी है" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "फ़ोन स्टेप" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "इस खाते के लिए फ़ोन सत्यापन उपलब्ध नहीं है. कोई अन्य तरीका इस्तेमाल करें या सहायता से संपर्क करें." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "रीपोस्ट" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "पहले एक नया कोड अनुरोध करें।" @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "कोड <0>{0} को <1>{1} पर भेजें" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "नीचे दिए गए फ़ोन नंबर पर कोड भेजें।" #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "यह कोड भेजें" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "इस पिन को समय में वापस भेजें?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "इस पर भेजें" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "भेजें:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "इस नंबर पर SMS भेजना महंगा है, इसलिए हम चाहते हैं कि आप हमें टेक्स्ट करें." @@ -28311,6 +28331,18 @@ msgstr "उपयोगकर्ता सीमा को {0} पर सेट msgid "Set the vanity URL to {0}." msgstr "वैनिटी यूआरएल को {0} पर सेट करें।" +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "इस जाँच को अलग रखें" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "इस जाँच को अलग रख दें?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "स्मूथ वीडियो" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "SMS सत्यापन अभी अनुपलब्ध है। बाद में फिर से कोशिश करें या सहायता से संपर्क करें।" @@ -29762,7 +29794,7 @@ msgstr "कुछ गलत हो गया। बाद में फिर #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "कुछ गड़बड़ हो गई। फिर से कोशिश करें।" @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "मानक {baseCurrencyLabel} मूल्य निर्धारण" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "आपके कैरियर से सामान्य मैसेजिंग दरें लागू हो सकती हैं।" @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "टेक्स्ट टू स्पीच" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "अपने फ़ोन से हमें टेक्स्ट करें" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "{productName} को सुरक्षित रखने में मदद करने के लिए धन्यवाद। हम जल्द से जल्द आपकी रिपोर्ट की समीक्षा करेंगे।" #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "वह कोड काम नहीं किया। इसे जांचें और फिर से कोशिश करें।" #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "वह कोड समाप्त हो गया है। एक नया कोड अनुरोध करें।" +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "यह पूरा नहीं हुआ। कुछ समुदाय पहले ही छोड़े जा चुके होंगे, और आपका खाता अभी भी लॉक है। पूरा करने के लिए फिर से 'इस चेक को अलग रखें' दबाएँ।" + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "यह काम नहीं किया। कुछ भी नहीं बदला। फिर से प्रयास करें।" + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "यह कोई मान्य रंग नहीं लग रहा है। हेक्स, rgb(), hsl() या CSS रंग का नाम आज़माएँ।" @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "यह एक मान्य यूआरएल नहीं लग रहा है।" #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "वह ईमेल पहले से उपयोग में है।" @@ -31588,6 +31630,11 @@ msgstr "नया वॉइस चैनल <0>{channelLabel} से अन msgid "The page you're looking for doesn't exist or has been moved." msgstr "आप जिस पेज को ढूंढ रहे हैं वह मौजूद नहीं है या उसे हटा दिया गया है।" +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "फ़ोन जाँच को अलग रख दिया गया है। एक ईमेल चरण बचा है।" + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "यह अक्षम है" msgid "This is how messages appear" msgstr "मैसेज ऐसे दिखते हैं" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "यह अभी आपके खाते पर उपलब्ध नहीं है। {supportEmail} पर ईमेल करें और कोई व्यक्ति इसकी समीक्षा करेगा।" + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "यह वह चैनल नहीं है जिसे आप ढूंढ रहे हैं।" @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "यह निकनेम सिर्फ़ इस कम्युनिटी में दिखेगा" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "इस नंबर को हमारे SMS के बजाय टेक्स्ट-इन वेरिफ़िकेशन की ज़रूरत है।" @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "इस प्रतिभागी को मॉडरेटर ने डीफ़ेन किया था" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "इस फ़ोन नंबर का उपयोग नहीं किया जा सकता है। कोई दूसरा मोबाइल नंबर आज़माएँ या सहायता से संपर्क करें।" #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "यह फ़ोन नंबर पहले ही इस्तेमाल किया जा चुका है। कोई दूसरा नंबर आज़माएँ या सहायता से संपर्क करें।" @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "यह सत्यापन सत्र समाप्त हो गया है। {productName} पर वापस जाएं और फिर से चेकआउट शुरू करें।" #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "यह सत्यापन सत्र समाप्त हो गया है। फिर से शुरू करें।" @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "इससे सभी बाहरी लिंक पर भरोसा किया जाएगा और हर डोमेन के लिए चेतावनी को छोड़ दिया जाएगा. आपके मौजूदा भरोसेमंद डोमेन बदल दिए जाएँगे. यह कम सुरक्षित है." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "आपका मैसेज मिलने के बाद यह विंडो अपने आप अपडेट हो जाएगी।" @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "एचडीआर इमेज को सामान्य रेंज में टोन-मैप करें, जिससे पीक ब्राइटनेस कम हो जाएगी." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "बहुत ज़्यादा कोशिशें की गई हैं। थोड़ी देर इंतज़ार करें, फिर से कोशिश करें।" @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "दो-कारक प्रमाणीकरण के लिए कोड जनरेट करने के लिए एक ऑथेंटिकेटर ऐप का उपयोग करें" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "ऐसा ईमेल इस्तेमाल करें जो आपके मौजूदा ईमेल से अलग हो." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "ऐसा ईमेल इस्तेमाल करें जिसे आप खोल सकें. हम उस पर एक कोड भेजेंगे." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "संदेशों के बीच प्रतीक्षा करें। \"{bypassSlowmodePermissionLabel}\" इसे बायपास कर सकता है।" #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "यहां प्रतीक्षा करें" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "ब्राउज़र साइन-इन खुलने पर हम {prefillEmail} पहले से भर देंगे।" #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "उपलब्ध होने पर हम एक SMS कोड भेजेंगे।" @@ -37255,6 +37307,11 @@ msgstr "आप कभी भी वापस साइन इन कर सक msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "आप अभी भी एक खाता बना सकते हैं या साइन इन कर सकते हैं। यदि बाद में आमंत्रण फिर से सक्षम किए जाते हैं, तो आप शामिल होने के लिए इसी लिंक का उपयोग कर सकते हैं।" +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "आप अभी भी किसी भी समय मानवीय समीक्षा के लिए {supportEmail} पर ईमेल कर सकते हैं।" + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "आप स्टार किए गए GIF को केवल URL वाले पसंदीदा के तौर पर सेव कर सकते हैं या उन्हें अपनी सेव की गई मीडिया में अपलोड कर सकते हैं। चुनें कि आप उनका इस्तेमाल कैसे करना चाहते हैं। आप इसे {mediaSettingsPath} में कभी भी बदल सकते हैं।" @@ -37699,6 +37756,11 @@ msgstr "इस कम्युनिटी में मैसेज भेज msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "आप या आपके द्वारा जोड़ा जा रहा कोई व्यक्ति पहले से ही अधिकतम ग्रुप DM खोल चुका है। एक छोड़कर फिर से कोशिश करें।" +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "आप {ownedNames} में रहेंगे। मालिक अपना समुदाय नहीं छोड़ सकते।" + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "आपको मॉडरेटर ने डीफ़ेन किय msgid "You will be taken to {redirectHostname} after authorizing." msgstr "अनुमति देने के बाद आपको {redirectHostname} पर ले जाया जाएगा।" +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "आप इन {count, plural, one {# समुदायों} other {# समुदायों}} को छोड़ देंगे जिन पर यह जाँच लागू होती है, और आपका खाता सामान्य रूप से काम करेगा।" + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "आप {guildNames} छोड़ देंगे। आपके द्वारा पोस्ट की गई कोई भी चीज़ हटाई नहीं गई है, और आप बाद में फिर से शामिल हो सकते हैं।" + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "आपका अकाउंट डिलीट होने के बाद आप अपने भेजे गए मैसेज डिलीट नहीं कर पाएँगे" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "आपको अभी भी ईमेल वाला चरण पूरा करना होगा।" + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "आपका {productName} सत्र समाप्त हो गय msgid "Your account" msgstr "आपका अकाउंट" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "आपका खाता तुरंत सामान्य हो जाएगा और अब आपको फ़ोन नंबर की आवश्यकता नहीं होगी। यह एक स्थायी छूट नहीं है। किसी बड़े या सार्वजनिक समुदाय में शामिल होने से यह जाँच वापस आ सकती है।" + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "आपका अकाउंट सफलतापूर्वक लिंक हो गया है। अब आप इस टैब को बंद करके ऐप पर वापस जा सकते हैं।" +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "आपका खाता वापस सामान्य हो गया है।" + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "आपका अकाउंट अभी तक क्लेम नहीं किया गया है। ईमेल और पासवर्ड के बिना, आप दूसरे डिवाइस से साइन इन नहीं कर पाएंगे और अपने अकाउंट का ऐक्सेस खो सकते हैं। इसे सुरक्षित करने के लिए अभी अपना अकाउंट क्लेम करें।" @@ -38014,6 +38101,11 @@ msgstr "आपका खाता अनुरोध अनुमोदन क msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "आपके खाते के लिए मल्टी-फ़ैक्टर प्रमाणीकरण ज़रूरी है, लेकिन इस डिवाइस पर कोई भी समर्थित तरीका सेट अप नहीं है। अपने ऑथेंटिकेटर ऐप या सुरक्षा कुंजी वाले डिवाइस पर साइन इन करें या सहायता से संपर्क करें।" +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "आपका खाता तुरंत सामान्य रूप से काम करने लगेगा और कुछ भी हटाया नहीं जाएगा। हम बाद में फिर से यह जाँच करने के लिए कह सकते हैं।" + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "आपका नया उपनाम, या इसे रीसेट करने के लिए खाली छोड़ दें।" #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "आपका नंबर आपके खाते से लिंक नहीं है। हम बिना किसी यूज़र आईडी के, ज़्यादा से ज़्यादा {limit} वेरिफ़िकेशन के लिए, लगभग {duration} दिनों तक सिर्फ़ एक एन्क्रिप्टेड मार्कर रखते हैं।" diff --git a/fluxer_app/src/features/i18n/locales/hr/messages.po b/fluxer_app/src/features/i18n/locales/hr/messages.po index 25d90d33a..7bfeceab1 100644 --- a/fluxer_app/src/features/i18n/locales/hr/messages.po +++ b/fluxer_app/src/features/i18n/locales/hr/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 dana" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Potrebna je provjera preglednika prije provjere telefona. Pokušajte ponovno sa stranice za prijavu ili se obratite podršci." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Dodaj riječ…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Dodajte ispravnu e-adresu" @@ -7390,7 +7390,7 @@ msgstr "Tema ugljena" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-pošta nedostupna" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Ažuriranje e-pošte trenutačno nije dostupno. Pokušajte ponovno kasnije ili se obratite podršci." @@ -12375,6 +12375,11 @@ msgstr "Ažuriranje e-pošte trenutačno nije dostupno. Pokušajte ponovno kasni msgid "Email update required" msgstr "Ažuriranje e-pošte je obavezno" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Pošaljite nam e-poruku i osoba će pregledati vaš račun. Navedite da ne možete potvrditi putem SMS-a i mi ćemo se pobrinuti za ostalo. Odgovori stižu e-poštom, tako da ovo nije trenutno." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Unesite važeći predložak {theOtherPlatform} URL ili kod." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Unesite valjanu adresu e-pošte." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Unesite valjanu poveznicu poruke." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Unesite valjani broj mobilnog telefona." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Unesite valjano korisničko ime ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Unesite e-adresu koju možete otvoriti. Tamo ćemo poslati kôd." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Unesite kod poklona…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Unesite novu e-poštu" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Unesite {digitCount}-znamenkasti kod iz svoje aplikacije za autentifikaciju." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Unesite {digitCount}-znamenkasti kod poslan na {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Unesite kôd iz aplikacije za provjeru autentičnosti." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Unesite kod poslan na {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Unesite {MFA_CODE_DIGIT_COUNT}-znamenkasti kod poslan na {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Unesite kôd e-pošte" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Unesite PIN za svoju sigurnosnu ključ kako biste nastavili." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Unesite SMS kod" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Unesite svoju lozinku." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Unesite svoj telefonski broj" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Za mene" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Za ovu provjeru vi nama šaljete tekstualnu poruku umjesto da je primite od nas." @@ -16437,6 +16442,11 @@ msgstr "Ako se ova prijava odnosi na određenu poruku, prijavite tu poruku. Prij msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Ako se ova prijava odnosi na određene poruke, prijavite najrelevantniju poruku. Prijave poruka našem sigurnosnom timu daju najjasniji kontekst, a dodavanje detalja u komentarima može nam pomoći da ih brže pregledamo. Nastavite s prijavom korisnika u cjelini samo ako prijava poruke ne bi obuhvatila širi problem." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Ako ne možete potvrditi putem SMS-a" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Saznajte više" msgid "Leave" msgstr "Napusti" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Napusti {count, plural, one {# zajednicu} other {# zajednica}} i ostavi ovu provjeru po strani?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Napusti i ostavi sa strane" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Otvorite preglednik, prijavite se, a zatim unesite kôd u nastavku za povezivanje računa." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Otvorite poruke" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Otvorite aplikaciju za poruke na telefonu i započnite novu tekstualnu poruku." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Broj telefona je obavezan" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Korak telefona" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Telefonska provjera nije dostupna za ovaj račun. Upotrijebite drugu metodu ili se obratite podršci." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "ponovne objave" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Prvo zatražite novi kôd." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Pošaljite kod <0>{0} na <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Pošaljite kôd na telefonski broj u nastavku." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Pošalji ovaj kod" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Vratiti ovu pribadaču u prošlost?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Pošalji na" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Slanje:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Slanje SMS-a na ovaj broj je skupo, stoga nam ga trebate poslati vi." @@ -28311,6 +28331,18 @@ msgstr "Postavljen je limit korisnika na {0}." msgid "Set the vanity URL to {0}." msgstr "Postavi prilagođeni URL na {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Odloži ovu provjeru" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Ostaviti ovu provjeru po strani?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Glađi videozapis" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "SMS provjera trenutačno nije dostupna. Pokušajte ponovno kasnije ili se obratite podršci." @@ -29762,7 +29794,7 @@ msgstr "Nešto je pošlo po zlu. Pokušajte ponovno kasnije." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Nešto je pošlo po zlu. Pokušajte ponovno." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standardna cijena u {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Mogu se primjenjivati standardne naknade za poruke vašeg operatera." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Tekst u govor" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Pošaljite nam poruku s telefona" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Hvala vam što nam pomažete održati {productName} sigurnim. Pregledat ćemo vaše izvješće što je prije moguće." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Taj kôd nije radio. Provjerite ga i pokušajte ponovno." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Taj je kôd istekao. Zatražite novi kôd." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "To nije dovršeno. Neke zajednice su možda već napuštene, a vaš račun je i dalje zaključan. Ponovno pritisnite \"Ovo provjeri ostavi sa strane\" da biste dovršili." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Nije uspjelo. Ništa se nije promijenilo. Pokušajte ponovno." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Ne izgleda kao valjana boja. Pokušajte s heksadecimalnim, rgb(), hsl() ili nazivom CSS boje." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Čini se da ovo nije valjan URL." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Ta je e-pošta već u upotrebi." @@ -31588,6 +31630,11 @@ msgstr "Novi glasovni kanal ponovno će koristiti dopuštenja, ograničenje broj msgid "The page you're looking for doesn't exist or has been moved." msgstr "Stranica koju tražite ne postoji ili je premještena." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Telefonska provjera je odgođena. Ostao je još jedan korak s e-poštom." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Ovo je onemogućeno" msgid "This is how messages appear" msgstr "Ovako izgledaju poruke" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Ovo trenutno nije dostupno na vašem računu. Pošaljite e-poruku na {supportEmail} i osoba će to pregledati." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Ovo nije kanal koji tražite." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Ovaj nadimak bit će vidljiv samo u ovoj zajednici" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Ovaj broj treba provjeru tekstualnom porukom umjesto SMS-a od nas." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Ovaj sudionik je isključen od strane moderatora" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Ovaj telefonski broj ne može se koristiti. Pokušajte s drugim brojem mobitela ili se obratite podršci." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Ovaj je telefonski broj već korišten. Pokušajte s drugim brojem ili se obratite podršci." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Sesija provjere je istekla. Vratite se u {productName} i ponovno pokrenite naplatu." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Ova sesija provjere je istekla. Počnite ponovno." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Ovo će vjerovati svim vanjskim poveznicama i preskočiti upozorenje za svaku domenu. Vaše postojeće pouzdane domene bit će zamijenjene. Ovo je manje sigurno." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Ovaj se prozor automatski ažurira nakon što primimo vašu poruku." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Preslikavanje HDR slika na standardni raspon, smanjujući vršnu svjetlinu." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Previše pokušaja. Pričekajte malo, pa pokušajte ponovno." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Upotrijebite aplikaciju za autentifikaciju za generiranje kodova za dvostruku provjeru autentičnosti" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Koristite e-poštu koja se razlikuje od vaše trenutačne." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Koristite e-poštu koju možete otvoriti. Tamo ćemo poslati kôd." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Vrijeme čekanja između poruka. \"{bypassSlowmodePermissionLabel}\" može ga zaobići." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Pričekajte ovdje" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Automatski ćemo popuniti {prefillEmail} kada se otvori prijava u pregledniku." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Poslat ćemo SMS kod kada bude dostupan." @@ -37255,6 +37307,11 @@ msgstr "Možete se ponovno prijaviti bilo kada." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "I dalje možete izraditi račun ili se prijaviti. Ako se pozivnice ponovno omoguće, možete upotrijebiti istu poveznicu za pridruživanje." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Uvijek nas možeš kontaktirati na {supportEmail} za ljudski pregled." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Označene GIF-ove možete pohraniti kao favorite samo s URL-om ili ih prenijeti u spremljene medije. Odaberite opciju koja vam najviše odgovara. Možete je promijeniti bilo kada u {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Morate potvrditi svoju e-poštu da biste slali poruke u ovoj zajednici." msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Vi ili netko koga dodajete već ima maksimalan broj otvorenih grupnih izravnih poruka. Napustite jednu i pokušajte ponovno." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Ostajete u zajednici {ownedNames}. Vlasnici ne mogu napustiti vlastitu zajednicu." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Moderatori su vas isključili" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Nakon autorizacije bit ćete preusmjereni na {redirectHostname}." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Napustit ćete {count, plural, one {# zajednicu} other {# zajednice}} na koje se ova provjera odnosi, a vaš račun ponovno će normalno funkcionirati." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Napustit ćeš {guildNames}. Ništa što si objavio nije izbrisano i možeš se pridružiti ponovno kasnije." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Nećete moći izbrisati poslane poruke nakon što izbrišete račun" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Još uvijek ćete morati dovršiti korak s e-poštom." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Vaša je sesija za {productName} istekla. Prijavite se ponovno kako bist msgid "Your account" msgstr "Vaš račun" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Račun vam se odmah vraća u normalu i više vam neće trebati broj telefona. Ovo nije trajno izuzeće. Pridruživanje velikoj ili javnoj zajednici može ponovno pokrenuti ovu provjeru." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Vaš je račun uspješno povezan. Sada možete zatvoriti ovu karticu i vratiti se u aplikaciju." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Račun vam je ponovno u normalnom stanju." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Vaš račun još nije potvrđen. Bez e-pošte i lozinke nećete se moći prijaviti s drugih uređaja i mogli biste izgubiti pristup svom računu. Potvrdite svoj račun sada kako biste ga osigurali." @@ -38014,6 +38101,11 @@ msgstr "Tvoj zahtjev za račun čeka odobrenje. Možeš se prijaviti nakon što msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Vaš račun zahtijeva višestruku provjeru autentičnosti, ali na ovom uređaju nisu postavljene podržane metode. Prijavite se na uređaju s aplikacijom za provjeru autentičnosti ili sigurnosnim ključem ili se obratite podršci." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Vaš račun ponovno radi normalno i ništa nije uklonjeno. Možemo ponovno zatražiti ovu provjeru kasnije." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Vaš novi nadimak ili ostavite prazno za poništavanje." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Vaš broj nije povezan s vašim računom. Čuvamo samo šifrirani marker, bez korisničkog ID-a, za najviše {limit} provjera u otprilike {duration} dana." diff --git a/fluxer_app/src/features/i18n/locales/hu/messages.po b/fluxer_app/src/features/i18n/locales/hu/messages.po index 38782f2a3..661a992a4 100644 --- a/fluxer_app/src/features/i18n/locales/hu/messages.po +++ b/fluxer_app/src/features/i18n/locales/hu/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 nap" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "A telefonszám ellenőrzése előtt böngészőellenőrzés szükséges. Próbálja újra a bejelentkezési oldalról, vagy lépjen kapcsolatba az ügyfélszolgálattal." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Szó hozzáadása…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Működő e-mail cím hozzáadása" @@ -7390,7 +7390,7 @@ msgstr "Szén téma" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-mail nem elérhető" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Az e-mail-cím frissítése jelenleg nem érhető el. Próbálja újra később, vagy lépjen kapcsolatba az ügyfélszolgálattal." @@ -12375,6 +12375,11 @@ msgstr "Az e-mail-cím frissítése jelenleg nem érhető el. Próbálja újra k msgid "Email update required" msgstr "E-mail-cím frissítése szükséges" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Írj nekünk e-mailt, és egy ember átnézi a fiókodat. Mondd el, hogy nem tudod igazolni magad SMS-ben, és mi intézzük a többit. A válaszok e-mailben érkeznek, így ez nem azonnali." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Adjon meg egy érvényes {theOtherPlatform} sablon URL-t vagy kódot." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Érvényes e-mail címet adj meg." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Érvényes üzenetlinket adj meg." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Adjon meg érvényes mobilszámot." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Érvényes felhasználónevet adj meg ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Adj meg egy e-mail címet, amit meg tudsz nyitni. Kódot küldünk oda." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Ajándékkód megadása…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Új e-mail cím megadása" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Írja be az autentikátor alkalmazásból származó {digitCount} számjegyű kódot." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Add meg a(z) {phoneNumber} telefonszámra küldött {digitCount} számjegyű kódot." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Írja be a kódot az hitelesítő alkalmazásból." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Add meg a(z) {emailAddress} címre küldött kódot." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Add meg a {MFA_CODE_DIGIT_COUNT} számjegyű kódot, amelyet a következő címre küldtünk: {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Írja be az e-mail kódot" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Írja be a biztonsági kulcsához tartozó PIN-kódot a folytatáshoz." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Adja meg az SMS-kódot" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Add meg a jelszavad." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Adja meg telefonszámát" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Nekem" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Ehhez az ellenőrzéshez te küldesz nekünk SMS-t ahelyett, hogy tőlünk kapnál egyet." @@ -16437,6 +16442,11 @@ msgstr "Ha ez a jelentés egy konkrét üzenetről szól, inkább azt az üzenet msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Ha ez a jelentés konkrét üzenetekre vonatkozik, inkább a legrelevánsabb üzenetet jelentsd. Az üzenetjelentések a legvilágosabb kontextust adják biztonsági csapatunknak, és a megjegyzésekben szereplő részletek segíthetnek a gyorsabb felülvizsgálatban. Csak akkor folytasd a felhasználó egészének jelentésével, ha egy üzenet jelentése nem fogná át a szélesebb problémát." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Ha nem tudod igazolni SMS-ben" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Tudjon meg többet" msgid "Leave" msgstr "Kilépés" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Elhagyod ezt a {count, plural, one {# közösséget} other {# közösséget}} és félreteszed ezt az ellenőrzést?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Elhagyás és félretétel" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Nyissa meg a böngészőjét, jelentkezzen be, majd adja meg az alábbi kódot a fiókja összekapcsolásához." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Nyisd meg az üzeneteidet" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Nyisd meg a telefonod üzenetküldő alkalmazását, és kezdj új szöveges üzenetet." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Telefonszám megadása kötelező" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Telefonos lépés" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "A telefonszám-ellenőrzés nem érhető el ehhez a fiókhoz. Használjon másik módszert, vagy lépjen kapcsolatba az ügyfélszolgálattal." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "újraposztok" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Előbb kérj egy új kódot." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Küldd el a kódot <0>{0} ide: <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Küldje el a kódot az alábbi telefonszámra." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Küldd el ezt a kódot" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Visszaküldöd ezt a kitűzést az időben?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Küldés ide" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Küldés:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Az SMS küldése erre a számra költséges, ezért azt kérjük, hogy inkább te küldj nekünk üzenetet." @@ -28311,6 +28331,18 @@ msgstr "Felhasználói korlát beállítása: {0}." msgid "Set the vanity URL to {0}." msgstr "A vanity URL beállítása a következőre: {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Tedd félre ezt az ellenőrzést" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Elhalasztod ezt az ellenőrzést?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Sima videó" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Az SMS-ellenőrzés jelenleg nem érhető el. Próbálja újra később, vagy lépjen kapcsolatba az ügyfélszolgálattal." @@ -29762,7 +29794,7 @@ msgstr "Valami hiba történt. Próbálja újra később." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Hiba történt. Próbálja újra." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standard {baseCurrencyLabel} árazás" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "A szolgáltatója normál üzenetküldési díjai érvényesülhetnek." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Szövegfelolvasás" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Küldj nekünk SMS-t a telefonodról" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Köszönjük, hogy segít megőrizni a {productName} biztonságát. A jelentését a lehető leghamarabb felülvizsgáljuk." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Ez a kód nem működött. Ellenőrizd, és próbáld újra." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Ez a kód lejárt. Kérj új kódot." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Ez nem fejeződött be. Lehetséges, hogy egyes közösségekből már kiléptél, és a fiókod még mindig zárolva van. Nyomd meg újra a „Tedd félre ezt az ellenőrzést” gombot a befejezéshez." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Nem sikerült. Nem változott semmi. Próbáld újra." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Ez nem tűnik érvényes színnek. Próbálj meg hexadecimális, rgb(), hsl() értéket vagy CSS színnevet használni." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Ez nem tűnik érvényes URL-nek." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Ez az e-mail-cím már használatban van." @@ -31588,6 +31630,11 @@ msgstr "Az új hangcsatorna újra fel fogja használni a(z) <0>{channelLabel}{0} to <1>{1}" msgstr "Kirim kode <0>{0} ke <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Kirim kode ke nomor telepon di bawah." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Kirim kode ini" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Kirim pin ini kembali ke masa lalu?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Kirim ke" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Kirim:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Mengirim SMS ke nomor ini mahal, jadi kami perlu Anda mengirim SMS kepada kami sebagai gantinya." @@ -28311,6 +28331,18 @@ msgstr "Atur batas pengguna ke {0}." msgid "Set the vanity URL to {0}." msgstr "Atur URL kustom ke {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Tunda pemeriksaan ini" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Singkirkan pemeriksaan ini?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Video lebih lancar" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Verifikasi SMS tidak tersedia saat ini. Coba lagi nanti atau hubungi dukungan." @@ -29762,7 +29794,7 @@ msgstr "Terjadi kesalahan. Coba lagi nanti." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Terjadi kesalahan. Coba lagi." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Harga standar {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Tarif pesan standar dari operator Anda mungkin berlaku." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Teks ke suara" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Kirim SMS kepada kami dari ponsel Anda" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Terima kasih telah membantu menjaga {productName} tetap aman. Kami akan meninjau laporan Anda sesegera mungkin." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Kode itu tidak berfungsi. Periksa dan coba lagi." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Kode tersebut sudah kedaluwarsa. Minta kode baru." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Penyelesaian tidak berhasil. Beberapa komunitas mungkin sudah ditinggalkan, dan akun Anda masih terkunci. Tekan Atur pemeriksaan ini ke samping lagi untuk menyelesaikan." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Itu tidak berhasil. Tidak ada yang berubah. Coba lagi." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Itu bukan warna yang valid. Coba hex, rgb(), hsl(), atau nama warna CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Itu bukan URL yang valid." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Email tersebut sudah digunakan." @@ -31588,6 +31630,11 @@ msgstr "Saluran suara baru akan menggunakan ulang izin, batas pengguna, dan bitr msgid "The page you're looking for doesn't exist or has been moved." msgstr "Halaman yang Anda cari tidak ada atau sudah dipindahkan." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Pemeriksaan telepon ditunda. Satu langkah email tersisa." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Ini dinonaktifkan" msgid "This is how messages appear" msgstr "Begini tampilan pesan" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Ini tidak tersedia di akun Anda saat ini. Kirim email ke {supportEmail} dan seseorang akan meninjaunya." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Ini bukan saluran yang Anda cari." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Nama panggilan ini hanya akan terlihat di komunitas ini" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Nomor ini memerlukan verifikasi teks, bukan SMS dari kami." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Peserta ini dibisukan oleh moderator" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Nomor telepon ini tidak dapat digunakan. Coba nomor ponsel lain atau hubungi dukungan." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Nomor telepon ini sudah digunakan. Coba nomor lain atau hubungi dukungan." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Sesi verifikasi ini telah berakhir. Kembali ke {productName} dan mulai pembayaran lagi." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Sesi verifikasi ini telah kedaluwarsa. Mulai lagi." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Ini akan memercayai semua tautan eksternal dan melewati peringatan untuk setiap domain. Domain tepercaya Anda yang sudah ada akan diganti. Ini kurang aman." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Jendela ini akan diperbarui secara otomatis setelah kami menerima pesan Anda." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Petakan nada gambar HDR ke rentang standar, kurangi kecerahan puncak." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Terlalu banyak percobaan. Tunggu sebentar, lalu coba lagi." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Gunakan aplikasi autentikator untuk membuat kode autentikasi dua faktor" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Gunakan email yang berbeda dari email Anda saat ini." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Gunakan email yang bisa Anda buka. Kami akan mengirimkan kode ke sana." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Jeda antar pesan. \"{bypassSlowmodePermissionLabel}\" dapat melewati ini." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Tunggu di sini" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Kami akan mengisi otomatis {prefillEmail} setelah login browser terbuka." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Kami akan mengirimkan kode SMS jika tersedia." @@ -37255,6 +37307,11 @@ msgstr "Anda dapat masuk kembali kapan saja." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Anda masih bisa membuat akun atau masuk. Jika undangan diaktifkan kembali nanti, Anda bisa menggunakan tautan yang sama ini untuk bergabung." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Anda masih dapat mengirim email ke {supportEmail} untuk peninjauan manual kapan saja." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Kamu bisa menyimpan GIF yang ditandai bintang sebagai favorit khusus URL atau mengunggahnya ke media tersimpanmu. Pilih yang paling sesuai dengan caramu menggunakannya. Kamu bisa mengubahnya kapan saja di {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Kamu perlu memverifikasi email untuk mengirim pesan di komunitas ini." msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Anda atau seseorang yang Anda tambahkan sudah memiliki jumlah DM grup maksimum yang terbuka. Tinggalkan salah satu dan coba lagi." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Anda tetap berada di {ownedNames}. Pemilik tidak dapat meninggalkan komunitas mereka sendiri." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Anda dibisukan oleh moderator" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Anda akan diarahkan ke {redirectHostname} setelah otorisasi." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Anda akan keluar dari {count, plural, one {# komunitas} other {# komunitas}} yang berlaku untuk pemeriksaan ini, dan akun Anda akan berfungsi normal kembali." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Anda akan keluar dari {guildNames}. Tidak ada yang Anda posting yang dihapus, dan Anda dapat bergabung lagi nanti." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Anda tidak akan bisa menghapus pesan terkirim setelah akun Anda dihapus" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Anda masih perlu menyelesaikan langkah email." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Sesi {productName} Anda telah berakhir. Masuk lagi untuk melanjutkan oto msgid "Your account" msgstr "Akun Anda" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Akun Anda kembali normal seketika dan Anda tidak akan memerlukan nomor telepon sekarang. Ini bukan pengecualian permanen. Bergabung dengan komunitas besar atau publik dapat memunculkan kembali pemeriksaan ini." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Akun Anda berhasil ditautkan. Sekarang Anda bisa menutup tab ini dan kembali ke aplikasi." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Akun Anda kembali normal." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Akun Anda belum diklaim. Tanpa email dan sandi, Anda tidak akan bisa masuk dari perangkat lain dan bisa kehilangan akses ke akun Anda. Klaim akun Anda sekarang untuk mengamankannya." @@ -38014,6 +38101,11 @@ msgstr "Permintaan akunmu menunggu persetujuan. Kamu dapat masuk setelah admin m msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Akun Anda memerlukan autentikasi multifaktor, tetapi tidak ada metode yang didukung yang diatur di perangkat ini. Masuk di perangkat dengan aplikasi autentikator atau kunci keamanan Anda, atau hubungi dukungan." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Akun Anda kembali berfungsi normal seketika dan tidak ada yang dihapus. Kami bisa meminta pemeriksaan ini lagi nanti." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Nama panggilan baru Anda, atau kosongkan untuk mengatur ulang." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Nomor Anda tidak tertaut ke akun Anda. Kami hanya menyimpan penanda terenkripsi, tanpa ID pengguna, untuk paling banyak {limit} verifikasi dalam sekitar {duration} hari." diff --git a/fluxer_app/src/features/i18n/locales/it/messages.po b/fluxer_app/src/features/i18n/locales/it/messages.po index 74a728e18..482762236 100644 --- a/fluxer_app/src/features/i18n/locales/it/messages.po +++ b/fluxer_app/src/features/i18n/locales/it/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 giorni" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "È richiesto un controllo del browser prima della verifica telefonica. Riprova dalla pagina di accesso o contatta il supporto." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Aggiungi una parola…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Aggiungi un'email funzionante" @@ -7390,7 +7390,7 @@ msgstr "Tema carbone" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "Email non disponibile" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "L'aggiornamento dell'email non è disponibile al momento. Riprova più tardi o contatta l'assistenza." @@ -12375,6 +12375,11 @@ msgstr "L'aggiornamento dell'email non è disponibile al momento. Riprova più t msgid "Email update required" msgstr "Aggiornamento email richiesto" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Inviaci un'email e una persona esaminerà il tuo account. Dicci che non puoi verificare tramite SMS e ci occuperemo noi del resto. Le risposte arrivano via email, quindi non è istantaneo." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Inserisci un URL o un codice modello {theOtherPlatform} valido." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Inserisci un indirizzo email valido." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Inserisci un link del messaggio valido." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Inserisci un numero di cellulare valido." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Inserisci un nome utente valido ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Inserisci un'email che puoi aprire. Ti invieremo un codice lì." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Inserisci codice regalo…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Inserisci la nuova email" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Inserisci il codice di {digitCount} cifre dalla tua app di autenticazione." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Inserisci il codice di {digitCount} cifre inviato a {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Inserisci il codice dalla tua app di autenticazione." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Inserisci il codice inviato a {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Inserisci il codice di {MFA_CODE_DIGIT_COUNT} cifre inviato a {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Inserisci il codice email" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Inserisci il PIN della tua chiave di sicurezza per continuare." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Inserisci il codice SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Inserisci la tua password." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Inserisci il tuo numero di telefono" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Per me" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Per questo controllo, ci invierai un messaggio invece di riceverne uno da noi." @@ -16437,6 +16442,11 @@ msgstr "Se la segnalazione riguarda un messaggio specifico, segnala direttamente msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Se questa segnalazione riguarda messaggi specifici, segnala invece il messaggio più pertinente. Le segnalazioni dei messaggi forniscono al nostro team di sicurezza il contesto più chiaro e l'aggiunta di dettagli nei commenti può aiutarci a esaminarla più velocemente. Continua a segnalare l'utente nel suo complesso solo se la segnalazione di un messaggio non riuscirebbe a cogliere il problema più ampio." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Se non riesci a verificare via SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Scopri di più" msgid "Leave" msgstr "Abbandona" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Lasciare {count, plural, one {# community} other {# community}} e mettere da parte questo controllo?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Lascia e metti da parte" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Apri il browser, accedi, quindi inserisci il codice qui sotto per collegare il tuo account." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Apri i tuoi messaggi" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Apri l'app di messaggistica del tuo telefono e avvia un nuovo messaggio di testo." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Numero di telefono obbligatorio" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Passaggio telefonico" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "La verifica telefonica non è disponibile per questo account. Usa un altro metodo o contatta l'assistenza." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "repost" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Richiedi prima un nuovo codice." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Invia il codice <0>{0} a <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Invia il codice al numero di telefono qui sotto." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Invia questo codice" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Vuoi rimandare indietro nel tempo questo messaggio fissato?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Invia a" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Invio:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "L'invio di un SMS a questo numero è costoso, quindi ti chiediamo di inviarci un messaggio." @@ -28311,6 +28331,18 @@ msgstr "Imposta il limite utenti a {0}." msgid "Set the vanity URL to {0}." msgstr "Imposta l'URL personalizzato su {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Rimanda questo controllo" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Mettere da parte questo controllo?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Video più fluido" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "La verifica SMS non è disponibile al momento. Riprova più tardi o contatta l'assistenza." @@ -29762,7 +29794,7 @@ msgstr "Si è verificato un errore. Riprova più tardi." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Si è verificato un errore. Riprova." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Prezzi standard in {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Potrebbero essere applicate le tariffe standard per i messaggi del tuo operatore." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Sintesi vocale" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Inviaci un messaggio dal tuo telefono" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Grazie per aver contribuito a rendere {productName} un luogo sicuro. Esamineremo la tua segnalazione il prima possibile." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Il codice non ha funzionato. Controllalo e riprova." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Il codice è scaduto. Richiedine uno nuovo." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "L'operazione non è terminata. Alcune community potrebbero essere già state abbandonate e il tuo account è ancora bloccato. Premi di nuovo \"Metti da parte questo controllo\" per completare." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Non è andato a buon fine. Non è cambiato nulla. Riprova." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Non sembra un colore valido. Prova un valore esadecimale, rgb(), hsl() o un nome di colore CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Non sembra un URL valido." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Questa email è già in uso." @@ -31588,6 +31630,11 @@ msgstr "Il nuovo canale vocale riutilizzerà i permessi, il limite utenti e il b msgid "The page you're looking for doesn't exist or has been moved." msgstr "La pagina che cerchi non esiste o è stata spostata." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Il controllo del telefono è stato messo da parte. Rimane un passaggio via email." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Questa opzione è disabilitata" msgid "This is how messages appear" msgstr "Ecco come appaiono i messaggi" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Al momento non è disponibile per il tuo account. Invia un'email a {supportEmail} e una persona esaminerà la richiesta." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Questo non è il canale che stai cercando." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Questo nickname sarà visibile solo in questa community" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Questo numero richiede la verifica tramite testo anziché un SMS da parte nostra." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Questo partecipante è stato silenziato dai moderatori" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Questo numero di telefono non può essere usato. Prova un altro numero di cellulare o contatta l'assistenza." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Questo numero di telefono è già stato utilizzato. Prova un altro numero o contatta l'assistenza." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "La sessione di verifica è scaduta. Torna a {productName} e ricomincia la procedura di acquisto." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Questa sessione di verifica è scaduta. Riprova." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "In questo modo tutti i link esterni verranno considerati attendibili e l'avviso per ogni dominio verrà ignorato. I domini attendibili esistenti verranno sostituiti. Questa operazione è meno sicura." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Questa finestra si aggiorna automaticamente dopo aver ricevuto il tuo messaggio." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Mappa le immagini HDR all'intervallo standard, riducendo la luminosità di picco." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Troppi tentativi. Attendi un attimo, poi riprova." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Usa un'app di autenticazione per generare i codici per la verifica in due passaggi" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Usa un'email diversa da quella attuale." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Usa un'email che puoi aprire. Ti invieremo un codice lì." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Tempo di attesa tra i messaggi. \"{bypassSlowmodePermissionLabel}\" può aggirare questa impostazione." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Attendi qui" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Precompileremo {prefillEmail} quando si aprirà l'accesso tramite browser." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Ti invieremo un codice SMS quando disponibile." @@ -37255,6 +37307,11 @@ msgstr "Puoi accedere di nuovo in qualsiasi momento." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Puoi comunque creare un account o accedere. Se gli inviti verranno riabilitati in seguito, potrai usare lo stesso link per unirti." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Puoi comunque inviare un'email a {supportEmail} per una revisione umana in qualsiasi momento." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Puoi salvare le GIF preferite come \"solo URL\" o caricarle nei tuoi contenuti salvati. Scegli l'opzione più adatta a te. Puoi cambiarla in qualsiasi momento in {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Devi verificare la tua email per inviare messaggi in questa community." msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Tu o qualcuno che stai aggiungendo avete già il numero massimo di messaggi diretti di gruppo aperti. Lasciane uno e riprova." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Rimani in {ownedNames}. I proprietari non possono abbandonare la propria community." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Sei stato disattivato dai moderatori" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Dopo l'autorizzazione, verrai reindirizzato a {redirectHostname}." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Lascerai {count, plural, one {# community} other {# community}} a cui si applica questo controllo e il tuo account tornerà a funzionare normalmente." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Lascerai {guildNames}. Nulla di ciò che hai pubblicato viene eliminato e potrai unirti di nuovo in seguito." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Non potrai eliminare i messaggi inviati dopo l'eliminazione del tuo account" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Dovrai comunque completare il passaggio dell'email." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "La tua sessione di {productName} è scaduta. Accedi di nuovo per continu msgid "Your account" msgstr "Il tuo account" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Il tuo account tornerà subito alla normalità e non avrai bisogno di un numero di telefono. Questa non è un'esenzione permanente. L'iscrizione a una community grande o pubblica potrebbe riattivare questo controllo." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Il tuo account è stato collegato. Ora puoi chiudere questa scheda e tornare all'app." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Il tuo account è tornato alla normalità." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Il tuo account non è ancora stato verificato. Senza un'email e una password, non potrai accedere da altri dispositivi e potresti perdere l'accesso al tuo account. Verifica il tuo account ora per metterlo in sicurezza." @@ -38014,6 +38101,11 @@ msgstr "La tua richiesta di account è in attesa di approvazione. Potrai acceder msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Il tuo account richiede l'autenticazione a più fattori, ma nessun metodo supportato è configurato su questo dispositivo. Accedi da un dispositivo con la tua app di autenticazione o la chiave di sicurezza, oppure contatta il supporto." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Il tuo account tornerà a funzionare normalmente subito e non verrà rimosso nulla. Possiamo richiedere nuovamente questo controllo in seguito." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Il tuo nuovo nickname, o lascia vuoto per reimpostarlo." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Il tuo numero non è collegato al tuo account. Conserviamo solo un indicatore crittografato, senza ID utente, per un massimo di {limit} verifiche in circa {duration} giorni." diff --git a/fluxer_app/src/features/i18n/locales/ja/messages.po b/fluxer_app/src/features/i18n/locales/ja/messages.po index 868aed735..740bb2148 100644 --- a/fluxer_app/src/features/i18n/locales/ja/messages.po +++ b/fluxer_app/src/features/i18n/locales/ja/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7日間" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "電話番号認証の前にブラウザチェックが必要です。サインインページからやり直すか、サポートにお問い合わせください。" @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "単語を追加…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "有効なメールアドレスを追加" @@ -7390,7 +7390,7 @@ msgstr "コールテーマ" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "メールアドレスを利用できません" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "現在、メールアドレスの更新はできません。しばらくしてからもう一度お試しいただくか、サポートにお問い合わせください。" @@ -12375,6 +12375,11 @@ msgstr "現在、メールアドレスの更新はできません。しばらく msgid "Email update required" msgstr "メールアドレスの更新が必要です" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "メールでご連絡ください。担当者がアカウントを確認します。SMSでの本人確認ができない旨をお伝えいただければ、その後の対応をいたします。返信はメールで行われるため、すぐには対応できません。" + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "有効な{theOtherPlatform}テンプレートURLまたはコードを入 #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "有効なメールアドレスを入力してください。" @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "有効なメッセージリンクを入力してください。" #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "有効な携帯電話番号を入力してください。" @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "有効なユーザー名を入力してください({exampleFluxerTagFull})。" #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "開くことができるメールアドレスを入力してください。確認コードをお送りします。" @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "ギフトコードを入力…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "新しいメールアドレスを入力" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "認証アプリに表示された{digitCount}桁のコードを入力してください。" #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "{phoneNumber}に送信された{digitCount}桁のコードを入力してください。" @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "認証アプリのコードを入力してください。" #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "{emailAddress}に送信されたコードを入力してください。" @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "{0}に送信された{MFA_CODE_DIGIT_COUNT}桁のコードを入力してください。" #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "メールコードを入力" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "セキュリティキーのPINを入力して続行してください。" #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "SMSコードを入力" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "パスワードを入力してください。" #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "電話番号を入力" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "自分用" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "この確認では、お客様から当社にテキストメッセージを送信していただきます。当社からお客様に送信することはありません。" @@ -16437,6 +16442,11 @@ msgstr "特定のメッセージに関する報告の場合は、そのメッセ msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "特定のメッセージに関する報告の場合は、最も関連性の高いメッセージを報告してください。メッセージを報告していただくと、安全チームが状況をより正確に把握できます。コメントで詳細を追加すると、より迅速に確認できます。メッセージの報告では問題の全体像を伝えきれない場合にのみ、ユーザー全体を報告する手続きに進んでください。" +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "SMSで確認できない場合" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "詳細はこちら" msgid "Leave" msgstr "退出" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "{count, plural, one {# コミュニティ} other {# コミュニティ}}を退出し、このチェックを保留しますか?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "退会して保留にする" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "ブラウザを開いてサインインし、以下のコードを入力してアカウントをリンクしてください。" #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "メッセージを開く" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "スマートフォンのメッセージアプリを開き、新しいテキストメッセージを作成してください。" @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "電話番号は必須です" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "電話番号認証ステップ" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "このアカウントでは電話番号認証をご利用いただけません。別の方法を使用するか、サポートにお問い合わせください。" @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "再投稿" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "まず新しいコードをリクエストしてください。" @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "コード <0>{0} を <1>{1} に送信" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "以下の電話番号にコードを送信してください。" #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "このコードを送信" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "このピンを過去に戻しますか?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "送信先" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "送信:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "この電話番号へのSMS送信は費用がかかるため、代わりにテキストメッセージを送信してください。" @@ -28311,6 +28331,18 @@ msgstr "ユーザー上限を{0}に設定." msgid "Set the vanity URL to {0}." msgstr "カスタムURLを{0}に設定しました。" +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "このチェックを後回しにする" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "このチェックをスキップしますか?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "よりスムーズなビデオ" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "現在、SMS認証をご利用いただけません。しばらくしてからもう一度お試しいただくか、サポートにお問い合わせください。" @@ -29762,7 +29794,7 @@ msgstr "問題が発生しました。後でもう一度お試しください。 #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "問題が発生しました。もう一度お試しください。" @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "標準の{baseCurrencyLabel}価格" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "ご利用の携帯電話会社によっては、通常のメッセージ料金がかかる場合があります。" @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "テキスト読み上げ" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "お使いの携帯電話からSMSを送信してください" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "{productName}を安全に保つためのご協力ありがとうございます。できるだけ早くご報告内容を確認いたします。" #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "コードが正しくありません。確認してもう一度お試しください。" #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "コードの有効期限が切れました。新しいコードをリクエストしてください。" +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "完了しませんでした。一部のコミュニティからはすでに退出済みで、アカウントはまだロックされています。「このチェックを後で実行」をもう一度押して、完了してください。" + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "処理できませんでした。何も変更されていません。もう一度お試しください。" + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "有効な色ではありません。16進数、rgb()、hsl()、またはCSSの色名をお試しください。" @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "有効なURLではないようです。" #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "そのメールアドレスは既に使用されています。" @@ -31588,6 +31630,11 @@ msgstr "新しいボイスチャンネルには、<0>{channelLabel}の権限 msgid "The page you're looking for doesn't exist or has been moved." msgstr "お探しのページは見つかりませんでした。移動または削除された可能性があります。" +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "電話番号の確認は保留されました。メールでの確認が1つ残っています。" + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "無効です" msgid "This is how messages appear" msgstr "メッセージの表示例" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "この機能は現在お客様のアカウントではご利用いただけません。{supportEmail}までメールにてお問い合わせください。担当者が確認いたします。" + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "お探しのチャンネルではありません。" @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "このニックネームはこのコミュニティ内でのみ表示されます" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "この電話番号は、SMSではなくテキスト入力による認証が必要です。" @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "この参加者はモデレーターによってミュートされました" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "この電話番号は使用できません。別の携帯電話番号を試すか、サポートにお問い合わせください。" #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "この電話番号はすでに使用されています。別の番号を試すか、サポートにお問い合わせください。" @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "認証セッションの有効期限が切れました。{productName}に戻り、もう一度チェックアウトを開始してください。" #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "この認証セッションは期限切れです。もう一度やり直してください。" @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "すべての外部リンクを信頼し、ドメインごとの警告をスキップします。既存の信頼済みドメインは上書きされます。セキュリティが低下します。" #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "メッセージを受信すると、このウィンドウは自動的に更新されます。" @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "HDR画像を標準範囲にトーンマップし、ピーク輝度を下げます。" #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "試行回数が多すぎます。しばらく待ってから、もう一度お試しください。" @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "認証アプリを使用して2段階認証コードを生成する" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "現在登録されているメールアドレスとは異なるものを使用してください。" #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "開くことができるメールアドレスを使用してください。そこにコードを送信します。" @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "メッセージ間の待機時間。\"{bypassSlowmodePermissionLabel}\" はそれをバイパスできます。" #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "そのままお待ちください" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "ブラウザでサインイン画面が開いたら、{prefillEmail}を自動入力します。" #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "SMSコードが利用可能になり次第、送信します。" @@ -37255,6 +37307,11 @@ msgstr "いつでもサインインし直せます。" msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "アカウントを作成したり、サインインしたりすることは可能です。招待が後で再度有効になった場合は、この同じリンクを使って参加できます。" +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "いつでも {supportEmail} にメールして、人間によるレビューを依頼できます。" + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "お気に入りに登録したGIFは、URLとして保存するか、保存済みメディアにアップロードできます。用途に合わせて選択してください。設定は{mediaSettingsPath}でいつでも変更できます。" @@ -37699,6 +37756,11 @@ msgstr "このコミュニティでメッセージを送信するには、メー msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "あなた、または追加しようとしているメンバーの誰かが、グループDMを最大数まで開いています。どれか1つを閉じてから、もう一度お試しください。" +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "{ownedNames} に残ります。コミュニティのオーナーは、自身のコミュニティから脱退することはできません。" + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "モデレーターによってミュートされました" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "認証後、{redirectHostname}に移動します。" +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "このチェックが適用されるコミュニティを {count, plural, one {# 件} other {# 件}} 退会すると、アカウントは通常どおり機能するようになります。" + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "{guildNames}から退出します。投稿した内容は削除されず、後で再度参加できます。" + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "アカウント削除後、送信済みのメッセージを削除することはできません" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "メールでの確認も完了させる必要があります。" + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "{productName}のセッションの有効期限が切れました。こ msgid "Your account" msgstr "アカウント" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "アカウントはすぐに元通りになり、電話番号は不要になります。これは恒久的な免除ではありません。大規模または公開コミュニティに参加すると、このチェックが再度表示される場合があります。" + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "アカウントの連携が完了しました。このタブを閉じてアプリに戻ることができます。" +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "アカウントが元に戻りました。" + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "アカウントが未登録です。メールアドレスとパスワードがないと、他のデバイスからサインインしたり、アカウントにアクセスできなくなる可能性があります。今すぐアカウントを登録して安全を確保しましょう。" @@ -38014,6 +38101,11 @@ msgstr "アカウント申請は承認待ちです。管理者が承認すると msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "アカウントで多要素認証が必須ですが、このデバイスではサポートされている方法が設定されていません。認証アプリまたはセキュリティキーが設定されているデバイスでサインインするか、サポートにお問い合わせください。" +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "アカウントはすぐに通常通りに戻り、何も削除されません。このチェックは後で再度依頼できます。" + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "新しいニックネーム。空白のままにするとリセットされます。" #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "お使いの電話番号はアカウントにリンクされていません。ユーザーIDを含まない暗号化されたマーカーのみを保持し、約{duration}日間で最大{limit}回の認証を行います。" diff --git a/fluxer_app/src/features/i18n/locales/ko/messages.po b/fluxer_app/src/features/i18n/locales/ko/messages.po index 7953897b4..c1c05f3c9 100644 --- a/fluxer_app/src/features/i18n/locales/ko/messages.po +++ b/fluxer_app/src/features/i18n/locales/ko/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7일" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "전화번호 인증 전에 브라우저 확인이 필요합니다. 로그인 페이지에서 다시 시도하거나 고객 지원팀에 문의하세요." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "단어 추가…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "사용 가능한 이메일 추가" @@ -7390,7 +7390,7 @@ msgstr "석탄 테마" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "이메일 사용 불가" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "지금은 이메일을 업데이트할 수 없습니다. 나중에 다시 시도하거나 지원팀에 문의하세요." @@ -12375,6 +12375,11 @@ msgstr "지금은 이메일을 업데이트할 수 없습니다. 나중에 다 msgid "Email update required" msgstr "이메일 업데이트 필요" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "이메일로 문의하시면 담당자가 계정을 검토합니다. SMS 인증이 불가능하다고 알려주시면 저희가 처리하겠습니다. 답장은 이메일로 발송되므로 즉시 확인은 어렵습니다." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "유효한 {theOtherPlatform} 템플릿 URL 또는 코드를 입력하세 #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "유효한 이메일 주소를 입력하세요." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "유효한 메시지 링크를 입력하세요." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "유효한 휴대폰 번호를 입력하세요." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "유효한 사용자 이름({exampleFluxerTagFull})을 입력하세요." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "열 수 있는 이메일 주소를 입력해 주세요. 해당 주소로 코드를 보내드립니다." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "선물 코드 입력…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "새 이메일 주소 입력" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "인증 앱의 {digitCount}자리 코드를 입력하세요." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "{phoneNumber}으로 전송된 {digitCount}자리 코드를 입력하세요." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "인증 앱의 코드를 입력하세요." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "{emailAddress}으로 전송된 코드를 입력하세요." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "{0}으로 전송된 {MFA_CODE_DIGIT_COUNT}자리 코드를 입력하세요." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "이메일 코드 입력" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "계속하려면 보안 키의 PIN을 입력하세요." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "SMS 코드 입력" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "비밀번호를 입력하세요." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "전화번호를 입력하세요" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "나를 위해" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "이 확인 절차에서는 메시지를 받는 대신 저희에게 문자 메시지를 보내주셔야 합니다." @@ -16437,6 +16442,11 @@ msgstr "특정 메시지에 대한 신고라면 해당 메시지를 직접 신 msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "특정 메시지에 대한 신고라면, 해당 메시지를 직접 신고해 주세요. 메시지 신고는 안전팀이 상황을 명확하게 파악하는 데 도움이 되며, 댓글에 세부 정보를 추가하면 더 빠르게 검토할 수 있습니다. 메시지 신고만으로는 전체적인 문제를 파악하기 어렵다고 판단될 경우에만 사용자 전체 신고를 진행해 주세요." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "SMS로 인증할 수 없는 경우" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "자세히 알아보기" msgid "Leave" msgstr "나가기" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "{count, plural, one {#개의 커뮤니티} other {#개의 커뮤니티}}를 나가고 이 확인을 보류하시겠어요?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "나가서 보관하기" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "브라우저를 열고 로그인한 다음 아래 코드를 입력하여 계정을 연결하세요." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "메시지 열기" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "휴대폰 메시지 앱을 열고 새 문자 메시지를 시작하세요." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "전화번호를 입력해주세요" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "전화번호 단계" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "이 계정에서는 전화 인증을 사용할 수 없습니다. 다른 방법을 사용하거나 지원팀에 문의하세요." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "다시 게시" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "먼저 새 코드를 요청하세요." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "코드 <0>{0}을(를) <1>{1}님에게 보내기" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "아래 전화번호로 코드를 보내주세요." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "코드 전송" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "이 핀을 과거로 돌려보낼까요?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "다음으로 전송" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "송신:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "이 번호로 SMS를 보내는 데 비용이 많이 들기 때문에 대신 문자를 보내주셔야 합니다." @@ -28311,6 +28331,18 @@ msgstr "사용자 제한을 {0}으로 설정했습니다." msgid "Set the vanity URL to {0}." msgstr "커스텀 URL을 {0}으로 설정했습니다." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "이 확인을 나중으로 미루기" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "이 확인을 건너뛸까요?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "더 부드러운 영상" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "지금은 SMS 인증을 이용할 수 없습니다. 나중에 다시 시도하거나 지원팀에 문의하세요." @@ -29762,7 +29794,7 @@ msgstr "문제가 발생했습니다. 나중에 다시 시도해 주세요." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "문제가 발생했습니다. 다시 시도해 주세요." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "표준 {baseCurrencyLabel} 가격" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "이동통신사의 표준 메시지 요금이 부과될 수 있습니다." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "텍스트 음성 변환" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "휴대폰으로 문자 보내기" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "{productName}을(를) 안전하게 유지하는 데 도움을 주셔서 감사합니다. 최대한 빨리 신고 내용을 검토하겠습니다." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "코드가 올바르지 않습니다. 다시 확인하고 시도해 주세요." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "코드가 만료되었습니다. 새 코드를 요청해 주세요." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "완료되지 않았습니다. 일부 커뮤니티는 이미 나가졌을 수 있으며 계정은 여전히 잠겨 있습니다. 완료하려면 '이 확인 건너뛰기'를 다시 누르세요." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "전송되지 않았습니다. 아무것도 변경되지 않았습니다. 다시 시도하세요." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "유효한 색상이 아닌 것 같아요. 헥스, rgb(), hsl() 또는 CSS 색상 이름을 사용해 보세요." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "유효한 URL이 아닌 것 같아요." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "이미 사용 중인 이메일입니다." @@ -31588,6 +31630,11 @@ msgstr "새로운 음성 채널은 <0>{channelLabel}의 권한, 사용자 msgid "The page you're looking for doesn't exist or has been moved." msgstr "찾으시는 페이지가 없거나 이동되었어요." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "휴대폰 인증은 보류되었습니다. 이메일 인증 단계가 하나 남았습니다." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "비활성화됨" msgid "This is how messages appear" msgstr "메시지가 표시되는 방식입니다" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "이 기능은 현재 계정에서 사용할 수 없습니다. {supportEmail}으로 이메일을 보내주시면 담당자가 검토해 드리겠습니다." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "찾으시는 채널이 아닌 것 같아요." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "이 닉네임은 이 커뮤니티에서만 표시됩니다" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "이 번호는 SMS 대신 문자 인증이 필요합니다." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "이 참가자는 관리자에 의해 음소거되었습니다" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "이 전화번호는 사용할 수 없습니다. 다른 휴대폰 번호를 시도하거나 지원팀에 문의하세요." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "이 전화번호는 이미 사용 중입니다. 다른 번호를 시도하거나 지원팀에 문의하세요." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "인증 세션이 만료되었습니다. {productName}으로 돌아가서 다시 결제를 시작해 주세요." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "인증 세션이 만료되었습니다. 다시 시작해 주세요." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "모든 외부 링크를 신뢰하고 모든 도메인에 대한 경고를 건너뜁니다. 기존 신뢰 도메인은 교체됩니다. 보안 수준이 낮아집니다." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "메시지를 받으면 이 창이 자동으로 업데이트됩니다." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "HDR 이미지를 표준 범위로 톤 매핑하여 최고 밝기를 줄입니다." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "시도 횟수가 너무 많습니다. 잠시 기다린 후 다시 시도해 주세요." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "인증 앱을 사용하여 2단계 인증 코드를 생성합니다" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "현재 이메일과 다른 이메일을 사용하세요." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "열 수 있는 이메일을 사용해 주세요. 인증 코드를 보내드립니다." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "메시지 사이에 대기합니다. \"{bypassSlowmodePermissionLabel}\" 권한이 있으면 이 제한을 우회할 수 있습니다." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "잠시만 기다려 주세요" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "브라우저 로그인 창이 열리면 {prefillEmail}이(가) 자동으로 입력됩니다." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "가능한 경우 SMS 코드를 보내드립니다." @@ -37255,6 +37307,11 @@ msgstr "언제든지 다시 로그인할 수 있습니다." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "계정을 만들거나 로그인할 수 있습니다. 나중에 초대 기능이 다시 활성화되면 이 링크로 참여할 수 있습니다." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "언제든지 {supportEmail}로 문의하여 직접 검토를 요청하실 수 있습니다." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "별표 표시한 GIF를 URL 전용 즐겨찾기로 저장하거나 저장된 미디어에 업로드할 수 있습니다. 사용 방식에 맞는 옵션을 선택하세요. 이 설정은 {mediaSettingsPath}에서 언제든지 변경할 수 있습니다." @@ -37699,6 +37756,11 @@ msgstr "이 커뮤니티에서 메시지를 보내려면 이메일 인증이 필 msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "회원님 또는 추가하려는 상대방이 이미 최대 그룹 DM 수를 열었습니다. 그룹 DM 중 하나를 나가고 다시 시도해 주세요." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "{ownedNames} 커뮤니티에 계속 계십니다. 소유자는 자신의 커뮤니티를 나갈 수 없습니다." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "관리자에 의해 음소거되었습니다" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "승인 후 {redirectHostname}으로 이동합니다." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "이 검사가 적용되는 커뮤니티 {count, plural, one {#개} other {#개}}를 나가게 되며, 계정은 정상적으로 다시 작동합니다." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "{guildNames}을(를) 나가게 됩니다. 게시한 내용은 삭제되지 않으며 나중에 다시 참여할 수 있습니다." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "계정 삭제 후에는 보낸 메시지를 삭제할 수 없습니다" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "이메일 단계를 완료해야 합니다." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "{productName} 세션이 만료되었습니다. 이 애플리케이션의 msgid "Your account" msgstr "내 계정" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "계정이 즉시 정상으로 돌아가며 지금은 전화번호가 필요하지 않습니다. 이는 영구적인 면제가 아닙니다. 크거나 공개된 커뮤니티에 참여하면 이 확인 절차가 다시 나타날 수 있습니다." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "계정이 성공적으로 연결되었습니다. 이 탭을 닫고 앱으로 돌아가세요." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "계정이 정상으로 돌아왔습니다." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "아직 계정이 등록되지 않았습니다. 이메일과 비밀번호가 없으면 다른 기기에서 로그인할 수 없으며 계정에 대한 액세스 권한을 잃을 수 있습니다. 지금 계정을 등록하여 안전하게 보호하세요." @@ -38014,6 +38101,11 @@ msgstr "계정 요청이 승인 대기 중입니다. 관리자가 승인한 후 msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "계정에 다단계 인증이 필요하지만, 이 기기에는 지원되는 방법이 설정되어 있지 않습니다. 인증 앱 또는 보안 키가 있는 기기에서 로그인하거나 지원팀에 문의하세요." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "계정이 즉시 정상적으로 복구되며 아무것도 삭제되지 않습니다. 나중에 이 확인을 다시 요청할 수 있습니다." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "새로운 닉네임입니다. 비워두면 초기화됩니다." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "회원님의 전화번호는 계정에 연결되어 있지 않습니다. 사용자 ID 없이 암호화된 마커만 보관하며, 약 {duration}일 동안 최대 {limit}회 인증에 사용됩니다." diff --git a/fluxer_app/src/features/i18n/locales/lt/messages.po b/fluxer_app/src/features/i18n/locales/lt/messages.po index 87e03e3ae..431d10b18 100644 --- a/fluxer_app/src/features/i18n/locales/lt/messages.po +++ b/fluxer_app/src/features/i18n/locales/lt/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 dienos" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Prieš patvirtinant telefono numerį, reikalingas naršyklės patikrinimas. Bandykite dar kartą prisijungimo puslapyje arba susisiekite su palaikymo komanda." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Pridėti žodį…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Pridėkite veikiantį el. pašto adresą" @@ -7390,7 +7390,7 @@ msgstr "Anglies tema" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "El. paštas nepasiekiamas" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "El. pašto atnaujinimas šiuo metu nepasiekiamas. Bandykite dar kartą vėliau arba susisiekite su palaikymo komanda." @@ -12375,6 +12375,11 @@ msgstr "El. pašto atnaujinimas šiuo metu nepasiekiamas. Bandykite dar kartą v msgid "Email update required" msgstr "Reikia atnaujinti el. paštą" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Parašykite mums el. paštu ir žmogus peržiūrės jūsų paskyrą. Pasakykite mums, kad negalite patvirtinti SMS žinute, ir mes viskuo pasirūpinsime. Atsakymai bus siunčiami el. paštu, todėl tai nebus akimirksniu." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Įveskite tinkamą „{theOtherPlatform}“ šablono URL arba kodą." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Įveskite galiojantį el. pašto adresą." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Įveskite galiojančią pranešimo nuorodą." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Įveskite galiojantį mobiliojo telefono numerį." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Įveskite galiojantį naudotojo vardą ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Įveskite el. pašto adresą, kurį galite atidaryti. Ten atsiųsime kodą." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Įveskite dovanos kodą…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Įveskite naują el. pašto adresą" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Įveskite {digitCount} skaitmenų kodą iš savo autentifikavimo programėlės." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Įveskite {digitCount} skaitmenų kodą, išsiųstą į {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Įveskite kodą iš autentifikavimo programėlės." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Įveskite kodą, išsiųstą į {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Įveskite {MFA_CODE_DIGIT_COUNT} skaitmenų kodą, išsiųstą į {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Įveskite el. pašto kodą" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Įveskite savo saugos rakto PIN kodą, kad tęstumėte." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Įveskite SMS kodą" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Įveskite slaptažodį." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Įveskite savo telefono numerį" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Man" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Šiam patikrinimui jūs mums siunčiate tekstinę žinutę, o ne gaunate ją iš mūsų." @@ -16437,6 +16442,11 @@ msgstr "Jei šis pranešimas yra apie konkretų pranešimą, praneškite apie t msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Jei šis pranešimas yra apie konkrečias žinutes, praneškite apie tinkamiausią žinutę. Pranešimai apie žinutes suteikia mūsų saugos komandai aiškiausią kontekstą, o išsamesnės informacijos pridėjimas komentaruose gali padėti mums greičiau peržiūrėti. Tęskite pranešimą apie vartotoją tik tuo atveju, jei pranešimas apie žinutę neapimtų platesnės problemos." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Jei negalite patvirtinti SMS žinute" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Sužinoti daugiau" msgid "Leave" msgstr "Išeiti" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Palikti {count, plural, one {# bendruomenę} other {# bendruomenes}} ir atidėti šį patikrinimą?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Išeiti ir atidėti" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Atidarykite naršyklę, prisijunkite, tada įveskite toliau pateiktą kodą, kad susietumėte paskyrą." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Atidarykite savo žinutes" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Atidarykite telefono pranešimų programėlę ir pradėkite naują tekstinę žinutę." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Reikalingas telefono numeris" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Telefono žingsnis" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Telefono numerio patvirtinimas šiai paskyrai negalimas. Naudokite kitą metodą arba susisiekite su palaikymo komanda." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "pakartotiniai įrašai" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Pirmiausia paprašykite naujo kodo." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Siųsti kodą <0>{0} į <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Išsiųskite kodą toliau nurodytu telefono numeriu." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Siųsti šį kodą" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Išsiųsti šį prisegimą atgal į praeitį?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Siųsti į" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Siųsti:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Siųsti SMS šiuo numeriu yra brangu, todėl prašome mums parašyti žinutę." @@ -28311,6 +28331,18 @@ msgstr "Nustatė naudotojų limitą į {0}." msgid "Set the vanity URL to {0}." msgstr "Nustatė nuosavą URL kaip \"{0}\"." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Atidėti šį patikrinimą" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Atidėti šį patikrinimą?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Sklandesnis vaizdo įrašas" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Šiuo metu SMS patvirtinimas nepasiekiamas. Bandykite dar kartą vėliau arba susisiekite su palaikymo komanda." @@ -29762,7 +29794,7 @@ msgstr "Kažkas nepavyko. Bandykite dar kartą vėliau." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Kažkas nepavyko. Bandykite dar kartą." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standartinė {baseCurrencyLabel} kaina" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Gali būti taikomi standartiniai jūsų operatoriaus pranešimų siuntimo tarifai." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Tekstas į kalbą" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Parašykite mums iš savo telefono" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Dėkojame, kad padedate užtikrinti „{productName}\" saugumą. Jūsų ataskaitą peržiūrėsime kuo greičiau." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Šis kodas netiko. Patikrinkite jį ir bandykite dar kartą." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Šis kodas nebegalioja. Prašykite naujo kodo." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Tai nebuvo baigta. Kai kurios bendruomenės galėjo būti jau paliktos, o jūsų paskyra vis dar užrakinta. Paspauskite „Atidėti šį patikrinimą“ dar kartą, kad užbaigtumėte." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Nepavyko. Nieko nepakeista. Pabandykite dar kartą." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Panašu, kad tai nėra tinkama spalva. Bandykite šešioliktainį, rgb(), hsl() arba CSS spalvos pavadinimą." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Atrodo, tai nėra tinkamas URL." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Šis el. paštas jau naudojamas." @@ -31588,6 +31630,11 @@ msgstr "Naujas balso kanalas pakartotinai naudos leidimus, naudotojų limitą ir msgid "The page you're looking for doesn't exist or has been moved." msgstr "Puslapis, kurio ieškote, neegzistuoja arba buvo perkeltas." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Telefono patikra atidėta. Liko vienas el. pašto veiksmas." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Tai išjungta" msgid "This is how messages appear" msgstr "Štai kaip atrodo žinutės" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Šiuo metu tai jūsų paskyroje neprieinama. Parašykite el. laišką adresu {supportEmail}, ir žmogus peržiūrės jūsų užklausą." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Tai ne tas kanalas, kurio ieškote." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Šis slapyvardis bus matomas tik šioje bendruomenėje" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Šiam numeriui reikalingas teksto patvirtinimas, o ne SMS iš mūsų." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Šį dalyvį nutildė moderatoriai" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Šio telefono numerio negalima naudoti. Bandykite kitą mobiliojo telefono numerį arba susisiekite su palaikymo komanda." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Šis telefono numeris jau buvo naudotas. Bandykite kitą numerį arba susisiekite su palaikymo komanda." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Šis patvirtinimo seansas baigėsi. Grįžkite į „{productName}\" ir pradėkite atsiskaitymą iš naujo." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Šis patvirtinimo seansas baigėsi. Pradėkite iš naujo." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Taip bus pasitikima visomis išorinėmis nuorodomis ir praleidžiamas įspėjimas kiekvienam domenui. Jūsų esami patikimi domenai bus pakeisti. Tai yra mažiau saugu." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Šis langas atnaujinamas automatiškai, kai tik gausime jūsų žinutę." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Tonuoti HDR vaizdus į standartinį diapazoną, sumažinant didžiausią ryškumą." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Per daug bandymų. Šiek tiek palaukite ir bandykite dar kartą." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Naudokite autentifikavimo programėlę dviejų veiksnių autentifikavimo kodams generuoti" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Naudokite kitą el. pašto adresą nei dabartinis." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Naudokite el. paštą, kurį galite atidaryti. Ten atsiųsime kodą." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Laikas tarp pranešimų. „{bypassSlowmodePermissionLabel}“ gali jį apeiti." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Palaukite čia" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Atidarius prisijungimo naršyklėje langą, iš anksto užpildysime {prefillEmail}." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Kai bus galima, atsiųsime SMS kodą." @@ -37255,6 +37307,11 @@ msgstr "Prisijungti galėsite bet kada." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Vis tiek galite susikurti paskyrą arba prisijungti. Jei vėliau pakvietimai vėl bus įjungti, galėsite naudoti šią nuorodą prisijungti." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Vis tiek galite bet kuriuo metu parašyti el. laišką adresu {supportEmail} dėl žmogiškojo peržiūrėjimo." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Pažymėtus GIF galite išsaugoti kaip mėgstamiausius tik URL formatu arba įkelti juos į išsaugotą mediją. Pasirinkite, kas jums labiausiai tinka. Tai galite bet kada pakeisti čia: {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Kad galėtumėte siųsti žinutes šioje bendruomenėje, turite patvirti msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Jūs arba asmuo, kurį bandote pridėti, jau turi maksimalų atidarytų grupinių tiesioginių žinučių skaičių. Palikite vieną ir bandykite dar kartą." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Jūs pasiliekate {ownedNames}. Savininkai negali palikti savo bendruomenės." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Moderatoriai jus nutildė" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Po autorizacijos būsite nukreipti į {redirectHostname}." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Jūs paliksite {count, plural, one {# bendruomenę} other {# bendruomenes}}, kurioms taikomas šis patikrinimas, ir jūsų paskyra vėl veiks normaliai." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Jūs išeisite iš {guildNames}. Nieko, ką paskelbėte, neištrinama, ir galėsite prisijungti vėliau." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Ištrynus paskyrą, išsiųstų žinučių ištrinti nebegalėsite" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Vis tiek turėsite užbaigti el. pašto patvirtinimą." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Jūsų \"{productName}\" seanso laikas baigėsi. Prisijunkite iš naujo, msgid "Your account" msgstr "Jūsų paskyra" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Jūsų paskyra iškart grįš į įprastą būseną ir jums nereikės telefono numerio. Tai nėra nuolatinė išimtis. Prisijungus prie didelės ar viešos bendruomenės šis patikrinimas gali grįžti." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Jūsų paskyra sėkmingai susieta. Dabar galite uždaryti šį skirtuką ir grįžti į programėlę." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Jūsų paskyra vėl veikia normaliai." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Jūsų paskyra dar nepatvirtinta. Be el. pašto ir slaptažodžio negalėsite prisijungti iš kitų įrenginių ir galite prarasti prieigą prie savo paskyros. Patvirtinkite paskyrą dabar, kad ją apsaugotumėte." @@ -38014,6 +38101,11 @@ msgstr "Jūsų paskyros užklausa laukia patvirtinimo. Prisijungti galėsite, ka msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Jūsų paskyrai reikalingas daugiafaktorinis autentifikavimas, tačiau šiame įrenginyje nėra nustatytų palaikomų metodų. Prisijunkite įrenginyje, kuriame yra jūsų autentifikavimo programa arba saugos raktas, arba susisiekite su palaikymo komanda." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Jūsų paskyra vėl veikia be jokių trikdžių ir niekas nėra pašalinta. Galime paprašyti atlikti šią patikrą vėliau." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Jūsų naujas slapyvardis arba palikite tuščią, kad jį atstatytumėte." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Jūsų numeris nesusietas su paskyra. Saugome tik užšifruotą žymeklį be vartotojo ID, daugiausia {limit} patvirtinimų per maždaug {duration} dienas." diff --git a/fluxer_app/src/features/i18n/locales/nl/messages.po b/fluxer_app/src/features/i18n/locales/nl/messages.po index f3cc8fa2f..153227a34 100644 --- a/fluxer_app/src/features/i18n/locales/nl/messages.po +++ b/fluxer_app/src/features/i18n/locales/nl/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 dagen" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Een browsercontrole is vereist voordat je je telefoon kunt verifiëren. Probeer het opnieuw vanaf de aanmeldpagina of neem contact op met de ondersteuning." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Een woord toevoegen…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Voeg een werkend e-mailadres toe" @@ -7390,7 +7390,7 @@ msgstr "Thema Kolenzwart" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-mailadres niet beschikbaar" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "E-mailadres bijwerken is nu niet beschikbaar. Probeer het later opnieuw of neem contact op met de ondersteuning." @@ -12375,6 +12375,11 @@ msgstr "E-mailadres bijwerken is nu niet beschikbaar. Probeer het later opnieuw msgid "Email update required" msgstr "E-mailadres bijwerken vereist" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "E-mail ons en een medewerker zal je account beoordelen. Geef aan dat je niet via sms kunt verifiëren en wij regelen de rest. Antwoorden komen per e-mail, dus dit is niet direct." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Voer een geldige {theOtherPlatform} template-URL of code in." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Voer een geldig e-mailadres in." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Voer een geldige berichtlink in." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Voer een geldig mobiel telefoonnummer in." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Voer een geldige gebruikersnaam in ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Voer een e-mailadres in dat je kunt openen. We sturen daar een code naartoe." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Cadeaucode invoeren…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Nieuw e-mailadres invoeren" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Voer de code van {digitCount} cijfers in vanuit je authenticator-app." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Voer de {digitCount}-cijferige code in die is verzonden naar {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Voer de code van je authenticator-app in." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Voer de code in die is verzonden naar {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Voer de code van {MFA_CODE_DIGIT_COUNT} cijfers in die is verzonden naar {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Voer de e-mailcode in" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Voer de pincode van uw beveiligingssleutel in om verder te gaan." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Voer de sms-code in" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Voer je wachtwoord in." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Voer je telefoonnummer in" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Voor mij" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Voor deze controle stuur je ons een sms in plaats van er een van ons te ontvangen." @@ -16437,6 +16442,11 @@ msgstr "Als dit rapport over een specifiek bericht gaat, rapporteer dan dat beri msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Als dit rapport over specifieke berichten gaat, rapporteer dan het meest relevante bericht. Berichtenrapporten geven ons veiligheidsteam de duidelijkste context, en het toevoegen van details in de opmerkingen kan ons helpen het sneller te beoordelen. Ga alleen door met het rapporteren van de gebruiker als geheel als het rapporteren van een bericht het bredere probleem niet zou omvatten." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Als je niet kunt verifiëren via sms" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Meer informatie" msgid "Leave" msgstr "Verlaten" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Verlaat {count, plural, one {# community} other {# communities}} en zet deze controle opzij?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Verlaten en opzij zetten" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Open je browser, meld je aan en voer de onderstaande code in om je account te koppelen." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Open je berichten" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Open de berichtenapp op je telefoon en start een nieuw sms-bericht." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Telefoonnummer is verplicht" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Telefoonstap" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Telefoonverificatie is niet beschikbaar voor dit account. Gebruik een andere methode of neem contact op met de ondersteuning." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "reposts" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Vraag eerst een nieuwe code aan." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Stuur de code <0>{0} naar <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Stuur de code naar het onderstaande telefoonnummer." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Verstuur deze code" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Deze pin terug in de tijd sturen?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Verzenden naar" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Verzenden:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Het versturen van een sms naar dit nummer is duur, dus we vragen je om ons in plaats daarvan een bericht te sturen." @@ -28311,6 +28331,18 @@ msgstr "Gebruikerslimiet ingesteld op {0}." msgid "Set the vanity URL to {0}." msgstr "Stelde de vanity-URL in op {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Stel deze controle uit" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Zet deze controle opzij?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Vloeiendere video" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Sms-verificatie is momenteel niet beschikbaar. Probeer het later opnieuw of neem contact op met de ondersteuning." @@ -29762,7 +29794,7 @@ msgstr "Er is iets misgegaan. Probeer het later opnieuw." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Er is iets misgegaan. Probeer het opnieuw." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standaard {baseCurrencyLabel}-prijzen" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Standaard sms-tarieven van je provider kunnen van toepassing zijn." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Tekst naar spraak" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Sms ons vanaf je telefoon" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Bedankt dat je helpt om {productName} veilig te houden. We bekijken je melding zo snel mogelijk." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Die code werkte niet. Controleer de code en probeer het opnieuw." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Die code is verlopen. Vraag een nieuwe code aan." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Dat is niet voltooid. Sommige communities zijn mogelijk al verlaten en uw account is nog steeds vergrendeld. Druk nogmaals op 'Deze controle terzijde schuiven' om te voltooien." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Dat is niet gelukt. Er is niets veranderd. Probeer het opnieuw." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Dat lijkt geen geldige kleur. Probeer hex, rgb(), hsl() of een CSS-kleurnaam." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Dat lijkt geen geldige URL." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Dat e-mailadres is al in gebruik." @@ -31588,6 +31630,11 @@ msgstr "Het nieuwe spraakkanaal gebruikt de machtigingen, gebruikerslimiet en bi msgid "The page you're looking for doesn't exist or has been moved." msgstr "De pagina die je zoekt bestaat niet of is verplaatst." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "De telefooncontrole is terzijde geschoven. Er is nog één e-mailstap over." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Dit is uitgeschakeld" msgid "This is how messages appear" msgstr "Zo worden berichten weergegeven" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Dit is momenteel niet beschikbaar voor uw account. E-mail {supportEmail} en een medewerker zal het beoordelen." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Dit is niet het kanaal dat je zoekt." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Deze bijnaam is alleen zichtbaar in deze community" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Dit nummer moet worden geverifieerd via een sms-bericht in plaats van een sms van ons." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Deze deelnemer is gedempt door moderators" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Dit telefoonnummer kan niet worden gebruikt. Probeer een ander mobiel nummer of neem contact op met de ondersteuning." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Dit telefoonnummer is al gebruikt. Probeer een ander nummer of neem contact op met support." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Deze verificatiesessie is verlopen. Ga terug naar {productName} en start het afrekenen opnieuw." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Deze verificatiesessie is verlopen. Begin opnieuw." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Hiermee worden alle externe links vertrouwd en wordt de waarschuwing voor elk domein overgeslagen. Je bestaande vertrouwde domeinen worden vervangen. Dit is minder veilig." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Dit venster wordt automatisch bijgewerkt nadat we je bericht hebben ontvangen." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "HDR-afbeeldingen omzetten naar standaardbereik, waardoor de piekhelderheid wordt verminderd." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Te veel pogingen. Wacht even en probeer het dan opnieuw." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Gebruik een authenticator-app om codes te genereren voor tweestapsverificatie" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Gebruik een ander e-mailadres dan je huidige." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Gebruik een e-mailadres dat je kunt openen. We sturen daar een code naartoe." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Wachttijd tussen berichten. \"{bypassSlowmodePermissionLabel}\" kan dit omzeilen." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Even wachten" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "We vullen {prefillEmail} alvast in zodra het inlogscherm in je browser opent." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "We sturen een sms-code wanneer deze beschikbaar is." @@ -37255,6 +37307,11 @@ msgstr "Je kunt op elk moment weer inloggen." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Je kunt nog steeds een account aanmaken of inloggen. Als uitnodigingen later opnieuw worden ingeschakeld, kun je dezelfde link gebruiken om deel te nemen." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Je kunt op elk moment een e-mail sturen naar {supportEmail} voor een beoordeling door een mens." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Je kunt \"starred\" GIF's opslaan als favorieten (alleen URL) of uploaden naar je opgeslagen media. Kies de optie die het beste bij je past. Je kunt dit op elk moment wijzigen via {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Je moet je e-mailadres verifiëren om berichten te kunnen versturen in d msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Jij of iemand die je toevoegt heeft al het maximale aantal groeps-DM's openstaan. Verlaat er een en probeer het opnieuw." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Je blijft in {ownedNames}. Eigenaren kunnen hun eigen community niet verlaten." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Je bent gedempt door moderators" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Je wordt doorgestuurd naar {redirectHostname} na autorisatie." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Je verlaat {count, plural, one {# community} other {# communities}} waarvoor deze controle geldt, en je account werkt weer normaal." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Je verlaat {guildNames}. Niets wat je hebt geplaatst wordt verwijderd en je kunt later opnieuw lid worden." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Verzonden berichten kunnen niet meer worden verwijderd nadat je account is verwijderd" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Je moet de e-mailstap nog steeds afronden." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Je {productName}-sessie is verlopen. Meld je opnieuw aan om door te gaan msgid "Your account" msgstr "Je account" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Je account wordt direct weer normaal en je hebt nu geen telefoonnummer nodig. Dit is geen permanente uitzondering. Lid worden van een grote of openbare community kan deze controle opnieuw activeren." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Je account is gekoppeld. Je kunt dit tabblad nu sluiten en teruggaan naar de app." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Je account is weer normaal." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Je account is nog niet geclaimd. Zonder e-mailadres en wachtwoord kun je niet inloggen vanaf andere apparaten en kun je de toegang tot je account verliezen. Claim je account nu om het te beveiligen." @@ -38014,6 +38101,11 @@ msgstr "Je accountaanvraag wacht op goedkeuring. Je kunt inloggen nadat een behe msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Je account vereist meervoudige authenticatie, maar er zijn geen ondersteunde methoden ingesteld op dit apparaat. Meld je aan op een apparaat met je authenticator-app of beveiligingssleutel, of neem contact op met de ondersteuning." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Je account werkt direct weer normaal en er wordt niets verwijderd. We kunnen later opnieuw om deze controle vragen." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Je nieuwe bijnaam, of laat leeg om deze te resetten." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Je nummer is niet gekoppeld aan je account. We bewaren alleen een versleutelde markering, zonder gebruikers-ID, voor maximaal {limit} verificaties in ongeveer {duration} dagen." diff --git a/fluxer_app/src/features/i18n/locales/no/messages.po b/fluxer_app/src/features/i18n/locales/no/messages.po index fad9fd0ad..17246c260 100644 --- a/fluxer_app/src/features/i18n/locales/no/messages.po +++ b/fluxer_app/src/features/i18n/locales/no/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 dager" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "En nettlesersjekk kreves før telefonverifisering. Prøv igjen fra påloggingssiden eller kontakt kundestøtte." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Legg til et ord …" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Legg til en fungerende e-postadresse" @@ -7390,7 +7390,7 @@ msgstr "Kull-tema" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-post utilgjengelig" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "E-postoppdatering er utilgjengelig akkurat nå. Prøv igjen senere eller kontakt kundestøtte." @@ -12375,6 +12375,11 @@ msgstr "E-postoppdatering er utilgjengelig akkurat nå. Prøv igjen senere eller msgid "Email update required" msgstr "E-postoppdatering kreves" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Send oss en e-post, så vil en person gjennomgå kontoen din. Fortell oss at du ikke kan verifisere via SMS, så tar vi det derfra. Svar kommer på e-post, så dette er ikke umiddelbart." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Skriv inn en gyldig {theOtherPlatform} mal-URL eller kode." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Skriv inn en gyldig e-postadresse." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Skriv inn en gyldig meldingslenke." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Skriv inn et gyldig mobilnummer." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Skriv inn et gyldig brukernavn ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Skriv inn en e-postadresse du kan åpne. Vi sender en kode dit." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Skriv inn gavekode…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Skriv inn ny e-postadresse" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Skriv inn den {digitCount}-sifrede koden fra autentiseringsappen din." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Skriv inn den {digitCount} sifrede koden som ble sendt til {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Skriv inn koden fra autentiseringsappen din." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Skriv inn koden som ble sendt til {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Skriv inn koden med {MFA_CODE_DIGIT_COUNT} siffer som ble sendt til {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Skriv inn e-postkoden" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Skriv inn PIN-koden for sikkerhetsnøkkelen din for å fortsette." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Skriv inn SMS-koden" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Skriv inn passordet ditt." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Skriv inn telefonnummeret ditt" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "For meg" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "For denne kontrollen sender du oss en tekstmelding i stedet for å motta en fra oss." @@ -16437,6 +16442,11 @@ msgstr "Hvis denne rapporten gjelder en spesifikk melding, rapporter heller den msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Hvis denne rapporten gjelder spesifikke meldinger, rapporter heller den mest relevante meldingen. Meldinger gir sikkerhetsteamet vårt den tydeligste konteksten, og det kan hjelpe oss å gjennomgå saken raskere hvis du legger til detaljer i kommentarene. Fortsett bare med å rapportere brukeren som helhet hvis rapportering av en melding ikke fanger opp det bredere problemet." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Hvis du ikke kan bekrefte via SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Les mer" msgid "Leave" msgstr "Forlat" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Forlat {count, plural, one {# fellesskap} other {# fellesskap}} og sett denne sjekken til side?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Forlat og sett til side" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Åpne nettleseren din, logg på, og skriv inn koden nedenfor for å koble til kontoen din." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Åpne meldingene dine" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Åpne meldingsappen på telefonen din og start en ny tekstmelding." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Telefonnummer er påkrevd" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Telefon-trinn" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Telefonverifisering er ikke tilgjengelig for denne kontoen. Bruk en annen metode eller kontakt kundestøtte." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "reposter" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Be om en ny kode først." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Send koden <0>{0} til <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Send koden til telefonnummeret nedenfor." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Send denne koden" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Send dette festede innlegget tilbake i tid?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Send til" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Send:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Det er dyrt å sende en SMS til dette nummeret, så vi trenger at du sender oss en tekstmelding i stedet." @@ -28311,6 +28331,18 @@ msgstr "Angi brukergrensen til {0}." msgid "Set the vanity URL to {0}." msgstr "Angi den egendefinerte nettadressen til {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Sett denne sjekken til side" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Legg denne sjekken til side?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Jevnere video" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "SMS-verifisering er utilgjengelig akkurat nå. Prøv igjen senere, eller kontakt kundestøtte." @@ -29762,7 +29794,7 @@ msgstr "Noe gikk galt. Prøv igjen senere." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Noe gikk galt. Prøv igjen." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standard {baseCurrencyLabel}-priser" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Standard meldingspriser fra operatøren din kan gjelde." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Tekst til tale" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Send oss en tekstmelding fra telefonen din" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Takk for at du hjelper oss med å holde {productName} trygt. Vi vil gjennomgå rapporten din så snart som mulig." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Koden fungerte ikke. Sjekk den og prøv igjen." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Koden er utløpt. Be om en ny kode." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Det ble ikke fullført. Noen fellesskap kan allerede være forlatt, og kontoen din er fortsatt låst. Trykk «Sett denne sjekken til side» igjen for å fullføre." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Det gikk ikke. Ingenting er endret. Prøv igjen." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Det ser ikke ut som en gyldig farge. Prøv heksadesimal, rgb(), hsl() eller et CSS-fargenavn." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Det ser ikke ut som en gyldig URL." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "E-postadressen er allerede i bruk." @@ -31588,6 +31630,11 @@ msgstr "Den nye talekanalen vil gjenbruke tillatelsene, brukergrensen og bithast msgid "The page you're looking for doesn't exist or has been moved." msgstr "Siden du leter etter finnes ikke eller har blitt flyttet." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Telefonsjekken er satt til side. Ett e-poststeg gjenstår." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Dette er deaktivert" msgid "This is how messages appear" msgstr "Slik vises meldinger" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Dette er ikke tilgjengelig for kontoen din akkurat nå. Send en e-post til {supportEmail} og en person vil gjennomgå det." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Dette er ikke kanalen du leter etter." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Dette kallenavnet vil bare være synlig i dette fellesskapet" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Dette nummeret krever tekstverifisering i stedet for en SMS fra oss." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Denne deltakeren ble dempet av moderatorer" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Dette telefonnummeret kan ikke brukes. Prøv et annet mobilnummer eller kontakt kundestøtte." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Dette telefonnummeret er allerede i bruk. Prøv et annet nummer eller kontakt kundestøtte." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Denne bekreftelsesøkten utløp. Gå tilbake til {productName} og start betalingen på nytt." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Denne bekreftelsesøkten er utløpt. Start på nytt." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Dette vil godkjenne alle eksterne lenker og hoppe over advarselen for alle domener. Dine eksisterende godkjente domener vil bli erstattet. Dette er mindre sikkert." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Dette vinduet oppdateres automatisk når vi mottar meldingen din." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Tonekartlegg HDR-bilder til standardområdet, noe som reduserer maksimal lysstyrke." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "For mange forsøk. Vent litt, og prøv igjen." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Bruk en autentiseringsapp for å generere koder for tofaktorautentisering" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Bruk en annen e-postadresse enn den du har nå." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Bruk en e-postadresse du har tilgang til. Vi sender en kode dit." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Ventetid mellom meldinger. «{bypassSlowmodePermissionLabel}» kan omgå dette." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Vent her" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Vi fyller ut {prefillEmail} automatisk når nettleserpåloggingen åpnes." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Vi sender en SMS-kode når den er tilgjengelig." @@ -37255,6 +37307,11 @@ msgstr "Du kan logge på igjen når som helst." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Du kan fortsatt opprette en konto eller logge på. Hvis invitasjoner aktiveres igjen senere, kan du bruke den samme lenken for å bli med." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Du kan fortsatt sende en e-post til {supportEmail} for en manuell gjennomgang når som helst." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Du kan lagre stjernemerkede GIF-er som favoritter (kun URL) eller laste dem opp til lagret media. Velg det som passer best for hvordan du bruker dem. Du kan endre dette når som helst under {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Du må bekrefte e-postadressen din for å sende meldinger i dette felles msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Du eller noen du legger til har allerede det maksimale antallet gruppe-DM-er åpne. Forlat én og prøv igjen." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Du blir værende i {ownedNames}. Eiere kan ikke forlate sitt eget fellesskap." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Du ble dempet av moderatorer" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Du blir sendt til {redirectHostname} etter godkjenning." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Du vil forlate {count, plural, one {# fellesskap} other {# fellesskap}} som denne sjekken gjelder for, og kontoen din vil fungere normalt igjen." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Du vil forlate {guildNames}. Ingenting du har lagt ut blir slettet, og du kan bli med igjen senere." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Du kan ikke slette sendte meldinger etter at kontoen din er slettet" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Du må fortsatt fullføre e-poststeget." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Økten din i {productName} har utløpt. Logg på igjen for å fortsette msgid "Your account" msgstr "Din konto" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Kontoen din blir normal igjen med en gang, og du trenger ikke telefonnummer nå. Dette er ikke et permanent unntak. Å bli med i et stort eller offentlig fellesskap kan føre til at denne sjekken kommer tilbake." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Kontoen din er nå koblet sammen. Du kan lukke denne fanen og gå tilbake til appen." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Kontoen din er tilbake til normal." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Kontoen din er ikke gjort krav på ennå. Uten e-post og passord kan du ikke logge på fra andre enheter, og du kan miste tilgangen til kontoen din. Gjør krav på kontoen din nå for å sikre den." @@ -38014,6 +38101,11 @@ msgstr "Kontoforespørselen din venter på godkjenning. Du kan logge inn etter a msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Kontoen din krever multifaktorautentisering, men ingen støttede metoder er konfigurert på denne enheten. Logg på en enhet med autentiseringsappen eller sikkerhetsnøkkelen din, eller kontakt kundestøtte." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Kontoen din fungerer som normalt med en gang, og ingenting blir fjernet. Vi kan be om denne sjekken igjen senere." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Ditt nye kallenavn, eller la stå tomt for å tilbakestille det." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Nummeret ditt er ikke knyttet til kontoen din. Vi lagrer kun en kryptert markør, uten bruker-ID, for maksimalt {limit} bekreftelser i løpet av omtrent {duration} dager." diff --git a/fluxer_app/src/features/i18n/locales/pl/messages.po b/fluxer_app/src/features/i18n/locales/pl/messages.po index 1a5a84c9b..8bf333da7 100644 --- a/fluxer_app/src/features/i18n/locales/pl/messages.po +++ b/fluxer_app/src/features/i18n/locales/pl/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 dni" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Przed weryfikacją telefonu wymagane jest sprawdzenie przeglądarki. Spróbuj ponownie ze strony logowania lub skontaktuj się z pomocą techniczną." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Dodaj słowo…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Dodaj działający adres e-mail" @@ -7390,7 +7390,7 @@ msgstr "Motyw Węgiel" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-mail niedostępny" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Aktualizacja adresu e-mail jest obecnie niedostępna. Spróbuj ponownie później lub skontaktuj się z pomocą techniczną." @@ -12375,6 +12375,11 @@ msgstr "Aktualizacja adresu e-mail jest obecnie niedostępna. Spróbuj ponownie msgid "Email update required" msgstr "Wymagana aktualizacja adresu e-mail" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Napisz do nas e-mailem, a osoba sprawdzi Twoje konto. Poinformuj nas, że nie możesz zweryfikować się przez SMS, a my zajmiemy się resztą. Odpowiedzi przychodzą e-mailem, więc nie jest to natychmiastowe." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Wprowadź prawidłowy adres URL lub kod szablonu {theOtherPlatform}." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Wpisz prawidłowy adres e-mail." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Wprowadź prawidłowy link do wiadomości." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Wprowadź prawidłowy numer telefonu komórkowego." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Wprowadź prawidłową nazwę użytkownika ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Wpisz adres e-mail, do którego masz dostęp. Wyślemy na niego kod." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Wpisz kod podarunkowy…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Wprowadź nowy adres e-mail" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Wprowadź {digitCount}-cyfrowy kod z aplikacji uwierzytelniającej." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Wpisz {digitCount}-cyfrowy kod wysłany na numer {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Wpisz kod z aplikacji uwierzytelniającej." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Wpisz kod wysłany na adres {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Wpisz kod składający się z {MFA_CODE_DIGIT_COUNT} cyfr wysłany na numer {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Wpisz kod z e-maila" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Wprowadź kod PIN dla swojego klucza zabezpieczającego, aby kontynuować." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Wpisz kod SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Wprowadź hasło." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Wprowadź swój numer telefonu" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Dla mnie" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "W ramach tej weryfikacji wyślesz nam wiadomość SMS, zamiast ją od nas otrzymać." @@ -16437,6 +16442,11 @@ msgstr "Jeśli zgłoszenie dotyczy konkretnej wiadomości, zgłoś tę wiadomoś msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Jeśli zgłoszenie dotyczy konkretnych wiadomości, zgłoś tę najbardziej istotną. Zgłoszenia wiadomości zapewniają naszemu zespołowi ds. bezpieczeństwa najjaśniejszy kontekst, a dodanie szczegółów w komentarzach może przyspieszyć weryfikację. Kontynuuj zgłaszanie użytkownika jako całości tylko wtedy, gdy zgłoszenie wiadomości nie oddałoby szerszego problemu." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Jeśli nie możesz zweryfikować przez SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Dowiedz się więcej" msgid "Leave" msgstr "Opuść" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Opuścić {count, plural, one {# społeczność} other {# społeczności}} i odłożyć to sprawdzenie?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Opuść i odłóż na później" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Otwórz przeglądarkę, zaloguj się, a następnie wprowadź poniższy kod, aby połączyć swoje konto." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Otwórz wiadomości" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Otwórz aplikację do obsługi wiadomości na telefonie i rozpocznij nową wiadomość tekstową." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Numer telefonu jest wymagany" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Krok: telefon" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Weryfikacja telefoniczna nie jest dostępna dla tego konta. Użyj innej metody lub skontaktuj się z pomocą techniczną." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "reposty" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Najpierw poproś o nowy kod." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Wyślij kod <0>{0} na numer <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Wyślij kod na numer telefonu poniżej." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Wyślij ten kod" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Cofnąć przypiętą wiadomość w czasie?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Wyślij na numer" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Wysyłanie:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Wysłanie SMS-a na ten numer jest kosztowne, dlatego prosimy o wysłanie nam wiadomości tekstowej." @@ -28311,6 +28331,18 @@ msgstr "Ustawiono limit użytkowników na {0}." msgid "Set the vanity URL to {0}." msgstr "Ustaw adres vanity na {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Odłóż to sprawdzenie" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Odłożyć to sprawdzenie?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Płynniejszy obraz" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Weryfikacja SMS jest teraz niedostępna. Spróbuj ponownie później lub skontaktuj się z pomocą techniczną." @@ -29762,7 +29794,7 @@ msgstr "Coś poszło nie tak. Spróbuj ponownie później." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Coś poszło nie tak. Spróbuj ponownie." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standardowe ceny w {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Mogą obowiązywać standardowe stawki operatora za wiadomości." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Tekst na mowę" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Wyślij nam SMS-a ze swojego telefonu" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Dziękujemy za pomoc w dbaniu o bezpieczeństwo w {productName}. Rozpatrzymy Twoje zgłoszenie tak szybko, jak to możliwe." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Ten kod nie zadziałał. Sprawdź go i spróbuj ponownie." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Ten kod wygasł. Poproś o nowy kod." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Nie udało się dokończyć. Niektóre społeczności mogły zostać już opuszczone, a Twoje konto nadal jest zablokowane. Naciśnij „Odłóż to sprawdzenie” ponownie, aby dokończyć." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Nie udało się. Nic się nie zmieniło. Spróbuj ponownie." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "To nie wygląda na prawidłowy kolor. Spróbuj formatu szesnastkowego, rgb(), hsl() lub nazwy koloru CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "To nie wygląda na prawidłowy adres URL." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Ten adres e-mail jest już używany." @@ -31588,6 +31630,11 @@ msgstr "Nowy kanał głosowy będzie ponownie używać uprawnień, limitu użytk msgid "The page you're looking for doesn't exist or has been moved." msgstr "Strona, której szukasz, nie istnieje lub została przeniesiona." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Odstawiono weryfikację telefonu. Pozostał jeden krok z e-mailem." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "To jest wyłączone" msgid "This is how messages appear" msgstr "Tak wyglądają wiadomości" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Ta funkcja nie jest obecnie dostępna dla Twojego konta. Wyślij e-mail na adres {supportEmail}, a ktoś to sprawdzi." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "To nie jest kanał, którego szukasz." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Ten pseudonim będzie widoczny tylko w tej społeczności" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Ten numer wymaga weryfikacji tekstowej zamiast SMS-a od nas." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Ten uczestnik został wyciszony przez moderatorów" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Tego numeru telefonu nie można użyć. Spróbuj użyć innego numeru telefonu komórkowego lub skontaktuj się z pomocą techniczną." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Ten numer telefonu został już użyty. Spróbuj użyć innego numeru lub skontaktuj się z pomocą techniczną." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Sesja weryfikacji wygasła. Wróć do {productName} i rozpocznij płatność ponownie." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Sesja weryfikacji wygasła. Zacznij od nowa." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Spowoduje to zaufanie do wszystkich linków zewnętrznych i pominięcie ostrzeżenia dla każdej domeny. Twoje istniejące zaufane domeny zostaną zastąpione. Jest to mniej bezpieczne." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "To okno zaktualizuje się automatycznie po otrzymaniu wiadomości." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Mapuj obrazy HDR do standardowego zakresu, zmniejszając szczytową jasność." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Zbyt wiele prób. Poczekaj chwilę, a następnie spróbuj ponownie." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Użyj aplikacji uwierzytelniającej do generowania kodów do weryfikacji dwuetapowej" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Użyj adresu e-mail innego niż bieżący." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Użyj adresu e-mail, do którego masz dostęp. Wyślemy tam kod." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Odstęp między wiadomościami. Użytkownicy z uprawnieniem „{bypassSlowmodePermissionLabel}” mogą go obejść." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Poczekaj tutaj" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Wypełnimy wstępnie pole adresem {prefillEmail}, gdy otworzy się logowanie w przeglądarce." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Wyślemy kod SMS, gdy będzie dostępny." @@ -37255,6 +37307,11 @@ msgstr "Zawsze możesz zalogować się ponownie." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Nadal możesz utworzyć konto lub się zalogować. Jeśli zaproszenia zostaną później ponownie włączone, możesz użyć tego samego linku, aby dołączyć." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Nadal możesz wysłać wiadomość e-mail na adres {supportEmail}, aby uzyskać pomoc od człowieka w dowolnym momencie." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Możesz przechowywać oznaczone gwiazdką GIF-y jako ulubione tylko z adresem URL lub przesłać je do zapisanych multimediów. Wybierz opcję, która najlepiej pasuje do Twojego sposobu ich używania. Możesz to zmienić w dowolnym momencie w {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Musisz zweryfikować swój adres e-mail, aby wysyłać wiadomości w tej msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Ty lub osoba, którą dodajesz, macie już otwartą maksymalną liczbę grupowych DM-ów. Opuść jeden i spróbuj ponownie." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Pozostajesz w {ownedNames}. Właściciele nie mogą opuścić własnej społeczności." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Moderatorzy cię wyciszyli" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Po autoryzacji nastąpi przekierowanie do witryny {redirectHostname}." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Opuścisz {count, plural, one {# społeczność} few {# społeczności} many {# społeczności} other {# społeczności}}, których dotyczy to sprawdzenie, a Twoje konto znów będzie działać normalnie." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Opuścisz {guildNames}. Nic z tego, co opublikowałeś, nie zostanie usunięte i możesz dołączyć ponownie później." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Nie będzie można usunąć wysłanych wiadomości po usunięciu konta" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Nadal musisz ukończyć krok z e-mailem." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Twoja sesja {productName} wygasła. Zaloguj się ponownie, aby kontynuow msgid "Your account" msgstr "Twoje konto" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Twoje konto od razu wróci do normy i nie będziesz już potrzebować numeru telefonu. Nie jest to stałe zwolnienie. Dołączenie do dużej lub publicznej społeczności może ponownie aktywować ten wymóg." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Twoje konto zostało pomyślnie połączone. Możesz teraz zamknąć tę kartę i wrócić do aplikacji." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Twoje konto wróciło do normy." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Twoje konto nie zostało jeszcze odebrane. Bez adresu e-mail i hasła nie będzie można zalogować się z innych urządzeń i możesz stracić dostęp do konta. Odbierz konto teraz, aby je zabezpieczyć." @@ -38014,6 +38101,11 @@ msgstr "Twoja prośba o konto oczekuje na zatwierdzenie. Możesz się zalogować msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Twoje konto wymaga uwierzytelniania wieloskładnikowego, ale na tym urządzeniu nie skonfigurowano żadnych obsługiwanych metod. Zaloguj się na urządzeniu z aplikacją uwierzytelniającą lub kluczem bezpieczeństwa albo skontaktuj się z pomocą techniczną." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Twoje konto znów działa normalnie i nic nie zostało usunięte. Możemy poprosić o ponowne sprawdzenie później." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Twój nowy pseudonim lub pozostaw puste, aby zresetować." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Twój numer nie jest powiązany z kontem. Przechowujemy tylko zaszyfrowany znacznik, bez identyfikatora użytkownika, dla maksymalnie {limit} weryfikacji w ciągu około {duration} dni." diff --git a/fluxer_app/src/features/i18n/locales/pt-BR/messages.po b/fluxer_app/src/features/i18n/locales/pt-BR/messages.po index a7fbb4baf..17863fe0f 100644 --- a/fluxer_app/src/features/i18n/locales/pt-BR/messages.po +++ b/fluxer_app/src/features/i18n/locales/pt-BR/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 dias" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "É necessária uma verificação no navegador antes da verificação por telefone. Tente novamente na página de login ou entre em contato com o suporte." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Adicionar uma palavra…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Adicione um e-mail válido" @@ -7390,7 +7390,7 @@ msgstr "Tema carvão" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-mail indisponível" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "A atualização de e-mail não está disponível no momento. Tente novamente mais tarde ou entre em contato com o suporte." @@ -12375,6 +12375,11 @@ msgstr "A atualização de e-mail não está disponível no momento. Tente novam msgid "Email update required" msgstr "Atualização de e-mail necessária" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Envie um e-mail para nós e uma pessoa analisará sua conta. Informe que você não consegue verificar por SMS e nós cuidaremos do resto. As respostas chegam por e-mail, então não é instantâneo." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Insira um URL ou código de modelo {theOtherPlatform} válido." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Insira um endereço de e-mail válido." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Insira um link de mensagem válido." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Insira um número de celular válido." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Insira um nome de usuário válido ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Insira um e-mail que você possa abrir. Enviaremos um código para ele." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Insira o código do presente…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Insira o novo e-mail" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Insira o código de {digitCount} dígitos do seu aplicativo autenticador." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Insira o código de {digitCount} dígitos enviado para {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Insira o código do seu app autenticador." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Insira o código enviado para {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Insira o código de {MFA_CODE_DIGIT_COUNT} dígitos enviado para {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Insira o código do e-mail" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Digite o PIN da sua chave de segurança para continuar." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Insira o código SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Digite sua senha." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Insira seu número de telefone" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Para mim" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Para esta verificação, você nos envia uma mensagem de texto em vez de receber uma nossa." @@ -16437,6 +16442,11 @@ msgstr "Se esta denúncia é sobre uma mensagem específica, denuncie a mensagem msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Se esta denúncia é sobre mensagens específicas, denuncie a mensagem mais relevante. Denúncias de mensagens dão à nossa equipe de segurança o contexto mais claro, e adicionar detalhes nos comentários pode nos ajudar a analisar mais rápido. Só continue com a denúncia do usuário como um todo se denunciar uma mensagem não abranger o problema maior." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Se não conseguir verificar por SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Saiba mais" msgid "Leave" msgstr "Sair" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Sair de {count, plural, one {# comunidade} other {# comunidades}} e deixar esta verificação de lado?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Sair e deixar de lado" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Abra seu navegador, faça login e insira o código abaixo para vincular sua conta." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Abra suas mensagens" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Abra seu aplicativo de mensagens e comece uma nova mensagem de texto." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Número de telefone é obrigatório" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Etapa do telefone" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "A verificação por telefone não está disponível para esta conta. Use outro método ou entre em contato com o suporte." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "compartilhamentos" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Primeiro, solicite um novo código." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Enviar o código <0>{0} para <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Envie o código para o número de telefone abaixo." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Enviar este código" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Enviar este item fixado de volta no tempo?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Enviar para" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Enviar:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Enviar um SMS para este número é caro, então precisamos que você nos envie uma mensagem de texto." @@ -28311,6 +28331,18 @@ msgstr "Definir o limite de usuários para {0}." msgid "Set the vanity URL to {0}." msgstr "Definiu o URL personalizado para {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Adiar esta verificação" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Adiar esta verificação?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Vídeo mais fluido" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "A verificação por SMS está indisponível no momento. Tente novamente mais tarde ou entre em contato com o suporte." @@ -29762,7 +29794,7 @@ msgstr "Algo deu errado. Tente novamente mais tarde." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Algo deu errado. Tente novamente." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Preço padrão em {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "As taxas de mensagem da sua operadora podem ser aplicadas." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Texto para fala" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Envie-nos uma mensagem do seu telefone" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Obrigado por ajudar a manter o {productName} seguro. Analisaremos seu relatório o mais rápido possível." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Esse código não funcionou. Verifique e tente novamente." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Esse código expirou. Solicite um novo código." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Isso não foi concluído. Algumas comunidades podem já ter sido deixadas, e sua conta ainda está bloqueada. Pressione \"Deixar esta verificação de lado\" novamente para concluir." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Não foi possível. Nada mudou. Tente novamente." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Essa cor não parece válida. Tente usar hexadecimal, rgb(), hsl() ou um nome de cor CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Parece que este não é um URL válido." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Este e-mail já está em uso." @@ -31588,6 +31630,11 @@ msgstr "O novo canal de voz vai reutilizar as permissões, limite de usuários e msgid "The page you're looking for doesn't exist or has been moved." msgstr "A página que você está procurando não existe ou foi movida." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "A verificação do telefone foi deixada de lado. Resta uma etapa de e-mail." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Isto está desativado" msgid "This is how messages appear" msgstr "É assim que as mensagens aparecem" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "No momento, isso não está disponível na sua conta. Envie um e-mail para {supportEmail} e alguém analisará." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Este não é o canal que você está procurando." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Este apelido só ficará visível nesta comunidade" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Este número precisa de verificação por texto, e não por SMS nosso." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Este participante foi silenciado por moderadores" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Este número de telefone não pode ser usado. Tente outro número de celular ou entre em contato com o suporte." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Este número de telefone já foi usado. Tente outro número ou entre em contato com o suporte." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Esta sessão de verificação expirou. Volte para o {productName} e inicie a compra novamente." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Esta sessão de verificação expirou. Comece novamente." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Isso fará com que todos os links externos sejam confiáveis e pulará o aviso para todos os domínios. Seus domínios confiáveis existentes serão substituídos. Isso é menos seguro." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Esta janela é atualizada automaticamente depois que recebemos sua mensagem." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Mapeie imagens HDR para o intervalo padrão, reduzindo o pico de brilho." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Muitas tentativas. Espere um pouco e tente novamente." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Use um app autenticador para gerar códigos para a autenticação de dois fatores" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Use um e-mail diferente do seu atual." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Use um e-mail que você possa abrir. Enviaremos um código para ele." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Tempo entre mensagens. \"{bypassSlowmodePermissionLabel}\" pode ignorar isso." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Aguarde" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Vamos preencher automaticamente {prefillEmail} assim que o login no navegador abrir." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Enviaremos um código por SMS quando disponível." @@ -37255,6 +37307,11 @@ msgstr "Você pode entrar novamente a qualquer momento." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Você ainda pode criar uma conta ou entrar. Se os convites forem reativados mais tarde, você poderá usar este mesmo link para entrar." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Você ainda pode enviar um e-mail para {supportEmail} para uma revisão humana a qualquer momento." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Você pode salvar GIFs favoritos apenas como links ou fazer upload deles para sua mídia salva. Escolha a opção que melhor se adapta ao seu uso. Você pode mudar isso a qualquer momento em {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Você precisa verificar seu e-mail para enviar mensagens nesta comunidad msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Você ou alguém que você está adicionando já atingiu o número máximo de DMs em grupo abertas. Saia de uma e tente novamente." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Você permanece em {ownedNames}. Proprietários não podem sair de sua própria comunidade." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Você foi silenciado por moderadores" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Você será direcionado para {redirectHostname} após a autorização." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Você sairá de {count, plural, one {# comunidade} other {# comunidades}} às quais esta verificação se aplica, e sua conta voltará a funcionar normalmente." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Você sairá de {guildNames}. Nada do que você postou foi excluído e você pode entrar novamente mais tarde." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Você não poderá apagar as mensagens enviadas depois que sua conta for excluída" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Você ainda precisará concluir a etapa do e-mail." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Sua sessão do {productName} expirou. Faça login novamente para continu msgid "Your account" msgstr "Sua conta" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Sua conta volta ao normal imediatamente e você não precisará de um número de telefone agora. Esta não é uma isenção permanente. Entrar em uma comunidade grande ou pública pode trazer essa verificação de volta." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Sua conta foi vinculada com sucesso. Agora você pode fechar esta aba e voltar para o aplicativo." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Sua conta voltou ao normal." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Sua conta ainda não foi reivindicada. Sem um e-mail e senha, você não conseguirá fazer login em outros aparelhos e poderá perder o acesso à sua conta. Reivindique sua conta agora para protegê-la." @@ -38014,6 +38101,11 @@ msgstr "Sua solicitação de conta está aguardando aprovação. Você poderá e msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Sua conta exige autenticação multifator, mas nenhum método compatível está configurado neste dispositivo. Faça login em um dispositivo com seu aplicativo autenticador ou chave de segurança, ou entre em contato com o suporte." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Sua conta volta a funcionar normalmente na hora e nada é removido. Podemos pedir essa verificação novamente mais tarde." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Seu novo apelido, ou deixe em branco para redefinir." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Seu número não está vinculado à sua conta. Mantemos apenas um marcador criptografado, sem ID de usuário, para no máximo {limit} verificações em cerca de {duration} dias." diff --git a/fluxer_app/src/features/i18n/locales/ro/messages.po b/fluxer_app/src/features/i18n/locales/ro/messages.po index a4acfedd4..b53e5c54c 100644 --- a/fluxer_app/src/features/i18n/locales/ro/messages.po +++ b/fluxer_app/src/features/i18n/locales/ro/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 zile" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Este necesară o verificare în browser înainte de verificarea telefonică. Încearcă din nou de pe pagina de conectare sau contactează asistența." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Adaugă un cuvânt…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Adaugă o adresă de e-mail funcțională" @@ -7390,7 +7390,7 @@ msgstr "Temă cărbune" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-mail indisponibil" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Actualizarea e-mailului nu este disponibilă momentan. Încearcă din nou mai târziu sau contactează asistența." @@ -12375,6 +12375,11 @@ msgstr "Actualizarea e-mailului nu este disponibilă momentan. Încearcă din no msgid "Email update required" msgstr "Actualizare e-mail necesară" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Trimite-ne un e-mail și o persoană îți va verifica contul. Spune-ne că nu poți verifica prin SMS și ne vom ocupa noi de restul. Răspunsurile vin prin e-mail, deci nu este instant." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Introdu un URL sau cod șablon {theOtherPlatform} valid." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Introdu o adresă de e-mail validă." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Introdu un link de mesaj valid." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Introduceți un număr de telefon mobil valid." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Introduceți un nume de utilizator valid ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Introduceți o adresă de e-mail pe care o puteți deschide. Vă vom trimite un cod acolo." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Introdu codul cadou…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Introdu o adresă de e-mail nouă" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Introdu codul de {digitCount} cifre din aplicația de autentificare." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Introdu codul de {digitCount} cifre trimis la {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Introdu codul din aplicația de autentificare." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Introduceți codul trimis la {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Introdu codul de {MFA_CODE_DIGIT_COUNT} cifre trimis la {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Introdu codul de e-mail" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Introduceți codul PIN pentru cheia de securitate pentru a continua." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Introduceți codul SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Introdu parola." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Introduceți numărul de telefon" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Pentru mine" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Pentru această verificare, ne trimiți un mesaj text în loc să primești unul de la noi." @@ -16437,6 +16442,11 @@ msgstr "Dacă acest raport se referă la un anumit mesaj, raportează mesajul re msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Dacă acest raport se referă la anumite mesaje, raportează în schimb cel mai relevant mesaj. Rapoartele de mesaje oferă echipei noastre de siguranță cel mai clar context, iar adăugarea detaliilor în comentarii ne poate ajuta să le examinăm mai rapid. Continuă să raportezi utilizatorul în ansamblu doar dacă raportarea unui mesaj nu ar surprinde problema mai amplă." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Dacă nu poți verifica prin SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Află mai multe" msgid "Leave" msgstr "Părăsește" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Părăsești {count, plural, one {# comunitate} other {# comunități}} și lași deoparte această verificare?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Părăsește și pune deoparte" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Deschide browserul, conectează-te, apoi introdu codul de mai jos pentru a-ți asocia contul." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Deschideți mesajele" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Deschide aplicația de mesagerie de pe telefon și începe un mesaj text nou." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Numărul de telefon este obligatoriu" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Pasul telefonului" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Verificarea telefonică nu este disponibilă pentru acest cont. Folosește o altă metodă sau contactează asistența." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "repostări" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Solicită mai întâi un cod nou." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Trimite codul <0>{0} la <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Trimite codul la numărul de telefon de mai jos." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Trimite acest cod" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Trimiți acest mesaj fixat înapoi în timp?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Trimite la" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Trimitere:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Trimiterea unui SMS la acest număr este costisitoare, așa că trebuie să ne trimiți tu un mesaj." @@ -28311,6 +28331,18 @@ msgstr "S-a setat limita de utilizatori la {0}." msgid "Set the vanity URL to {0}." msgstr "A setat adresa URL personalizată la {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Amână această verificare" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Pui deoparte această verificare?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Video mai fluid" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Verificarea prin SMS nu este disponibilă momentan. Încearcă din nou mai târziu sau contactează asistența." @@ -29762,7 +29794,7 @@ msgstr "Ceva nu a mers bine. Încearcă din nou mai târziu." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Ceva nu a mers bine. Încearcă din nou." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Preț standard în {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Se pot aplica tarife standard de mesagerie de la operatorul tău." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Text-to-speech" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Trimite-ne un mesaj de pe telefonul tău" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Îți mulțumim că ne ajuți să păstrăm {productName} în siguranță. Îți vom examina raportul cât mai curând posibil." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Codul nu a funcționat. Verifică-l și încearcă din nou." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Acest cod a expirat. Solicită un cod nou." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Nu s-a finalizat. Este posibil ca unele comunități să fi fost deja părăsite, iar contul tău este în continuare blocat. Apasă din nou pe „Amână această verificare” pentru a finaliza." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Nu a funcționat. Nu s-a schimbat nimic. Încearcă din nou." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Nu pare o culoare validă. Încearcă hex, rgb(), hsl() sau un nume de culoare CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Acesta nu pare a fi un URL valid." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Acest e-mail este deja utilizat." @@ -31588,6 +31630,11 @@ msgstr "Noul canal vocal va reutiliza permisiunile, limita de utilizatori și ra msgid "The page you're looking for doesn't exist or has been moved." msgstr "Pagina pe care o cauți nu există sau a fost mutată." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Verificarea telefonică a fost amânată. A mai rămas o etapă cu emailul." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Aceasta este dezactivată" msgid "This is how messages appear" msgstr "Așa apar mesajele" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Acest lucru nu este disponibil momentan pentru contul tău. Trimite un e-mail la {supportEmail} și o persoană va analiza situația." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Acesta nu este canalul pe care îl cauți." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Acest pseudonim va fi vizibil doar în această comunitate" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Acest număr necesită verificare prin text, nu prin SMS de la noi." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Acest participant a fost dezactivat de moderatori" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Acest număr de telefon nu poate fi utilizat. Încearcă un alt număr de mobil sau contactează asistența." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Acest număr de telefon a fost deja utilizat. Încearcă un alt număr sau contactează asistența." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Sesiunea de verificare a expirat. Revino la {productName} și începe din nou procesul de plată." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Sesiunea de verificare a expirat. Începe din nou." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Aceasta va acorda încredere tuturor linkurilor externe și va omite avertismentul pentru fiecare domeniu. Domeniile tale de încredere existente vor fi înlocuite. Această opțiune este mai puțin sigură." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Această fereastră se actualizează automat după ce primim mesajul tău." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Mapează imaginile HDR la un interval standard, reducând luminozitatea maximă." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Prea multe încercări. Așteaptă puțin, apoi încearcă din nou." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Folosește o aplicație de autentificare pentru a genera coduri pentru autentificarea în doi pași" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Folosește o adresă de e-mail diferită de cea actuală." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Folosește o adresă de e-mail pe care o poți deschide. Îți vom trimite un cod acolo." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Așteaptă între mesaje. „{bypassSlowmodePermissionLabel}” poate să ocolească această limită." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Așteaptă aici" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Vom precompleta {prefillEmail} odată ce se deschide autentificarea în browser." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Vom trimite un cod SMS când va fi disponibil." @@ -37255,6 +37307,11 @@ msgstr "Te poți conecta oricând din nou." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Poți crea în continuare un cont sau te poți autentifica. Dacă invitațiile sunt reactivate mai târziu, poți folosi același link pentru a te alătura." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Poți oricând să ne trimiți un e-mail la {supportEmail} pentru o analiză umană." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Poți salva GIF-urile marcate cu steluță ca favorite doar cu URL sau le poți încărca în media salvată. Alege opțiunea care se potrivește cel mai bine modului în care le folosești. Poți schimba asta oricând în {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Trebuie să-ți verifici adresa de e-mail pentru a trimite mesaje în ac msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Tu sau cineva pe care îl adaugi a atins deja numărul maxim de mesaje directe de grup deschise. Părăsește unul și încearcă din nou." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Rămâi în {ownedNames}. Proprietarii nu își pot părăsi propria comunitate." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Ai fost dezactivat de moderatori" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Veți fi redirecționat la {redirectHostname} după autorizare." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Vei părăsi {count, plural, one {# comunitate} other {# comunități}} la care se aplică această verificare, iar contul tău va funcționa din nou normal." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Vei părăsi {guildNames}. Nimic din ce ai postat nu este șters și te poți alătura din nou mai târziu." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Nu vei putea șterge mesajele trimise după ce îți ștergi contul" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Va trebui în continuare să finalizezi pasul cu emailul." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Sesiunea ta {productName} a expirat. Conectează-te din nou pentru a con msgid "Your account" msgstr "Contul tău" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Contul tău revine imediat la normal și nu vei mai avea nevoie de un număr de telefon. Aceasta nu este o scutire permanentă. Alăturarea la o comunitate mare sau publică poate readuce această verificare." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Contul tău a fost conectat cu succes. Acum poți închide această filă și reveni la aplicație." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Contul tău a revenit la normal." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Contul tău nu a fost revendicat încă. Fără o adresă de e-mail și o parolă, nu te vei putea conecta de pe alte dispozitive și ai putea pierde accesul la contul tău. Revendică-ți contul acum pentru a-l securiza." @@ -38014,6 +38101,11 @@ msgstr "Solicitarea ta de cont așteaptă aprobare. Te poți conecta după ce un msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Contul tău necesită autentificare multi-factor, dar nu sunt configurate metode acceptate pe acest dispozitiv. Conectează-te pe un dispozitiv cu aplicația de autentificare sau cu cheia de securitate, sau contactează asistența." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Contul tău funcționează din nou normal imediat și nimic nu este eliminat. Putem solicita această verificare mai târziu." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Noul tău poreclă sau lasă liber pentru a o reseta." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Numărul tău nu este conectat la contul tău. Păstrăm doar un marcator criptat, fără ID de utilizator, pentru cel mult {limit} verificări în aproximativ {duration} zile." diff --git a/fluxer_app/src/features/i18n/locales/ru/messages.po b/fluxer_app/src/features/i18n/locales/ru/messages.po index 3284a6948..e2d4ea4e3 100644 --- a/fluxer_app/src/features/i18n/locales/ru/messages.po +++ b/fluxer_app/src/features/i18n/locales/ru/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 дней" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Перед подтверждением номера телефона требуется проверка в браузере. Повторите попытку со страницы входа или обратитесь в службу поддержки." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Добавить слово…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Добавьте рабочий адрес эл. почты" @@ -7390,7 +7390,7 @@ msgstr "Тема \"Уголь\"" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "Почта недоступна" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Обновление эл. почты сейчас недоступно. Повторите попытку позже или обратитесь в службу поддержки." @@ -12375,6 +12375,11 @@ msgstr "Обновление эл. почты сейчас недоступно. msgid "Email update required" msgstr "Требуется обновить почту" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Напишите нам по электронной почте, и ваш аккаунт проверит сотрудник. Сообщите, что вы не можете пройти проверку по SMS, и мы разберемся. Ответы приходят по электронной почте, так что это не мгновенно." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Введите допустимый URL-адрес или код шаб #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Введите действительный адрес электронной почты." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Введите действительную ссылку на сообщение." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Введите действительный номер мобильного телефона." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Введите действительное имя пользователя ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Введите адрес электронной почты, к которому у вас есть доступ. Мы отправим туда код." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Введите код подарка…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Введите новый адрес эл. почты" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Введите {digitCount}-значный код из приложения для аутентификации." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Введите {digitCount}-значный код, отправленный на номер {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Введите код из приложения для аутентификации." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Введите код, отправленный на {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Введите {MFA_CODE_DIGIT_COUNT}-значный код, отправленный на номер {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Введите код из письма" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Введите ПИН-код вашей защитной клавиши для продолжения." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Введите код из СМС" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Введите пароль." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Введите номер телефона" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Для меня" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Для этой проверки вы отправляете нам СМС, а не получаете его от нас." @@ -16437,6 +16442,11 @@ msgstr "Если жалоба касается конкретного сообщ msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Если жалоба касается конкретных сообщений, пожалуйтесь на самое релевантное сообщение. Жалобы на сообщения дают нашей команде безопасности наиболее полную информацию, а добавление деталей в комментарии поможет нам рассмотреть ее быстрее. Продолжайте жаловаться на пользователя в целом, только если жалоба на сообщение не сможет охватить всю проблему." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Если вы не можете подтвердить по SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Подробнее" msgid "Leave" msgstr "Выйти" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Покинуть {count, plural, one {# сообщество} other {# сообществ}} и отложить эту проверку?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Покинуть и отложить" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Откройте браузер, войдите в аккаунт, затем введите код ниже, чтобы привязать свою учётную запись." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Откройте сообщения" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Откройте приложение для обмена сообщениями на телефоне и начните новое текстовое сообщение." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Требуется номер телефона" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Шаг телефона" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Подтверждение по телефону недоступно для этого аккаунта. Используйте другой способ или обратитесь в поддержку." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "репостов" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Сначала запросите новый код." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Отправить код <0>{0} на <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Отправьте код на указанный ниже номер телефона." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Отправьте этот код" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Отправить это закрепление в прошлое?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Отправить на" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Отправка:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Отправка SMS на этот номер платная, поэтому вместо этого вам нужно отправить нам сообщение." @@ -28311,6 +28331,18 @@ msgstr "Установлен лимит пользователей: {0}." msgid "Set the vanity URL to {0}." msgstr "Установлен URL-адрес приглашения: {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Отложить эту проверку" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Отложить эту проверку?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Более плавное видео" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Проверка по СМС сейчас недоступна. Повторите попытку позже или обратитесь в службу поддержки." @@ -29762,7 +29794,7 @@ msgstr "Что-то пошло не так. Повторите попытку п #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Что-то пошло не так. Повторите попытку." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Стандартные цены в {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Может взиматься стандартная плата за сообщения согласно тарифу вашего оператора." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Текст в речь" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Напишите нам со своего телефона" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Спасибо, что помогаете нам обеспечивать безопасность в {productName}. Мы рассмотрим ваш отчёт как можно скорее." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Этот код не подошёл. Проверьте его и попробуйте ещё раз." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Срок действия кода истёк. Запросите новый код." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Не удалось завершить. Некоторые сообщества могли быть уже покинуты, а ваша учетная запись по-прежнему заблокирована. Нажмите «Отложить эту проверку» еще раз, чтобы завершить." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Не удалось. Ничего не изменилось. Попробуйте снова." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Это не похоже на действительный цвет. Попробуйте шестнадцатеричный код, rgb(), hsl() или название цвета CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Похоже, это недействительная ссылка." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Этот адрес электронной почты уже используется." @@ -31588,6 +31630,11 @@ msgstr "Новый голосовой канал будет использова msgid "The page you're looking for doesn't exist or has been moved." msgstr "Страница, которую вы ищете, не существует или была перемещена." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Проверка телефона отложена. Остался один шаг с электронной почтой." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Отключено" msgid "This is how messages appear" msgstr "Так выглядят сообщения" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Это недоступно для вашей учетной записи прямо сейчас. Напишите на {supportEmail}, и наш сотрудник рассмотрит ваш запрос." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Это не тот канал, который вы ищете." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Этот ник будет виден только в этом сообществе" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Этот номер требует подтверждения текстом, а не SMS от нас." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Этот участник был заглушен модераторами" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Этот номер телефона нельзя использовать. Попробуйте другой номер или обратитесь в службу поддержки." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Этот номер телефона уже используется. Попробуйте другой номер или обратитесь в службу поддержки." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Срок действия сеанса проверки истёк. Вернитесь в {productName} и начните оформление покупки заново." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Срок действия сеанса проверки истёк. Начните заново." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Это позволит доверять всем внешним ссылкам и пропускать предупреждение для каждого домена. Ваши существующие доверенные домены будут заменены. Это менее безопасно." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Это окно обновится автоматически, как только мы получим ваше сообщение." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Тональная компрессия HDR-изображений до стандартного диапазона, уменьшающая пиковую яркость." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Слишком много попыток. Подождите немного и повторите попытку." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Используйте приложение-аутентификатор для генерации кодов двухфакторной аутентификации" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Используйте адрес электронной почты, отличный от текущего." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Используйте электронную почту, к которой у вас есть доступ. Мы отправим туда код." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Интервал между сообщениями. Пользователь с правами \"{bypassSlowmodePermissionLabel}\" может его обойти." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Подождите" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Мы автоматически заполним поле с адресом {prefillEmail}, как только откроется окно входа в браузере." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Мы отправим SMS-код, когда он будет доступен." @@ -37255,6 +37307,11 @@ msgstr "Вы сможете войти в аккаунт в любое врем msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Вы всё ещё можете создать аккаунт или войти. Если приглашения снова будут включены, вы сможете использовать эту же ссылку, чтобы присоединиться." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Вы по-прежнему можете написать нам на {supportEmail} для проверки человеком в любое время." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Вы можете сохранять избранные GIF как избранное только по URL или загружать их в сохраненные медиафайлы. Выберите то, что соответствует вашим потребностям. Вы можете изменить это в любое время в {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Чтобы отправлять сообщения в этом сооб msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "У вас или у кого-то из участников уже открыто максимальное количество групповых чатов. Закройте один и попробуйте снова." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Вы остаетесь в {ownedNames}. Владельцы не могут покинуть свое сообщество." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Вы были заглушены модераторами" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "После авторизации вы будете перенаправлены на {redirectHostname}." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Вы покинете {count, plural, one {# сообщество} other {# сообществ}}, к которым применяется эта проверка, и ваша учетная запись снова будет работать нормально." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Вы покинете {guildNames}. Все ваши сообщения останутся, и вы сможете присоединиться снова позже." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Вы не сможете удалить отправленные сообщения после удаления аккаунта" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Вам всё ещё нужно будет завершить шаг с электронной почтой." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Срок действия вашей сессии {productName} истё msgid "Your account" msgstr "Ваш аккаунт" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Ваш аккаунт сразу вернется в обычный режим, и номер телефона вам больше не понадобится. Это не постоянное исключение. При вступлении в большое или публичное сообщество эта проверка может появиться снова." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Ваш аккаунт успешно привязан. Теперь вы можете закрыть эту вкладку и вернуться в приложение." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Ваш аккаунт снова в порядке." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Ваш аккаунт ещё не подтверждён. Без электронной почты и пароля вы не сможете войти с других устройств и можете потерять доступ к аккаунту. Подтвердите аккаунт сейчас, чтобы обезопасить его." @@ -38014,6 +38101,11 @@ msgstr "Ваш запрос на создание аккаунта ожидае msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Для вашей учётной записи требуется многофакторная аутентификация, но на этом устройстве не настроены поддерживаемые методы. Войдите в систему на устройстве с приложением-аутентификатором или ключом безопасности либо обратитесь в службу поддержки." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Ваш аккаунт снова заработает сразу, и ничего не будет удалено. Мы можем запросить эту проверку позже." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Ваш новый никнейм или оставьте пустым, чтобы сбросить его." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Ваш номер не привязан к аккаунту. Мы храним только зашифрованный маркер без ID пользователя, максимум для {limit} проверок в течение примерно {duration} дней." diff --git a/fluxer_app/src/features/i18n/locales/sv-SE/messages.po b/fluxer_app/src/features/i18n/locales/sv-SE/messages.po index 90e22bf04..fd6cc8f27 100644 --- a/fluxer_app/src/features/i18n/locales/sv-SE/messages.po +++ b/fluxer_app/src/features/i18n/locales/sv-SE/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 dagar" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "En webbläsarkontroll krävs innan telefonverifiering. Försök igen från inloggningssidan eller kontakta supporten." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Lägg till ett ord…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Lägg till en fungerande e-postadress" @@ -7390,7 +7390,7 @@ msgstr "Kol-tema" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-postadressen är inte tillgänglig" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Det går inte att uppdatera e-postadressen just nu. Försök igen senare eller kontakta supporten." @@ -12375,6 +12375,11 @@ msgstr "Det går inte att uppdatera e-postadressen just nu. Försök igen senare msgid "Email update required" msgstr "E-postuppdatering krävs" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Skicka ett mejl till oss så granskar en person ditt konto. Berätta att du inte kan verifiera via SMS så tar vi hand om resten. Svar kommer via mejl, så det är inte omedelbart." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Ange en giltig malladress eller kod för {theOtherPlatform}." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Ange en giltig e-postadress." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Ange en giltig meddelandelänk." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Ange ett giltigt mobilnummer." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Ange ett giltigt användarnamn ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Ange en e-postadress du kan öppna. Vi skickar en kod dit." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Ange presentkod…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Ange ny e-postadress" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Ange den {digitCount}-siffriga koden från din autentiseringsapp." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Ange den {digitCount}-siffriga koden som skickats till {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Ange koden från din autentiseringsapp." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Ange koden som skickats till {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Ange den {MFA_CODE_DIGIT_COUNT}-siffriga koden som skickades till {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Ange e-postkoden" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Ange PIN-koden för ditt säkerhetsnyckel för att fortsätta." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Ange SMS-koden" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Ange ditt lösenord." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Ange ditt telefonnummer" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "För mig" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "För den här kontrollen skickar du ett textmeddelande till oss istället för att ta emot ett från oss." @@ -16437,6 +16442,11 @@ msgstr "Om den här anmälan gäller ett specifikt meddelande, anmäl det meddel msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Om den här anmälan gäller specifika meddelanden, anmäl det mest relevanta meddelandet istället. Meddelandeanmälningar ger vårt säkerhetsteam den tydligaste kontexten, och att lägga till detaljer i kommentarerna kan hjälpa oss att granska det snabbare. Fortsätt bara med att anmäla användaren som helhet om anmälan av ett meddelande inte skulle fånga den bredare frågan." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Om du inte kan verifiera via SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Läs mer" msgid "Leave" msgstr "Lämna" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Lämna {count, plural, one {# community} other {# communities}} och lägg det här åt sidan?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Lämna och ställ åt sidan" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Öppna din webbläsare, logga in och ange sedan koden nedan för att länka ditt konto." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Öppna dina meddelanden" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Öppna din meddelandeapp på telefonen och starta ett nytt textmeddelande." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Telefonnummer krävs" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Telefonsteg" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Telefonverifiering är inte tillgänglig för det här kontot. Använd en annan metod eller kontakta support." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "reposter" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Begär en ny kod först." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Skicka koden <0>{0} till <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Skicka koden till telefonnumret nedan." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Skicka den här koden" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Ska den här fästade posten skickas tillbaka i tiden?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Skicka till" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Skicka:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Att skicka ett sms till det här numret är dyrt, så vi behöver att du skickar ett sms till oss istället." @@ -28311,6 +28331,18 @@ msgstr "Angav användargränsen till {0}." msgid "Set the vanity URL to {0}." msgstr "Angav den anpassade webbadressen till {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Spara den här kontrollen" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Lägg den här kontrollen åt sidan?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Mjukare video" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Sms-verifiering är inte tillgänglig just nu. Försök igen senare eller kontakta supporten." @@ -29762,7 +29794,7 @@ msgstr "Något gick fel. Försök igen senare." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Något gick fel. Försök igen." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standardpriser i {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Standardtaxor för meddelanden från din operatör kan tillkomma." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Text till tal" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Sms:a oss från din telefon" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Tack för att du hjälper till att hålla {productName} säkert. Vi granskar din rapport så snart som möjligt." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Koden fungerade inte. Kontrollera den och försök igen." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Koden har gått ut. Begär en ny kod." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Det här blev inte klart. Vissa communities kan redan ha lämnats, och ditt konto är fortfarande låst. Tryck på Spara den här kontrollen igen för att slutföra." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Det gick inte igenom. Ingenting har ändrats. Försök igen." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Det där ser inte ut som en giltig färg. Prova hex, rgb(), hsl() eller ett CSS-färgnamn." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Det där ser inte ut som en giltig URL." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "E-postadressen används redan." @@ -31588,6 +31630,11 @@ msgstr "Den nya röstkanalen kommer att återanvända behörigheterna, användar msgid "The page you're looking for doesn't exist or has been moved." msgstr "Sidan du letar efter finns inte eller har flyttats." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Telefonkontrollen har skjutits upp. Ett e-poststeg återstår." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Det här är inaktiverat" msgid "This is how messages appear" msgstr "Så här visas meddelanden" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Det här är inte tillgängligt för ditt konto just nu. Mejla {supportEmail} så granskar en person det." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Det här är inte kanalen du letar efter." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Det här smeknamnet kommer bara att synas i den här gruppen" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Det här numret behöver verifieras via textmeddelande i stället för ett SMS från oss." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Den här deltagaren tystades av moderatorer" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Det här telefonnumret kan inte användas. Prova ett annat mobilnummer eller kontakta supporten." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Det här telefonnumret har redan använts. Prova ett annat nummer eller kontakta supporten." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Verifieringssessionen har löpt ut. Gå tillbaka till {productName} och starta kassan igen." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Verifieringssessionen har löpt ut. Börja om." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Detta kommer att lita på alla externa länkar och hoppa över varningen för varje domän. Dina befintliga betrodda domäner kommer att ersättas. Detta är mindre säkert." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Det här fönstret uppdateras automatiskt när vi har tagit emot ditt meddelande." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Tonmappa HDR-bilder till standardomfång, vilket minskar den högsta ljusstyrkan." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "För många försök. Vänta en stund och försök igen." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Använd en autentiseringsapp för att generera koder för tvåfaktorsautentisering" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Använd en annan e-postadress än din nuvarande." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Använd en e-postadress du kan öppna. Vi skickar en kod dit." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Vänta mellan meddelanden. \"{bypassSlowmodePermissionLabel}\" kan kringgå detta." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Vänta här" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Vi fyller i {prefillEmail} automatiskt när inloggningen öppnas i webbläsaren." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Vi skickar en SMS-kod när det är möjligt." @@ -37255,6 +37307,11 @@ msgstr "Du kan logga in igen när som helst." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Du kan fortfarande skapa ett konto eller logga in. Om inbjudningar aktiveras igen senare kan du använda samma länk för att gå med." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Du kan fortfarande mejla {supportEmail} för en manuell granskning när som helst." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Du kan spara stjärnmärkta GIF:ar som favoriter (endast URL) eller ladda upp dem till ditt sparade media. Välj det alternativ som passar dig bäst. Du kan ändra detta när som helst i {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Du måste verifiera din e-postadress för att kunna skicka meddelanden i msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Du eller någon du lägger till har redan det maximala antalet grupp-DM öppna. Lämna en och försök igen." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Du stannar i {ownedNames}. Ägare kan inte lämna sin egen community." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Du tystades av moderatorer" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Du kommer att skickas till {redirectHostname} efter auktoriseringen." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Du kommer att lämna {count, plural, one {# community} other {# communities}} som denna kontroll gäller för, och ditt konto fungerar som vanligt igen." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Du kommer att lämna {guildNames}. Inget du har skrivit raderas, och du kan gå med igen senare." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Du kommer inte att kunna radera dina skickade meddelanden efter att ditt konto har raderats" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Du behöver fortfarande slutföra e-poststeget." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Din {productName}-session har upphört. Logga in igen för att fortsätt msgid "Your account" msgstr "Ditt konto" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Ditt konto återgår till det normala direkt och du behöver ingen telefonnummer nu. Detta är ingen permanent undantag. Att gå med i en stor eller offentlig community kan återaktivera denna kontroll." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Ditt konto har länkats. Du kan nu stänga den här fliken och återgå till appen." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Ditt konto är tillbaka som vanligt." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Ditt konto är inte kopplat till en e-postadress än. Utan en e-postadress och ett lösenord kan du inte logga in från andra enheter och du kan förlora åtkomsten till ditt konto. Koppla ditt konto nu för att säkra det." @@ -38014,6 +38101,11 @@ msgstr "Din kontobegäran väntar på godkännande. Du kan logga in efter att en msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Ditt konto kräver multifaktorautentisering, men inga metoder stöds på den här enheten. Logga in på en enhet med din autentiseringsapp eller säkerhetsnyckel, eller kontakta supporten." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Ditt konto fungerar som vanligt igen direkt och inget tas bort. Vi kan be om den här kontrollen igen senare." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Ditt nya smeknamn, eller lämna tomt för att återställa det." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Ditt nummer är inte kopplat till ditt konto. Vi sparar endast en krypterad markör, utan användar-ID, för högst {limit} verifieringar under cirka {duration} dagar." diff --git a/fluxer_app/src/features/i18n/locales/th/messages.po b/fluxer_app/src/features/i18n/locales/th/messages.po index 26ff30292..2255303e7 100644 --- a/fluxer_app/src/features/i18n/locales/th/messages.po +++ b/fluxer_app/src/features/i18n/locales/th/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 วัน" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "ต้องมีการตรวจสอบเบราว์เซอร์ก่อนยืนยันเบอร์โทรศัพท์ ลองอีกครั้งจากหน้าลงชื่อเข้าใช้หรือติดต่อฝ่ายสนับสนุน" @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "เพิ่มคำ…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "เพิ่มอีเมลที่ใช้งานได้" @@ -7390,7 +7390,7 @@ msgstr "ธีมถ่านหิน" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "อีเมลไม่พร้อมใช้งาน" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "ขณะนี้ไม่สามารถอัปเดตอีเมลได้ โปรดลองอีกครั้งในภายหลังหรือติดต่อฝ่ายสนับสนุน" @@ -12375,6 +12375,11 @@ msgstr "ขณะนี้ไม่สามารถอัปเดตอีเ msgid "Email update required" msgstr "ต้องอัปเดตอีเมล" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "ส่งอีเมลถึงเรา แล้วจะมีเจ้าหน้าที่มาตรวจสอบบัญชีของคุณ แจ้งเราว่าคุณไม่สามารถยืนยันด้วย SMS ได้ แล้วเราจะดำเนินการต่อ การตอบกลับจะส่งทางอีเมล ดังนั้นจึงไม่ใช่การดำเนินการทันที" + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "ป้อน URL หรือรหัสเทมเพลต {theOther #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "กรุณาป้อนที่อยู่อีเมลที่ถูกต้อง" @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "ป้อนลิงก์ข้อความที่ถูกต้อง" #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "ป้อนหมายเลขโทรศัพท์มือถือที่ถูกต้อง" @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "ป้อนชื่อผู้ใช้ที่ถูกต้อง ({exampleFluxerTagFull})" #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "กรอกอีเมลที่คุณสามารถเปิดได้ เราจะส่งรหัสไปที่นั่น" @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "กรอกรหัสของขวัญ…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "ป้อนอีเมลใหม่" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "ป้อนรหัส {digitCount} หลักจากแอปยืนยันตัวตนของคุณ" #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "ป้อนรหัส {digitCount} หลักที่ส่งไปยัง {phoneNumber}" @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "ป้อนรหัสจากแอปยืนยันตัวตนของคุณ" #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "ป้อนรหัสที่ส่งไปยัง {emailAddress}" @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "ป้อนรหัส {MFA_CODE_DIGIT_COUNT} หลักที่ส่งไปยัง {0}" #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "ป้อนรหัสอีเมล" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "ป้อนรหัส PIN ของคีย์ความปลอดภัยของคุณเพื่อดำเนินการต่อ" #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "ป้อนรหัส SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "ป้อนรหัสผ่านของคุณ" #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "ป้อนหมายเลขโทรศัพท์ของคุณ" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "สำหรับฉัน" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "สำหรับการตรวจสอบนี้ คุณจะต้องส่งข้อความถึงเราแทนการรับข้อความจากเรา" @@ -16437,6 +16442,11 @@ msgstr "หากรายงานนี้เกี่ยวกับข้อ msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "หากรายงานนี้เกี่ยวกับข้อความที่เฉพาะเจาะจง ให้รายงานข้อความที่เกี่ยวข้องมากที่สุดแทน การรายงานข้อความจะช่วยให้ทีมความปลอดภัยของเราเข้าใจบริบทได้ชัดเจนที่สุด และการเพิ่มรายละเอียดในความคิดเห็นจะช่วยให้เราตรวจสอบได้เร็วขึ้น ดำเนินการรายงานผู้ใช้ทั้งหมดก็ต่อเมื่อการรายงานข้อความไม่สามารถครอบคลุมปัญหาในวงกว้างได้" +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "หากคุณไม่สามารถยืนยันด้วย SMS ได้" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "ดูเพิ่มเติม" msgid "Leave" msgstr "ออก" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "ออกจากชุมชน {count, plural, one {# ชุมชน} other {# ชุมชน}} แล้วพักการตรวจสอบนี้ไว้ใช่ไหม" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "ออกจากระบบและพักไว้" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "เปิดเบราว์เซอร์ของคุณ ลงชื่อเข้าใช้ แล้วป้อนรหัสข้างล่างเพื่อเชื่อมโยงบัญชีของคุณ" #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "เปิดข้อความของคุณ" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "เปิดแอปข้อความในโทรศัพท์ของคุณ แล้วเริ่มข้อความใหม่" @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "ต้องระบุหมายเลขโทรศัพท์" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "ขั้นตอนโทรศัพท์" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "การยืนยันทางโทรศัพท์ไม่พร้อมใช้งานสำหรับบัญชีนี้ โปรดใช้วิธีอื่นหรือติดต่อฝ่ายสนับสนุน" @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "รีโพสต์" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "โปรดขอรหัสใหม่ก่อน" @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "ส่งรหัส <0>{0} ไปที่ <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "ส่งรหัสไปยังหมายเลขโทรศัพท์ด้านล่าง" #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "ส่งรหัสนี้" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "ส่งรายการปักหมุดนี้ย้อนเวลากลับไปไหม" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "ส่งไปที่" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "ส่ง:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "การส่ง SMS ไปยังหมายเลขนี้มีค่าใช้จ่ายสูง เราจึงขอให้คุณส่งข้อความหาเราแทน" @@ -28311,6 +28331,18 @@ msgstr "ตั้งค่าจำกัดผู้ใช้เป็น {0}" msgid "Set the vanity URL to {0}." msgstr "ตั้งค่า URL ที่กำหนดเองเป็น {0}" +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "พักการตรวจสอบนี้ไว้ก่อน" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "พักการตรวจสอบนี้ไว้ก่อนไหม?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "วิดีโอที่ราบรื่นขึ้น" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "ไม่สามารถยืนยัน SMS ได้ในขณะนี้ โปรดลองอีกครั้งในภายหลังหรือติดต่อฝ่ายสนับสนุน" @@ -29762,7 +29794,7 @@ msgstr "เกิดข้อผิดพลาดบางอย่าง โ #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "เกิดข้อผิดพลาดบางอย่าง โปรดลองอีกครั้ง" @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "ราคามาตรฐาน ({baseCurrencyLabel})" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "อาจมีค่าบริการส่งข้อความตามปกติจากผู้ให้บริการเครือข่ายของคุณ" @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "ข้อความเป็นเสียงพูด" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "ส่งข้อความหาเราจากโทรศัพท์ของคุณ" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "ขอบคุณที่ช่วยให้ {productName} ปลอดภัย เราจะตรวจสอบรายงานของคุณโดยเร็วที่สุด" #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "รหัสไม่ถูกต้อง โปรดตรวจสอบแล้วลองอีกครั้ง" #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "รหัสหมดอายุแล้ว โปรดขอรหัสใหม่" +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "การดำเนินการไม่เสร็จสมบูรณ์ ชุมชนบางแห่งอาจถูกออกจากระบบไปแล้ว และบัญชีของคุณยังคงถูกล็อกอยู่ กด \"ตั้งค่าการตรวจสอบนี้ไว้ก่อน\" อีกครั้งเพื่อดำเนินการต่อ" + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "ไม่สำเร็จ ไม่มีอะไรเปลี่ยนแปลง ลองอีกครั้ง" + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "ดูเหมือนจะไม่ใช่สีที่ถูกต้อง ลองใช้โค้ดสีแบบ hex, rgb(), hsl() หรือชื่อสีของ CSS" @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "ดูเหมือนจะไม่ใช่ URL ที่ถูกต้องนะ" #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "อีเมลนี้ถูกใช้ไปแล้ว" @@ -31588,6 +31630,11 @@ msgstr "ช่องเสียงใหม่จะใช้สิทธิ์ msgid "The page you're looking for doesn't exist or has been moved." msgstr "หน้านี้ไม่มีอยู่จริงหรืออาจถูกย้ายไปแล้ว" +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "การยืนยันทางโทรศัพท์ถูกพักไว้ เหลือขั้นตอนอีเมลอีกหนึ่งอย่าง" + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "ปิดใช้งานอยู่" msgid "This is how messages appear" msgstr "ลักษณะการแสดงผลของข้อความ" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "ขณะนี้ยังไม่มีให้บริการในบัญชีของคุณ โปรดส่งอีเมลไปที่ {supportEmail} เพื่อให้เจ้าหน้าที่ตรวจสอบ" + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "นี่ไม่ใช่ช่องที่คุณกำลังมองหา" @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "ชื่อเล่นนี้จะแสดงในชุมชนนี้เท่านั้น" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "หมายเลขนี้ต้องยืนยันด้วยข้อความแทน SMS จากเรา" @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "ผู้เข้าร่วมรายนี้ถูกผู้ดูแลปิดเสียง" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "ไม่สามารถใช้หมายเลขโทรศัพท์นี้ได้ โปรดลองใช้หมายเลขโทรศัพท์มือถืออื่นหรือติดต่อฝ่ายสนับสนุน" #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "หมายเลขโทรศัพท์นี้ถูกใช้ไปแล้ว ลองใช้หมายเลขอื่นหรือติดต่อฝ่ายสนับสนุน" @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "เซสชันการยืนยันนี้หมดอายุแล้ว กลับไปที่ {productName} และเริ่มการชำระเงินอีกครั้ง" #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "เซสชันการยืนยันนี้หมดอายุแล้ว โปรดเริ่มใหม่อีกครั้ง" @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "การดำเนินการนี้จะเชื่อถือลิงก์ภายนอกทั้งหมดและข้ามคำเตือนสำหรับทุกโดเมน โดเมนที่เชื่อถืออยู่เดิมของคุณจะถูกแทนที่ ซึ่งมีความปลอดภัยน้อยกว่า" #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "หน้าต่างนี้จะอัปเดตอัตโนมัติหลังจากเราได้รับข้อความของคุณ" @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "ปรับโทนภาพ HDR เป็นช่วงมาตรฐาน ลดความสว่างสูงสุด" #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "พยายามหลายครั้งเกินไป โปรดรอสักครู่แล้วลองอีกครั้ง" @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "ใช้แอปยืนยันตัวตนเพื่อสร้างรหัสสำหรับยืนยันตัวตน 2 ชั้น" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "ใช้อีเมลที่แตกต่างจากอีเมลปัจจุบันของคุณ" #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "ใช้อีเมลที่คุณสามารถเปิดได้ เราจะส่งรหัสไปที่นั่น" @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "รอระหว่างข้อความ \"{bypassSlowmodePermissionLabel}\" สามารถข้ามได้" #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "รอสักครู่" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "เราจะกรอก {prefillEmail} ให้โดยอัตโนมัติเมื่อเปิดหน้าลงชื่อเข้าใช้ในเบราว์เซอร์" #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "เราจะส่งรหัส SMS เมื่อพร้อมใช้งาน" @@ -37255,6 +37307,11 @@ msgstr "คุณสามารถลงชื่อเข้าใช้ได msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "คุณยังสามารถสร้างบัญชีหรือลงชื่อเข้าใช้ได้ หากมีการเปิดใช้งานคำเชิญอีกครั้งในภายหลัง คุณสามารถใช้ลิงก์เดิมนี้เพื่อเข้าร่วมได้" +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "คุณยังสามารถส่งอีเมลไปที่ {supportEmail} เพื่อขอให้เจ้าหน้าที่ตรวจสอบได้ตลอดเวลา" + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "คุณสามารถเก็บ GIF ที่ติดดาวเป็นรายการโปรดแบบ URL เท่านั้น หรืออัปโหลดไปยังสื่อที่บันทึกไว้ของคุณได้ เลือกวิธีที่เหมาะกับการใช้งานของคุณ คุณสามารถเปลี่ยนได้ทุกเมื่อที่ {mediaSettingsPath}" @@ -37699,6 +37756,11 @@ msgstr "คุณต้องยืนยันอีเมลเพื่อส msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "คุณหรือผู้รับที่คุณกำลังเพิ่มมีข้อความ DM แบบกลุ่มเปิดอยู่เต็มจำนวนแล้ว ออกจากกลุ่มใดกลุ่มหนึ่งแล้วลองอีกครั้ง" +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "คุณยังคงอยู่ใน {ownedNames} เจ้าของไม่สามารถออกจากชุมชนของตนเองได้" + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "คุณถูกผู้ดูแลปิดเสียง" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "คุณจะถูกนำไปยัง {redirectHostname} หลังจากให้สิทธิ์" +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "คุณจะออกจากชุมชน {count, plural, one {# ชุมชน} other {# ชุมชน}} ที่การตรวจสอบนี้มีผลบังคับใช้ และบัญชีของคุณจะกลับมาทำงานได้ตามปกติ" + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "คุณกำลังจะออกจาก {guildNames} โพสต์ของคุณจะไม่ถูกลบ และคุณสามารถเข้าร่วมใหม่ได้ในภายหลัง" + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "คุณจะไม่สามารถลบข้อความที่ส่งไปแล้วได้หลังจากลบบัญชี" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "คุณยังต้องดำเนินการยืนยันอีเมลให้เสร็จสิ้น" + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "เซสชัน {productName} ของคุณหมดอายุ msgid "Your account" msgstr "บัญชีของคุณ" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "บัญชีของคุณจะกลับมาเป็นปกติทันที และคุณจะไม่ต้องใช้เบอร์โทรศัพท์อีกต่อไป นี่ไม่ใช่การยกเว้นถาวร การเข้าร่วมชุมชนขนาดใหญ่หรือชุมชนสาธารณะอาจทำให้การตรวจสอบนี้กลับมา" + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "เชื่อมบัญชีของคุณสำเร็จแล้ว ปิดแท็บนี้แล้วกลับไปที่แอปได้เลย" +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "บัญชีของคุณกลับมาใช้งานได้ตามปกติแล้ว" + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "บัญชีของคุณยังไม่ได้ยืนยัน หากไม่มีอีเมลและรหัสผ่าน คุณจะไม่สามารถลงชื่อเข้าใช้จากอุปกรณ์อื่นได้ และอาจสูญเสียการเข้าถึงบัญชีของคุณ ยืนยันบัญชีของคุณตอนนี้เพื่อความปลอดภัย" @@ -38014,6 +38101,11 @@ msgstr "คำขอบัญชีของคุณกำลังรอกา msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "บัญชีของคุณต้องมีการยืนยันตัวตนแบบหลายปัจจัย แต่ยังไม่ได้ตั้งค่าวิธีการที่รองรับบนอุปกรณ์นี้ โปรดลงชื่อเข้าใช้บนอุปกรณ์ที่มีแอปยืนยันตัวตนหรือคีย์ความปลอดภัยของคุณ หรือติดต่อฝ่ายสนับสนุน" +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "บัญชีของคุณจะกลับมาใช้งานได้ตามปกติทันที และจะไม่มีอะไรถูกลบออก เราสามารถขอให้ตรวจสอบอีกครั้งในภายหลังได้" + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "ชื่อเล่นใหม่ของคุณ หรือเว้นว่างไว้เพื่อรีเซ็ต" #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "หมายเลขของคุณไม่ได้เชื่อมโยงกับบัญชีของคุณ เราจะเก็บเพียงเครื่องหมายที่เข้ารหัสไว้โดยไม่มี ID ผู้ใช้ สำหรับการยืนยันไม่เกิน {limit} ครั้งในเวลาประมาณ {duration} วัน" diff --git a/fluxer_app/src/features/i18n/locales/tr/messages.po b/fluxer_app/src/features/i18n/locales/tr/messages.po index afce85205..b5ebd5c00 100644 --- a/fluxer_app/src/features/i18n/locales/tr/messages.po +++ b/fluxer_app/src/features/i18n/locales/tr/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 gün" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Telefon doğrulamadan önce bir tarayıcı kontrolü gerekiyor. Giriş sayfasından tekrar deneyin veya destekle iletişime geçin." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Kelime ekle…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Çalışan bir e-posta adresi ekleyin" @@ -7390,7 +7390,7 @@ msgstr "Kömür teması" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "E-posta kullanılamıyor" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "E-posta güncellemesi şu anda kullanılamıyor. Daha sonra tekrar deneyin veya destekle iletişime geçin." @@ -12375,6 +12375,11 @@ msgstr "E-posta güncellemesi şu anda kullanılamıyor. Daha sonra tekrar deney msgid "Email update required" msgstr "E-posta güncellemesi gerekli" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "E-posta gönderin, bir kişi hesabınızı inceleyecektir. SMS ile doğrulama yapamadığınızı bize bildirin, gerisini biz hallederiz. Yanıtlar e-posta ile gelir, bu nedenle anında değildir." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Geçerli bir {theOtherPlatform} şablon URL'si veya kodu girin." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Geçerli bir e-posta adresi girin." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Geçerli bir mesaj bağlantısı girin." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Geçerli bir cep telefonu numarası girin." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Geçerli bir kullanıcı adı girin ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Açabileceğiniz bir e-posta adresi girin. Oraya bir kod göndereceğiz." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Hediye kodunu girin…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Yeni e-posta adresini girin" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Kimlik doğrulayıcı uygulamanızdaki {digitCount} haneli kodu girin." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "{phoneNumber} numarasına gönderilen {digitCount} haneli kodu girin." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Kimlik doğrulayıcı uygulamanızdaki kodu girin." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "{emailAddress} adresine gönderilen kodu girin." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "{0} adresine gönderilen {MFA_CODE_DIGIT_COUNT} haneli kodu girin." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "E-posta kodunu girin" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Güvenlik anahtarınız için PIN'i girerek devam edin." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "SMS kodunu girin" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Şifrenizi girin." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Telefon numaranızı girin" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Bana özel" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Bu doğrulama için bizden bir mesaj almak yerine bize bir mesaj göndereceksiniz." @@ -16437,6 +16442,11 @@ msgstr "Bu şikayet belirli bir mesajla ilgiliyse, bunun yerine o mesajı şikay msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Bu rapor belirli mesajlarla ilgiliyse, bunun yerine en alakalı mesajı bildirin. Mesaj raporları, güvenlik ekibimize en net bağlamı sağlar ve yorumlara ayrıntı eklemek, incelememizi hızlandırmamıza yardımcı olabilir. Yalnızca bir mesajı bildirmek daha geniş sorunu kapsamayacaksa, kullanıcının tamamını bildirmeye devam edin." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "SMS ile doğrulayamazsanız" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Daha fazla bilgi edinin" msgid "Leave" msgstr "Ayrıl" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "{count, plural, one {# topluluğu} other {# topluluğu}} terk edip bu denetimi bir kenara mı ayırsın?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Ayrıl ve kenara al" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Tarayıcınızı açın, oturum açın ve hesabınızı bağlamak için aşağıdaki kodu girin." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Mesajlarınızı açın" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Telefonunuzun mesajlaşma uygulamasını açın ve yeni bir kısa mesaj başlatın." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Telefon numarası gerekli" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Telefon adımı" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Bu hesap için telefon doğrulaması kullanılamıyor. Başka bir yöntem kullanın veya destek ekibiyle iletişime geçin." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "yeniden paylaşımlar" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Önce yeni bir kod isteyin." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Kodu <0>{0} numarasına gönder <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Kodu aşağıdaki telefon numarasına gönderin." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Bu kodu gönder" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Bu sabitlemeyi zamanda geri gönder?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Şuraya gönder" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Gönderme:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Bu numaraya SMS göndermek ücretli olduğundan, bunun yerine bize mesaj atman gerekiyor." @@ -28311,6 +28331,18 @@ msgstr "Kullanıcı sınırını {0} olarak ayarla." msgid "Set the vanity URL to {0}." msgstr "Özel URL'yi {0} olarak ayarla." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Bu kontrolü ertele" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Bu denetimi erteleyelim mi?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Daha akıcı video" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "SMS doğrulaması şu anda kullanılamıyor. Daha sonra tekrar deneyin veya destekle iletişime geçin." @@ -29762,7 +29794,7 @@ msgstr "Bir sorun oluştu. Lütfen daha sonra tekrar deneyin." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Bir şeyler ters gitti. Tekrar deneyin." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Standart {baseCurrencyLabel} fiyatlandırması" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Operatörünüzden standart mesajlaşma ücretleri uygulanabilir." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Metin okuma" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Telefonunuzdan bize mesaj gönderin" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "{productName} uygulamasını güvenli tutmaya yardımcı olduğunuz için teşekkür ederiz. Raporunuzu en kısa sürede inceleyeceğiz." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Bu kod çalışmadı. Kontrol edip tekrar deneyin." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Bu kodun süresi doldu. Yeni bir kod isteyin." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Bu işlem tamamlanamadı. Bazı topluluklardan zaten çıkılmış olabilir ve hesabınız hala kilitli. Devam etmek için Bu denetimi ertele'ye tekrar basın." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Bu işlem gerçekleşmedi. Hiçbir şey değişmedi. Tekrar deneyin." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Geçerli bir renk gibi görünmüyor. Hex, rgb(), hsl() veya bir CSS renk adı deneyin." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Geçerli bir URL gibi görünmüyor." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Bu e-posta adresi zaten kullanımda." @@ -31588,6 +31630,11 @@ msgstr "Yeni ses kanalı, izinleri, kullanıcı sınırını ve bit hızını <0 msgid "The page you're looking for doesn't exist or has been moved." msgstr "Aradığınız sayfa mevcut değil veya taşınmış." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Telefon kontrolü beklemeye alındı. Bir e-posta adımı kaldı." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Bu devre dışı bırakıldı" msgid "This is how messages appear" msgstr "Mesajlar böyle görünür" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Bu şu anda hesabınızda kullanılamıyor. {supportEmail} adresine e-posta gönderin, bir kişi inceleyecektir." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Aradığınız kanal bu değil." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Bu takma ad sadece bu toplulukta görünür olacak" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Bu numaranın bizden SMS yerine metinle doğrulanması gerekiyor." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Bu katılımcının sesi moderatörler tarafından kapatıldı" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Bu telefon numarası kullanılamıyor. Başka bir mobil numara deneyin veya destekle iletişime geçin." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Bu telefon numarası zaten kullanılmış. Başka bir numara deneyin veya destekle iletişime geçin." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Bu doğrulama oturumunun süresi doldu. {productName} uygulamasına dönün ve ödeme işlemine yeniden başlayın." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Bu doğrulama oturumunun süresi doldu. Lütfen yeniden başlayın." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Bu işlem, tüm harici bağlantılara güvenecek ve her alan adı için uyarıyı atlayacaktır. Mevcut güvenilir alan adlarınız değiştirilecektir. Bu daha az güvenlidir." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Mesajınızı aldıktan sonra bu pencere otomatik olarak güncellenecektir." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "HDR görüntüleri standart aralığa ton eşleyerek en yüksek parlaklığı azaltın." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Çok fazla deneme yaptınız. Biraz bekleyip tekrar deneyin." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "İki faktörlü kimlik doğrulama kodları oluşturmak için bir kimlik doğrulayıcı uygulama kullanın" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Mevcut e-postanızdan farklı bir e-posta kullanın." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Açabileceğin bir e-posta kullan. Oraya bir kod göndereceğiz." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Mesajlar arasında bekleme süresi. \"{bypassSlowmodePermissionLabel}\" bunu geçersiz kılabilir." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Burada bekleyin" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Tarayıcıda oturum açma ekranı açıldığında {prefillEmail} adresini önceden dolduracağız." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Müsait olduğunda bir SMS kodu göndereceğiz." @@ -37255,6 +37307,11 @@ msgstr "İstediğin zaman tekrar giriş yapabilirsin." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Yine de bir hesap oluşturabilir veya oturum açabilirsiniz. Davetler daha sonra tekrar etkinleştirilirse, katılmak için aynı bağlantıyı kullanabilirsiniz." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Daha fazla inceleme için istediğiniz zaman {supportEmail} adresine e-posta gönderebilirsiniz." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Yıldızlı GIF'leri yalnızca URL olarak favorilerinize kaydedebilir veya kayıtlı medyanıza yükleyebilirsiniz. Kullanım şeklinize uygun olanı seçin. Bunu istediğiniz zaman {mediaSettingsPath} bölümünden değiştirebilirsiniz." @@ -37699,6 +37756,11 @@ msgstr "Bu toplulukta mesaj göndermek için e-postanızı doğrulamanız gereki msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Siz veya eklemeye çalıştığınız kişi zaten maksimum sayıda grup DM'ine sahip. Birinden ayrılıp tekrar deneyin." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Sahip olduğun topluluklarda kalırsın: {ownedNames}. Sahipler kendi topluluklarından ayrılamaz." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Moderatörler tarafından sesi kapatıldı" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Yetkilendirdikten sonra {redirectHostname} adresine yönlendirileceksiniz." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Bu denetimin geçerli olduğu {count, plural, one {# topluluk} other {# topluluk}}'tan ayrılacaksınız ve hesabınız tekrar normal çalışacaktır." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "{guildNames} topluluğundan ayrılacaksınız. Gönderdiğiniz hiçbir şey silinmez ve daha sonra tekrar katılabilirsiniz." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Hesabınız silindikten sonra gönderdiğiniz mesajları silemezsiniz" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "E-posta adımını da tamamlaman gerekecek." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "{productName} oturumunuzun süresi doldu. Bu uygulamaya yetki vermeye de msgid "Your account" msgstr "Hesabınız" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Hesabınız hemen normale döner ve artık telefon numarasına ihtiyacınız olmaz. Bu kalıcı bir muafiyet değildir. Büyük veya herkese açık bir topluluğa katılmak bu kontrolü tekrar getirebilir." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Hesabınız başarıyla bağlandı. Artık bu sekmeyi kapatıp uygulamaya dönebilirsiniz." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Hesabınız normale döndü." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Hesabınız henüz doğrulanmadı. E-posta ve parola olmadan başka cihazlardan giriş yapamazsınız ve hesabınıza erişiminizi kaybedebilirsiniz. Hesabınızı güvence altına almak için şimdi doğrulayın." @@ -38014,6 +38101,11 @@ msgstr "Hesap isteğin onay bekliyor. Bir yönetici onayladıktan sonra oturum a msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Hesabınız çok faktörlü kimlik doğrulama gerektiriyor ancak bu cihazda desteklenen bir yöntem ayarlanmamış. Kimlik doğrulayıcı uygulamanızın veya güvenlik anahtarınızın olduğu bir cihazdan oturum açın ya da destek ekibiyle iletişime geçin." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Hesabınız hemen normal çalışmaya devam eder ve hiçbir şey kaldırılmaz. Bu kontrolü daha sonra tekrar isteyebiliriz." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Yeni takma adınız veya sıfırlamak için boş bırakın." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Numaranız hesabınıza bağlı değil. Yalnızca şifrelenmiş bir işaretleyiciyi, kullanıcı kimliği olmadan, yaklaşık {duration} gün içinde en fazla {limit} doğrulama için saklarız." diff --git a/fluxer_app/src/features/i18n/locales/uk/messages.po b/fluxer_app/src/features/i18n/locales/uk/messages.po index a28495919..87914b6ef 100644 --- a/fluxer_app/src/features/i18n/locales/uk/messages.po +++ b/fluxer_app/src/features/i18n/locales/uk/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 днів" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Перед підтвердженням номера телефону потрібна перевірка в браузері. Спробуйте ще раз зі сторінки входу або зверніться до служби підтримки." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Додати слово…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Додайте робочу електронну пошту" @@ -7390,7 +7390,7 @@ msgstr "Тема \"Вугілля\"" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "Електронна пошта недоступна" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Оновлення електронної пошти зараз недоступне. Спробуйте пізніше або зверніться до служби підтримки." @@ -12375,6 +12375,11 @@ msgstr "Оновлення електронної пошти зараз недо msgid "Email update required" msgstr "Потрібно оновити електронну пошту" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Напишіть нам на електронну пошту, і людина перегляне ваш обліковий запис. Повідомте нам, що ви не можете пройти перевірку за допомогою SMS, і ми розберемося. Відповіді надходять електронною поштою, тому це не миттєво." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Введіть дійсний URL-адресу або код шабло #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Введіть дійсну адресу електронної пошти." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Введіть дійсне посилання на повідомлення." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Введіть дійсний номер мобільного телефону." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Введіть дійсне ім'я користувача ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Введіть електронну пошту, до якої маєте доступ. Ми надішлемо туди код." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Введіть код подарунка…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Введіть нову електронну пошту" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Введіть {digitCount}-значний код із програми автентифікації." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Введіть {digitCount}-значний код, надісланий на номер {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Введіть код із програми для автентифікації." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Введіть код, надісланий на {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Введіть {MFA_CODE_DIGIT_COUNT}-значний код, надісланий на номер {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Введіть код з електронної пошти" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Введіть PIN-код вашого ключа безпеки, щоб продовжити." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Введіть SMS-код" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Введіть свій пароль." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Введіть свій номер телефону" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Для мене" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Для цієї перевірки ви надсилаєте нам текстове повідомлення, а не отримуєте його від нас." @@ -16437,6 +16442,11 @@ msgstr "Якщо скарга стосується конкретного пов msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Якщо скарга стосується конкретних повідомлень, надішліть скаргу на найрелевантніше повідомлення. Скарга на повідомлення надає нашій команді безпеки найчіткіший контекст, а додавання деталей у коментарях може пришвидшити розгляд. Продовжуйте скаржитися на користувача в цілому, лише якщо скарга на повідомлення не охоплює ширшої проблеми." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Якщо ви не можете підтвердити за допомогою SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Докладніше" msgid "Leave" msgstr "Вийти" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Покинути {count, plural, one {# спільноту} other {# спільнот}} і відкласти цю перевірку?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Вийти та відкласти" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Відкрийте браузер, увійдіть, а потім введіть код нижче, щоб зв'язати свій обліковий запис." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Відкрийте повідомлення" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Відкрийте програму для обміну повідомленнями на телефоні та почніть нове текстове повідомлення." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Потрібен номер телефону" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Крок телефону" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Підтвердження номера телефону недоступне для цього облікового запису. Скористайтеся іншим способом або зверніться до служби підтримки." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "репости" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Спершу запитайте новий код." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Надіслати код <0>{0} на <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Надішліть код на вказаний нижче номер телефону." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Надіслати цей код" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Відправити це закріплення назад у часі?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Надіслати на" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Надсилання:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Надсилання SMS на цей номер є дорогим, тому нам потрібно, щоб ви надіслали нам повідомлення." @@ -28311,6 +28331,18 @@ msgstr "Встановіть ліміт користувачів на {0}." msgid "Set the vanity URL to {0}." msgstr "Встановлено URL-адресу запрошення на {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Відкласти цю перевірку" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Відкласти цю перевірку?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Плавніше відео" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "SMS-перевірка наразі недоступна. Спробуйте пізніше або зверніться до служби підтримки." @@ -29762,7 +29794,7 @@ msgstr "Щось пішло не так. Спробуйте пізніше." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Щось пішло не так. Спробуйте ще раз." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Стандартні ціни в {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Може стягуватися стандартна плата за повідомлення від вашого оператора." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Текст в мовлення" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Надішліть нам повідомлення зі свого телефону" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Дякуємо, що допомагаєте зробити {productName} безпечним. Ми розглянемо ваш звіт якомога швидше." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Цей код не спрацював. Перевірте його та спробуйте ще раз." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Термін дії цього коду закінчився. Запитайте новий код." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Це не завершилося. Деякі спільноти могли бути вже залишені, а ваш обліковий запис досі заблоковано. Натисніть «Відкласти цю перевірку» ще раз, щоб завершити." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Не вдалося. Нічого не змінилося. Спробуйте ще раз." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Це не схоже на дійсний колір. Спробуйте шістнадцятковий код, rgb(), hsl() або назву кольору CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Це не схоже на дійсну URL-адресу." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Ця електронна пошта вже використовується." @@ -31588,6 +31630,11 @@ msgstr "Новий голосовий канал повторно викорис msgid "The page you're looking for doesn't exist or has been moved." msgstr "Сторінка, яку ви шукаєте, не існує або була переміщена." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Перевірку телефону відкладено. Залишився один крок з електронною поштою." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Вимкнено" msgid "This is how messages appear" msgstr "Так виглядають повідомлення" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Зараз це недоступно для вашого облікового запису. Напишіть на {supportEmail}, і людина розгляне це." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Це не той канал, який ви шукаєте." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Цей псевдонім буде видно лише в цій спільноті" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Цей номер потребує верифікації текстом, а не SMS від нас." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Цього учасника заглушили модератори" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Цей номер телефону не можна використовувати. Спробуйте інший мобільний номер або зверніться до служби підтримки." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Цей номер телефону вже використовувався. Спробуйте інший номер або зверніться до служби підтримки." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Термін дії сеансу перевірки вичерпано. Поверніться до {productName} і почніть оформлення замовлення знову." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Термін дії цієї сесії перевірки закінчився. Почніть знову." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Це дозволить довіряти всім зовнішнім посиланням і пропускати попередження для кожного домену. Ваші наявні довірені домени буде замінено. Це менш безпечно." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Це вікно автоматично оновиться після отримання вашого повідомлення." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Тонування HDR-зображень до стандартного діапазону, зменшуючи пікову яскравість." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Забагато спроб. Зачекайте трохи, потім спробуйте ще раз." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Використовуйте програму-автентифікатор для генерації кодів двофакторної автентифікації" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Використовуйте електронну пошту, яка відрізняється від поточної." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Використовуйте електронну пошту, яку ви можете відкрити. Ми надішлемо туди код." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Час між повідомленнями. «{bypassSlowmodePermissionLabel}» може це обійти." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Зачекайте тут" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Ми попередньо заповнимо {prefillEmail}, щойно відкриється вхід у браузері." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Ми надішлемо SMS-код, коли він буде доступний." @@ -37255,6 +37307,11 @@ msgstr "Ви можете ввійти знову в будь-який час." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Ви все ще можете створити обліковий запис або ввійти. Якщо запрошення буде знову ввімкнено пізніше, ви зможете використати це саме посилання, щоб приєднатися." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Ви все ще можете написати на {supportEmail} для перегляду людиною будь-коли." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Ви можете зберігати позначені GIF як вибране лише за посиланням або завантажувати їх у збережені медіафайли. Виберіть той варіант, який вам найбільше підходить. Ви можете змінити це будь-коли в {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Щоб надсилати повідомлення в цій спіль msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "У вас або в одного з учасників уже відкрито максимальну кількість групових приватних чатів. Залиште один і спробуйте ще раз." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Ви залишаєтеся у спільноті {ownedNames}. Власники не можуть покинути власну спільноту." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Модератори вимкнули вам звук" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Після авторизації вас буде перенаправлено на {redirectHostname}." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Ви покинете {count, plural, one {# спільноту} few {# спільноти} many {# спільнот} other {# спільнот}}, до яких застосовується ця перевірка, і ваш обліковий запис знову працюватиме нормально." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Ви покинете {guildNames}. Усі ваші дописи залишаться, і ви зможете приєднатися пізніше." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Ви не зможете видалити надіслані повідомлення після видалення облікового запису" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Вам все ще потрібно буде завершити крок з електронною поштою." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Термін дії вашої сесії {productName} закінчив msgid "Your account" msgstr "Ваш обліковий запис" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Ваш обліковий запис одразу повернеться до норми, і телефонний номер вам більше не знадобиться. Це не постійне звільнення. Приєднання до великої або публічної спільноти може знову викликати цю перевірку." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Ваш обліковий запис успішно прив'язано. Тепер ви можете закрити цю вкладку та повернутися до застосунку." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Ваш обліковий запис відновлено." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Ваш обліковий запис ще не підтверджено. Без електронної пошти та пароля ви не зможете ввійти з інших пристроїв і можете втратити доступ до свого облікового запису. Підтвердьте свій обліковий запис зараз, щоб убезпечити його." @@ -38014,6 +38101,11 @@ msgstr "Ваш запит на обліковий запис очікує схв msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Ваш обліковий запис вимагає багатофакторної автентифікації, але на цьому пристрої не налаштовано жодного підтримуваного методу. Увійдіть на пристрої з програмою-автентифікатором або ключем безпеки, або зверніться до служби підтримки." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Ваш обліковий запис знову працюватиме одразу, і нічого не буде видалено. Ми можемо попросити повторити цю перевірку пізніше." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Ваш новий нікнейм або залиште порожнім, щоб скинути його." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Ваш номер не прив'язаний до облікового запису. Ми зберігаємо лише зашифрований маркер без ідентифікатора користувача, максимум для {limit} перевірок протягом приблизно {duration} днів." diff --git a/fluxer_app/src/features/i18n/locales/vi/messages.po b/fluxer_app/src/features/i18n/locales/vi/messages.po index f90a66d0d..dbacd09bc 100644 --- a/fluxer_app/src/features/i18n/locales/vi/messages.po +++ b/fluxer_app/src/features/i18n/locales/vi/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 ngày" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "Cần xác minh trình duyệt trước khi xác minh số điện thoại. Vui lòng thử lại từ trang đăng nhập hoặc liên hệ bộ phận hỗ trợ." @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "Thêm từ…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "Thêm email đang hoạt động" @@ -7390,7 +7390,7 @@ msgstr "Chủ đề Than chì" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "Email không khả dụng" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "Hiện không thể cập nhật email. Vui lòng thử lại sau hoặc liên hệ bộ phận hỗ trợ." @@ -12375,6 +12375,11 @@ msgstr "Hiện không thể cập nhật email. Vui lòng thử lại sau hoặc msgid "Email update required" msgstr "Cần cập nhật email" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "Gửi email cho chúng tôi và một người sẽ xem xét tài khoản của bạn. Hãy cho chúng tôi biết bạn không thể xác minh qua SMS và chúng tôi sẽ xử lý tiếp. Phản hồi sẽ được gửi qua email, vì vậy việc này không diễn ra ngay lập tức." + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "Nhập URL hoặc mã mẫu {theOtherPlatform} hợp lệ." #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "Nhập địa chỉ email hợp lệ." @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "Nhập liên kết tin nhắn hợp lệ." #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "Nhập số điện thoại di động hợp lệ." @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "Nhập tên người dùng hợp lệ ({exampleFluxerTagFull})." #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "Nhập email bạn có thể mở. Chúng tôi sẽ gửi mã xác nhận đến đó." @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "Nhập mã quà tặng…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "Nhập email mới" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "Nhập mã gồm {digitCount} chữ số từ ứng dụng xác thực của bạn." #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "Nhập mã gồm {digitCount} chữ số đã gửi đến {phoneNumber}." @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "Nhập mã từ ứng dụng xác thực của bạn." #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "Nhập mã đã gửi đến {emailAddress}." @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "Nhập mã gồm {MFA_CODE_DIGIT_COUNT} chữ số đã gửi đến {0}." #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "Nhập mã xác nhận email" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "Nhập mã PIN cho khóa bảo mật của bạn để tiếp tục." #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "Nhập mã SMS" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "Nhập mật khẩu của bạn." #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "Nhập số điện thoại của bạn" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "Dành cho tôi" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "Để thực hiện bước kiểm tra này, bạn sẽ gửi tin nhắn cho chúng tôi thay vì nhận tin nhắn từ chúng tôi." @@ -16437,6 +16442,11 @@ msgstr "Nếu báo cáo này liên quan đến một tin nhắn cụ thể, hãy msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "Nếu báo cáo này liên quan đến các tin nhắn cụ thể, hãy báo cáo tin nhắn phù hợp nhất. Báo cáo tin nhắn cung cấp cho đội ngũ an toàn của chúng tôi ngữ cảnh rõ ràng nhất và việc thêm chi tiết vào phần bình luận có thể giúp chúng tôi xem xét nhanh hơn. Chỉ tiếp tục báo cáo toàn bộ người dùng nếu việc báo cáo tin nhắn không thể giải quyết được vấn đề lớn hơn." +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "Nếu bạn không thể xác minh qua SMS" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "Tìm hiểu thêm" msgid "Leave" msgstr "Rời đi" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "Rời khỏi {count, plural, one {# cộng đồng} other {# cộng đồng}} và tạm gác lại việc kiểm tra này?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "Rời khỏi và đặt sang một bên" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "Mở trình duyệt, đăng nhập, sau đó nhập mã bên dưới để liên kết tài khoản của bạn." #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "Mở tin nhắn của bạn" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "Mở ứng dụng nhắn tin trên điện thoại và bắt đầu một tin nhắn văn bản mới." @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "Cần có số điện thoại" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "Bước điện thoại" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "Xác minh số điện thoại không khả dụng cho tài khoản này. Hãy dùng phương thức khác hoặc liên hệ bộ phận hỗ trợ." @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "đăng lại" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "Vui lòng yêu cầu mã mới trước." @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "Gửi mã <0>{0} đến <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "Gửi mã đến số điện thoại bên dưới." #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "Gửi mã này" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "Gửi ghim này về quá khứ?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "Gửi đến" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "Gửi:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "Gửi SMS đến số này tốn phí, vì vậy bạn cần nhắn tin cho chúng tôi." @@ -28311,6 +28331,18 @@ msgstr "Đặt giới hạn người dùng thành {0}." msgid "Set the vanity URL to {0}." msgstr "Đặt URL tùy chỉnh thành {0}." +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "Để mục này sang một bên" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "Tạm hoãn kiểm tra này?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "Video mượt hơn" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "Xác minh SMS hiện không khả dụng. Vui lòng thử lại sau hoặc liên hệ với bộ phận hỗ trợ." @@ -29762,7 +29794,7 @@ msgstr "Đã xảy ra lỗi. Vui lòng thử lại sau." #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "Đã xảy ra lỗi. Vui lòng thử lại." @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "Giá tiêu chuẩn {baseCurrencyLabel}" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "Có thể áp dụng cước phí nhắn tin tiêu chuẩn từ nhà mạng của bạn." @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "Chuyển văn bản thành giọng nói" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "Nhắn tin cho chúng tôi từ điện thoại của bạn" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "Cảm ơn bạn đã giúp giữ cho {productName} an toàn. Chúng tôi sẽ xem xét báo cáo của bạn sớm nhất có thể." #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "Mã đó không đúng. Vui lòng kiểm tra lại và thử lại." #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "Mã đó đã hết hạn. Vui lòng yêu cầu mã mới." +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "Thao tác này chưa hoàn tất. Một số cộng đồng có thể đã bị rời đi và tài khoản của bạn vẫn bị khóa. Nhấn Đặt lần kiểm tra này sang một bên lần nữa để hoàn tất." + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "Đã xảy ra lỗi. Không có gì thay đổi. Thử lại." + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "Màu này không hợp lệ. Hãy thử dùng mã hex, rgb(), hsl() hoặc tên màu CSS." @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "Đây không phải là một URL hợp lệ." #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "Email này đã được sử dụng." @@ -31588,6 +31630,11 @@ msgstr "Kênh thoại mới sẽ sử dụng lại quyền, giới hạn ngườ msgid "The page you're looking for doesn't exist or has been moved." msgstr "Trang bạn tìm không tồn tại hoặc đã được di chuyển." +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "Đã bỏ qua kiểm tra điện thoại. Còn một bước email." + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "Đã tắt" msgid "This is how messages appear" msgstr "Đây là cách tin nhắn hiển thị" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "Tính năng này hiện không khả dụng cho tài khoản của bạn. Hãy gửi email tới {supportEmail} và một nhân viên sẽ xem xét." + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "Đây không phải kênh bạn tìm." @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "Biệt danh này sẽ chỉ hiển thị trong cộng đồng này" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "Số này cần xác minh bằng văn bản thay vì SMS từ chúng tôi." @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "Người tham gia này đã bị người điều hành tắt tiếng" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "Không thể sử dụng số điện thoại này. Hãy thử số di động khác hoặc liên hệ bộ phận hỗ trợ." #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "Số điện thoại này đã được sử dụng. Hãy thử số khác hoặc liên hệ bộ phận hỗ trợ." @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "Phiên xác minh này đã hết hạn. Quay lại {productName} và bắt đầu thanh toán lại." #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "Phiên xác minh này đã hết hạn. Vui lòng thử lại." @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "Thao tác này sẽ tin cậy tất cả các liên kết bên ngoài và bỏ qua cảnh báo cho mọi miền. Các miền đáng tin cậy hiện có của bạn sẽ bị thay thế. Điều này kém an toàn hơn." #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "Cửa sổ này sẽ tự động cập nhật sau khi chúng tôi nhận được tin nhắn của bạn." @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "Ánh xạ tông màu ảnh HDR về dải tiêu chuẩn, giảm độ sáng tối đa." #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "Đã thử quá nhiều lần. Vui lòng đợi một lát rồi thử lại." @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "Dùng ứng dụng xác thực để tạo mã cho xác minh 2 bước" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "Sử dụng email khác với email hiện tại của bạn." #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "Sử dụng email bạn có thể mở. Chúng tôi sẽ gửi mã xác nhận đến đó." @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "Chờ giữa các tin nhắn. \"{bypassSlowmodePermissionLabel}\" có thể bỏ qua nó." #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "Đợi ở đây" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "Chúng tôi sẽ điền trước {prefillEmail} sau khi trình duyệt đăng nhập mở." #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "Chúng tôi sẽ gửi mã SMS khi có thể." @@ -37255,6 +37307,11 @@ msgstr "Bạn có thể đăng nhập lại bất cứ lúc nào." msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "Bạn vẫn có thể tạo tài khoản hoặc đăng nhập. Nếu lời mời được bật lại sau, bạn có thể dùng lại liên kết này để tham gia." +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "Bạn vẫn có thể gửi email cho {supportEmail} để được xem xét thủ công bất cứ lúc nào." + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "Bạn có thể lưu GIF đã gắn dấu sao dưới dạng mục yêu thích chỉ có URL hoặc tải chúng lên phương tiện đã lưu của mình. Chọn cách phù hợp với mục đích sử dụng của bạn. Bạn có thể thay đổi bất cứ lúc nào trong {mediaSettingsPath}." @@ -37699,6 +37756,11 @@ msgstr "Bạn cần xác minh email để gửi tin nhắn trong cộng đồng msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "Bạn hoặc người bạn đang thêm đã có số lượng tin nhắn nhóm tối đa đang mở. Hãy rời khỏi một nhóm và thử lại." +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "Bạn vẫn ở trong {ownedNames}. Chủ sở hữu không thể rời khỏi cộng đồng của riêng họ." + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "Bạn đã bị người điều hành tắt tiếng" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "Bạn sẽ được đưa đến {redirectHostname} sau khi ủy quyền." +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "Bạn sẽ rời khỏi {count, plural, one {# cộng đồng} other {# cộng đồng}} mà quy trình kiểm tra này áp dụng, và tài khoản của bạn sẽ hoạt động bình thường trở lại." + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "Bạn sẽ rời khỏi {guildNames}. Không có bài đăng nào của bạn bị xóa và bạn có thể tham gia lại sau." + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "Bạn sẽ không thể xóa các tin nhắn đã gửi sau khi tài khoản bị xóa" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "Bạn vẫn cần hoàn thành bước email." + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "Phiên {productName} của bạn đã hết hạn. Vui lòng đăng nh msgid "Your account" msgstr "Tài khoản của bạn" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "Tài khoản của bạn sẽ trở lại bình thường ngay lập tức và bạn sẽ không cần số điện thoại nữa. Đây không phải là miễn trừ vĩnh viễn. Tham gia một cộng đồng lớn hoặc công khai có thể khiến bạn phải thực hiện lại kiểm tra này." + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "Tài khoản của bạn đã được liên kết thành công. Bây giờ bạn có thể đóng tab này và quay lại ứng dụng." +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "Tài khoản của bạn đã hoạt động bình thường trở lại." + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "Tài khoản của bạn chưa được xác nhận. Nếu không có email và mật khẩu, bạn sẽ không thể đăng nhập từ các thiết bị khác và có thể mất quyền truy cập vào tài khoản của mình. Hãy xác nhận tài khoản ngay để bảo mật tài khoản." @@ -38014,6 +38101,11 @@ msgstr "Yêu cầu tài khoản của bạn đang chờ phê duyệt. Bạn có msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "Tài khoản của bạn yêu cầu xác thực đa yếu tố, nhưng chưa có phương thức nào được thiết lập trên thiết bị này. Vui lòng đăng nhập trên thiết bị có ứng dụng xác thực hoặc khóa bảo mật của bạn, hoặc liên hệ bộ phận hỗ trợ." +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "Tài khoản của bạn hoạt động bình thường trở lại ngay lập tức và không có gì bị xóa. Chúng tôi có thể yêu cầu kiểm tra lại việc này sau." + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "Tên mới của bạn, hoặc để trống để đặt lại." #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "Số điện thoại của bạn chưa được liên kết với tài khoản. Chúng tôi chỉ lưu trữ một điểm đánh dấu được mã hóa, không có ID người dùng, cho tối đa {limit} lần xác minh trong khoảng {duration} ngày." diff --git a/fluxer_app/src/features/i18n/locales/zh-CN/messages.po b/fluxer_app/src/features/i18n/locales/zh-CN/messages.po index 65dabbb59..b39cc1262 100644 --- a/fluxer_app/src/features/i18n/locales/zh-CN/messages.po +++ b/fluxer_app/src/features/i18n/locales/zh-CN/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 天" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "电话验证前需要进行浏览器检查。请从登录页面重试,或联系客服。" @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "添加字词…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "添加一个有效的邮箱" @@ -7390,7 +7390,7 @@ msgstr "煤炭主题" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "邮箱不可用" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "暂时无法更新邮箱。请稍后重试或联系客服。" @@ -12375,6 +12375,11 @@ msgstr "暂时无法更新邮箱。请稍后重试或联系客服。" msgid "Email update required" msgstr "需要更新邮箱" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "发送邮件给我们,我们会人工审核您的账号。请告知我们您无法通过短信验证,后续事宜我们会处理。回复将通过电子邮件发送,因此无法即时处理。" + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "请输入有效的 {theOtherPlatform} 模板网址或代码。" #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "请输入有效的电子邮件地址。" @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "请输入有效的消息链接。" #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "请输入有效的手机号码。" @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "请输入有效的用户名({exampleFluxerTagFull})。" #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "请输入一个您可以打开的邮箱。我们会向该邮箱发送验证码。" @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "输入礼物码…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "输入新邮箱" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "输入身份验证器应用中的 {digitCount} 位数验证码。" #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "输入发送到 {phoneNumber} 的 {digitCount} 位验证码。" @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "输入身份验证器应用中的验证码。" #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "输入发送到 {emailAddress} 的验证码。" @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "输入发送至 {0} 的 {MFA_CODE_DIGIT_COUNT} 位验证码。" #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "输入邮箱验证码" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "输入您的安全密钥的密码以继续。" #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "输入短信验证码" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "请输入你的密码。" #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "输入您的电话号码" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "为我" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "本次验证,您需要向我们发送短信,而不是接收短信。" @@ -16437,6 +16442,11 @@ msgstr "如果举报内容是针对某条消息,请直接举报该消息。举 msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "如果举报涉及特定消息,请改为举报最相关的消息。举报消息能为我们的安全团队提供最清晰的背景信息,在评论中添加详细信息有助于我们更快地进行审核。仅当举报消息无法涵盖更广泛的问题时,才继续举报整个用户。" +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "如果您无法通过短信验证" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "了解详情" msgid "Leave" msgstr "退出" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "退出 {count, plural, one {# 个社群} other {# 个社群}} 并暂存此检查?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "离开并暂存" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "打开浏览器,登录后输入以下代码以关联你的帐户。" #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "打开你的信息" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "打开手机短信应用,然后开始一条新短信。" @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "需要手机号" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "手机步骤" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "此账号无法进行手机验证。请使用其他方式或联系客服。" @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "转发" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "请先请求新验证码。" @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "将验证码 <0>{0} 发送到 <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "将验证码发送到以下手机号。" #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "发送此验证码" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "要将此图钉发送回过去吗?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "发送至" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "发送:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "向此号码发送短信费用较高,因此我们需要您向我们发送短信。" @@ -28311,6 +28331,18 @@ msgstr "将用户上限设为 {0}。" msgid "Set the vanity URL to {0}." msgstr "将自定义网址设为 {0}。" +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "暂缓此验证" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "暂不处理此检查?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "更流畅的视频" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "短信验证暂时不可用。请稍后重试或联系客服。" @@ -29762,7 +29794,7 @@ msgstr "出错了。请稍后重试。" #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "出错了。请再试一次。" @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "标准{baseCurrencyLabel}定价" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "您的运营商可能会收取标准短信费用。" @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "文字转语音" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "用您的手机给我们发短信" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "感谢您帮助维护 {productName} 的安全。我们会尽快审核您的举报。" #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "验证码无效。请检查后重试。" #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "验证码已过期。请申请新验证码。" +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "未完成。部分社群可能已被退出,您的帐号仍被锁定。请再次点击“暂缓此检查”以完成。" + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "未能成功。未发生任何更改。请重试。" + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "这看起来不是有效的颜色。请尝试使用十六进制、rgb()、hsl() 或 CSS 颜色名称。" @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "网址格式不正确。" #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "该邮箱已被占用。" @@ -31588,6 +31630,11 @@ msgstr "新的语音频道将沿用 <0>{channelLabel} 的权限、用户上 msgid "The page you're looking for doesn't exist or has been moved." msgstr "您要找的页面不存在或已被移动。" +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "手机验证已暂缓。还剩一个邮箱验证步骤。" + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "已禁用" msgid "This is how messages appear" msgstr "消息显示效果" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "此功能目前在您的账户上不可用。请发送邮件至 {supportEmail},我们会安排人员进行审核。" + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "这不是你要找的频道。" @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "此昵称仅在此社群内可见" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "此号码需要通过短信验证,而不是我们发送的短信。" @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "此参与者已被管理员闭麦" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "此电话号码无法使用。请尝试其他手机号码或联系客服。" #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "此电话号码已被使用。请尝试其他号码或联系客服。" @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "验证会话已过期。请返回 {productName} 重新开始结账。" #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "此验证会话已过期。请重新开始。" @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "这将信任所有外部链接,并跳过所有域名的警告。您现有的受信任域名将被替换。此操作安全性较低。" #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "收到您的消息后,此窗口将自动更新。" @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "将 HDR 图像色调映射到标准范围,降低峰值亮度。" #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "尝试次数过多。请稍等片刻,然后重试。" @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "使用身份验证器应用生成两步验证码" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "请使用与当前邮箱不同的地址。" #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "请使用您可以打开的邮箱。我们会向该邮箱发送验证码。" @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "消息之间的等待时间。“{bypassSlowmodePermissionLabel}”可以跳过此限制。" #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "请稍候" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "浏览器登录页面打开后,我们将预填 {prefillEmail}。" #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "可用时,我们会发送短信验证码。" @@ -37255,6 +37307,11 @@ msgstr "您可以随时重新登录。" msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "您仍然可以创建帐户或登录。如果稍后重新启用邀请,您可以使用此链接加入。" +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "您仍可随时发送邮件至 {supportEmail} 请求人工审核。" + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "你可以将星标的 GIF 存储为仅限 URL 的收藏,或将其上传到你保存的媒体。选择适合你的使用方式。你可以随时在 {mediaSettingsPath} 中更改此设置。" @@ -37699,6 +37756,11 @@ msgstr "你需要验证邮箱才能在此社群中发送消息。" msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "你或你正在添加的人已达到群聊数量上限。请先退出一个群聊,然后再试。" +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "你将保留在 {ownedNames} 中。社区创建者无法离开自己的社区。" + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "你已被管理员闭麦" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "授权后,你将被带往 {redirectHostname}。" +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "您将离开 {count, plural, one {# 个社区} other {# 个社区}},此检查将不再适用,您的帐户将恢复正常。" + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "您将离开 {guildNames}。您发布的所有内容都不会被删除,您可以稍后重新加入。" + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "账号删除后,您将无法删除已发送的消息" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "您仍需完成邮箱验证步骤。" + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "您的 {productName} 会话已过期。请重新登录以继续授权此 msgid "Your account" msgstr "你的账号" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "您的账号会立即恢复正常,现在也不需要手机号了。这不是永久豁免。加入大型或公开社群可能会重新触发此验证。" + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "您的账号已成功关联。现在可以关闭此页面并返回应用。" +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "你的账户已恢复正常。" + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "您的帐户尚未认领。如果没有邮箱和密码,您将无法在其他设备上登录,并可能丢失帐户访问权限。立即认领您的帐户以确保安全。" @@ -38014,6 +38101,11 @@ msgstr "你的账号申请正在等待审核。管理员批准后即可登录。 msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "您的帐户需要多重身份验证,但此设备上未设置任何受支持的方法。请在已设置身份验证器应用或安全密钥的设备上登录,或联系支持人员。" +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "您的账号会立即恢复正常,并且不会移除任何内容。稍后我们可以再次请求进行此检查。" + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "你的新昵称,留空则重置。" #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "您的手机号未关联到您的帐户。我们仅保留一个加密标记,不含用户 ID,最多可用于 {duration} 天内的 {limit} 次验证。" diff --git a/fluxer_app/src/features/i18n/locales/zh-TW/messages.po b/fluxer_app/src/features/i18n/locales/zh-TW/messages.po index 16876b7c4..50241ae7b 100644 --- a/fluxer_app/src/features/i18n/locales/zh-TW/messages.po +++ b/fluxer_app/src/features/i18n/locales/zh-TW/messages.po @@ -1830,7 +1830,7 @@ msgid "7 days" msgstr "7 天" #. Required-action error when the API requires a captcha for phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:426 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:525 msgid "A browser check is required before phone verification. Try again from the sign-in page or contact support." msgstr "電話驗證前需要進行瀏覽器檢查。請從登入頁面重試,或聯絡客服。" @@ -2354,7 +2354,7 @@ msgid "Add a word…" msgstr "新增字詞…" #. Required-action modal carousel step title for replacing a bounced email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:367 msgid "Add a working email" msgstr "新增可用的電子郵件" @@ -7390,7 +7390,7 @@ msgstr "煤炭主題" #. Label for an inbound phone verification code shown in the required-action modal. #: src/features/auth/components/modals/MfaTotpDisableModal.tsx:26 #: src/features/auth/components/modals/MfaTotpEnableModal.tsx:36 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:445 #: src/features/invite/components/InviteListItem.tsx:75 #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:29 msgid "Code" @@ -12366,7 +12366,7 @@ msgid "Email unavailable" msgstr "電子郵件無法使用" #. Required-action error shown when email update cannot continue. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:402 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:501 msgid "Email update is unavailable right now. Try again later or contact support." msgstr "目前無法更新電子郵件。請稍後再試,或聯絡支援服務。" @@ -12375,6 +12375,11 @@ msgstr "目前無法更新電子郵件。請稍後再試,或聯絡支援服務 msgid "Email update required" msgstr "需要更新電子郵件" +#. Body of the human-review option in the required-action modal, rendered directly above the Contact support link. Sets the expectation that a reply takes time. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:273 +msgid "Email us and a person will review your account. Tell us you cannot verify by SMS and we will take it from there. Replies come by email, so this is not instant." +msgstr "請透過電子郵件與我們聯繫,將由專人審核您的帳號。請告知我們您無法透過 SMS 驗證,後續事宜將由我們處理。我們將透過電子郵件回覆,因此處理過程並非即時。" + #. Developer control label for the email-verification banner. #: src/features/devtools/components/NagbarControls.ts:31 msgid "Email verification nagbar" @@ -13017,7 +13022,7 @@ msgstr "請輸入有效的 {theOtherPlatform} 範本 URL 或代碼。" #. Inline validation error on the email step of the DSA report flow when the email is malformed. #. Required-action form error for an invalid email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:390 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:489 #: src/features/moderation/components/pages/ReportPage.tsx:59 msgid "Enter a valid email address." msgstr "請輸入有效的電子郵件地址。" @@ -13028,7 +13033,7 @@ msgid "Enter a valid message link." msgstr "請輸入有效的訊息連結。" #. Required-action form error for an invalid phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:406 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:505 msgid "Enter a valid mobile phone number." msgstr "請輸入有效的行動電話號碼。" @@ -13045,7 +13050,7 @@ msgid "Enter a valid username ({exampleFluxerTagFull})." msgstr "輸入有效的用戶名稱 ({exampleFluxerTagFull})。" #. Required-action modal body for entering a replacement email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:272 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:371 msgid "Enter an email you can open. We will send a code there." msgstr "請輸入您可以開啟的電子郵件地址。我們會將驗證碼傳送至該地址。" @@ -13069,7 +13074,7 @@ msgid "Enter gift code…" msgstr "輸入禮物代碼…" #. Required-action modal carousel step title for changing to a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:276 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:375 msgid "Enter new email" msgstr "輸入新電子郵件" @@ -13104,7 +13109,7 @@ msgid "Enter the {digitCount}-digit code from your authenticator app." msgstr "請輸入驗證器應用程式中的 {digitCount} 位數驗證碼。" #. Required-action modal body for entering an SMS code. digitCount and phoneNumber are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:310 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:409 msgid "Enter the {digitCount}-digit code sent to {phoneNumber}." msgstr "請輸入傳送至 {phoneNumber} 的 {digitCount} 位數驗證碼。" @@ -13123,7 +13128,7 @@ msgid "Enter the code from your authenticator app." msgstr "請輸入驗證器應用程式中的代碼。" #. Required-action modal body for entering a code sent to a new email address. emailAddress is inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:288 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:387 msgid "Enter the code sent to {emailAddress}." msgstr "輸入傳送至 {emailAddress} 的驗證碼。" @@ -13154,7 +13159,7 @@ msgid "Enter the code with {MFA_CODE_DIGIT_COUNT} digits sent to {0}." msgstr "請輸入傳送到 {0} 的 {MFA_CODE_DIGIT_COUNT} 位數驗證碼。" #. Required-action modal carousel step title for entering an email verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:383 msgid "Enter the email code" msgstr "輸入電子郵件驗證碼" @@ -13172,7 +13177,7 @@ msgid "Enter the PIN for your security key to continue." msgstr "輸入您的安全金鑰的 PIN 以繼續。" #. Required-action modal carousel step title for entering a phone SMS verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:306 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:405 msgid "Enter the SMS code" msgstr "輸入簡訊驗證碼" @@ -13208,7 +13213,7 @@ msgid "Enter your password." msgstr "請輸入您的密碼。" #. Required-action modal carousel step title for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:293 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:392 msgid "Enter your phone number" msgstr "輸入你的電話號碼" @@ -14555,7 +14560,7 @@ msgid "For me" msgstr "為我" #. Required-action modal body for starting an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:318 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:417 msgid "For this check, you send us a text message instead of receiving one from us." msgstr "這次驗證,您需要傳送簡訊給我們,而不是接收我們的簡訊。" @@ -16437,6 +16442,11 @@ msgstr "如果這則檢舉是關於特定訊息,請改為檢舉該訊息。檢 msgid "If this report is about specific messages, report the most relevant message instead. Message reports give our safety team the clearest context, and adding details in the comments can help us review it faster. Only continue with reporting the user as a whole if reporting a message would not capture the broader issue." msgstr "如果此檢舉是關於特定訊息,請改為檢舉最相關的訊息。訊息檢舉能讓我們的安全團隊獲得最清楚的脈絡,在備註中新增詳細資訊也能幫助我們更快審查。只有在檢舉訊息無法涵蓋更廣泛的問題時,才繼續檢舉整個用戶。" +#. Heading of the alternative-routes block in the required-action modal. Introduces human review and the option to set the phone check aside. Must read as a real supported route, not fine print. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:268 +msgid "If you can't verify by SMS" +msgstr "如果你無法透過簡訊驗證" + #. Required-action modal body when the user must contact support for account recovery. #: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:260 msgid "If you cannot use any verification method, contact support for help." @@ -18094,6 +18104,16 @@ msgstr "瞭解詳情" msgid "Leave" msgstr "離開" +#. Confirmation dialog title in the required-action modal when communities will be left. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:300 +msgid "Leave {count, plural, one {# community} other {# communities}} and set this check aside?" +msgstr "離開 {count, plural, one {# 個社群} other {# 個社群}} 並暫停此檢查?" + +#. Primary button of the set-aside confirmation in the required-action modal when communities will be left. Uses the destructive button style. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:336 +msgid "Leave and set aside" +msgstr "離開並暫停" + #. Short label in the authentication auth register form core. Keep the tone plain and specific. #: src/features/auth/flow/AuthRegisterFormCore.tsx:63 msgid "Leave blank for a random username" @@ -22634,12 +22654,12 @@ msgid "Open your browser, sign in, then enter the code below to link your accoun msgstr "開啟您的瀏覽器,登入後輸入以下代碼,即可連結您的帳號。" #. Required-action modal carousel step title for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:330 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:429 msgid "Open your messages" msgstr "開啟你的訊息" #. Required-action modal body for the first inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:334 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:433 msgid "Open your phone messaging app and start a new text message." msgstr "開啟手機訊息應用程式,然後開始新的簡訊。" @@ -23347,7 +23367,7 @@ msgid "Phone number is required" msgstr "請輸入電話號碼" #. Toast shown after phone verification succeeds. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:366 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:465 #: src/features/user/components/modals/PhoneAddModal.tsx:179 #: src/features/user/components/modals/PhoneAddModal.tsx:184 msgid "Phone number verified" @@ -23364,7 +23384,7 @@ msgid "Phone step" msgstr "電話步驟" #. Required-action error when the account is not eligible to add phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:422 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:521 msgid "Phone verification is not available for this account. Use another method or contact support." msgstr "此帳號無法使用電話驗證。請使用其他方式或聯絡客服。" @@ -25782,7 +25802,7 @@ msgid "reposts" msgstr "轉貼" #. Required-action form error when the user submits before a code exists. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:378 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:477 msgid "Request a new code first." msgstr "請先要求新驗證碼。" @@ -27960,12 +27980,12 @@ msgid "Send the code <0>{0} to <1>{1}" msgstr "將驗證碼 <0>{0} 傳送至 <1>{1}" #. Required-action modal body for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:342 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:441 msgid "Send the code to the phone number below." msgstr "將驗證碼傳送至以下電話號碼。" #. Required-action modal carousel step title for the second inbound phone verification instruction. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:338 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:437 msgid "Send this code" msgstr "傳送此代碼" @@ -27975,7 +27995,7 @@ msgid "Send this pin back in time?" msgstr "將此釘選訊息送回過去?" #. Label for the destination phone number in an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:350 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:449 msgid "Send to" msgstr "傳送至" @@ -28003,7 +28023,7 @@ msgid "Send:" msgstr "傳送:" #. Required-action modal explanation for an inbound phone verification challenge due to SMS cost. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:322 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:421 msgid "Sending an SMS to this number is expensive, so we need you to text us instead." msgstr "傳送簡訊到此號碼的費用較高,因此我們需要您傳送訊息給我們。" @@ -28311,6 +28331,18 @@ msgstr "將使用者上限設為 {0}。" msgid "Set the vanity URL to {0}." msgstr "將自訂網址設為 {0}。" +#. Primary button of the set-aside confirmation in the required-action modal when nothing will be left. Uses the normal button style, not the destructive one. +#. Secondary button in the required-action modal that restores the deferred phone check instead of verifying a number. Must not read as skipping or circumventing, and must not use back or undo wording, which collides with the modal back button. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:279 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:331 +msgid "Set this check aside" +msgstr "暫緩此驗證" + +#. Confirmation dialog title in the required-action modal when nothing will be left. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:296 +msgid "Set this check aside?" +msgstr "暫停此檢查?" + #. Title for the self-host setup wizard modal. #: src/features/app/components/setup/SelfHostedSetupWizardGate.tsx:71 msgid "Set up {productName}" @@ -29557,7 +29589,7 @@ msgid "Smoother video" msgstr "更流暢的影片" #. Required-action error when the SMS provider cannot send or verify a code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:418 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:517 msgid "SMS verification is unavailable right now. Try again later or contact support." msgstr "目前無法進行簡訊驗證。請稍後再試或聯絡客服。" @@ -29762,7 +29794,7 @@ msgstr "發生錯誤。請稍後再試。" #. Inline error in the web deep-link prompt when opening the desktop app fails. #. Toast error shown when the mature content check request fails unexpectedly. #: src/features/auth/components/modals/MatureContentCheckModal.tsx:18 -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:430 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:529 #: src/features/auth/flow/DesktopDeepLinkPrompt.tsx:31 msgid "Something went wrong. Try again." msgstr "發生錯誤。請再試一次。" @@ -30116,7 +30148,7 @@ msgid "Standard {baseCurrencyLabel} pricing" msgstr "標準 {baseCurrencyLabel} 定價" #. Required-action modal notice for inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:362 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:461 msgid "Standard messaging rates from your carrier may apply." msgstr "您的電信業者可能會收取標準訊息費率。" @@ -31357,7 +31389,7 @@ msgid "Text to speech" msgstr "語音朗讀" #. Required-action modal carousel step title for starting inbound phone verification. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:314 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:413 msgid "Text us from your phone" msgstr "用您的手機傳送簡訊給我們" @@ -31421,15 +31453,25 @@ msgid "Thank you for helping keep {productName} safe. We'll review your report a msgstr "感謝您協助維護 {productName} 的安全。我們會盡快審核您的檢舉。" #. Required-action form error for an invalid verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:370 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:469 msgid "That code didn't work. Check it and try again." msgstr "代碼無效。請檢查後再試一次。" #. Required-action form error for an expired verification code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:374 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:473 msgid "That code expired. Request a new code." msgstr "驗證碼已過期。請申請新的驗證碼。" +#. Shown in the required-action modal when setting the check aside failed part way through leaving communities. Retrying is safe and continues from where it stopped. Names the button so the reader knows what to press. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:361 +msgid "That did not finish. Some communities may already have been left, and your account is still locked. Press Set this check aside again to finish." +msgstr "無法完成。部分社群可能已經離開,且您的帳號仍被鎖定。請再按一次「暫停此檢查」以完成。" + +#. Shown in the required-action modal when setting the check aside failed and the user was in no community that would have been left, so nothing can have been lost. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:356 +msgid "That did not go through. Nothing changed. Try again." +msgstr "無法完成。沒有任何變更。請再試一次。" + #: src/features/ui/components/form/ColorPickerField.tsx:301 msgid "That doesn't look like a valid color. Try hex, rgb(), hsl(), or a CSS color name." msgstr "這看起來不是有效的顏色。請試試看十六進位、rgb()、hsl() 或 CSS 顏色名稱。" @@ -31439,7 +31481,7 @@ msgid "That doesn't look like a valid URL." msgstr "這看起來不是有效的網址。" #. Required-action form error when a new email is already used by another account. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:394 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:493 msgid "That email is already in use." msgstr "該電子郵件已被使用。" @@ -31588,6 +31630,11 @@ msgstr "新的語音頻道將會重複使用 <0>{channelLabel} 的權限、 msgid "The page you're looking for doesn't exist or has been moved." msgstr "您要找的頁面不存在,或可能已移動。" +#. Success toast after the phone check is set aside while an email requirement remains, so the modal stays open on the email step. Never tell someone they are done while a modal is still in front of them. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:346 +msgid "The phone check is set aside. One email step is left." +msgstr "電話驗證已暫緩。剩下一個電子郵件驗證步驟。" + #. OAuth authorize page error shown when the redirect_uri is not registered for this OAuth app. #: src/features/auth/components/pages/oauth_authorize_page/state/useAuthorizeFlow.ts:58 msgid "The provided redirect_uri is not registered for this application." @@ -32199,6 +32246,11 @@ msgstr "此功能已停用" msgid "This is how messages appear" msgstr "訊息顯示方式" +#. Shown in the required-action modal when setting the check aside is refused, and when it reported success but the phone requirement is still in force. supportEmail is inserted by code, and the address is named in full because the support link may have scrolled out of view. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:351 +msgid "This is not available on your account right now. Email {supportEmail} and a person will review it." +msgstr "此功能目前在您的帳戶上無法使用。請寄信至 {supportEmail},我們將請專人為您處理。" + #: src/features/channel/components/ChannelLayout.tsx:45 msgid "This is not the channel you're looking for." msgstr "這不是您要找的頻道。" @@ -32302,7 +32354,7 @@ msgid "This nickname will only be visible in this community" msgstr "這個暱稱只會在此社群中顯示" #. Required-action modal explanation for an inbound phone verification challenge. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:425 msgid "This number needs text-in verification instead of an SMS from us." msgstr "此號碼需要透過文字訊息驗證,而非我們傳送的簡訊。" @@ -32327,12 +32379,12 @@ msgid "This participant was deafened by moderators" msgstr "此參與者已被管理員靜音" #. Required-action form error when the backend rejects a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:410 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:509 msgid "This phone number cannot be used. Try another mobile number or contact support." msgstr "此電話號碼無法使用。請嘗試其他手機號碼或聯絡客服。" #. Required-action form error when the backend rejects a reused phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:414 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:513 msgid "This phone number has already been used. Try another number or contact support." msgstr "此電話號碼已被使用。請嘗試其他號碼或聯絡客服。" @@ -32484,7 +32536,7 @@ msgid "This verification session expired. Return to {productName} and start chec msgstr "此驗證工作階段已過期。請返回 {productName} 並重新開始結帳。" #. Required-action form error when an email-change ticket or proof is invalid or expired. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:382 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:481 msgid "This verification session expired. Start again." msgstr "此驗證工作階段已過期。請重新開始。" @@ -32583,7 +32635,7 @@ msgid "This will trust all external links and skip the warning for every domain. msgstr "這會信任所有外部連結,並略過所有網域的警告。您現有的信任網域將會被取代。此設定較不安全。" #. Required-action modal body after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:358 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:457 msgid "This window updates automatically after we receive your message." msgstr "我們收到您的訊息後,此視窗會自動更新。" @@ -32900,7 +32952,7 @@ msgid "Tone-map HDR images to standard range, reducing peak brightness." msgstr "將 HDR 影像色調對應至標準範圍,降低峰值亮度。" #. Required-action error shown for rate limits. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:386 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:485 msgid "Too many attempts. Wait a bit, then try again." msgstr "嘗試次數過多。請稍候再試。" @@ -34730,12 +34782,12 @@ msgid "Use an authenticator app to generate codes for two-factor authentication" msgstr "使用驗證器應用程式產生兩步驟驗證碼" #. Required-action form error when the new email matches the current account email. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:398 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:497 msgid "Use an email that is different from your current one." msgstr "請使用與您目前電子郵件不同的電子郵件。" #. Required-action modal body for entering a new email address. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:280 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:379 msgid "Use an email you can open. We will send a code there." msgstr "請使用您可以開啟的電子郵件。我們會將驗證碼傳送至該信箱。" @@ -36297,7 +36349,7 @@ msgid "Wait between messages. \"{bypassSlowmodePermissionLabel}\" can bypass it. msgstr "訊息之間間隔時間。\"{bypassSlowmodePermissionLabel}\" 可以繞過此設定。" #. Required-action modal carousel step title after the user sends an inbound phone verification text. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:354 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:453 msgid "Wait here" msgstr "請在此等候" @@ -36486,7 +36538,7 @@ msgid "We will prefill {prefillEmail} once browser sign-in opens." msgstr "瀏覽器登入開啟後,我們會預填 {prefillEmail}。" #. Required-action modal body for entering a phone number. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:297 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:396 msgid "We will send an SMS code when available." msgstr "可用時,我們會傳送簡訊驗證碼。" @@ -37255,6 +37307,11 @@ msgstr "您可以隨時重新登入。" msgid "You can still create an account or sign in. If invites are re-enabled later, you can use this same link to join." msgstr "您仍然可以建立帳號或登入。如果稍後重新啟用邀請,您可以使用相同的連結加入。" +#. Last line of the set-aside confirmation in the required-action modal. supportEmail is inserted by code. The self-serve route never closes the support route. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:326 +msgid "You can still email {supportEmail} for a human review at any time." +msgstr "你隨時都可以寄信到 {supportEmail} 請求人工審查。" + #: src/features/channel/components/pickers/gif/FavoriteGifFirstTimePromptModal.tsx:62 msgid "You can store starred GIFs as URL-only favorites or upload them to your saved media. Pick the one that fits how you use them. You can change it any time in {mediaSettingsPath}." msgstr "您可以將已加星號的 GIF 儲存為僅限網址的收藏,或上傳到您已儲存的媒體。請選擇最適合您使用方式的選項。您可以隨時在 {mediaSettingsPath} 中更改設定。" @@ -37699,6 +37756,11 @@ msgstr "您需要驗證電子郵件才能在這個社群傳送訊息。" msgid "You or someone you're adding already has the maximum number of group DMs open. Leave one and try again." msgstr "您或您要新增的對象已開啟最多群組私訊。請離開其中一個群組私訊,然後再試一次。" +#. Confirmation line in the required-action modal explaining that communities the user owns are kept rather than left. ownedNames is a comma-separated list inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:316 +msgid "You stay in {ownedNames}. Owners cannot leave their own community." +msgstr "你將保留在 {ownedNames} 中。社群擁有者無法離開自己的社群。" + #. Voice chat status tooltip for the current user. A moderator deafened them so they cannot hear voice chat. #: src/features/voice/utils/VoiceMessageDescriptors.ts:61 msgid "You were deafened by moderators" @@ -37709,10 +37771,25 @@ msgstr "你已被管理員靜音" msgid "You will be taken to {redirectHostname} after authorizing." msgstr "授權後,您將會被導向 {redirectHostname}。" +#. Hint under the set-aside button in the required-action modal when the user is in communities that trigger the check. count is inserted by code. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:290 +msgid "You will leave {count, plural, one {# community} other {# communities}} that this check applies to, and your account works normally again." +msgstr "您將離開 {count, plural, one {# 個社群} other {# 個社群}},這些社群會觸發此檢查,您的帳號將恢復正常。" + +#. Confirmation line in the required-action modal, shown only when the user is in communities that trigger the check. guildNames is a comma-separated list inserted by code. Both reassurances answer fears people actually have. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:311 +msgid "You will leave {guildNames}. Nothing you posted is deleted, and you can join again later." +msgstr "你將離開 {guildNames}。你發布的內容不會被刪除,之後也可以隨時再加入。" + #: src/features/auth/components/modals/AccountDeleteModal.tsx:59 msgid "You will not be able to delete your sent messages after your account is deleted" msgstr "帳號刪除後,您將無法刪除已傳送的訊息" +#. Confirmation line in the required-action modal when an email requirement remains alongside the phone check, so the modal stays open afterwards. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:321 +msgid "You will still need to finish the email step." +msgstr "你還是需要完成電子郵件驗證步驟。" + #: src/features/app/components/floating/UserAreaPopout.tsx:94 #: src/features/user/components/modals/StatusChangeBottomSheet.tsx:40 msgid "You won't receive notifications on desktop" @@ -37993,10 +38070,20 @@ msgstr "您的 {productName} 工作階段已過期。請重新登入以繼續授 msgid "Your account" msgstr "你的帳號" +#. First line of the set-aside confirmation in the required-action modal. Always shown. Says can rather than will, because whether the check returns depends on account age and instance settings the user cannot see. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:305 +msgid "Your account goes back to normal right away and you will not need a phone number now. This is not a permanent exemption. Joining a large or public community can bring this check back." +msgstr "你的帳號會立即恢復正常,而且現在不需要電話號碼。這並非永久豁免。加入大型或公開社群可能會再次觸發此驗證。" + #: src/features/connection/components/pages/ConnectionCallbackPage.tsx:29 msgid "Your account has been linked successfully. You can now close this tab and return to the app." msgstr "您的帳號已成功連結。現在您可以關閉此分頁並返回應用程式。" +#. Success toast after the phone check is set aside and no verification steps remain. Deliberately count-free, because any communities that were left already disappear from the sidebar. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:341 +msgid "Your account is back to normal." +msgstr "你的帳號已恢復正常。" + #: src/features/app/components/dialogs/components/UnclaimedAccountAlert.tsx:26 msgid "Your account is not yet claimed. Without an email and password, you won't be able to sign in from other devices and you could lose access to your account. Claim your account now to secure it." msgstr "您的帳號尚未認領。如果沒有電子郵件和密碼,您將無法從其他裝置登入,並可能因此失去帳號的存取權。請立即認領您的帳號以確保安全。" @@ -38014,6 +38101,11 @@ msgstr "你的帳號申請正在等待核准。管理員核准後即可登入。 msgid "Your account requires multi-factor authentication, but no supported methods are set up on this device. Sign in on a device with your authenticator app or security key, or contact support." msgstr "您的帳號需要多重要素驗證,但此裝置上未設定任何支援的方法。請使用已設定驗證器應用程式或安全金鑰的裝置登入,或聯絡客服。" +#. Hint under the set-aside button in the required-action modal when the user is in no community that triggers the check. This is the common case. Do not phrase it as undoing a join. +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:284 +msgid "Your account works normally again straight away and nothing is removed. We can ask for this check again later." +msgstr "您的帳號會立即恢復正常,且不會移除任何項目。我們可以稍後再要求進行這次檢查。" + #. Modal body shown when the safety system blocks the requested action. Keep plain and calm; offer support path. #: src/features/auth/components/ContentBlockedHandler.tsx:14 msgid "Your action could not be completed because it was flagged by our safety systems. If you believe this is a mistake, please contact support." @@ -38209,7 +38301,7 @@ msgid "Your new nickname, or leave blank to reset it." msgstr "你的新暱稱,留空則重設。" #. Required-action modal privacy note for phone verification. limit and duration are inserted by code. -#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:301 +#: src/features/auth/components/modals/required_action/RequiredActionDescriptors.ts:400 msgid "Your number is not linked to your account. We keep only an encrypted marker, with no user ID, for at most {limit} verifications in about {duration} days." msgstr "您的號碼未連結到您的帳號。我們只會保留加密標記,不含使用者 ID,最多在約 {duration} 天內進行 {limit} 次驗證。" diff --git a/fluxer_app/src/features/user/commands/UserCommands.ts b/fluxer_app/src/features/user/commands/UserCommands.ts index 7d53c9f8b..6ff1adb21 100644 --- a/fluxer_app/src/features/user/commands/UserCommands.ts +++ b/fluxer_app/src/features/user/commands/UserCommands.ts @@ -12,7 +12,11 @@ import {http} from '@app/features/platform/transport/RestTransport'; import {Logger} from '@app/features/platform/utils/AppLogger'; import type {Message as WireMessage} from '@fluxer/schema/src/domains/message/MessageResponseSchemas'; import type {HarvestStatusResponse} from '@fluxer/schema/src/domains/user/UserHarvestSchemas'; -import type {PasswordChangeCompleteResponse, UserPrivate} from '@fluxer/schema/src/domains/user/UserResponseSchemas'; +import type { + PasswordChangeCompleteResponse, + PhoneGateEscapePreviewResponse, + UserPrivate, +} from '@fluxer/schema/src/domains/user/UserResponseSchemas'; import type {PublicKeyCredentialCreationOptionsJSON, RegistrationResponseJSON} from '@simplewebauthn/browser'; export interface BulkDeleteMyMessagesFilter { @@ -279,6 +283,29 @@ export async function checkFluxerTagAvailability({ } } +export async function getPhoneGateEscapePreview(): Promise { + try { + logger.debug('Fetching phone gate escape preview'); + const response = await http.get(Endpoints.USER_REQUIRED_ACTION_PHONE_GATE_ESCAPE); + return response.body; + } catch (error) { + logger.error('Failed to fetch phone gate escape preview', error); + throw error; + } +} + +export async function executePhoneGateEscape(): Promise { + try { + logger.debug('Setting the phone gate check aside'); + const response = await http.post(Endpoints.USER_REQUIRED_ACTION_PHONE_GATE_ESCAPE, {body: {}}); + logger.debug('Phone gate check set aside'); + return response.body; + } catch (error) { + logger.error('Failed to set the phone gate check aside', error); + throw error; + } +} + export async function startInboundPhoneChallenge(): Promise { try { logger.debug('Starting inbound phone challenge'); diff --git a/packages/constants/src/ApiErrorCodes.ts b/packages/constants/src/ApiErrorCodes.ts index 72b497749..e18a29c2a 100644 --- a/packages/constants/src/ApiErrorCodes.ts +++ b/packages/constants/src/ApiErrorCodes.ts @@ -211,6 +211,7 @@ export const APIErrorCodes = { PASSKEYS_DISABLED: 'PASSKEYS_DISABLED', PHONE_ADD_NOT_ELIGIBLE: 'PHONE_ADD_NOT_ELIGIBLE', PHONE_ALREADY_USED: 'PHONE_ALREADY_USED', + PHONE_GATE_ESCAPE_UNAVAILABLE: 'PHONE_GATE_ESCAPE_UNAVAILABLE', PHONE_RATE_LIMIT_EXCEEDED: 'PHONE_RATE_LIMIT_EXCEEDED', PHONE_VERIFICATION_REQUIRED: 'PHONE_VERIFICATION_REQUIRED', PREMIUM_PURCHASE_BLOCKED: 'PREMIUM_PURCHASE_BLOCKED', diff --git a/packages/constants/src/UserConstants.ts b/packages/constants/src/UserConstants.ts index c8fc41495..f819c1d07 100644 --- a/packages/constants/src/UserConstants.ts +++ b/packages/constants/src/UserConstants.ts @@ -195,6 +195,7 @@ export const ALL_SUSPICIOUS_ACTIVITY_FLAGS = Object.values(SuspiciousActivityFla 0, ); export const DEFERRED_PHONE_ON_COMMUNITY_JOIN = 1 << 16; +export const PHONE_GATE_PROMOTED_FROM_DEFERRAL = 1 << 17; export const DEFERRABLE_PHONE_FLAGS = SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | SuspiciousActivityFlags.REQUIRE_REVERIFIED_PHONE; export const NEVER_DEFERRABLE_PHONE_FLAGS = SuspiciousActivityFlags.REQUIRE_INBOUND_PHONE_VERIFICATION; @@ -204,14 +205,16 @@ export function imposePhoneRequirements(currentFlags: number, addedFlags: number if ((addedFlags & DEFERRABLE_PHONE_FLAGS) === 0) { return nextFlags; } - return nextFlags & ~DEFERRED_PHONE_ON_COMMUNITY_JOIN; + return nextFlags & ~DEFERRED_PHONE_ON_COMMUNITY_JOIN & ~PHONE_GATE_PROMOTED_FROM_DEFERRAL; } export const ADMIN_PHONE_TOGGLE_CLEARABLE_FLAGS = DEFERRED_PHONE_ON_COMMUNITY_JOIN | + PHONE_GATE_PROMOTED_FROM_DEFERRAL | SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | SuspiciousActivityFlags.REQUIRE_INBOUND_PHONE_VERIFICATION; export const PHONE_ADD_CLEARABLE_FLAGS = DEFERRED_PHONE_ON_COMMUNITY_JOIN | + PHONE_GATE_PROMOTED_FROM_DEFERRAL | SuspiciousActivityFlags.REQUIRE_VERIFIED_PHONE | SuspiciousActivityFlags.REQUIRE_REVERIFIED_PHONE | SuspiciousActivityFlags.REQUIRE_VERIFIED_EMAIL_OR_VERIFIED_PHONE | diff --git a/packages/errors/src/domains/user/PhoneGateEscapeUnavailableError.ts b/packages/errors/src/domains/user/PhoneGateEscapeUnavailableError.ts new file mode 100644 index 000000000..f7c1ad156 --- /dev/null +++ b/packages/errors/src/domains/user/PhoneGateEscapeUnavailableError.ts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes'; +import {BadRequestError} from '@fluxer/errors/src/domains/core/BadRequestError'; + +export class PhoneGateEscapeUnavailableError extends BadRequestError { + constructor() { + super({ + code: APIErrorCodes.PHONE_GATE_ESCAPE_UNAVAILABLE, + }); + } +} diff --git a/packages/errors/src/i18n/ErrorCodeMappings.ts b/packages/errors/src/i18n/ErrorCodeMappings.ts index ed9ae46de..82ee48ab1 100644 --- a/packages/errors/src/i18n/ErrorCodeMappings.ts +++ b/packages/errors/src/i18n/ErrorCodeMappings.ts @@ -261,6 +261,7 @@ export const ErrorCodeToI18nKey = { [APIErrorCodes.PASSKEYS_DISABLED]: 'mfa_and_passkeys.passkeys_disabled', [APIErrorCodes.PHONE_ADD_NOT_ELIGIBLE]: 'phone.add_not_eligible', [APIErrorCodes.PHONE_ALREADY_USED]: 'phone.number_already_used', + [APIErrorCodes.PHONE_GATE_ESCAPE_UNAVAILABLE]: 'account.phone_gate_escape_unavailable', [APIErrorCodes.PHONE_RATE_LIMIT_EXCEEDED]: 'rate_limits.phone_rate_limit_exceeded', [APIErrorCodes.PHONE_VERIFICATION_REQUIRED]: 'phone.verification_required', [APIErrorCodes.PREMIUM_PURCHASE_BLOCKED]: 'premium_and_plans.no_active_subscription', diff --git a/packages/errors/src/i18n/ErrorI18nMessages.ts b/packages/errors/src/i18n/ErrorI18nMessages.ts index c26b75a38..561e9dc9a 100644 --- a/packages/errors/src/i18n/ErrorI18nMessages.ts +++ b/packages/errors/src/i18n/ErrorI18nMessages.ts @@ -10,6 +10,8 @@ export const ERROR_I18N_MESSAGES = { 'account.guild_verification_required': 'Community verification is required.', 'account.ip_authorization_required': 'IP authorization is required.', 'account.locked_suspicious_activity': 'Your account is locked due to suspicious activity.', + 'account.phone_gate_escape_unavailable': + 'Setting the phone verification check aside is not available for this account.', 'account.phone_required_for_guild': 'You need to add a phone number to send messages in this community.', 'account.scheduled_for_deletion': 'This account is scheduled for deletion.', 'account.session_timeout': 'Session timed out. Refresh the page and log in again.', diff --git a/packages/errors/src/i18n/locales/ar.ts b/packages/errors/src/i18n/locales/ar.ts index ed34a1ec9..6a908cc74 100644 --- a/packages/errors/src/i18n/locales/ar.ts +++ b/packages/errors/src/i18n/locales/ar.ts @@ -10,6 +10,7 @@ const ERROR_I18N_AR_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "التحقق من المجتمع ضروري.", "account.ip_authorization_required": "إذن IP مطلوب.", "account.locked_suspicious_activity": "حسابك مغلق بسبب نشاط مشبوه.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "يجب إضافة رقم هاتف لإرسال الرسائل في هذا المجتمع.", "account.scheduled_for_deletion": "هذا الحساب مجدول للحذف.", "account.session_timeout": "انتهت صلاحية الجلسة. حدّث الصفحة وسجّل الدخول مرة أخرى.", diff --git a/packages/errors/src/i18n/locales/bg.ts b/packages/errors/src/i18n/locales/bg.ts index 7bcccd025..a7f364add 100644 --- a/packages/errors/src/i18n/locales/bg.ts +++ b/packages/errors/src/i18n/locales/bg.ts @@ -10,6 +10,7 @@ const ERROR_I18N_BG_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Изисква се потвърждение за общността.", "account.ip_authorization_required": "Необходимо е IP удостоверяване.", "account.locked_suspicious_activity": "Акаунтът ти е заключен поради подозрителна активност.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Трябва да добавиш телефонен номер, за да изпращаш съобщения в тази общност.", "account.scheduled_for_deletion": "Този акаунт е планиран за изтриване.", "account.session_timeout": "Сесията изтече. Опресни страницата и влез отново.", diff --git a/packages/errors/src/i18n/locales/cs.ts b/packages/errors/src/i18n/locales/cs.ts index f3d453a5d..77a8d0793 100644 --- a/packages/errors/src/i18n/locales/cs.ts +++ b/packages/errors/src/i18n/locales/cs.ts @@ -10,6 +10,7 @@ const ERROR_I18N_CS_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Vyžaduje se ověření komunity.", "account.ip_authorization_required": "Vyžaduje se autorizace IP adresy.", "account.locked_suspicious_activity": "Tvůj účet je uzamčen kvůli podezřelé aktivitě.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Pro odesílání zpráv v této komunitě musíš přidat telefonní číslo.", "account.scheduled_for_deletion": "Smazání tohoto účtu je naplánováno.", "account.session_timeout": "Relace vypršela. Obnov stránku a přihlas se znovu.", diff --git a/packages/errors/src/i18n/locales/da.ts b/packages/errors/src/i18n/locales/da.ts index efe28e25a..033ca71bb 100644 --- a/packages/errors/src/i18n/locales/da.ts +++ b/packages/errors/src/i18n/locales/da.ts @@ -10,6 +10,7 @@ const ERROR_I18N_DA_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Community-bekræftelse er påkrævet.", "account.ip_authorization_required": "IP-autorisation er påkrævet.", "account.locked_suspicious_activity": "Din konto er låst på grund af mistænkelig aktivitet.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Du skal tilføje et telefonnummer for at sende beskeder i dette community.", "account.scheduled_for_deletion": "Denne konto skal slettes.", "account.session_timeout": "Sessionen er udløbet. Opdater siden, og log ind igen.", diff --git a/packages/errors/src/i18n/locales/de.ts b/packages/errors/src/i18n/locales/de.ts index ab53bfb7c..f498c1f62 100644 --- a/packages/errors/src/i18n/locales/de.ts +++ b/packages/errors/src/i18n/locales/de.ts @@ -10,6 +10,7 @@ const ERROR_I18N_DE_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Community-Verifizierung ist erforderlich.", "account.ip_authorization_required": "IP-Autorisierung ist erforderlich.", "account.locked_suspicious_activity": "Dein Account ist wegen verdächtiger Aktivitäten gesperrt.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Du musst eine Telefonnummer hinzufügen, um Nachrichten in dieser Community senden zu können.", "account.scheduled_for_deletion": "Dieser Account ist zur Löschung vorgemerkt.", "account.session_timeout": "Sitzung abgelaufen. Lade die Seite neu und melde dich erneut an.", diff --git a/packages/errors/src/i18n/locales/el.ts b/packages/errors/src/i18n/locales/el.ts index 51b57ab62..71ffc770e 100644 --- a/packages/errors/src/i18n/locales/el.ts +++ b/packages/errors/src/i18n/locales/el.ts @@ -10,6 +10,7 @@ const ERROR_I18N_EL_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Απαιτείται επαλήθευση κοινότητας.", "account.ip_authorization_required": "Απαιτείται εξουσιοδότηση IP.", "account.locked_suspicious_activity": "Ο λογαριασμός σου είναι κλειδωμένος λόγω ύποπτης δραστηριότητας.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Πρέπει να προσθέσεις έναν αριθμό τηλεφώνου για να στείλεις μηνύματα σε αυτήν την κοινότητα.", "account.scheduled_for_deletion": "Αυτός ο λογαριασμός έχει προγραμματιστεί για διαγραφή.", "account.session_timeout": "Η σύνδεση έληξε. Ανανέωσε τη σελίδα και συνδέσου ξανά.", diff --git a/packages/errors/src/i18n/locales/en-GB.ts b/packages/errors/src/i18n/locales/en-GB.ts index f69add1cb..042a0fbd2 100644 --- a/packages/errors/src/i18n/locales/en-GB.ts +++ b/packages/errors/src/i18n/locales/en-GB.ts @@ -10,6 +10,7 @@ const ERROR_I18N_EN_GB_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Community verification is required.", "account.ip_authorization_required": "IP authorization is required.", "account.locked_suspicious_activity": "Your account is locked due to suspicious activity.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "You need to add a phone number to send messages in this community.", "account.scheduled_for_deletion": "This account is scheduled for deletion.", "account.session_timeout": "Session timed out. Refresh the page and log in again.", diff --git a/packages/errors/src/i18n/locales/es-419.ts b/packages/errors/src/i18n/locales/es-419.ts index acbf477a1..fe07f9fff 100644 --- a/packages/errors/src/i18n/locales/es-419.ts +++ b/packages/errors/src/i18n/locales/es-419.ts @@ -10,6 +10,7 @@ const ERROR_I18N_ES_419_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Se requiere verificación de la comunidad.", "account.ip_authorization_required": "Se requiere autorización de IP.", "account.locked_suspicious_activity": "Tu cuenta está bloqueada debido a actividad sospechosa.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Necesitas agregar un número de teléfono para enviar mensajes en esta comunidad.", "account.scheduled_for_deletion": "Esta cuenta está programada para ser eliminada.", "account.session_timeout": "Tu sesión expiró. Actualiza la página e ¡inicia sesión de nuevo.", diff --git a/packages/errors/src/i18n/locales/es-ES.ts b/packages/errors/src/i18n/locales/es-ES.ts index 3e4ef2e5c..88922b4f6 100644 --- a/packages/errors/src/i18n/locales/es-ES.ts +++ b/packages/errors/src/i18n/locales/es-ES.ts @@ -10,6 +10,7 @@ const ERROR_I18N_ES_ES_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Se requiere verificación de la comunidad.", "account.ip_authorization_required": "Se requiere autorización de IP.", "account.locked_suspicious_activity": "Tu cuenta está bloqueada debido a actividad sospechosa.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Necesitas añadir un número de teléfono para enviar mensajes en esta comunidad.", "account.scheduled_for_deletion": "Esta cuenta está programada para ser eliminada.", "account.session_timeout": "La sesión ha caducado. Actualiza la página e inicia sesión de nuevo.", diff --git a/packages/errors/src/i18n/locales/fi.ts b/packages/errors/src/i18n/locales/fi.ts index a52e8835e..2ee0ef406 100644 --- a/packages/errors/src/i18n/locales/fi.ts +++ b/packages/errors/src/i18n/locales/fi.ts @@ -10,6 +10,7 @@ const ERROR_I18N_FI_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Yhteisön vahvistus vaaditaan.", "account.ip_authorization_required": "IP-osoitteen valtuutus vaaditaan.", "account.locked_suspicious_activity": "Tilisi on lukittu epäilyttävän toiminnan vuoksi.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Sinun on lisättävä puhelinnumero lähettääksesi viestejä tässä yhteisössä.", "account.scheduled_for_deletion": "Tämä tili on ajoitettu poistettavaksi.", "account.session_timeout": "Istunto aikakatkesi. Päivitä sivu ja kirjaudu sisään uudelleen.", diff --git a/packages/errors/src/i18n/locales/fr.ts b/packages/errors/src/i18n/locales/fr.ts index cf70439ed..8e00b78e6 100644 --- a/packages/errors/src/i18n/locales/fr.ts +++ b/packages/errors/src/i18n/locales/fr.ts @@ -10,6 +10,7 @@ const ERROR_I18N_FR_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "La vérification de la communauté est requise.", "account.ip_authorization_required": "L'autorisation IP est requise.", "account.locked_suspicious_activity": "Ton compte est bloqué en raison d'une activité suspecte.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Tu dois ajouter un numéro de téléphone pour envoyer des messages dans cette communauté.", "account.scheduled_for_deletion": "Ce compte est programmé pour être supprimé.", "account.session_timeout": "La session a expiré. Actualise la page et connecte-toi à nouveau.", diff --git a/packages/errors/src/i18n/locales/he.ts b/packages/errors/src/i18n/locales/he.ts index 56aabc33f..ce92f95dc 100644 --- a/packages/errors/src/i18n/locales/he.ts +++ b/packages/errors/src/i18n/locales/he.ts @@ -10,6 +10,7 @@ const ERROR_I18N_HE_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "אימות קהילה נדרש.", "account.ip_authorization_required": "הרשאת IP נדרשת.", "account.locked_suspicious_activity": "החשבון שלך ננעל בגלל פעילות חשודה.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "נדרש להוסיף מספר טלפון כדי לשלוח הודעות בקהילה זו.", "account.scheduled_for_deletion": "החשבון הזה מתוזמן למחיקה.", "account.session_timeout": "הסשן פג. יש לרענן את הדף ולהתחבר שוב.", diff --git a/packages/errors/src/i18n/locales/hi.ts b/packages/errors/src/i18n/locales/hi.ts index e91a06779..3317832e7 100644 --- a/packages/errors/src/i18n/locales/hi.ts +++ b/packages/errors/src/i18n/locales/hi.ts @@ -10,6 +10,7 @@ const ERROR_I18N_HI_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "कम्युनिटी वेरिफिकेशन ज़रूरी है।", "account.ip_authorization_required": "IP ऑथराइज़ेशन ज़रूरी है।", "account.locked_suspicious_activity": "संदिग्ध एक्टिविटी के कारण आपका अकाउंट लॉक कर दिया गया है.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "इस कम्युनिटी में मैसेज भेजने के लिए आपको एक फ़ोन नंबर जोड़ना होगा.", "account.scheduled_for_deletion": "यह अकाउंट डिलीट किया जाना है।", "account.session_timeout": "सेशन टाइमआउट हो गया है. पेज रिफ़्रेश करें और दोबारा लॉगिन करें।", diff --git a/packages/errors/src/i18n/locales/hr.ts b/packages/errors/src/i18n/locales/hr.ts index a7e5d4edd..87b132d5e 100644 --- a/packages/errors/src/i18n/locales/hr.ts +++ b/packages/errors/src/i18n/locales/hr.ts @@ -10,6 +10,7 @@ const ERROR_I18N_HR_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Potrebna je provjera zajednice.", "account.ip_authorization_required": "Potrebna je IP provjera.", "account.locked_suspicious_activity": "Tvoj je račun zaključan zbog sumnjive aktivnosti.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Moraš dodati telefonski broj kako bi slao poruke u ovoj zajednici.", "account.scheduled_for_deletion": "Ovaj je račun predviđen za brisanje.", "account.session_timeout": "Sesija je istekla. Osvježi stranicu i prijavi se ponovno.", diff --git a/packages/errors/src/i18n/locales/hu.ts b/packages/errors/src/i18n/locales/hu.ts index e9f2b2451..56d7f039f 100644 --- a/packages/errors/src/i18n/locales/hu.ts +++ b/packages/errors/src/i18n/locales/hu.ts @@ -10,6 +10,7 @@ const ERROR_I18N_HU_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Közösségi ellenőrzés szükséges.", "account.ip_authorization_required": "IP engedélyezés szükséges.", "account.locked_suspicious_activity": "Fiókod gyanús tevékenység miatt zárolva van.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Telefonszámot kell hozzáadnod, hogy üzeneteket küldhess ebben a közösségben.", "account.scheduled_for_deletion": "Ez a fiók törlésre vár.", "account.session_timeout": "A munkamenet lejárt. Frissítsd az oldalt, és jelentkezz be újra.", diff --git a/packages/errors/src/i18n/locales/id.ts b/packages/errors/src/i18n/locales/id.ts index f48229b0e..9754a8b36 100644 --- a/packages/errors/src/i18n/locales/id.ts +++ b/packages/errors/src/i18n/locales/id.ts @@ -10,6 +10,7 @@ const ERROR_I18N_ID_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Verifikasi komunitas diperlukan.", "account.ip_authorization_required": "Otorisasi IP diperlukan.", "account.locked_suspicious_activity": "Akunmu terkunci karena aktivitas mencurigakan.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Kamu perlu tambah nomor telepon untuk mengirim pesan di komunitas ini.", "account.scheduled_for_deletion": "Akun ini akan dihapus.", "account.session_timeout": "Sesi berakhir. Muat ulang halaman dan Masuk lagi.", diff --git a/packages/errors/src/i18n/locales/it.ts b/packages/errors/src/i18n/locales/it.ts index 59deaf457..1e6911203 100644 --- a/packages/errors/src/i18n/locales/it.ts +++ b/packages/errors/src/i18n/locales/it.ts @@ -10,6 +10,7 @@ const ERROR_I18N_IT_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "La verifica della comunità è obbligatoria.", "account.ip_authorization_required": "L'autorizzazione IP è obbligatoria.", "account.locked_suspicious_activity": "Il tuo account è bloccato a causa di attività sospette.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Devi aggiungere un numero di telefono per inviare messaggi in questa comunità.", "account.scheduled_for_deletion": "Questo account sarà eliminato.", "account.session_timeout": "Sessione scaduta. Aggiorna la pagina e accedi di nuovo.", diff --git a/packages/errors/src/i18n/locales/ja.ts b/packages/errors/src/i18n/locales/ja.ts index aaf3ed1c6..4414f67e9 100644 --- a/packages/errors/src/i18n/locales/ja.ts +++ b/packages/errors/src/i18n/locales/ja.ts @@ -10,6 +10,7 @@ const ERROR_I18N_JA_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "コミュニティ認証が必要です。", "account.ip_authorization_required": "IPアドレスの認証が必要です。", "account.locked_suspicious_activity": "不審なアクティビティのため、アカウントはロックされています。", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "このコミュニティでメッセージを送信するには、電話番号を追加する必要があります。", "account.scheduled_for_deletion": "このアカウントは削除予定です。", "account.session_timeout": "セッションがタイムアウトしました。ページを更新して、もう一度ログインしてください。", diff --git a/packages/errors/src/i18n/locales/ko.ts b/packages/errors/src/i18n/locales/ko.ts index c4bc46daf..4f4b7c8c8 100644 --- a/packages/errors/src/i18n/locales/ko.ts +++ b/packages/errors/src/i18n/locales/ko.ts @@ -10,6 +10,7 @@ const ERROR_I18N_KO_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "커뮤니티 인증이 필요해요.", "account.ip_authorization_required": "IP 인증이 필요해요.", "account.locked_suspicious_activity": "의심스러운 활동으로 계정이 잠겼어요.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "이 커뮤니티에서 메시지를 보내려면 전화번호를 추가해야 해요.", "account.scheduled_for_deletion": "계정이 삭제될 예정이에요.", "account.session_timeout": "세션이 만료되었어요. 페이지를 새로고침하고 다시 로그인해 주세요.", diff --git a/packages/errors/src/i18n/locales/lt.ts b/packages/errors/src/i18n/locales/lt.ts index 1c9fb1c9d..b542440d6 100644 --- a/packages/errors/src/i18n/locales/lt.ts +++ b/packages/errors/src/i18n/locales/lt.ts @@ -10,6 +10,7 @@ const ERROR_I18N_LT_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Reikalingas bendruomenės patvirtinimas.", "account.ip_authorization_required": "Reikalingas IP įgaliojimas.", "account.locked_suspicious_activity": "Tavo paskyra užrakinta dėl įtartinos veiklos.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Kad galėtum siųsti žinutes šioje bendruomenėje, turi pridėti telefono numerį.", "account.scheduled_for_deletion": "Ši paskyra numatyta ištrinti.", "account.session_timeout": "Sesijos laikas baigėsi. Atnaujink puslapį ir prisijunk dar kartą.", diff --git a/packages/errors/src/i18n/locales/nl.ts b/packages/errors/src/i18n/locales/nl.ts index 6bbb0d18a..f6241cb52 100644 --- a/packages/errors/src/i18n/locales/nl.ts +++ b/packages/errors/src/i18n/locales/nl.ts @@ -10,6 +10,7 @@ const ERROR_I18N_NL_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Community-bevestiging is vereist.", "account.ip_authorization_required": "IP-autorisatie is vereist.", "account.locked_suspicious_activity": "Je account is vergrendeld vanwege verdachte activiteit.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Je moet een telefoonnummer toevoegen om berichten te kunnen versturen in deze community.", "account.scheduled_for_deletion": "Dit account staat gepland voor verwijdering.", "account.session_timeout": "Sessie is verlopen. Vernieuw de pagina en log opnieuw in.", diff --git a/packages/errors/src/i18n/locales/no.ts b/packages/errors/src/i18n/locales/no.ts index 539e2cf1c..0e68b6bc7 100644 --- a/packages/errors/src/i18n/locales/no.ts +++ b/packages/errors/src/i18n/locales/no.ts @@ -10,6 +10,7 @@ const ERROR_I18N_NO_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Community-verifisering er nødvendig.", "account.ip_authorization_required": "IP-autorisasjon er nødvendig.", "account.locked_suspicious_activity": "Kontoen din er låst på grunn av mistenkelig aktivitet.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Du må legge til et telefonnummer for å sende meldinger i dette communityet.", "account.scheduled_for_deletion": "Denne kontoen er planlagt for sletting.", "account.session_timeout": "Økten din er utløpt. Oppdater siden og logg inn på nytt.", diff --git a/packages/errors/src/i18n/locales/pl.ts b/packages/errors/src/i18n/locales/pl.ts index c3b4b6b68..8b1f059da 100644 --- a/packages/errors/src/i18n/locales/pl.ts +++ b/packages/errors/src/i18n/locales/pl.ts @@ -10,6 +10,7 @@ const ERROR_I18N_PL_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Weryfikacja społeczności wymagana.", "account.ip_authorization_required": "Autoryzacja IP wymagana.", "account.locked_suspicious_activity": "Twoje konto jest zablokowane z powodu podejrzanej aktywności.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Aby wysyłać wiadomości w tej społeczności, musisz dodać numer telefonu.", "account.scheduled_for_deletion": "Konto zaplanowane do usunięcia.", "account.session_timeout": "Sesja wygasła. Odśwież stronę i zaloguj się jeszcze raz.", diff --git a/packages/errors/src/i18n/locales/pt-BR.ts b/packages/errors/src/i18n/locales/pt-BR.ts index d8fd70841..7677e3dd2 100644 --- a/packages/errors/src/i18n/locales/pt-BR.ts +++ b/packages/errors/src/i18n/locales/pt-BR.ts @@ -10,6 +10,7 @@ const ERROR_I18N_PT_BR_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "A verificação da comunidade é necessária.", "account.ip_authorization_required": "A autorização de IP é necessária.", "account.locked_suspicious_activity": "Sua conta está bloqueada devido a atividades suspeitas.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Você precisa adicionar um número de telefone para enviar mensagens nesta comunidade.", "account.scheduled_for_deletion": "Esta conta está programada para exclusão.", "account.session_timeout": "A sessão expirou. Atualize a página e entre novamente.", diff --git a/packages/errors/src/i18n/locales/ro.ts b/packages/errors/src/i18n/locales/ro.ts index 192b10d98..4cce8fe37 100644 --- a/packages/errors/src/i18n/locales/ro.ts +++ b/packages/errors/src/i18n/locales/ro.ts @@ -10,6 +10,7 @@ const ERROR_I18N_RO_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Este necesară verificarea comunității.", "account.ip_authorization_required": "Este necesară autorizarea IP.", "account.locked_suspicious_activity": "Contul tău este blocat din cauza activității suspecte.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Trebuie să adaugi un număr de telefon pentru a trimite mesaje în această comunitate.", "account.scheduled_for_deletion": "Acest cont este programat pentru ștergere.", "account.session_timeout": "Sesiunea a expirat. Reîmprospătează pagina și Conectează-te din nou.", diff --git a/packages/errors/src/i18n/locales/ru.ts b/packages/errors/src/i18n/locales/ru.ts index f4f45f0b2..f2c4630a6 100644 --- a/packages/errors/src/i18n/locales/ru.ts +++ b/packages/errors/src/i18n/locales/ru.ts @@ -10,6 +10,7 @@ const ERROR_I18N_RU_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Требуется подтверждение сообщества.", "account.ip_authorization_required": "Требуется авторизация по IP.", "account.locked_suspicious_activity": "Твой аккаунт заблокирован из-за подозрительной активности.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Тебе нужно добавить номер телефона, чтобы отправлять сообщения в этом сообществе.", "account.scheduled_for_deletion": "Для этого аккаунта запланировано удаление.", "account.session_timeout": "Время сессии истекло. Обнови страницу и войди снова.", diff --git a/packages/errors/src/i18n/locales/sv-SE.ts b/packages/errors/src/i18n/locales/sv-SE.ts index ceac14cb5..2d77169d3 100644 --- a/packages/errors/src/i18n/locales/sv-SE.ts +++ b/packages/errors/src/i18n/locales/sv-SE.ts @@ -10,6 +10,7 @@ const ERROR_I18N_SV_SE_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Community-verifiering är obligatorisk.", "account.ip_authorization_required": "IP-auktorisering är obligatorisk.", "account.locked_suspicious_activity": "Ditt konto är låst på grund av misstänkt aktivitet.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Du måste lägga till ett telefonnummer för att skicka meddelanden i denna community.", "account.scheduled_for_deletion": "Detta konto är schemalagt för radering.", "account.session_timeout": "Sessionen har löpt ut. Uppdatera sidan och logga in igen...", diff --git a/packages/errors/src/i18n/locales/th.ts b/packages/errors/src/i18n/locales/th.ts index 8d0a666fb..4e76b43de 100644 --- a/packages/errors/src/i18n/locales/th.ts +++ b/packages/errors/src/i18n/locales/th.ts @@ -10,6 +10,7 @@ const ERROR_I18N_TH_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "ต้องมีการยืนยันคอมมูนิตี้", "account.ip_authorization_required": "ต้องมีการอนุญาต IP", "account.locked_suspicious_activity": "บัญชีของคุณถูกล็อกเนื่องจากกิจกรรมที่น่าสงสัย", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "คุณต้องเพิ่มหมายเลขโทรศัพท์เพื่อส่งข้อความในคอมมูนิตี้นี้", "account.scheduled_for_deletion": "บัญชีนี้มีกำหนดลบ", "account.session_timeout": "เซสชันหมดเวลา กรุณารีเฟรชหน้าใหม่และเข้าสู่ระบบอีกครั้ง", diff --git a/packages/errors/src/i18n/locales/tr.ts b/packages/errors/src/i18n/locales/tr.ts index 871b0ce95..898fd1424 100644 --- a/packages/errors/src/i18n/locales/tr.ts +++ b/packages/errors/src/i18n/locales/tr.ts @@ -10,6 +10,7 @@ const ERROR_I18N_TR_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Topluluk doğrulaması gerekli.", "account.ip_authorization_required": "IP yetkilendirmesi gerekli.", "account.locked_suspicious_activity": "Hesabın şüpheli etkinlik nedeniyle kilitlendi.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Bu toplulukta mesaj göndermek için bir telefon numarası eklemen gerekiyor.", "account.scheduled_for_deletion": "Bu hesap silinmek üzere planlandı.", "account.session_timeout": "Oturum zaman aşımına uğradı. Sayfayı yenile ve tekrar giriş yap.", diff --git a/packages/errors/src/i18n/locales/uk.ts b/packages/errors/src/i18n/locales/uk.ts index a10f01346..7ac25aabb 100644 --- a/packages/errors/src/i18n/locales/uk.ts +++ b/packages/errors/src/i18n/locales/uk.ts @@ -10,6 +10,7 @@ const ERROR_I18N_UK_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Потрібне підтвердження спільноти.", "account.ip_authorization_required": "Потрібне підтвердження IP.", "account.locked_suspicious_activity": "Твій акаунт заблоковано через підозрілу активність.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Щоб надсилати повідомлення в цій спільноті, тобі потрібно додати номер телефону.", "account.scheduled_for_deletion": "Цей акаунт заплановано до видалення.", "account.session_timeout": "Час сесії вичерпано. Онови сторінку та увійди знову.", diff --git a/packages/errors/src/i18n/locales/vi.ts b/packages/errors/src/i18n/locales/vi.ts index 23fda50a4..a8f2c897e 100644 --- a/packages/errors/src/i18n/locales/vi.ts +++ b/packages/errors/src/i18n/locales/vi.ts @@ -10,6 +10,7 @@ const ERROR_I18N_VI_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "Yêu cầu xác minh cộng đồng.", "account.ip_authorization_required": "Yêu cầu ủy quyền IP.", "account.locked_suspicious_activity": "Tài khoản đã bị khóa do hoạt động đáng ngờ.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Cần thêm số điện thoại để gửi tin nhắn trong cộng đồng này.", "account.scheduled_for_deletion": "Tài khoản này đã được lên lịch để xóa.", "account.session_timeout": "Phiên đã hết thời gian. làm mới trang và đăng nhập lại.", diff --git a/packages/errors/src/i18n/locales/zh-CN.ts b/packages/errors/src/i18n/locales/zh-CN.ts index 0342ddf5b..6859572bb 100644 --- a/packages/errors/src/i18n/locales/zh-CN.ts +++ b/packages/errors/src/i18n/locales/zh-CN.ts @@ -10,6 +10,7 @@ const ERROR_I18N_ZH_CN_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "需要社区验证。", "account.ip_authorization_required": "需要 IP 授权。", "account.locked_suspicious_activity": "你的账号因可疑活动已被锁定。", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "你需要添加手机号才能在此社区发送消息。", "account.scheduled_for_deletion": "此账号已安排删除。", "account.session_timeout": "会话超时。刷新页面后重新登录。", diff --git a/packages/errors/src/i18n/locales/zh-TW.ts b/packages/errors/src/i18n/locales/zh-TW.ts index 9f3b94bc3..513268022 100644 --- a/packages/errors/src/i18n/locales/zh-TW.ts +++ b/packages/errors/src/i18n/locales/zh-TW.ts @@ -10,6 +10,7 @@ const ERROR_I18N_ZH_TW_MESSAGES = defineErrorI18nLocaleMessages({ "account.guild_verification_required": "需要社群驗證。", "account.ip_authorization_required": "需要 IP 授權。", "account.locked_suspicious_activity": "你的帳號因可疑活動而鎖定。", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "你需要新增電話號碼才能在這個社群傳送訊息。", "account.scheduled_for_deletion": "這個帳號已排定刪除。", "account.session_timeout": "連線逾時。請重新整理頁面並再次登入。", diff --git a/packages/errors/src/i18n/weblate/locales/ar.json b/packages/errors/src/i18n/weblate/locales/ar.json index 68a922605..3387d758f 100644 --- a/packages/errors/src/i18n/weblate/locales/ar.json +++ b/packages/errors/src/i18n/weblate/locales/ar.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "التحقق من المجتمع ضروري.", "account.ip_authorization_required": "إذن IP مطلوب.", "account.locked_suspicious_activity": "حسابك مغلق بسبب نشاط مشبوه.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "يجب إضافة رقم هاتف لإرسال الرسائل في هذا المجتمع.", "account.scheduled_for_deletion": "هذا الحساب مجدول للحذف.", "account.session_timeout": "انتهت صلاحية الجلسة. حدّث الصفحة وسجّل الدخول مرة أخرى.", diff --git a/packages/errors/src/i18n/weblate/locales/bg.json b/packages/errors/src/i18n/weblate/locales/bg.json index c3bfb8602..50505bde1 100644 --- a/packages/errors/src/i18n/weblate/locales/bg.json +++ b/packages/errors/src/i18n/weblate/locales/bg.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Изисква се потвърждение за общността.", "account.ip_authorization_required": "Необходимо е IP удостоверяване.", "account.locked_suspicious_activity": "Акаунтът ти е заключен поради подозрителна активност.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Трябва да добавиш телефонен номер, за да изпращаш съобщения в тази общност.", "account.scheduled_for_deletion": "Този акаунт е планиран за изтриване.", "account.session_timeout": "Сесията изтече. Опресни страницата и влез отново.", diff --git a/packages/errors/src/i18n/weblate/locales/cs.json b/packages/errors/src/i18n/weblate/locales/cs.json index 6f419d9b1..b91e097b1 100644 --- a/packages/errors/src/i18n/weblate/locales/cs.json +++ b/packages/errors/src/i18n/weblate/locales/cs.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Vyžaduje se ověření komunity.", "account.ip_authorization_required": "Vyžaduje se autorizace IP adresy.", "account.locked_suspicious_activity": "Tvůj účet je uzamčen kvůli podezřelé aktivitě.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Pro odesílání zpráv v této komunitě musíš přidat telefonní číslo.", "account.scheduled_for_deletion": "Smazání tohoto účtu je naplánováno.", "account.session_timeout": "Relace vypršela. Obnov stránku a přihlas se znovu.", diff --git a/packages/errors/src/i18n/weblate/locales/da.json b/packages/errors/src/i18n/weblate/locales/da.json index 1d1e451df..fba994832 100644 --- a/packages/errors/src/i18n/weblate/locales/da.json +++ b/packages/errors/src/i18n/weblate/locales/da.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Community-bekræftelse er påkrævet.", "account.ip_authorization_required": "IP-autorisation er påkrævet.", "account.locked_suspicious_activity": "Din konto er låst på grund af mistænkelig aktivitet.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Du skal tilføje et telefonnummer for at sende beskeder i dette community.", "account.scheduled_for_deletion": "Denne konto skal slettes.", "account.session_timeout": "Sessionen er udløbet. Opdater siden, og log ind igen.", diff --git a/packages/errors/src/i18n/weblate/locales/de.json b/packages/errors/src/i18n/weblate/locales/de.json index d4915e768..076169bc8 100644 --- a/packages/errors/src/i18n/weblate/locales/de.json +++ b/packages/errors/src/i18n/weblate/locales/de.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Community-Verifizierung ist erforderlich.", "account.ip_authorization_required": "IP-Autorisierung ist erforderlich.", "account.locked_suspicious_activity": "Dein Account ist wegen verdächtiger Aktivitäten gesperrt.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Du musst eine Telefonnummer hinzufügen, um Nachrichten in dieser Community senden zu können.", "account.scheduled_for_deletion": "Dieser Account ist zur Löschung vorgemerkt.", "account.session_timeout": "Sitzung abgelaufen. Lade die Seite neu und melde dich erneut an.", diff --git a/packages/errors/src/i18n/weblate/locales/el.json b/packages/errors/src/i18n/weblate/locales/el.json index 8d5e87a6e..35b1267ec 100644 --- a/packages/errors/src/i18n/weblate/locales/el.json +++ b/packages/errors/src/i18n/weblate/locales/el.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Απαιτείται επαλήθευση κοινότητας.", "account.ip_authorization_required": "Απαιτείται εξουσιοδότηση IP.", "account.locked_suspicious_activity": "Ο λογαριασμός σου είναι κλειδωμένος λόγω ύποπτης δραστηριότητας.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Πρέπει να προσθέσεις έναν αριθμό τηλεφώνου για να στείλεις μηνύματα σε αυτήν την κοινότητα.", "account.scheduled_for_deletion": "Αυτός ο λογαριασμός έχει προγραμματιστεί για διαγραφή.", "account.session_timeout": "Η σύνδεση έληξε. Ανανέωσε τη σελίδα και συνδέσου ξανά.", diff --git a/packages/errors/src/i18n/weblate/locales/en-GB.json b/packages/errors/src/i18n/weblate/locales/en-GB.json index 40ddf7f1c..613799b22 100644 --- a/packages/errors/src/i18n/weblate/locales/en-GB.json +++ b/packages/errors/src/i18n/weblate/locales/en-GB.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Community verification is required.", "account.ip_authorization_required": "IP authorization is required.", "account.locked_suspicious_activity": "Your account is locked due to suspicious activity.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "You need to add a phone number to send messages in this community.", "account.scheduled_for_deletion": "This account is scheduled for deletion.", "account.session_timeout": "Session timed out. Refresh the page and log in again.", diff --git a/packages/errors/src/i18n/weblate/locales/es-419.json b/packages/errors/src/i18n/weblate/locales/es-419.json index 2b87480db..7770fce02 100644 --- a/packages/errors/src/i18n/weblate/locales/es-419.json +++ b/packages/errors/src/i18n/weblate/locales/es-419.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Se requiere verificación de la comunidad.", "account.ip_authorization_required": "Se requiere autorización de IP.", "account.locked_suspicious_activity": "Tu cuenta está bloqueada debido a actividad sospechosa.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Necesitas agregar un número de teléfono para enviar mensajes en esta comunidad.", "account.scheduled_for_deletion": "Esta cuenta está programada para ser eliminada.", "account.session_timeout": "Tu sesión expiró. Actualiza la página e ¡inicia sesión de nuevo.", diff --git a/packages/errors/src/i18n/weblate/locales/es-ES.json b/packages/errors/src/i18n/weblate/locales/es-ES.json index 1bd4f884f..8407a5b48 100644 --- a/packages/errors/src/i18n/weblate/locales/es-ES.json +++ b/packages/errors/src/i18n/weblate/locales/es-ES.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Se requiere verificación de la comunidad.", "account.ip_authorization_required": "Se requiere autorización de IP.", "account.locked_suspicious_activity": "Tu cuenta está bloqueada debido a actividad sospechosa.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Necesitas añadir un número de teléfono para enviar mensajes en esta comunidad.", "account.scheduled_for_deletion": "Esta cuenta está programada para ser eliminada.", "account.session_timeout": "La sesión ha caducado. Actualiza la página e inicia sesión de nuevo.", diff --git a/packages/errors/src/i18n/weblate/locales/fi.json b/packages/errors/src/i18n/weblate/locales/fi.json index 3392fdaf9..79b6fa61a 100644 --- a/packages/errors/src/i18n/weblate/locales/fi.json +++ b/packages/errors/src/i18n/weblate/locales/fi.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Yhteisön vahvistus vaaditaan.", "account.ip_authorization_required": "IP-osoitteen valtuutus vaaditaan.", "account.locked_suspicious_activity": "Tilisi on lukittu epäilyttävän toiminnan vuoksi.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Sinun on lisättävä puhelinnumero lähettääksesi viestejä tässä yhteisössä.", "account.scheduled_for_deletion": "Tämä tili on ajoitettu poistettavaksi.", "account.session_timeout": "Istunto aikakatkesi. Päivitä sivu ja kirjaudu sisään uudelleen.", diff --git a/packages/errors/src/i18n/weblate/locales/fr.json b/packages/errors/src/i18n/weblate/locales/fr.json index 7a7416168..4e18497f3 100644 --- a/packages/errors/src/i18n/weblate/locales/fr.json +++ b/packages/errors/src/i18n/weblate/locales/fr.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "La vérification de la communauté est requise.", "account.ip_authorization_required": "L'autorisation IP est requise.", "account.locked_suspicious_activity": "Ton compte est bloqué en raison d'une activité suspecte.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Tu dois ajouter un numéro de téléphone pour envoyer des messages dans cette communauté.", "account.scheduled_for_deletion": "Ce compte est programmé pour être supprimé.", "account.session_timeout": "La session a expiré. Actualise la page et connecte-toi à nouveau.", diff --git a/packages/errors/src/i18n/weblate/locales/he.json b/packages/errors/src/i18n/weblate/locales/he.json index 604686c5f..c530249c7 100644 --- a/packages/errors/src/i18n/weblate/locales/he.json +++ b/packages/errors/src/i18n/weblate/locales/he.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "אימות קהילה נדרש.", "account.ip_authorization_required": "הרשאת IP נדרשת.", "account.locked_suspicious_activity": "החשבון שלך ננעל בגלל פעילות חשודה.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "נדרש להוסיף מספר טלפון כדי לשלוח הודעות בקהילה זו.", "account.scheduled_for_deletion": "החשבון הזה מתוזמן למחיקה.", "account.session_timeout": "הסשן פג. יש לרענן את הדף ולהתחבר שוב.", diff --git a/packages/errors/src/i18n/weblate/locales/hi.json b/packages/errors/src/i18n/weblate/locales/hi.json index fcbf53439..5622207d0 100644 --- a/packages/errors/src/i18n/weblate/locales/hi.json +++ b/packages/errors/src/i18n/weblate/locales/hi.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "कम्युनिटी वेरिफिकेशन ज़रूरी है।", "account.ip_authorization_required": "IP ऑथराइज़ेशन ज़रूरी है।", "account.locked_suspicious_activity": "संदिग्ध एक्टिविटी के कारण आपका अकाउंट लॉक कर दिया गया है.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "इस कम्युनिटी में मैसेज भेजने के लिए आपको एक फ़ोन नंबर जोड़ना होगा.", "account.scheduled_for_deletion": "यह अकाउंट डिलीट किया जाना है।", "account.session_timeout": "सेशन टाइमआउट हो गया है. पेज रिफ़्रेश करें और दोबारा लॉगिन करें।", diff --git a/packages/errors/src/i18n/weblate/locales/hr.json b/packages/errors/src/i18n/weblate/locales/hr.json index 819983dc0..64a5c893d 100644 --- a/packages/errors/src/i18n/weblate/locales/hr.json +++ b/packages/errors/src/i18n/weblate/locales/hr.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Potrebna je provjera zajednice.", "account.ip_authorization_required": "Potrebna je IP provjera.", "account.locked_suspicious_activity": "Tvoj je račun zaključan zbog sumnjive aktivnosti.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Moraš dodati telefonski broj kako bi slao poruke u ovoj zajednici.", "account.scheduled_for_deletion": "Ovaj je račun predviđen za brisanje.", "account.session_timeout": "Sesija je istekla. Osvježi stranicu i prijavi se ponovno.", diff --git a/packages/errors/src/i18n/weblate/locales/hu.json b/packages/errors/src/i18n/weblate/locales/hu.json index 564fc180d..b65e61de4 100644 --- a/packages/errors/src/i18n/weblate/locales/hu.json +++ b/packages/errors/src/i18n/weblate/locales/hu.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Közösségi ellenőrzés szükséges.", "account.ip_authorization_required": "IP engedélyezés szükséges.", "account.locked_suspicious_activity": "Fiókod gyanús tevékenység miatt zárolva van.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Telefonszámot kell hozzáadnod, hogy üzeneteket küldhess ebben a közösségben.", "account.scheduled_for_deletion": "Ez a fiók törlésre vár.", "account.session_timeout": "A munkamenet lejárt. Frissítsd az oldalt, és jelentkezz be újra.", diff --git a/packages/errors/src/i18n/weblate/locales/id.json b/packages/errors/src/i18n/weblate/locales/id.json index 18d5b5a7b..74b433ae2 100644 --- a/packages/errors/src/i18n/weblate/locales/id.json +++ b/packages/errors/src/i18n/weblate/locales/id.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Verifikasi komunitas diperlukan.", "account.ip_authorization_required": "Otorisasi IP diperlukan.", "account.locked_suspicious_activity": "Akunmu terkunci karena aktivitas mencurigakan.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Kamu perlu tambah nomor telepon untuk mengirim pesan di komunitas ini.", "account.scheduled_for_deletion": "Akun ini akan dihapus.", "account.session_timeout": "Sesi berakhir. Muat ulang halaman dan Masuk lagi.", diff --git a/packages/errors/src/i18n/weblate/locales/it.json b/packages/errors/src/i18n/weblate/locales/it.json index 7d337c705..a7f0763c3 100644 --- a/packages/errors/src/i18n/weblate/locales/it.json +++ b/packages/errors/src/i18n/weblate/locales/it.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "La verifica della comunità è obbligatoria.", "account.ip_authorization_required": "L'autorizzazione IP è obbligatoria.", "account.locked_suspicious_activity": "Il tuo account è bloccato a causa di attività sospette.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Devi aggiungere un numero di telefono per inviare messaggi in questa comunità.", "account.scheduled_for_deletion": "Questo account sarà eliminato.", "account.session_timeout": "Sessione scaduta. Aggiorna la pagina e accedi di nuovo.", diff --git a/packages/errors/src/i18n/weblate/locales/ja.json b/packages/errors/src/i18n/weblate/locales/ja.json index 08efb2f0f..339371f88 100644 --- a/packages/errors/src/i18n/weblate/locales/ja.json +++ b/packages/errors/src/i18n/weblate/locales/ja.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "コミュニティ認証が必要です。", "account.ip_authorization_required": "IPアドレスの認証が必要です。", "account.locked_suspicious_activity": "不審なアクティビティのため、アカウントはロックされています。", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "このコミュニティでメッセージを送信するには、電話番号を追加する必要があります。", "account.scheduled_for_deletion": "このアカウントは削除予定です。", "account.session_timeout": "セッションがタイムアウトしました。ページを更新して、もう一度ログインしてください。", diff --git a/packages/errors/src/i18n/weblate/locales/ko.json b/packages/errors/src/i18n/weblate/locales/ko.json index 9fee4f83c..ecbc38f4a 100644 --- a/packages/errors/src/i18n/weblate/locales/ko.json +++ b/packages/errors/src/i18n/weblate/locales/ko.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "커뮤니티 인증이 필요해요.", "account.ip_authorization_required": "IP 인증이 필요해요.", "account.locked_suspicious_activity": "의심스러운 활동으로 계정이 잠겼어요.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "이 커뮤니티에서 메시지를 보내려면 전화번호를 추가해야 해요.", "account.scheduled_for_deletion": "계정이 삭제될 예정이에요.", "account.session_timeout": "세션이 만료되었어요. 페이지를 새로고침하고 다시 로그인해 주세요.", diff --git a/packages/errors/src/i18n/weblate/locales/lt.json b/packages/errors/src/i18n/weblate/locales/lt.json index 453efe3b9..2d09bf252 100644 --- a/packages/errors/src/i18n/weblate/locales/lt.json +++ b/packages/errors/src/i18n/weblate/locales/lt.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Reikalingas bendruomenės patvirtinimas.", "account.ip_authorization_required": "Reikalingas IP įgaliojimas.", "account.locked_suspicious_activity": "Tavo paskyra užrakinta dėl įtartinos veiklos.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Kad galėtum siųsti žinutes šioje bendruomenėje, turi pridėti telefono numerį.", "account.scheduled_for_deletion": "Ši paskyra numatyta ištrinti.", "account.session_timeout": "Sesijos laikas baigėsi. Atnaujink puslapį ir prisijunk dar kartą.", diff --git a/packages/errors/src/i18n/weblate/locales/nl.json b/packages/errors/src/i18n/weblate/locales/nl.json index 930069dbe..8a1c08062 100644 --- a/packages/errors/src/i18n/weblate/locales/nl.json +++ b/packages/errors/src/i18n/weblate/locales/nl.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Community-bevestiging is vereist.", "account.ip_authorization_required": "IP-autorisatie is vereist.", "account.locked_suspicious_activity": "Je account is vergrendeld vanwege verdachte activiteit.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Je moet een telefoonnummer toevoegen om berichten te kunnen versturen in deze community.", "account.scheduled_for_deletion": "Dit account staat gepland voor verwijdering.", "account.session_timeout": "Sessie is verlopen. Vernieuw de pagina en log opnieuw in.", diff --git a/packages/errors/src/i18n/weblate/locales/no.json b/packages/errors/src/i18n/weblate/locales/no.json index d1e9683bf..8e22125e1 100644 --- a/packages/errors/src/i18n/weblate/locales/no.json +++ b/packages/errors/src/i18n/weblate/locales/no.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Community-verifisering er nødvendig.", "account.ip_authorization_required": "IP-autorisasjon er nødvendig.", "account.locked_suspicious_activity": "Kontoen din er låst på grunn av mistenkelig aktivitet.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Du må legge til et telefonnummer for å sende meldinger i dette communityet.", "account.scheduled_for_deletion": "Denne kontoen er planlagt for sletting.", "account.session_timeout": "Økten din er utløpt. Oppdater siden og logg inn på nytt.", diff --git a/packages/errors/src/i18n/weblate/locales/pl.json b/packages/errors/src/i18n/weblate/locales/pl.json index c2d725472..2a3fc9d2b 100644 --- a/packages/errors/src/i18n/weblate/locales/pl.json +++ b/packages/errors/src/i18n/weblate/locales/pl.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Weryfikacja społeczności wymagana.", "account.ip_authorization_required": "Autoryzacja IP wymagana.", "account.locked_suspicious_activity": "Twoje konto jest zablokowane z powodu podejrzanej aktywności.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Aby wysyłać wiadomości w tej społeczności, musisz dodać numer telefonu.", "account.scheduled_for_deletion": "Konto zaplanowane do usunięcia.", "account.session_timeout": "Sesja wygasła. Odśwież stronę i zaloguj się jeszcze raz.", diff --git a/packages/errors/src/i18n/weblate/locales/pt-BR.json b/packages/errors/src/i18n/weblate/locales/pt-BR.json index 5de7f5149..c4868c221 100644 --- a/packages/errors/src/i18n/weblate/locales/pt-BR.json +++ b/packages/errors/src/i18n/weblate/locales/pt-BR.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "A verificação da comunidade é necessária.", "account.ip_authorization_required": "A autorização de IP é necessária.", "account.locked_suspicious_activity": "Sua conta está bloqueada devido a atividades suspeitas.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Você precisa adicionar um número de telefone para enviar mensagens nesta comunidade.", "account.scheduled_for_deletion": "Esta conta está programada para exclusão.", "account.session_timeout": "A sessão expirou. Atualize a página e entre novamente.", diff --git a/packages/errors/src/i18n/weblate/locales/ro.json b/packages/errors/src/i18n/weblate/locales/ro.json index 54f0a8af9..a9addb562 100644 --- a/packages/errors/src/i18n/weblate/locales/ro.json +++ b/packages/errors/src/i18n/weblate/locales/ro.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Este necesară verificarea comunității.", "account.ip_authorization_required": "Este necesară autorizarea IP.", "account.locked_suspicious_activity": "Contul tău este blocat din cauza activității suspecte.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Trebuie să adaugi un număr de telefon pentru a trimite mesaje în această comunitate.", "account.scheduled_for_deletion": "Acest cont este programat pentru ștergere.", "account.session_timeout": "Sesiunea a expirat. Reîmprospătează pagina și Conectează-te din nou.", diff --git a/packages/errors/src/i18n/weblate/locales/ru.json b/packages/errors/src/i18n/weblate/locales/ru.json index 86d971eca..e888bb90d 100644 --- a/packages/errors/src/i18n/weblate/locales/ru.json +++ b/packages/errors/src/i18n/weblate/locales/ru.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Требуется подтверждение сообщества.", "account.ip_authorization_required": "Требуется авторизация по IP.", "account.locked_suspicious_activity": "Твой аккаунт заблокирован из-за подозрительной активности.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Тебе нужно добавить номер телефона, чтобы отправлять сообщения в этом сообществе.", "account.scheduled_for_deletion": "Для этого аккаунта запланировано удаление.", "account.session_timeout": "Время сессии истекло. Обнови страницу и войди снова.", diff --git a/packages/errors/src/i18n/weblate/locales/sv-SE.json b/packages/errors/src/i18n/weblate/locales/sv-SE.json index 173435c31..61691bfb7 100644 --- a/packages/errors/src/i18n/weblate/locales/sv-SE.json +++ b/packages/errors/src/i18n/weblate/locales/sv-SE.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Community-verifiering är obligatorisk.", "account.ip_authorization_required": "IP-auktorisering är obligatorisk.", "account.locked_suspicious_activity": "Ditt konto är låst på grund av misstänkt aktivitet.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Du måste lägga till ett telefonnummer för att skicka meddelanden i denna community.", "account.scheduled_for_deletion": "Detta konto är schemalagt för radering.", "account.session_timeout": "Sessionen har löpt ut. Uppdatera sidan och logga in igen...", diff --git a/packages/errors/src/i18n/weblate/locales/th.json b/packages/errors/src/i18n/weblate/locales/th.json index 184b6a367..9b77cfc00 100644 --- a/packages/errors/src/i18n/weblate/locales/th.json +++ b/packages/errors/src/i18n/weblate/locales/th.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "ต้องมีการยืนยันคอมมูนิตี้", "account.ip_authorization_required": "ต้องมีการอนุญาต IP", "account.locked_suspicious_activity": "บัญชีของคุณถูกล็อกเนื่องจากกิจกรรมที่น่าสงสัย", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "คุณต้องเพิ่มหมายเลขโทรศัพท์เพื่อส่งข้อความในคอมมูนิตี้นี้", "account.scheduled_for_deletion": "บัญชีนี้มีกำหนดลบ", "account.session_timeout": "เซสชันหมดเวลา กรุณารีเฟรชหน้าใหม่และเข้าสู่ระบบอีกครั้ง", diff --git a/packages/errors/src/i18n/weblate/locales/tr.json b/packages/errors/src/i18n/weblate/locales/tr.json index 1b3f82863..68b603049 100644 --- a/packages/errors/src/i18n/weblate/locales/tr.json +++ b/packages/errors/src/i18n/weblate/locales/tr.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Topluluk doğrulaması gerekli.", "account.ip_authorization_required": "IP yetkilendirmesi gerekli.", "account.locked_suspicious_activity": "Hesabın şüpheli etkinlik nedeniyle kilitlendi.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Bu toplulukta mesaj göndermek için bir telefon numarası eklemen gerekiyor.", "account.scheduled_for_deletion": "Bu hesap silinmek üzere planlandı.", "account.session_timeout": "Oturum zaman aşımına uğradı. Sayfayı yenile ve tekrar giriş yap.", diff --git a/packages/errors/src/i18n/weblate/locales/uk.json b/packages/errors/src/i18n/weblate/locales/uk.json index 57fd0a489..a405b55bc 100644 --- a/packages/errors/src/i18n/weblate/locales/uk.json +++ b/packages/errors/src/i18n/weblate/locales/uk.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Потрібне підтвердження спільноти.", "account.ip_authorization_required": "Потрібне підтвердження IP.", "account.locked_suspicious_activity": "Твій акаунт заблоковано через підозрілу активність.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Щоб надсилати повідомлення в цій спільноті, тобі потрібно додати номер телефону.", "account.scheduled_for_deletion": "Цей акаунт заплановано до видалення.", "account.session_timeout": "Час сесії вичерпано. Онови сторінку та увійди знову.", diff --git a/packages/errors/src/i18n/weblate/locales/vi.json b/packages/errors/src/i18n/weblate/locales/vi.json index 74c1e0d84..ec7b5f947 100644 --- a/packages/errors/src/i18n/weblate/locales/vi.json +++ b/packages/errors/src/i18n/weblate/locales/vi.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Yêu cầu xác minh cộng đồng.", "account.ip_authorization_required": "Yêu cầu ủy quyền IP.", "account.locked_suspicious_activity": "Tài khoản đã bị khóa do hoạt động đáng ngờ.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "Cần thêm số điện thoại để gửi tin nhắn trong cộng đồng này.", "account.scheduled_for_deletion": "Tài khoản này đã được lên lịch để xóa.", "account.session_timeout": "Phiên đã hết thời gian. làm mới trang và đăng nhập lại.", diff --git a/packages/errors/src/i18n/weblate/locales/zh-CN.json b/packages/errors/src/i18n/weblate/locales/zh-CN.json index 3a58e8c36..6c4198be2 100644 --- a/packages/errors/src/i18n/weblate/locales/zh-CN.json +++ b/packages/errors/src/i18n/weblate/locales/zh-CN.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "需要社区验证。", "account.ip_authorization_required": "需要 IP 授权。", "account.locked_suspicious_activity": "你的账号因可疑活动已被锁定。", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "你需要添加手机号才能在此社区发送消息。", "account.scheduled_for_deletion": "此账号已安排删除。", "account.session_timeout": "会话超时。刷新页面后重新登录。", diff --git a/packages/errors/src/i18n/weblate/locales/zh-TW.json b/packages/errors/src/i18n/weblate/locales/zh-TW.json index 800b5c85f..8c890fc96 100644 --- a/packages/errors/src/i18n/weblate/locales/zh-TW.json +++ b/packages/errors/src/i18n/weblate/locales/zh-TW.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "需要社群驗證。", "account.ip_authorization_required": "需要 IP 授權。", "account.locked_suspicious_activity": "你的帳號因可疑活動而鎖定。", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "你需要新增電話號碼才能在這個社群傳送訊息。", "account.scheduled_for_deletion": "這個帳號已排定刪除。", "account.session_timeout": "連線逾時。請重新整理頁面並再次登入。", diff --git a/packages/errors/src/i18n/weblate/messages.json b/packages/errors/src/i18n/weblate/messages.json index cd29f64aa..c0ab3c598 100644 --- a/packages/errors/src/i18n/weblate/messages.json +++ b/packages/errors/src/i18n/weblate/messages.json @@ -6,6 +6,7 @@ "account.guild_verification_required": "Community verification is required.", "account.ip_authorization_required": "IP authorization is required.", "account.locked_suspicious_activity": "Your account is locked due to suspicious activity.", + "account.phone_gate_escape_unavailable": "Setting the phone verification check aside is not available for this account.", "account.phone_required_for_guild": "You need to add a phone number to send messages in this community.", "account.scheduled_for_deletion": "This account is scheduled for deletion.", "account.session_timeout": "Session timed out. Refresh the page and log in again.", diff --git a/packages/schema/src/domains/user/UserResponseSchemas.ts b/packages/schema/src/domains/user/UserResponseSchemas.ts index 8674978e2..deb1d24fb 100644 --- a/packages/schema/src/domains/user/UserResponseSchemas.ts +++ b/packages/schema/src/domains/user/UserResponseSchemas.ts @@ -671,3 +671,20 @@ export const BulkIgnoreFriendRequestsResponse = z.object({ }); export type BulkIgnoreFriendRequestsResponse = z.infer; + +const PhoneGateEscapeGuildResponse = z.object({ + id: SnowflakeStringType.describe('The unique identifier (snowflake) for the community'), + name: z.string().describe('The community name'), +}); + +export const PhoneGateEscapePreviewResponse = z.object({ + available: z.boolean().describe('Whether this account can set the deferred phone verification check aside right now'), + guilds: z + .array(PhoneGateEscapeGuildResponse) + .describe('Communities that trigger the phone check and will be left when the escape runs'), + owned_guilds: z + .array(PhoneGateEscapeGuildResponse) + .describe('Communities that trigger the phone check but are owned by this user, so they are kept'), +}); + +export type PhoneGateEscapePreviewResponse = z.infer;