From 03b2796976b1f7232e5466dfbea83de4171d16c3 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 9 May 2024 20:58:22 +0100 Subject: [PATCH 001/277] lowcase ALT text (#3934) --- src/view/com/composer/GifAltText.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/view/com/composer/GifAltText.tsx b/src/view/com/composer/GifAltText.tsx index b049bbcf71..b1f10bf2fc 100644 --- a/src/view/com/composer/GifAltText.tsx +++ b/src/view/com/composer/GifAltText.tsx @@ -172,7 +172,7 @@ function AltTextInner({ {/* below the text input to force tab order */} - Add ALT text + Add alt text From becc708c610015c510edeac87394b3f77ac4ed06 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 9 May 2024 21:08:56 +0100 Subject: [PATCH 002/277] =?UTF-8?q?[=F0=9F=90=B4]=20Rich=20text=20in=20mes?= =?UTF-8?q?sages=20(#3926)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add facets to message * richtext messages * undo richtexttag changes * whoops, don't redetect facets * dont set color directly * shorten links and filter invalid facets * fix link shortening * pass in underline style --- src/alf/atoms.ts | 18 +++++++++++ src/components/RichText.tsx | 30 ++++++++++++------- src/components/dms/MessageItem.tsx | 20 +++++++++---- src/lib/strings/rich-text-manip.ts | 1 + .../Messages/Conversation/MessagesList.tsx | 26 ++++++++++++++-- 5 files changed, 75 insertions(+), 20 deletions(-) diff --git a/src/alf/atoms.ts b/src/alf/atoms.ts index 45ab72ca61..3e5ddf049b 100644 --- a/src/alf/atoms.ts +++ b/src/alf/atoms.ts @@ -840,4 +840,22 @@ export const atoms = { mr_auto: { marginRight: 'auto', }, + /* + * Pointer events + */ + pointer_events_none: { + pointerEvents: 'none', + }, + pointer_events_auto: { + pointerEvents: 'auto', + }, + /* + * Text decoration + */ + underline: { + textDecorationLine: 'underline', + }, + strike_through: { + textDecorationLine: 'line-through', + }, } as const diff --git a/src/components/RichText.tsx b/src/components/RichText.tsx index 0d49e7130d..ed69c199ad 100644 --- a/src/components/RichText.tsx +++ b/src/components/RichText.tsx @@ -1,4 +1,5 @@ import React from 'react' +import {TextStyle} from 'react-native' import {AppBskyRichtextFacet, RichText as RichTextAPI} from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -26,6 +27,7 @@ export function RichText({ enableTags = false, authorHandle, onLinkPress, + interactiveStyle, }: TextStyleProp & Pick & { value: RichTextAPI | string @@ -35,13 +37,22 @@ export function RichText({ enableTags?: boolean authorHandle?: string onLinkPress?: LinkProps['onPress'] + interactiveStyle?: TextStyle }) { const richText = React.useMemo( () => value instanceof RichTextAPI ? value : new RichTextAPI({text: value}), [value], ) - const styles = [a.leading_snug, flatten(style)] + + const flattenedStyle = flatten(style) + const plainStyles = [a.leading_snug, flattenedStyle] + const interactiveStyles = [ + a.leading_snug, + a.pointer_events_auto, + flatten(interactiveStyle), + flattenedStyle, + ] const {text, facets} = richText @@ -67,7 +78,7 @@ export function RichText({ @@ -93,7 +104,7 @@ export function RichText({ @@ -110,7 +121,7 @@ export function RichText({ selectable={selectable} key={key} to={link.uri} - style={[...styles, {pointerEvents: 'auto'}]} + style={interactiveStyles} // @ts-ignore TODO dataSet={WORD_WRAP} shareOnLongPress @@ -130,7 +141,7 @@ export function RichText({ key={key} text={segment.text} tag={tag.tag} - style={styles} + style={interactiveStyles} selectable={selectable} authorHandle={authorHandle} />, @@ -145,7 +156,7 @@ export function RichText({ @@ -219,19 +230,16 @@ function RichTextTag({ onFocus={onFocus} onBlur={onBlur} style={[ - style, - { - pointerEvents: 'auto', - color: t.palette.primary_500, - }, web({ cursor: 'pointer', }), + {color: t.palette.primary_500}, (hovered || focused || pressed) && { ...web({outline: 0}), textDecorationLine: 'underline', textDecorationColor: t.palette.primary_500, }, + style, ]}> {text} diff --git a/src/components/dms/MessageItem.tsx b/src/components/dms/MessageItem.tsx index f8f5197ca4..e9128c5a07 100644 --- a/src/components/dms/MessageItem.tsx +++ b/src/components/dms/MessageItem.tsx @@ -1,5 +1,6 @@ import React, {useCallback, useMemo, useRef} from 'react' import {LayoutAnimation, StyleProp, TextStyle, View} from 'react-native' +import {RichText as RichTextAPI} from '@atproto/api' import {ChatBskyConvoDefs} from '@atproto-labs/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -9,8 +10,9 @@ import {TimeElapsed} from 'view/com/util/TimeElapsed' import {atoms as a, useTheme} from '#/alf' import {ActionsWrapper} from '#/components/dms/ActionsWrapper' import {Text} from '#/components/Typography' +import {RichText} from '../RichText' -export let MessageItem = ({ +let MessageItem = ({ item, next, pending, @@ -65,6 +67,10 @@ export let MessageItem = ({ const pendingColor = t.name === 'light' ? t.palette.primary_200 : t.palette.primary_800 + const rt = useMemo(() => { + return new RichTextAPI({text: item.text, facets: item.facets}) + }, [item.text, item.facets]) + return ( @@ -87,15 +93,17 @@ export let MessageItem = ({ ? {borderBottomRightRadius: isLastInGroup ? 2 : 17} : {borderBottomLeftRadius: isLastInGroup ? 2 : 17}, ]}> - - {item.text} - + ]} + interactiveStyle={a.underline} + enableTags + /> ) } - MessageItem = React.memo(MessageItem) +export {MessageItem} let MessageItemMetadata = ({ message, diff --git a/src/lib/strings/rich-text-manip.ts b/src/lib/strings/rich-text-manip.ts index d9cd8c0714..508e0772e0 100644 --- a/src/lib/strings/rich-text-manip.ts +++ b/src/lib/strings/rich-text-manip.ts @@ -1,4 +1,5 @@ import {RichText, UnicodeString} from '@atproto/api' + import {toShortUrl} from './url-helpers' export function shortenLinks(rt: RichText): RichText { diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index 1b07f88775..0b8ab5249e 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -7,12 +7,15 @@ import { import {runOnJS, useSharedValue} from 'react-native-reanimated' import {ReanimatedScrollEvent} from 'react-native-reanimated/lib/typescript/reanimated2/hook/commonTypes' import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {AppBskyRichtextFacet, RichText} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {shortenLinks} from '#/lib/strings/rich-text-manip' import {isIOS} from '#/platform/detection' import {useConvo} from '#/state/messages/convo' import {ConvoItem, ConvoStatus} from '#/state/messages/convo/types' +import {useAgent} from '#/state/session' import {ScrollProvider} from 'lib/ScrollContext' import {isWeb} from 'platform/detection' import {List} from 'view/com/util/List' @@ -87,6 +90,7 @@ function onScrollToIndexFailed() { export function MessagesList() { const convo = useConvo() + const {getAgent} = useAgent() const flatListRef = useRef(null) // We need to keep track of when the scroll offset is at the bottom of the list to know when to scroll as new items @@ -159,14 +163,30 @@ export function MessagesList() { }, [convo, hasInitiallyScrolled]) const onSendMessage = useCallback( - (text: string) => { + async (text: string) => { + let rt = new RichText({text}, {cleanNewlines: true}) + await rt.detectFacets(getAgent()) + rt = shortenLinks(rt) + + // filter out any mention facets that didn't map to a user + rt.facets = rt.facets?.filter(facet => { + const mention = facet.features.find(feature => + AppBskyRichtextFacet.isMention(feature), + ) + if (mention && !mention.did) { + return false + } + return true + }) + if (convo.status === ConvoStatus.Ready) { convo.sendMessage({ - text, + text: rt.text, + facets: rt.facets, }) } }, - [convo], + [convo, getAgent], ) const onScroll = React.useCallback( From 55fdbc7399c601a8867ae2517165a16083cef000 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 9 May 2024 16:31:36 -0500 Subject: [PATCH 003/277] Add retries to all handlers (#3935) --- src/state/messages/convo/agent.ts | 122 ++++++++++++++++------------- src/state/messages/events/agent.ts | 41 +++++----- 2 files changed, 90 insertions(+), 73 deletions(-) diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index a852934941..25e138fb76 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -7,6 +7,7 @@ import { } from '@atproto-labs/api' import {nanoid} from 'nanoid/non-secure' +import {networkRetry} from '#/lib/async/retry' import {logger} from '#/logger' import {isNative} from '#/platform/detection' import { @@ -459,16 +460,18 @@ export class Convo { recipients: AppBskyActorDefs.ProfileViewBasic[] }>(async (resolve, reject) => { try { - const response = await this.agent.api.chat.bsky.convo.getConvo( - { - convoId: this.convoId, - }, - { - headers: { - Authorization: this.__tempFromUserDid, + const response = await networkRetry(2, () => { + return this.agent.api.chat.bsky.convo.getConvo( + { + convoId: this.convoId, }, - }, - ) + { + headers: { + Authorization: this.__tempFromUserDid, + }, + }, + ) + }) const convo = response.data.convo @@ -544,18 +547,21 @@ export class Convo { // throw new Error('UNCOMMENT TO TEST RETRY') } - const response = await this.agent.api.chat.bsky.convo.getMessages( - { - cursor: this.oldestRev, - convoId: this.convoId, - limit: isNative ? 25 : 50, - }, - { - headers: { - Authorization: this.__tempFromUserDid, + const nextCursor = this.oldestRev // for TS + const response = await networkRetry(2, () => { + return this.agent.api.chat.bsky.convo.getMessages( + { + cursor: nextCursor, + convoId: this.convoId, + limit: isNative ? 40 : 60, }, - }, - ) + { + headers: { + Authorization: this.__tempFromUserDid, + }, + }, + ) + }) const {cursor, messages} = response.data this.oldestRev = cursor ?? null @@ -736,18 +742,20 @@ export class Convo { // throw new Error('UNCOMMENT TO TEST RETRY') const {id, message} = pendingMessage - const response = await this.agent.api.chat.bsky.convo.sendMessage( - { - convoId: this.convoId, - message, - }, - { - encoding: 'application/json', - headers: { - Authorization: this.__tempFromUserDid, + const response = await networkRetry(2, () => { + return this.agent.api.chat.bsky.convo.sendMessage( + { + convoId: this.convoId, + message, }, - }, - ) + { + encoding: 'application/json', + headers: { + Authorization: this.__tempFromUserDid, + }, + }, + ) + }) const res = response.data /* @@ -786,20 +794,22 @@ export class Convo { try { const messageArray = Array.from(this.pendingMessages.values()) - const {data} = await this.agent.api.chat.bsky.convo.sendMessageBatch( - { - items: messageArray.map(({message}) => ({ - convoId: this.convoId, - message, - })), - }, - { - encoding: 'application/json', - headers: { - Authorization: this.__tempFromUserDid, + const {data} = await networkRetry(2, () => { + return this.agent.api.chat.bsky.convo.sendMessageBatch( + { + items: messageArray.map(({message}) => ({ + convoId: this.convoId, + message, + })), }, - }, - ) + { + encoding: 'application/json', + headers: { + Authorization: this.__tempFromUserDid, + }, + }, + ) + }) const {items} = data /* @@ -838,18 +848,20 @@ export class Convo { this.commit() try { - await this.agent.api.chat.bsky.convo.deleteMessageForSelf( - { - convoId: this.convoId, - messageId, - }, - { - encoding: 'application/json', - headers: { - Authorization: this.__tempFromUserDid, + await networkRetry(2, () => { + return this.agent.api.chat.bsky.convo.deleteMessageForSelf( + { + convoId: this.convoId, + messageId, }, - }, - ) + { + encoding: 'application/json', + headers: { + Authorization: this.__tempFromUserDid, + }, + }, + ) + }) } catch (e) { this.deletedMessages.delete(messageId) this.commit() diff --git a/src/state/messages/events/agent.ts b/src/state/messages/events/agent.ts index eea61a61b7..061337d3b8 100644 --- a/src/state/messages/events/agent.ts +++ b/src/state/messages/events/agent.ts @@ -2,6 +2,7 @@ import {BskyAgent, ChatBskyConvoGetLog} from '@atproto-labs/api' import EventEmitter from 'eventemitter3' import {nanoid} from 'nanoid/non-secure' +import {networkRetry} from '#/lib/async/retry' import {logger} from '#/logger' import {DEFAULT_POLL_INTERVAL} from '#/state/messages/events/const' import { @@ -265,16 +266,18 @@ export class MessagesEventBus { logger.debug(`${LOGGER_CONTEXT}: init`, {}, logger.DebugContext.convo) try { - const response = await this.agent.api.chat.bsky.convo.listConvos( - { - limit: 1, - }, - { - headers: { - Authorization: this.__tempFromUserDid, + const response = await networkRetry(2, () => { + return this.agent.api.chat.bsky.convo.listConvos( + { + limit: 1, }, - }, - ) + { + headers: { + Authorization: this.__tempFromUserDid, + }, + }, + ) + }) // throw new Error('UNCOMMENT TO TEST INIT FAILURE') const {convos} = response.data @@ -358,16 +361,18 @@ export class MessagesEventBus { // ) try { - const response = await this.agent.api.chat.bsky.convo.getLog( - { - cursor: this.latestRev, - }, - { - headers: { - Authorization: this.__tempFromUserDid, + const response = await networkRetry(2, () => { + return this.agent.api.chat.bsky.convo.getLog( + { + cursor: this.latestRev, }, - }, - ) + { + headers: { + Authorization: this.__tempFromUserDid, + }, + }, + ) + }) // throw new Error('UNCOMMENT TO TEST POLL FAILURE') From 6e172b6ce359e88b0be3648c9ca92841fd90740d Mon Sep 17 00:00:00 2001 From: dan Date: Fri, 10 May 2024 00:05:44 +0100 Subject: [PATCH 004/277] [Session] Restore emailAuthFactor and emailConfirmed from last session (#3939) --- src/state/session/agent.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/state/session/agent.ts b/src/state/session/agent.ts index 9dacf543e3..024f6e7d12 100644 --- a/src/state/session/agent.ts +++ b/src/state/session/agent.ts @@ -1,5 +1,4 @@ -import {BskyAgent} from '@atproto/api' -import {AtpSessionEvent} from '@atproto-labs/api' +import {AtpSessionData, AtpSessionEvent, BskyAgent} from '@atproto/api' import {networkRetry} from '#/lib/async/retry' import {PUBLIC_BSKY_SERVICE} from '#/lib/constants' @@ -32,11 +31,15 @@ export async function createAgentAndResume( } const gates = tryFetchGates(storedAccount.did, 'prefer-low-latency') const moderation = configureModerationForAccount(agent, storedAccount) - const prevSession = { + const prevSession: AtpSessionData = { + // Sorted in the same property order as when returned by BskyAgent (alphabetical). accessJwt: storedAccount.accessJwt ?? '', - refreshJwt: storedAccount.refreshJwt ?? '', did: storedAccount.did, + email: storedAccount.email, + emailAuthFactor: storedAccount.emailAuthFactor, + emailConfirmed: storedAccount.emailConfirmed, handle: storedAccount.handle, + refreshJwt: storedAccount.refreshJwt ?? '', } if (isSessionExpired(storedAccount)) { await networkRetry(1, () => agent.resumeSession(prevSession)) From 1821a992abd1ff55a5af60f18b8af7e01af8bc77 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 9 May 2024 17:29:25 -0700 Subject: [PATCH 005/277] Use build arg in docker action to correctly pass git commit SHA (#3940) * use env variables through docker args * remove quotes * use an output instead * try that again * write the variables to .env * rm unused * use short sha * remove test branch --- .github/workflows/build-and-push-bskyweb-aws.yaml | 9 ++++++--- Dockerfile | 9 ++++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-and-push-bskyweb-aws.yaml b/.github/workflows/build-and-push-bskyweb-aws.yaml index c445ca2d52..6eb9485b14 100644 --- a/.github/workflows/build-and-push-bskyweb-aws.yaml +++ b/.github/workflows/build-and-push-bskyweb-aws.yaml @@ -43,6 +43,10 @@ jobs: tags: | type=sha,enable=true,priority=100,prefix=,suffix=,format=long + - name: Set outputs + id: vars + run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + - name: Build and push Docker image id: build-and-push uses: docker/build-push-action@v4 @@ -54,6 +58,5 @@ jobs: labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max - env: - EXPO_PUBLIC_BUNDLE_IDENTIFIER: $(git rev-parse --short HEAD) - EXPO_PUBLIC_BUNDLE_DATE: $(date -u +"%y%m%d%H") + build-args: | + EXPO_PUBLIC_BUNDLE_IDENTIFIER=${{ steps.vars.outputs.sha_short }} diff --git a/Dockerfile b/Dockerfile index 568cbf7b41..74106fd7f6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,10 @@ ENV GOARCH="amd64" ENV CGO_ENABLED=1 ENV GOEXPERIMENT="loopvar" +# Expo +ARG EXPO_PUBLIC_BUNDLE_IDENTIFIER +ENV EXPO_PUBLIC_BUNDLE_IDENTIFIER ${EXPO_PUBLIC_BUNDLE_IDENTIFIER:-dev} + COPY . . # @@ -29,10 +33,13 @@ RUN mkdir --parents $NVM_DIR && \ RUN \. "$NVM_DIR/nvm.sh" && \ nvm install $NODE_VERSION && \ nvm use $NODE_VERSION && \ + echo "Using bundle identifier: $EXPO_PUBLIC_BUNDLE_IDENTIFIER" && \ + echo "EXPO_PUBLIC_BUNDLE_IDENTIFIER=$EXPO_PUBLIC_BUNDLE_IDENTIFIER" >> .env && \ + echo "EXPO_PUBLIC_BUNDLE_DATE=$(date -u +"%y%m%d%H")" >> .env && \ npm install --global yarn && \ yarn && \ yarn intl:build && \ - yarn build-web + EXPO_PUBLIC_BUNDLE_IDENTIFIER=$EXPO_PUBLIC_BUNDLE_IDENTIFIER EXPO_PUBLIC_BUNDLE_DATE=$() yarn build-web # DEBUG RUN find ./bskyweb/static && find ./web-build/static From 195c9f10456a988a7b09369e41c8a8cf6c94431f Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 10 May 2024 08:23:37 -0500 Subject: [PATCH 006/277] =?UTF-8?q?[=F0=9F=90=B4]=20Handle=20errors,=20imp?= =?UTF-8?q?rove=20styling=20(#3937)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Handle errors, improve styling * Remove old UI --- .../Conversation/MessageListError.tsx | 58 +++++++++------ .../Messages/Conversation/MessagesList.tsx | 24 ------- src/state/messages/convo/agent.ts | 70 ++++++++++++------- src/state/messages/convo/types.ts | 22 ++++-- 4 files changed, 96 insertions(+), 78 deletions(-) diff --git a/src/screens/Messages/Conversation/MessageListError.tsx b/src/screens/Messages/Conversation/MessageListError.tsx index 5f5df4fc93..38a63b0f12 100644 --- a/src/screens/Messages/Conversation/MessageListError.tsx +++ b/src/screens/Messages/Conversation/MessageListError.tsx @@ -5,8 +5,9 @@ import {useLingui} from '@lingui/react' import {ConvoItem, ConvoItemError} from '#/state/messages/convo/types' import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Refresh} from '#/components/icons/ArrowRotateCounterClockwise' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' -import {InlineLinkText} from '#/components/Link' import {Text} from '#/components/Typography' export function MessageListError({ @@ -21,39 +22,52 @@ export function MessageListError({ [ConvoItemError.Network]: _( msg`There was an issue connecting to the chat.`, ), - [ConvoItemError.HistoryFailed]: _(msg`Failed to load past messages.`), - [ConvoItemError.PollFailed]: _( + [ConvoItemError.FirehoseFailed]: _( msg`This chat was disconnected due to a network error.`, ), + [ConvoItemError.HistoryFailed]: _(msg`Failed to load past messages.`), + [ConvoItemError.PendingFailed]: _(msg`Failed to send message(s).`), }[item.code] }, [_, item.code]) return ( - + - - - {message}{' '} - { - e.preventDefault() - item.retry() - return false - }}> - {_(msg`Retry.`)} - - + + + + {message} + + + + ) diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index 0b8ab5249e..f99a41b7f1 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -8,8 +8,6 @@ import {runOnJS, useSharedValue} from 'react-native-reanimated' import {ReanimatedScrollEvent} from 'react-native-reanimated/lib/typescript/reanimated2/hook/commonTypes' import {useSafeAreaInsets} from 'react-native-safe-area-context' import {AppBskyRichtextFacet, RichText} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {shortenLinks} from '#/lib/strings/rich-text-manip' import {isIOS} from '#/platform/detection' @@ -22,7 +20,6 @@ import {List} from 'view/com/util/List' import {MessageInput} from '#/screens/Messages/Conversation/MessageInput' import {MessageListError} from '#/screens/Messages/Conversation/MessageListError' import {atoms as a, useBreakpoints} from '#/alf' -import {Button, ButtonText} from '#/components/Button' import {MessageItem} from '#/components/dms/MessageItem' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' @@ -41,25 +38,6 @@ function MaybeLoader({isLoading}: {isLoading: boolean}) { ) } -function RetryButton({onPress}: {onPress: () => unknown}) { - const {_} = useLingui() - - return ( - - - - ) -} - function renderItem({item}: {item: ConvoItem}) { if (item.type === 'message' || item.type === 'pending-message') { return ( @@ -71,8 +49,6 @@ function renderItem({item}: {item: ConvoItem}) { ) } else if (item.type === 'deleted-message') { return Deleted message - } else if (item.type === 'pending-retry') { - return } else if (item.type === 'error-recoverable') { return } diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index 25e138fb76..12e24577e7 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -401,7 +401,7 @@ export class Convo { // throw new Error('UNCOMMENT TO TEST INIT FAILURE') this.dispatch({event: ConvoDispatchEvent.Ready}) } catch (e: any) { - logger.error('Convo: setup() failed') + logger.error(e, {context: 'Convo: setup failed'}) this.dispatch({ event: ConvoDispatchEvent.Error, @@ -413,6 +413,7 @@ export class Convo { }, }, }) + this.commit() } } @@ -500,7 +501,7 @@ export class Convo { this.sender = sender || this.sender this.recipients = recipients || this.recipients } catch (e: any) { - logger.error(`Convo: failed to refresh convo`) + logger.error(e, {context: `Convo: failed to refresh convo`}) this.footerItems.set(ConvoItemError.Network, { type: 'error-recoverable', @@ -601,17 +602,17 @@ export class Convo { } onFirehoseConnect() { - this.footerItems.delete(ConvoItemError.PollFailed) + this.footerItems.delete(ConvoItemError.FirehoseFailed) this.commit() } onFirehoseError(error?: MessagesEventBusError) { - this.footerItems.set(ConvoItemError.PollFailed, { + this.footerItems.set(ConvoItemError.FirehoseFailed, { type: 'error-recoverable', - key: ConvoItemError.PollFailed, - code: ConvoItemError.PollFailed, + key: ConvoItemError.FirehoseFailed, + code: ConvoItemError.FirehoseFailed, retry: () => { - this.footerItems.delete(ConvoItemError.PollFailed) + this.footerItems.delete(ConvoItemError.FirehoseFailed) this.commit() error?.retry() }, @@ -772,13 +773,21 @@ export class Convo { await this.processPendingMessages() this.commit() - } catch (e) { - this.footerItems.set('pending-retry', { - type: 'pending-retry', - key: 'pending-retry', - retry: this.batchRetryPendingMessages.bind(this), + } catch (e: any) { + logger.error(e, {context: `Convo: failed to send message`}) + this.footerItems.set(ConvoItemError.PendingFailed, { + type: 'error-recoverable', + key: ConvoItemError.PendingFailed, + code: ConvoItemError.PendingFailed, + retry: () => { + this.footerItems.delete(ConvoItemError.PendingFailed) + this.commit() + this.batchRetryPendingMessages() + }, }) this.commit() + } finally { + this.isProcessingPendingMessages = false } } @@ -789,10 +798,8 @@ export class Convo { logger.DebugContext.convo, ) - this.footerItems.delete('pending-retry') - this.commit() - try { + // throw new Error('UNCOMMENT TO TEST RETRY') const messageArray = Array.from(this.pendingMessages.values()) const {data} = await networkRetry(2, () => { return this.agent.api.chat.bsky.convo.sendMessageBatch( @@ -831,11 +838,23 @@ export class Convo { } this.commit() - } catch (e) { - this.footerItems.set('pending-retry', { - type: 'pending-retry', - key: 'pending-retry', - retry: this.batchRetryPendingMessages.bind(this), + + logger.debug( + `Convo: sent ${this.pendingMessages.size} pending messages`, + {}, + logger.DebugContext.convo, + ) + } catch (e: any) { + logger.error(e, {context: `Convo: failed to batch retry messages`}) + this.footerItems.set(ConvoItemError.PendingFailed, { + type: 'error-recoverable', + key: ConvoItemError.PendingFailed, + code: ConvoItemError.PendingFailed, + retry: () => { + this.footerItems.delete(ConvoItemError.PendingFailed) + this.commit() + this.batchRetryPendingMessages() + }, }) this.commit() } @@ -862,7 +881,8 @@ export class Convo { }, ) }) - } catch (e) { + } catch (e: any) { + logger.error(e, {context: `Convo: failed to delete message`}) this.deletedMessages.delete(messageId) this.commit() throw e @@ -875,10 +895,6 @@ export class Convo { getItems(): ConvoItem[] { const items: ConvoItem[] = [] - this.headerItems.forEach(item => { - items.push(item) - }) - this.pastMessages.forEach(m => { if (ChatBskyConvoDefs.isMessageView(m)) { items.unshift({ @@ -897,6 +913,10 @@ export class Convo { } }) + this.headerItems.forEach(item => { + items.unshift(item) + }) + this.newMessages.forEach(m => { if (ChatBskyConvoDefs.isMessageView(m)) { items.push({ diff --git a/src/state/messages/convo/types.ts b/src/state/messages/convo/types.ts index 2ed2eeaff2..920635c8c2 100644 --- a/src/state/messages/convo/types.ts +++ b/src/state/messages/convo/types.ts @@ -24,9 +24,22 @@ export enum ConvoStatus { } export enum ConvoItemError { - HistoryFailed = 'historyFailed', - PollFailed = 'pollFailed', + /** + * Generic error + */ Network = 'network', + /** + * Error connecting to event firehose + */ + FirehoseFailed = 'firehoseFailed', + /** + * Error fetching past messages + */ + HistoryFailed = 'historyFailed', + /** + * Error sending new message + */ + PendingFailed = 'pendingFailed', } export enum ConvoErrorCode { @@ -88,11 +101,6 @@ export type ConvoItem = | ChatBskyConvoDefs.DeletedMessageView | null } - | { - type: 'pending-retry' - key: string - retry: () => void - } | { type: 'error-recoverable' key: string From 1a90426026aa4fc851f61044d27fa0c1febdb715 Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 10 May 2024 07:49:08 -0700 Subject: [PATCH 007/277] =?UTF-8?q?[=F0=9F=90=B4]=20Remove=20extra=20spinn?= =?UTF-8?q?er=20states=20from=20chat=20screen=20(#3947)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * remove extra loading states from chat * nits * fix scrolling animation to bottom * nit * move spinner to top --- .../Messages/Conversation/MessagesList.tsx | 26 +++--- src/screens/Messages/Conversation/index.tsx | 83 ++++++++++++++----- src/state/messages/convo/agent.ts | 2 +- 3 files changed, 79 insertions(+), 32 deletions(-) diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index f99a41b7f1..a92f3d50aa 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -10,7 +10,7 @@ import {useSafeAreaInsets} from 'react-native-safe-area-context' import {AppBskyRichtextFacet, RichText} from '@atproto/api' import {shortenLinks} from '#/lib/strings/rich-text-manip' -import {isIOS} from '#/platform/detection' +import {isIOS, isNative} from '#/platform/detection' import {useConvo} from '#/state/messages/convo' import {ConvoItem, ConvoStatus} from '#/state/messages/convo/types' import {useAgent} from '#/state/session' @@ -85,7 +85,7 @@ export function MessagesList() { // Instead, we use `onMomentumScrollEnd` and this value to determine if we need to start scrolling or not. const isMomentumScrolling = useSharedValue(false) - const [hasInitiallyScrolled, setHasInitiallyScrolled] = React.useState(false) + const hasInitiallyScrolled = useSharedValue(false) // Every time the content size changes, that means one of two things is happening: // 1. New messages are being added from the log or from a message you have sent @@ -101,7 +101,7 @@ export function MessagesList() { (_: number, height: number) => { // Because web does not have `maintainVisibleContentPosition` support, we will need to manually scroll to the // previous offset whenever we add new content to the previous offset whenever we add new content to the list. - if (isWeb && isAtTop.value && hasInitiallyScrolled) { + if (isWeb && isAtTop.value && hasInitiallyScrolled.value) { flatListRef.current?.scrollToOffset({ animated: false, offset: height - contentHeight.value, @@ -116,7 +116,7 @@ export function MessagesList() { } flatListRef.current?.scrollToOffset({ - animated: hasInitiallyScrolled, + animated: hasInitiallyScrolled.value, offset: height, }) isMomentumScrolling.value = true @@ -133,7 +133,7 @@ export function MessagesList() { // The check for `hasInitiallyScrolled` prevents an initial fetch on mount. FlatList triggers `onStartReached` // immediately on mount, since we are in fact at an offset of zero, so we have to ignore those initial calls. const onStartReached = useCallback(() => { - if (convo.status === ConvoStatus.Ready && hasInitiallyScrolled) { + if (convo.status === ConvoStatus.Ready && hasInitiallyScrolled.value) { convo.fetchMessageHistory() } }, [convo, hasInitiallyScrolled]) @@ -178,8 +178,8 @@ export function MessagesList() { // This number _must_ be the height of the MaybeLoader component. // We don't check for zero, because the `MaybeLoader` component is always present, even when not visible, which // adds a 50 pixel offset. - if (contentHeight.value > 50 && !hasInitiallyScrolled) { - runOnJS(setHasInitiallyScrolled)(true) + if (contentHeight.value > 50 && !hasInitiallyScrolled.value) { + hasInitiallyScrolled.value = true } }, [contentHeight.value, hasInitiallyScrolled, isAtBottom, isAtTop], @@ -228,17 +228,20 @@ export function MessagesList() { data={convo.items} renderItem={renderItem} keyExtractor={keyExtractor} + containWeb={true} + contentContainerStyle={{ + paddingHorizontal: 10, + }} disableVirtualization={true} - initialNumToRender={isWeb ? 50 : 25} - maxToRenderPerBatch={isWeb ? 50 : 25} + initialNumToRender={isNative ? 30 : 60} + maxToRenderPerBatch={isWeb ? 30 : 60} keyboardDismissMode="on-drag" keyboardShouldPersistTaps="handled" maintainVisibleContentPosition={{ minIndexForVisible: 1, }} - containWeb={true} - contentContainerStyle={{paddingHorizontal: 10}} removeClippedSubviews={false} + sideBorders={false} onContentSizeChange={onContentSizeChange} onStartReached={onStartReached} onScrollToIndexFailed={onScrollToIndexFailed} @@ -246,7 +249,6 @@ export function MessagesList() { ListHeaderComponent={ } - sideBorders={false} /> diff --git a/src/screens/Messages/Conversation/index.tsx b/src/screens/Messages/Conversation/index.tsx index af9064cc30..4c8cfe7ed9 100644 --- a/src/screens/Messages/Conversation/index.tsx +++ b/src/screens/Messages/Conversation/index.tsx @@ -22,6 +22,7 @@ import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {ConvoMenu} from '#/components/dms/ConvoMenu' import {Error} from '#/components/Error' import {ListMaybePlaceholder} from '#/components/Lists' +import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' import {ClipClopGate} from '../gate' @@ -53,20 +54,27 @@ export function MessagesConversationScreen({route}: Props) { } function Inner() { + const t = useTheme() const convo = useConvo() const {_} = useLingui() - if ( - convo.status === ConvoStatus.Uninitialized || - convo.status === ConvoStatus.Initializing - ) { - return ( - -
- - - ) - } + const [hasInitiallyRendered, setHasInitiallyRendered] = React.useState(false) + + // HACK: Because we need to scroll to the bottom of the list once initial items are added to the list, we also have + // to take into account that scrolling to the end of the list on native will happen asynchronously. This will cause + // a little flicker when the items are first renedered at the top and immediately scrolled to the bottom. to prevent + // this, we will wait until the first render has completed to remove the loading overlay. + React.useEffect(() => { + if ( + !hasInitiallyRendered && + convo.status === ConvoStatus.Ready && + !convo.isFetchingHistory + ) { + setTimeout(() => { + setHasInitiallyRendered(true) + }, 15) + } + }, [convo.isFetchingHistory, convo.items, convo.status, hasInitiallyRendered]) if (convo.status === ConvoStatus.Error) { return ( @@ -88,8 +96,30 @@ function Inner() { return ( -
- +
+ + {convo.status !== ConvoStatus.Ready ? ( + + ) : ( + + )} + {!hasInitiallyRendered && ( + + + + + + )} + ) @@ -128,7 +158,8 @@ let Header = ({ a.justify_between, a.align_start, a.gap_lg, - a.px_lg, + a.pl_xl, + a.pr_lg, a.py_sm, ]}> {!gtTablet ? ( @@ -154,12 +185,19 @@ let Header = ({ )} {profile ? ( - <> + - + {profile.displayName} - + + @{profile.handle} + + ) : ( <> + diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index 12e24577e7..6801def751 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -554,7 +554,7 @@ export class Convo { { cursor: nextCursor, convoId: this.convoId, - limit: isNative ? 40 : 60, + limit: isNative ? 30 : 60, }, { headers: { From e729647c022feccc647e18c01a9d59af97e57f40 Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 10 May 2024 08:09:00 -0700 Subject: [PATCH 008/277] =?UTF-8?q?[=F0=9F=90=B4]=20Adjust=20messages=20li?= =?UTF-8?q?st=20styles=20(#3945)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * some initial tweaks * tweaks * more tweaks * tweak chat header * properly align placeholders * tweak web header * one more... * remove extra loading states from chat * limit line count for display name * Tweaks styles (#3949) * Adjust sizing * Consistent font size * Adjust header * oops * fix accessibility in list * don't use `identifier` for notifications, use `dates` instead --------- Co-authored-by: Eric Bailey --- src/lib/hooks/useNotificationHandler.ts | 6 +- src/screens/Messages/Conversation/index.tsx | 8 +- src/screens/Messages/List/index.tsx | 219 ++++++++++++-------- 3 files changed, 133 insertions(+), 100 deletions(-) diff --git a/src/lib/hooks/useNotificationHandler.ts b/src/lib/hooks/useNotificationHandler.ts index 12e1505725..3240a4854a 100644 --- a/src/lib/hooks/useNotificationHandler.ts +++ b/src/lib/hooks/useNotificationHandler.ts @@ -58,7 +58,7 @@ export function useNotificationsHandler() { const closeAllActiveElements = useCloseAllActiveElements() // Safety to prevent double handling of the same notification - const prevIdentifier = React.useRef('') + const prevDate = React.useRef(0) React.useEffect(() => { const handleNotification = (payload?: NotificationPayload) => { @@ -161,10 +161,10 @@ export function useNotificationsHandler() { const responseReceivedListener = Notifications.addNotificationResponseReceivedListener(e => { - if (e.notification.request.identifier === prevIdentifier.current) { + if (e.notification.date === prevDate.current) { return } - prevIdentifier.current = e.notification.request.identifier + prevDate.current = e.notification.date logger.debug( 'Notifications: response received', diff --git a/src/screens/Messages/Conversation/index.tsx b/src/screens/Messages/Conversation/index.tsx index 4c8cfe7ed9..686a0f5d4d 100644 --- a/src/screens/Messages/Conversation/index.tsx +++ b/src/screens/Messages/Conversation/index.tsx @@ -160,7 +160,7 @@ let Header = ({ a.gap_lg, a.pl_xl, a.pr_lg, - a.py_sm, + a.py_md, ]}> {!gtTablet ? ( {profile.displayName} - + @{profile.handle} diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index 6c07073a8c..55d65a8884 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -1,5 +1,3 @@ -/* eslint-disable react/prop-types */ - import React, {useCallback, useMemo, useState} from 'react' import {View} from 'react-native' import {ChatBskyConvoDefs} from '@atproto-labs/api' @@ -40,6 +38,21 @@ import {ClipClopGate} from '../gate' import {useDmServiceUrlStorage} from '../Temp/useDmServiceUrlStorage' type Props = NativeStackScreenProps + +function renderItem({ + item, + index, +}: { + item: ChatBskyConvoDefs.ConvoView + index: number +}) { + return +} + +function keyExtractor(item: ChatBskyConvoDefs.ConvoView) { + return item.id +} + export function MessagesScreen({navigation, route}: Props) { const {_} = useLingui() const t = useTheme() @@ -135,13 +148,6 @@ export function MessagesScreen({navigation, route}: Props) { navigation.navigate('MessagesSettings') }, [navigation]) - const renderItem = useCallback( - ({item}: {item: ChatBskyConvoDefs.ConvoView}) => { - return - }, - [], - ) - const gate = useGate() if (!gate('dms')) return @@ -213,7 +219,7 @@ export function MessagesScreen({navigation, route}: Props) { )} @@ -221,7 +227,7 @@ export function MessagesScreen({navigation, route}: Props) { item.id} + keyExtractor={keyExtractor} refreshing={isPTRing} onRefresh={onRefresh} onEndReached={onEndReached} @@ -249,7 +255,13 @@ export function MessagesScreen({navigation, route}: Props) { ) } -function ChatListItem({convo}: {convo: ChatBskyConvoDefs.ConvoView}) { +function ChatListItem({ + convo, + index, +}: { + convo: ChatBskyConvoDefs.ConvoView + index: number +}) { const t = useTheme() const {_} = useLingui() const {currentAccount} = useSession() @@ -301,95 +313,120 @@ function ChatListItem({convo}: {convo: ChatBskyConvoDefs.ConvoView}) { } return ( - + )} + + ) } @@ -412,8 +449,6 @@ function DesktopHeader({ Date: Fri, 10 May 2024 08:24:29 -0700 Subject: [PATCH 009/277] =?UTF-8?q?[=F0=9F=90=B4]=20Move=20`KeyboardAvoidi?= =?UTF-8?q?ngView`=20up=20to=20the=20main=20screen=20(#3953)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Messages/Conversation/MessagesList.tsx | 21 ++---- src/screens/Messages/Conversation/index.tsx | 65 +++++++++++-------- 2 files changed, 42 insertions(+), 44 deletions(-) diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index a92f3d50aa..5ba82eeff9 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -1,16 +1,12 @@ import React, {useCallback, useRef} from 'react' import {FlatList, View} from 'react-native' -import { - KeyboardAvoidingView, - useKeyboardHandler, -} from 'react-native-keyboard-controller' +import {useKeyboardHandler} from 'react-native-keyboard-controller' import {runOnJS, useSharedValue} from 'react-native-reanimated' import {ReanimatedScrollEvent} from 'react-native-reanimated/lib/typescript/reanimated2/hook/commonTypes' -import {useSafeAreaInsets} from 'react-native-safe-area-context' import {AppBskyRichtextFacet, RichText} from '@atproto/api' import {shortenLinks} from '#/lib/strings/rich-text-manip' -import {isIOS, isNative} from '#/platform/detection' +import {isNative} from '#/platform/detection' import {useConvo} from '#/state/messages/convo' import {ConvoItem, ConvoStatus} from '#/state/messages/convo/types' import {useAgent} from '#/state/session' @@ -19,7 +15,6 @@ import {isWeb} from 'platform/detection' import {List} from 'view/com/util/List' import {MessageInput} from '#/screens/Messages/Conversation/MessageInput' import {MessageListError} from '#/screens/Messages/Conversation/MessageListError' -import {atoms as a, useBreakpoints} from '#/alf' import {MessageItem} from '#/components/dms/MessageItem' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' @@ -199,10 +194,6 @@ export function MessagesList() { }) }, [isMomentumScrolling]) - const {bottom: bottomInset, top: topInset} = useSafeAreaInsets() - const {gtMobile} = useBreakpoints() - const bottomBarHeight = gtMobile ? 0 : isIOS ? 40 : 60 - // This is only used inside the useKeyboardHandler because the worklet won't work with a ref directly. const scrollToEndNow = React.useCallback(() => { flatListRef.current?.scrollToEnd({animated: false}) @@ -216,11 +207,7 @@ export function MessagesList() { }) return ( - + <> {/* Custom scroll provider so that we can use the `onScroll` event in our custom List implementation */} - + ) } diff --git a/src/screens/Messages/Conversation/index.tsx b/src/screens/Messages/Conversation/index.tsx index 686a0f5d4d..fc4df0a24b 100644 --- a/src/screens/Messages/Conversation/index.tsx +++ b/src/screens/Messages/Conversation/index.tsx @@ -1,6 +1,8 @@ import React, {useCallback} from 'react' import {TouchableOpacity, View} from 'react-native' import {KeyboardProvider} from 'react-native-keyboard-controller' +import {KeyboardAvoidingView} from 'react-native-keyboard-controller' +import {useSafeAreaInsets} from 'react-native-safe-area-context' import {AppBskyActorDefs} from '@atproto/api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg} from '@lingui/macro' @@ -12,7 +14,7 @@ import {CommonNavigatorParams, NavigationProp} from '#/lib/routes/types' import {useGate} from '#/lib/statsig/statsig' import {useCurrentConvoId} from '#/state/messages/current-convo-id' import {BACK_HITSLOP} from 'lib/constants' -import {isWeb} from 'platform/detection' +import {isIOS, isWeb} from 'platform/detection' import {ConvoProvider, useConvo} from 'state/messages/convo' import {ConvoStatus} from 'state/messages/convo/types' import {PreviewableUserAvatar} from 'view/com/util/UserAvatar' @@ -25,7 +27,6 @@ import {ListMaybePlaceholder} from '#/components/Lists' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' import {ClipClopGate} from '../gate' - type Props = NativeStackScreenProps< CommonNavigatorParams, 'MessagesConversation' @@ -60,6 +61,10 @@ function Inner() { const [hasInitiallyRendered, setHasInitiallyRendered] = React.useState(false) + const {bottom: bottomInset, top: topInset} = useSafeAreaInsets() + const {gtMobile} = useBreakpoints() + const bottomBarHeight = gtMobile ? 0 : isIOS ? 40 : 60 + // HACK: Because we need to scroll to the bottom of the list once initial items are added to the list, we also have // to take into account that scrolling to the end of the list on native will happen asynchronously. This will cause // a little flicker when the items are first renedered at the top and immediately scrolled to the bottom. to prevent @@ -95,32 +100,38 @@ function Inner() { return ( - -
- - {convo.status !== ConvoStatus.Ready ? ( - - ) : ( - - )} - {!hasInitiallyRendered && ( - - - + + +
+ + {convo.status !== ConvoStatus.Ready ? ( + + ) : ( + + )} + {!hasInitiallyRendered && ( + + + + - - )} - - + )} + + + ) } From d7f3a8d01fffafac0841bcb732bff0d4a7e53f01 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 10 May 2024 10:40:52 -0500 Subject: [PATCH 010/277] =?UTF-8?q?[=F0=9F=90=B4]=20Clean=20up=20after=20d?= =?UTF-8?q?eleting=20message=20(#3950)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Clean up after removal * Remove console --- src/state/messages/__tests__/convo.test.ts | 2 ++ src/state/messages/convo/agent.ts | 12 ++++-------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/state/messages/__tests__/convo.test.ts b/src/state/messages/__tests__/convo.test.ts index 44fe16fefa..34df5f94ab 100644 --- a/src/state/messages/__tests__/convo.test.ts +++ b/src/state/messages/__tests__/convo.test.ts @@ -35,11 +35,13 @@ describe(`#/state/messages/convo`, () => { it.todo( `successfully sent messages are re-ordered, if needed, by events received from server`, ) + it.todo(`pending messages are cleaned up from state after firehose event`) }) describe(`deleting messages`, () => { it.todo(`messages are optimistically deleted from the chat`) it.todo(`messages are confirmed deleted via events from the server`) + it.todo(`deleted messages are cleaned up from state after firehose event`) }) describe(`log handling`, () => { diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index 6801def751..65470baa59 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -678,14 +678,10 @@ export class Convo { /* * Update if we have this in state. If we don't, don't worry about it. */ - // TODO check for other storage spots - if (this.pastMessages.has(ev.message.id)) { - /* - * For now, we remove deleted messages from the thread, if we receive one. - * - * To support them, it'd look something like this: - * this.pastMessages.set(ev.message.id, ev.message) - */ + if ( + this.pastMessages.has(ev.message.id) || + this.newMessages.has(ev.message.id) + ) { this.pastMessages.delete(ev.message.id) this.newMessages.delete(ev.message.id) this.deletedMessages.delete(ev.message.id) From 8f56f79c6c94a7adf1de304097067f5aed0a111a Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 10 May 2024 10:42:45 -0500 Subject: [PATCH 011/277] =?UTF-8?q?[=F0=9F=90=B4]=20Change=20up=20icons=20?= =?UTF-8?q?(#3938)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Swap for chat icon * Replace icons in left nav * Replace icons in bottom bars * Ditch feeds, drop size * Fine tune * Swap bell icon, improve alignment and size --- assets/icons/bell2_filled_corner0_rounded.svg | 1 + .../icons/bell2_stroke2_corner0_rounded.svg | 1 + assets/icons/bell_filled_corner0_rounded.svg | 1 + assets/icons/bell_stroke2_corner0_rounded.svg | 1 + .../bulletList_filled_corner0_rounded.svg | 1 + .../bulletList_stroke2_corner0_rounded.svg | 1 + .../icons/editBig_stroke2_corner0_rounded.svg | 1 + .../icons/hashtag_filled_corner0_rounded.svg | 1 + .../icons/homeOpen_filled_corner0_rounded.svg | 1 + .../homeOpen_stroke2_corner0_rounded.svg | 1 + ...magnifyingGlass_filled_corner0_rounded.svg | 1 + .../icons/message_stroke2_corner0_rounded.svg | 1 + ...message_stroke2_corner0_rounded_filled.svg | 1 + .../settingsGear2_filled_corner0_rounded.svg | 1 + .../userCircle_filled_corner0_rounded.svg | 1 + .../userCircle_stroke2_corner0_rounded.svg | 1 + src/components/icons/Bell.tsx | 9 + src/components/icons/Bell2.tsx | 9 + src/components/icons/BulletList.tsx | 9 + src/components/icons/EditBig.tsx | 5 + src/components/icons/Hashtag.tsx | 4 + src/components/icons/HomeOpen.tsx | 9 + src/components/icons/MagnifyingGlass.tsx | 6 + src/components/icons/Message.tsx | 9 + src/components/icons/SettingsGear2.tsx | 9 + src/components/icons/UserCircle.tsx | 9 + src/view/shell/bottom-bar/BottomBar.tsx | 148 +++++++--------- src/view/shell/bottom-bar/BottomBarStyles.tsx | 26 +-- src/view/shell/bottom-bar/BottomBarWeb.tsx | 87 +++++----- src/view/shell/desktop/LeftNav.tsx | 161 ++++++------------ 30 files changed, 250 insertions(+), 266 deletions(-) create mode 100644 assets/icons/bell2_filled_corner0_rounded.svg create mode 100644 assets/icons/bell2_stroke2_corner0_rounded.svg create mode 100644 assets/icons/bell_filled_corner0_rounded.svg create mode 100644 assets/icons/bell_stroke2_corner0_rounded.svg create mode 100644 assets/icons/bulletList_filled_corner0_rounded.svg create mode 100644 assets/icons/bulletList_stroke2_corner0_rounded.svg create mode 100644 assets/icons/editBig_stroke2_corner0_rounded.svg create mode 100644 assets/icons/hashtag_filled_corner0_rounded.svg create mode 100644 assets/icons/homeOpen_filled_corner0_rounded.svg create mode 100644 assets/icons/homeOpen_stroke2_corner0_rounded.svg create mode 100644 assets/icons/magnifyingGlass_filled_corner0_rounded.svg create mode 100644 assets/icons/message_stroke2_corner0_rounded.svg create mode 100644 assets/icons/message_stroke2_corner0_rounded_filled.svg create mode 100644 assets/icons/settingsGear2_filled_corner0_rounded.svg create mode 100644 assets/icons/userCircle_filled_corner0_rounded.svg create mode 100644 assets/icons/userCircle_stroke2_corner0_rounded.svg create mode 100644 src/components/icons/Bell.tsx create mode 100644 src/components/icons/Bell2.tsx create mode 100644 src/components/icons/BulletList.tsx create mode 100644 src/components/icons/EditBig.tsx create mode 100644 src/components/icons/HomeOpen.tsx create mode 100644 src/components/icons/MagnifyingGlass.tsx create mode 100644 src/components/icons/Message.tsx create mode 100644 src/components/icons/SettingsGear2.tsx create mode 100644 src/components/icons/UserCircle.tsx diff --git a/assets/icons/bell2_filled_corner0_rounded.svg b/assets/icons/bell2_filled_corner0_rounded.svg new file mode 100644 index 0000000000..9c66129b11 --- /dev/null +++ b/assets/icons/bell2_filled_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/bell2_stroke2_corner0_rounded.svg b/assets/icons/bell2_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..577bc5eaa1 --- /dev/null +++ b/assets/icons/bell2_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/bell_filled_corner0_rounded.svg b/assets/icons/bell_filled_corner0_rounded.svg new file mode 100644 index 0000000000..3f21b7e9bd --- /dev/null +++ b/assets/icons/bell_filled_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/bell_stroke2_corner0_rounded.svg b/assets/icons/bell_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..a31f1bd152 --- /dev/null +++ b/assets/icons/bell_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/bulletList_filled_corner0_rounded.svg b/assets/icons/bulletList_filled_corner0_rounded.svg new file mode 100644 index 0000000000..b70d589952 --- /dev/null +++ b/assets/icons/bulletList_filled_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/bulletList_stroke2_corner0_rounded.svg b/assets/icons/bulletList_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..4f7911bada --- /dev/null +++ b/assets/icons/bulletList_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/editBig_stroke2_corner0_rounded.svg b/assets/icons/editBig_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..16ca3d4c85 --- /dev/null +++ b/assets/icons/editBig_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/hashtag_filled_corner0_rounded.svg b/assets/icons/hashtag_filled_corner0_rounded.svg new file mode 100644 index 0000000000..5512179dce --- /dev/null +++ b/assets/icons/hashtag_filled_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/homeOpen_filled_corner0_rounded.svg b/assets/icons/homeOpen_filled_corner0_rounded.svg new file mode 100644 index 0000000000..e3ab6e2039 --- /dev/null +++ b/assets/icons/homeOpen_filled_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/homeOpen_stroke2_corner0_rounded.svg b/assets/icons/homeOpen_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..698f5d5db7 --- /dev/null +++ b/assets/icons/homeOpen_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/magnifyingGlass_filled_corner0_rounded.svg b/assets/icons/magnifyingGlass_filled_corner0_rounded.svg new file mode 100644 index 0000000000..b0c9ddefac --- /dev/null +++ b/assets/icons/magnifyingGlass_filled_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/message_stroke2_corner0_rounded.svg b/assets/icons/message_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..2cbaa3e628 --- /dev/null +++ b/assets/icons/message_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/message_stroke2_corner0_rounded_filled.svg b/assets/icons/message_stroke2_corner0_rounded_filled.svg new file mode 100644 index 0000000000..0de0246727 --- /dev/null +++ b/assets/icons/message_stroke2_corner0_rounded_filled.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/settingsGear2_filled_corner0_rounded.svg b/assets/icons/settingsGear2_filled_corner0_rounded.svg new file mode 100644 index 0000000000..dfc89ff507 --- /dev/null +++ b/assets/icons/settingsGear2_filled_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/userCircle_filled_corner0_rounded.svg b/assets/icons/userCircle_filled_corner0_rounded.svg new file mode 100644 index 0000000000..67bb6eac77 --- /dev/null +++ b/assets/icons/userCircle_filled_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/userCircle_stroke2_corner0_rounded.svg b/assets/icons/userCircle_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..ffad04f2b7 --- /dev/null +++ b/assets/icons/userCircle_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/src/components/icons/Bell.tsx b/src/components/icons/Bell.tsx new file mode 100644 index 0000000000..ede148ec15 --- /dev/null +++ b/src/components/icons/Bell.tsx @@ -0,0 +1,9 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Bell_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M4.216 8.815a7.853 7.853 0 0 1 15.568 0l1.207 9.053A1 1 0 0 1 20 19h-3.354c-.904 1.748-2.607 3-4.646 3-2.039 0-3.742-1.252-4.646-3H4a1 1 0 0 1-.991-1.132l1.207-9.053ZM9.778 19c.61.637 1.399 1 2.222 1s1.613-.363 2.222-1H9.778ZM12 4a5.853 5.853 0 0 0-5.802 5.08L5.142 17h13.716l-1.056-7.92A5.853 5.853 0 0 0 12 4Z', +}) + +export const Bell_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M12 2a7.853 7.853 0 0 0-7.784 6.815l-1.207 9.053A1 1 0 0 0 4 19h3.354c.904 1.748 2.607 3 4.646 3 2.039 0 3.742-1.252 4.646-3H20a1 1 0 0 0 .991-1.132l-1.207-9.053A7.853 7.853 0 0 0 12 2Zm2.222 17H9.778c.61.637 1.399 1 2.222 1s1.613-.363 2.222-1Z', +}) diff --git a/src/components/icons/Bell2.tsx b/src/components/icons/Bell2.tsx new file mode 100644 index 0000000000..084445b1d1 --- /dev/null +++ b/src/components/icons/Bell2.tsx @@ -0,0 +1,9 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Bell2_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M4.702 8.943a7.307 7.307 0 0 1 14.596 0l.19 3.798 1.321 2.641A1.809 1.809 0 0 1 19.191 18H16.9a5.002 5.002 0 0 1-9.8 0H4.809a1.809 1.809 0 0 1-1.618-2.618l1.32-2.641.19-3.798ZM9.17 18a3.001 3.001 0 0 0 5.658 0H9.171ZM12 4a5.307 5.307 0 0 0-5.3 5.042l-.19 3.798a2 2 0 0 1-.21.795L5.119 16h13.764l-1.183-2.365a2 2 0 0 1-.208-.795l-.19-3.798A5.308 5.308 0 0 0 12 4Z', +}) + +export const Bell2_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M12 2a7.307 7.307 0 0 0-7.298 6.943l-.19 3.798-1.321 2.641A1.809 1.809 0 0 0 4.809 18H7.1a5.002 5.002 0 0 0 9.8 0h2.291a1.809 1.809 0 0 0 1.618-2.618l-1.32-2.641-.19-3.798A7.308 7.308 0 0 0 12 2Zm0 18a3.001 3.001 0 0 1-2.83-2h5.66A3.001 3.001 0 0 1 12 20Z', +}) diff --git a/src/components/icons/BulletList.tsx b/src/components/icons/BulletList.tsx new file mode 100644 index 0000000000..58847d9d96 --- /dev/null +++ b/src/components/icons/BulletList.tsx @@ -0,0 +1,9 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const BulletList_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M6 6a1 1 0 1 0 0 2 1 1 0 0 0 0-2ZM3 7a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm9 0a1 1 0 0 1 1-1h7a1 1 0 1 1 0 2h-7a1 1 0 0 1-1-1Zm-6 9a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm-3 1a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm9 0a1 1 0 0 1 1-1h7a1 1 0 1 1 0 2h-7a1 1 0 0 1-1-1Z', +}) + +export const BulletList_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M3 7a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm0 10a3 3 0 1 1 6 0 3 3 0 0 1-6 0Zm10-1a1 1 0 1 0 0 2h7a1 1 0 1 0 0-2h-7Zm-1-9a1 1 0 0 1 1-1h7a1 1 0 1 1 0 2h-7a1 1 0 0 1-1-1Z', +}) diff --git a/src/components/icons/EditBig.tsx b/src/components/icons/EditBig.tsx new file mode 100644 index 0000000000..571f38b3e1 --- /dev/null +++ b/src/components/icons/EditBig.tsx @@ -0,0 +1,5 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const EditBig_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M17.293 2.293a1 1 0 0 1 1.414 0l3 3a1 1 0 0 1 0 1.414l-9 9A1 1 0 0 1 12 16H9a1 1 0 0 1-1-1v-3a1 1 0 0 1 .293-.707l9-9ZM10 12.414V14h1.586l8-8L18 4.414l-8 8ZM3 4a1 1 0 0 1 1-1h7a1 1 0 1 1 0 2H5v14h14v-6a1 1 0 1 1 2 0v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4Z', +}) diff --git a/src/components/icons/Hashtag.tsx b/src/components/icons/Hashtag.tsx index 668ed92566..930484fb21 100644 --- a/src/components/icons/Hashtag.tsx +++ b/src/components/icons/Hashtag.tsx @@ -3,3 +3,7 @@ import {createSinglePathSVG} from './TEMPLATE' export const Hashtag_Stroke2_Corner0_Rounded = createSinglePathSVG({ path: 'M9.124 3.008a1 1 0 0 1 .868 1.116L9.632 7h5.985l.39-3.124a1 1 0 0 1 1.985.248L17.632 7H20a1 1 0 1 1 0 2h-2.617l-.75 6H20a1 1 0 1 1 0 2h-3.617l-.39 3.124a1 1 0 1 1-1.985-.248l.36-2.876H8.382l-.39 3.124a1 1 0 1 1-1.985-.248L6.368 17H4a1 1 0 1 1 0-2h2.617l.75-6H4a1 1 0 1 1 0-2h3.617l.39-3.124a1 1 0 0 1 1.117-.868ZM9.383 9l-.75 6h5.984l.75-6H9.383Z', }) + +export const Hashtag_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M9.186 2.512a1.5 1.5 0 0 0-1.674 1.302L7.176 6.5H4a1.5 1.5 0 1 0 0 3h2.8l-.624 5H4a1.5 1.5 0 0 0 0 3h1.8l-.288 2.314a1.5 1.5 0 1 0 2.976.372l.336-2.686h4.977l-.29 2.314a1.5 1.5 0 1 0 2.977.372l.336-2.686H20a1.5 1.5 0 0 0 0-3h-2.8l.624-5H20a1.5 1.5 0 0 0 0-3h-1.8l.288-2.314a1.5 1.5 0 1 0-2.976-.372L15.176 6.5h-4.977l.29-2.314a1.5 1.5 0 0 0-1.303-1.674ZM9.2 14.5l.625-5h4.977l-.625 5H9.199Z', +}) diff --git a/src/components/icons/HomeOpen.tsx b/src/components/icons/HomeOpen.tsx new file mode 100644 index 0000000000..1b7df5aa90 --- /dev/null +++ b/src/components/icons/HomeOpen.tsx @@ -0,0 +1,9 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const HomeOpen_Stoke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M11.37 1.724a1 1 0 0 1 1.26 0l8 6.5A1 1 0 0 1 21 9v11a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-5h-2v5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9a1 1 0 0 1 .37-.776l8-6.5ZM5 9.476V19h4v-5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v5h4V9.476l-7-5.688-7 5.688Z', +}) + +export const HomeOpen_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M12.63 1.724a1 1 0 0 0-1.26 0l-8 6.5A1 1 0 0 0 3 9v11a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1v-6h4v6a1 1 0 0 0 1 1h5a1 1 0 0 0 1-1V9a1 1 0 0 0-.37-.776l-8-6.5Z', +}) diff --git a/src/components/icons/MagnifyingGlass.tsx b/src/components/icons/MagnifyingGlass.tsx new file mode 100644 index 0000000000..de5f83c9cb --- /dev/null +++ b/src/components/icons/MagnifyingGlass.tsx @@ -0,0 +1,6 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const MagnifyingGlass_Filled_Stroke2_Corner0_Rounded = + createSinglePathSVG({ + path: 'M5 11a6 6 0 1 1 12 0 6 6 0 0 1-12 0Zm6-8a8 8 0 1 0 4.906 14.32l3.387 3.387a1 1 0 0 0 1.414-1.414l-3.387-3.387A8 8 0 0 0 11 3Zm4 8a4 4 0 1 1-8 0 4 4 0 0 1 8 0Z', + }) diff --git a/src/components/icons/Message.tsx b/src/components/icons/Message.tsx new file mode 100644 index 0000000000..6d0dd01e76 --- /dev/null +++ b/src/components/icons/Message.tsx @@ -0,0 +1,9 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Message_Stroke2_Corner0_Rounded_Filled = createSinglePathSVG({ + path: 'M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10a9.968 9.968 0 0 1-4.136-.893l-4.68.876a1 1 0 0 1-1.164-1.184l.931-4.537A9.965 9.965 0 0 1 2 12Zm4.25 0a1.25 1.25 0 1 0 2.5 0 1.25 1.25 0 0 0-2.5 0Zm4.5 0a1.25 1.25 0 1 0 2.5 0 1.25 1.25 0 0 0-2.5 0Zm5.75 1.25a1.25 1.25 0 1 1 0-2.5 1.25 1.25 0 0 1 0 2.5Z', +}) + +export const Message_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M4 12a8 8 0 1 1 4.445 7.169 1 1 0 0 0-.629-.088l-3.537.662.7-3.415a1 1 0 0 0-.09-.66A7.961 7.961 0 0 1 4 12Zm8-10C6.477 2 2 6.477 2 12c0 1.523.341 2.968.951 4.262l-.93 4.537a1 1 0 0 0 1.163 1.184l4.68-.876A9.968 9.968 0 0 0 12 22c5.523 0 10-4.477 10-10S17.523 2 12 2ZM7.5 13.25a1.25 1.25 0 1 1 0-2.5 1.25 1.25 0 0 1 0 2.5Zm4.5 0a1.25 1.25 0 1 1 0-2.5 1.25 1.25 0 0 1 0 2.5Zm4.5 0a1.25 1.25 0 1 1 0-2.5 1.25 1.25 0 0 1 0 2.5Z', +}) diff --git a/src/components/icons/SettingsGear2.tsx b/src/components/icons/SettingsGear2.tsx new file mode 100644 index 0000000000..2cc0661bb4 --- /dev/null +++ b/src/components/icons/SettingsGear2.tsx @@ -0,0 +1,9 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const SettingsGear2_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M11.1 2a1 1 0 0 0-.832.445L8.851 4.57 6.6 4.05a1 1 0 0 0-.932.268l-1.35 1.35a1 1 0 0 0-.267.932l.52 2.251-2.126 1.417A1 1 0 0 0 2 11.1v1.8a1 1 0 0 0 .445.832l2.125 1.417-.52 2.251a1 1 0 0 0 .268.932l1.35 1.35a1 1 0 0 0 .932.267l2.251-.52 1.417 2.126A1 1 0 0 0 11.1 22h1.8a1 1 0 0 0 .832-.445l1.417-2.125 2.251.52a1 1 0 0 0 .932-.268l1.35-1.35a1 1 0 0 0 .267-.932l-.52-2.251 2.126-1.417A1 1 0 0 0 22 12.9v-1.8a1 1 0 0 0-.445-.832L19.43 8.851l.52-2.251a1 1 0 0 0-.268-.932l-1.35-1.35a1 1 0 0 0-.932-.267l-2.251.52-1.417-2.126A1 1 0 0 0 12.9 2h-1.8Zm-.968 4.255L11.635 4h.73l1.503 2.255a1 1 0 0 0 1.057.42l2.385-.551.566.566-.55 2.385a1 1 0 0 0 .42 1.057L20 11.635v.73l-2.255 1.503a1 1 0 0 0-.42 1.057l.551 2.385-.566.566-2.385-.55a1 1 0 0 0-1.057.42L12.365 20h-.73l-1.503-2.255a1 1 0 0 0-1.057-.42l-2.385.551-.566-.566.55-2.385a1 1 0 0 0-.42-1.057L4 12.365v-.73l2.255-1.503a1 1 0 0 0 .42-1.057L6.123 6.69l.566-.566 2.385.55a1 1 0 0 0 1.057-.42ZM8 12a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm4-2a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z', +}) + +export const SettingsGear2_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M9.996 2.869A1.951 1.951 0 0 1 11.62 2h.76c.653 0 1.262.326 1.624.869l1.141 1.712 1.749-.404a1.951 1.951 0 0 1 1.819.522l.588.589c.476.475.673 1.162.522 1.818l-.404 1.749 1.712 1.141c.543.362.869.971.869 1.624v.76c0 .653-.326 1.262-.869 1.624l-1.712 1.141.404 1.749a1.951 1.951 0 0 1-.522 1.819l-.588.588a1.951 1.951 0 0 1-1.819.522l-1.749-.404-1.141 1.712A1.951 1.951 0 0 1 12.38 22h-.76a1.951 1.951 0 0 1-1.624-.869L8.855 19.42l-1.749.404a1.951 1.951 0 0 1-1.818-.522l-.59-.588a1.951 1.951 0 0 1-.52-1.819l.403-1.749-1.712-1.141A1.951 1.951 0 0 1 2 12.38v-.76c0-.653.326-1.262.869-1.624L4.58 8.855l-.404-1.749A1.951 1.951 0 0 1 4.7 5.288l.589-.59a1.951 1.951 0 0 1 1.818-.52l1.749.403 1.141-1.712ZM8.5 12a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0Z', +}) diff --git a/src/components/icons/UserCircle.tsx b/src/components/icons/UserCircle.tsx new file mode 100644 index 0000000000..d30466f080 --- /dev/null +++ b/src/components/icons/UserCircle.tsx @@ -0,0 +1,9 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const UserCircle_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M12 4a8 8 0 0 0-5.935 13.365C7.56 15.895 9.612 15 12 15c2.388 0 4.44.894 5.935 2.365A8 8 0 0 0 12 4Zm4.412 14.675C15.298 17.636 13.792 17 12 17c-1.791 0-3.298.636-4.412 1.675A7.96 7.96 0 0 0 12 20a7.96 7.96 0 0 0 4.412-1.325ZM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10a9.98 9.98 0 0 1-3.462 7.567A9.965 9.965 0 0 1 12 22a9.965 9.965 0 0 1-6.538-2.433A9.98 9.98 0 0 1 2 12Zm10-4a2 2 0 1 0 0 4 2 2 0 0 0 0-4Zm-4 2a4 4 0 1 1 8 0 4 4 0 0 1-8 0Z', +}) + +export const UserCircle_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Zm3-12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm-3 10a7.976 7.976 0 0 1-5.714-2.4C7.618 16.004 9.605 15 12 15c2.396 0 4.383 1.005 5.714 2.6A7.976 7.976 0 0 1 12 20Z', +}) diff --git a/src/view/shell/bottom-bar/BottomBar.tsx b/src/view/shell/bottom-bar/BottomBar.tsx index 0db8b242a1..bcaaf34178 100644 --- a/src/view/shell/bottom-bar/BottomBar.tsx +++ b/src/view/shell/bottom-bar/BottomBar.tsx @@ -13,15 +13,6 @@ import {useDedupe} from '#/lib/hooks/useDedupe' import {useMinimalShellMode} from '#/lib/hooks/useMinimalShellMode' import {useNavigationTabState} from '#/lib/hooks/useNavigationTabState' import {usePalette} from '#/lib/hooks/usePalette' -import { - BellIcon, - BellIconSolid, - HashtagIcon, - HomeIcon, - HomeIconSolid, - MagnifyingGlassIcon2, - MagnifyingGlassIcon2Solid, -} from '#/lib/icons' import {clamp} from '#/lib/numbers' import {getTabState, TabState} from '#/lib/routes/helpers' import {useGate} from '#/lib/statsig/statsig' @@ -41,8 +32,20 @@ import {Logo} from '#/view/icons/Logo' import {Logotype} from '#/view/icons/Logotype' import {useDialogControl} from '#/components/Dialog' import {SwitchAccountDialog} from '#/components/dialogs/SwitchAccount' -import {Envelope_Stroke2_Corner0_Rounded as Envelope} from '#/components/icons/Envelope' -import {Envelope_Filled_Stroke2_Corner0_Rounded as EnvelopeFilled} from '#/components/icons/Envelope' +import { + Bell_Filled_Corner0_Rounded as BellFilled, + Bell_Stroke2_Corner0_Rounded as Bell, +} from '#/components/icons/Bell' +import { + HomeOpen_Filled_Corner0_Rounded as HomeFilled, + HomeOpen_Stoke2_Corner0_Rounded as Home, +} from '#/components/icons/HomeOpen' +import {MagnifyingGlass_Filled_Stroke2_Corner0_Rounded as MagnifyingGlassFilled} from '#/components/icons/MagnifyingGlass' +import {MagnifyingGlass2_Stroke2_Corner0_Rounded as MagnifyingGlass} from '#/components/icons/MagnifyingGlass2' +import { + Message_Stroke2_Corner0_Rounded as Message, + Message_Stroke2_Corner0_Rounded_Filled as MessageFilled, +} from '#/components/icons/Message' import {styles} from './BottomBarStyles' type TabOptions = @@ -60,14 +63,8 @@ export function BottomBar({navigation}: BottomTabBarProps) { const safeAreaInsets = useSafeAreaInsets() const {track} = useAnalytics() const {footerHeight} = useShellLayout() - const { - isAtHome, - isAtSearch, - isAtFeeds, - isAtNotifications, - isAtMyProfile, - isAtMessages, - } = useNavigationTabState() + const {isAtHome, isAtSearch, isAtNotifications, isAtMyProfile, isAtMessages} = + useNavigationTabState() const numUnreadNotifications = useUnreadNotifications() const numUnreadMessages = useUnreadMessageCount() const {footerMinimalShellTransform} = useMinimalShellMode() @@ -78,6 +75,7 @@ export function BottomBar({navigation}: BottomTabBarProps) { const accountSwitchControl = useDialogControl() const playHaptic = useHaptics() const gate = useGate() + const iconWidth = 28 const showSignIn = React.useCallback(() => { closeAllActiveElements() @@ -110,10 +108,6 @@ export function BottomBar({navigation}: BottomTabBarProps) { () => onPressTab('Search'), [onPressTab], ) - const onPressFeeds = React.useCallback( - () => onPressTab('Feeds'), - [onPressTab], - ) const onPressNotifications = React.useCallback( () => onPressTab('Notifications'), [onPressTab], @@ -152,15 +146,13 @@ export function BottomBar({navigation}: BottomTabBarProps) { testID="bottomBarHomeBtn" icon={ isAtHome ? ( - ) : ( - ) @@ -174,16 +166,14 @@ export function BottomBar({navigation}: BottomTabBarProps) { testID="bottomBarSearchBtn" icon={ isAtSearch ? ( - ) : ( - ) } @@ -192,68 +182,18 @@ export function BottomBar({navigation}: BottomTabBarProps) { accessibilityLabel={_(msg`Search`)} accessibilityHint="" /> - - ) : ( - - ) - } - onPress={onPressFeeds} - accessibilityRole="tab" - accessibilityLabel={_(msg`Feeds`)} - accessibilityHint="" - /> - - ) : ( - - ) - } - onPress={onPressNotifications} - notificationCount={numUnreadNotifications} - accessible={true} - accessibilityRole="tab" - accessibilityLabel={_(msg`Notifications`)} - accessibilityHint={ - numUnreadNotifications === '' - ? '' - : `${numUnreadNotifications} unread` - } - /> {gate('dms') && ( ) : ( - ) @@ -270,6 +210,32 @@ export function BottomBar({navigation}: BottomTabBarProps) { } /> )} + + ) : ( + + ) + } + onPress={onPressNotifications} + notificationCount={numUnreadNotifications} + accessible={true} + accessibilityRole="tab" + accessibilityLabel={_(msg`Notifications`)} + accessibilityHint={ + numUnreadNotifications === '' + ? '' + : `${numUnreadNotifications} unread` + } + /> { closeAllActiveElements() @@ -72,11 +78,10 @@ export function BottomBarWeb() { <> {({isActive}) => { - const Icon = isActive ? HomeIconSolid : HomeIcon + const Icon = isActive ? HomeFilled : Home return ( ) @@ -84,14 +89,11 @@ export function BottomBarWeb() { {({isActive}) => { - const Icon = isActive - ? MagnifyingGlassIcon2Solid - : MagnifyingGlassIcon2 + const Icon = isActive ? MagnifyingGlassFilled : MagnifyingGlass return ( ) }} @@ -99,42 +101,30 @@ export function BottomBarWeb() { {hasSession && ( <> - - {({isActive}) => { - return ( - - ) - }} - - - {({isActive}) => { - const Icon = isActive ? BellIconSolid : BellIcon - return ( - - ) - }} - {gate('dms') && ( {({isActive}) => { - const Icon = isActive ? EnvelopeFilled : Envelope + const Icon = isActive ? MessageFilled : Message return ( ) }} )} + + {({isActive}) => { + const Icon = isActive ? BellFilled : Bell + return ( + + ) + }} + {({isActive}) => { - const Icon = isActive ? UserIconSolid : UserIcon + const Icon = isActive ? UserCircleFilled : UserCircle return ( ) diff --git a/src/view/shell/desktop/LeftNav.tsx b/src/view/shell/desktop/LeftNav.tsx index 1d27a10a4e..b1f58afedc 100644 --- a/src/view/shell/desktop/LeftNav.tsx +++ b/src/view/shell/desktop/LeftNav.tsx @@ -23,21 +23,6 @@ import {useSession} from '#/state/session' import {useComposerControls} from '#/state/shell/composer' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import { - BellIcon, - BellIconSolid, - CogIcon, - CogIconSolid, - ComposeIcon2, - HashtagIcon, - HomeIcon, - HomeIconSolid, - ListIcon, - MagnifyingGlassIcon2, - MagnifyingGlassIcon2Solid, - UserIcon, - UserIconSolid, -} from 'lib/icons' import {getCurrentRoute, isStateAtTabRoot, isTab} from 'lib/routes/helpers' import {makeProfileLink} from 'lib/routes/links' import {CommonNavigatorParams, NavigationProp} from 'lib/routes/types' @@ -48,8 +33,37 @@ import {LoadingPlaceholder} from 'view/com/util/LoadingPlaceholder' import {PressableWithHover} from 'view/com/util/PressableWithHover' import {Text} from 'view/com/util/text/Text' import {UserAvatar} from 'view/com/util/UserAvatar' -import {Envelope_Stroke2_Corner0_Rounded as Envelope} from '#/components/icons/Envelope' -import {Envelope_Filled_Stroke2_Corner0_Rounded as EnvelopeFilled} from '#/components/icons/Envelope' +import { + Bell_Filled_Corner0_Rounded as BellFilled, + Bell_Stroke2_Corner0_Rounded as Bell, +} from '#/components/icons/Bell' +import { + BulletList_Filled_Corner0_Rounded as ListFilled, + BulletList_Stroke2_Corner0_Rounded as List, +} from '#/components/icons/BulletList' +import {EditBig_Stroke2_Corner0_Rounded as EditBig} from '#/components/icons/EditBig' +import { + Hashtag_Filled_Corner0_Rounded as HashtagFilled, + Hashtag_Stroke2_Corner0_Rounded as Hashtag, +} from '#/components/icons/Hashtag' +import { + HomeOpen_Filled_Corner0_Rounded as HomeFilled, + HomeOpen_Stoke2_Corner0_Rounded as Home, +} from '#/components/icons/HomeOpen' +import {MagnifyingGlass_Filled_Stroke2_Corner0_Rounded as MagnifyingGlassFilled} from '#/components/icons/MagnifyingGlass' +import {MagnifyingGlass2_Stroke2_Corner0_Rounded as MagnifyingGlass} from '#/components/icons/MagnifyingGlass2' +import { + Message_Stroke2_Corner0_Rounded as Message, + Message_Stroke2_Corner0_Rounded_Filled as MessageFilled, +} from '#/components/icons/Message' +import { + SettingsGear2_Filled_Corner0_Rounded as SettingsFilled, + SettingsGear2_Stroke2_Corner0_Rounded as Settings, +} from '#/components/icons/SettingsGear2' +import { + UserCircle_Filled_Corner0_Rounded as UserCircleFilled, + UserCircle_Stroke2_Corner0_Rounded as UserCircle, +} from '#/components/icons/UserCircle' import {router} from '../../../routes' function ProfileCard() { @@ -256,11 +270,7 @@ function ComposeBtn() { accessibilityLabel={_(msg`New post`)} accessibilityHint=""> - + New Post @@ -278,6 +288,7 @@ export function DesktopLeftNav() { const numUnreadNotifications = useUnreadNotifications() const numUnreadMessages = useUnreadMessageCount() const gate = useGate() + const iconWidth = 28 if (!hasSession && !isDesktop) { return null @@ -305,134 +316,66 @@ export function DesktopLeftNav() { } - iconFilled={ - - } + icon={} + iconFilled={} label={_(msg`Home`)} /> - } + icon={} iconFilled={ - + } label={_(msg`Search`)} /> - } - iconFilled={ - - } + icon={} + iconFilled={} label={_(msg`Notifications`)} /> {gate('dms') && ( } - iconFilled={ - - } + icon={} + iconFilled={} label={_(msg`Messages`)} /> )} } iconFilled={ - } label={_(msg`Feeds`)} /> - } - iconFilled={ - - } + icon={} + iconFilled={} label={_(msg`Lists`)} /> - } - iconFilled={ - - } + icon={} + iconFilled={} label={_(msg`Profile`)} /> - } - iconFilled={ - - } + icon={} + iconFilled={} label={_(msg`Settings`)} /> @@ -494,7 +437,7 @@ const styles = StyleSheet.create({ alignItems: 'center', justifyContent: 'center', width: 28, - height: 28, + height: 24, marginTop: 2, zIndex: 1, }, From f928e0a54736803a8650c084b5a0977ff1881ecf Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 10 May 2024 08:46:51 -0700 Subject: [PATCH 012/277] =?UTF-8?q?[=F0=9F=90=B4]=20Mutate=20data=20instea?= =?UTF-8?q?d=20of=20invalidating=20queries=20when=20muting=20or=20unmuting?= =?UTF-8?q?=20(#3946)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * mutate for mutes * mutate data for mutes * add initial data, `useConvoQuery` in `ConvoMenu` * `useInitialData` * don't use `identifier` for notifications, use `dates` instead * better implementation * simplify * simplify * fix types --- src/components/dms/ConvoMenu.tsx | 43 ++++--- src/screens/Messages/Conversation/index.tsx | 27 ++--- src/state/queries/messages/conversation.ts | 13 ++- .../queries/messages/leave-conversation.ts | 5 +- .../queries/messages/mute-conversation.ts | 105 +++++++++--------- 5 files changed, 94 insertions(+), 99 deletions(-) diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index cac4eb4d9d..8c8e7ed486 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -2,17 +2,18 @@ import React, {useCallback} from 'react' import {Keyboard, Pressable, View} from 'react-native' import {AppBskyActorDefs} from '@atproto/api' import {ChatBskyConvoDefs} from '@atproto-labs/api' +import {ConvoView} from '@atproto-labs/api/dist/client/types/chat/bsky/convo/defs' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' import {NavigationProp} from '#/lib/routes/types' -import {useMarkAsReadMutation} from '#/state/queries/messages/conversation' -import {useLeaveConvo} from '#/state/queries/messages/leave-conversation' import { - useMuteConvo, - useUnmuteConvo, -} from '#/state/queries/messages/mute-conversation' + useConvoQuery, + useMarkAsReadMutation, +} from '#/state/queries/messages/conversation' +import {useLeaveConvo} from '#/state/queries/messages/leave-conversation' +import {useMuteConvo} from '#/state/queries/messages/mute-conversation' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {ArrowBoxLeft_Stroke2_Corner0_Rounded as ArrowBoxLeft} from '#/components/icons/ArrowBoxLeft' @@ -28,16 +29,15 @@ import * as Prompt from '#/components/Prompt' import {Bubble_Stroke2_Corner2_Rounded as Bubble} from '../icons/Bubble' let ConvoMenu = ({ - convo, + convo: initialConvo, profile, - onUpdateConvo, control, currentScreen, showMarkAsRead, hideTrigger, triggerOpacity, }: { - convo: ChatBskyConvoDefs.ConvoView + convo: ConvoView profile: AppBskyActorDefs.ProfileViewBasic onUpdateConvo?: (convo: ChatBskyConvoDefs.ConvoView) => void control?: Menu.MenuControlProps @@ -52,31 +52,26 @@ let ConvoMenu = ({ const leaveConvoControl = Prompt.usePromptControl() const {mutate: markAsRead} = useMarkAsReadMutation() + const {data: convo} = useConvoQuery(initialConvo) + const onNavigateToProfile = useCallback(() => { navigation.navigate('Profile', {name: profile.did}) }, [navigation, profile.did]) - const {mutate: muteConvo} = useMuteConvo(convo.id, { + const {mutate: muteConvo} = useMuteConvo(convo?.id, { onSuccess: data => { - onUpdateConvo?.(data.convo) - Toast.show(_(msg`Chat muted`)) + if (data.convo.muted) { + Toast.show(_(msg`Chat muted`)) + } else { + Toast.show(_(msg`Chat unmuted`)) + } }, onError: () => { Toast.show(_(msg`Could not mute chat`)) }, }) - const {mutate: unmuteConvo} = useUnmuteConvo(convo.id, { - onSuccess: data => { - onUpdateConvo?.(data.convo) - Toast.show(_(msg`Chat unmuted`)) - }, - onError: () => { - Toast.show(_(msg`Could not unmute chat`)) - }, - }) - - const {mutate: leaveConvo} = useLeaveConvo(convo.id, { + const {mutate: leaveConvo} = useLeaveConvo(convo?.id, { onSuccess: () => { if (currentScreen === 'conversation') { navigation.replace('Messages') @@ -121,7 +116,7 @@ let ConvoMenu = ({ label={_(msg`Mark as read`)} onPress={() => markAsRead({ - convoId: convo.id, + convoId: convo?.id, }) }> @@ -140,7 +135,7 @@ let ConvoMenu = ({ (convo?.muted ? unmuteConvo() : muteConvo())}> + onPress={() => muteConvo({mute: !convo?.muted})}> {convo?.muted ? ( Unmute notifications diff --git a/src/screens/Messages/Conversation/index.tsx b/src/screens/Messages/Conversation/index.tsx index fc4df0a24b..a783a0bd6d 100644 --- a/src/screens/Messages/Conversation/index.tsx +++ b/src/screens/Messages/Conversation/index.tsx @@ -56,7 +56,7 @@ export function MessagesConversationScreen({route}: Props) { function Inner() { const t = useTheme() - const convo = useConvo() + const convoState = useConvo() const {_} = useLingui() const [hasInitiallyRendered, setHasInitiallyRendered] = React.useState(false) @@ -72,23 +72,23 @@ function Inner() { React.useEffect(() => { if ( !hasInitiallyRendered && - convo.status === ConvoStatus.Ready && - !convo.isFetchingHistory + convoState.status === ConvoStatus.Ready && + !convoState.isFetchingHistory ) { setTimeout(() => { setHasInitiallyRendered(true) }, 15) } - }, [convo.isFetchingHistory, convo.items, convo.status, hasInitiallyRendered]) + }, [convoState.isFetchingHistory, convoState.status, hasInitiallyRendered]) - if (convo.status === ConvoStatus.Error) { + if (convoState.status === ConvoStatus.Error) { return (
convo.error.retry()} + onRetry={() => convoState.error.retry()} /> ) @@ -106,9 +106,9 @@ function Inner() { behavior="padding" contentContainerStyle={a.flex_1}> -
+
- {convo.status !== ConvoStatus.Ready ? ( + {convoState.status !== ConvoStatus.Ready ? ( ) : ( @@ -145,7 +145,7 @@ let Header = ({ const {_} = useLingui() const {gtTablet} = useBreakpoints() const navigation = useNavigation() - const convo = useConvo() + const convoState = useConvo() const onPressBack = useCallback(() => { if (isWeb) { @@ -155,10 +155,6 @@ let Header = ({ } }, [navigation]) - const onUpdateConvo = useCallback(() => { - // TODO eric update muted state - }, []) - return ( )} - {convo.status === ConvoStatus.Ready && profile ? ( + {convoState.status === ConvoStatus.Ready && profile ? ( ) : ( diff --git a/src/state/queries/messages/conversation.ts b/src/state/queries/messages/conversation.ts index b4861b5721..e420ba7363 100644 --- a/src/state/queries/messages/conversation.ts +++ b/src/state/queries/messages/conversation.ts @@ -1,4 +1,5 @@ import {BskyAgent} from '@atproto-labs/api' +import {ConvoView} from '@atproto-labs/api/dist/client/types/chat/bsky/convo/defs' import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' import {useOnMarkAsRead} from '#/state/queries/messages/list-converations' @@ -9,20 +10,21 @@ import {useHeaders} from './temp-headers' const RQKEY_ROOT = 'convo' export const RQKEY = (convoId: string) => [RQKEY_ROOT, convoId] -export function useConvoQuery(convoId: string) { +export function useConvoQuery(convo: ConvoView) { const headers = useHeaders() const {serviceUrl} = useDmServiceUrlStorage() return useQuery({ - queryKey: RQKEY(convoId), + queryKey: RQKEY(convo.id), queryFn: async () => { const agent = new BskyAgent({service: serviceUrl}) const {data} = await agent.api.chat.bsky.convo.getConvo( - {convoId}, + {convoId: convo.id}, {headers}, ) return data.convo }, + initialData: convo, }) } @@ -37,9 +39,11 @@ export function useMarkAsReadMutation() { convoId, messageId, }: { - convoId: string + convoId?: string messageId?: string }) => { + if (!convoId) throw new Error('No convoId provided') + const agent = new BskyAgent({service: serviceUrl}) await agent.api.chat.bsky.convo.updateRead( { @@ -53,6 +57,7 @@ export function useMarkAsReadMutation() { ) }, onMutate({convoId}) { + if (!convoId) throw new Error('No convoId provided') optimisticUpdate(convoId) }, onSettled() { diff --git a/src/state/queries/messages/leave-conversation.ts b/src/state/queries/messages/leave-conversation.ts index 0dd67fa0b1..5d5c64c5b9 100644 --- a/src/state/queries/messages/leave-conversation.ts +++ b/src/state/queries/messages/leave-conversation.ts @@ -11,7 +11,7 @@ import {RQKEY as CONVO_LIST_KEY} from './list-converations' import {useHeaders} from './temp-headers' export function useLeaveConvo( - convoId: string, + convoId: string | undefined, { onSuccess, onError, @@ -26,6 +26,8 @@ export function useLeaveConvo( return useMutation({ mutationFn: async () => { + if (!convoId) throw new Error('No convoId provided') + const agent = new BskyAgent({service: serviceUrl}) const {data} = await agent.api.chat.bsky.convo.leaveConvo( {convoId}, @@ -41,7 +43,6 @@ export function useLeaveConvo( pageParams: Array pages: Array }) => { - console.log('old', old) if (!old) return old return { ...old, diff --git a/src/state/queries/messages/mute-conversation.ts b/src/state/queries/messages/mute-conversation.ts index 4840c65ade..f30612c73e 100644 --- a/src/state/queries/messages/mute-conversation.ts +++ b/src/state/queries/messages/mute-conversation.ts @@ -1,18 +1,18 @@ import { BskyAgent, + ChatBskyConvoDefs, + ChatBskyConvoListConvos, ChatBskyConvoMuteConvo, - ChatBskyConvoUnmuteConvo, } from '@atproto-labs/api' -import {useMutation, useQueryClient} from '@tanstack/react-query' +import {InfiniteData, useMutation, useQueryClient} from '@tanstack/react-query' -import {logger} from '#/logger' import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage' import {RQKEY as CONVO_KEY} from './conversation' import {RQKEY as CONVO_LIST_KEY} from './list-converations' import {useHeaders} from './temp-headers' export function useMuteConvo( - convoId: string, + convoId: string | undefined, { onSuccess, onError, @@ -26,59 +26,58 @@ export function useMuteConvo( const {serviceUrl} = useDmServiceUrlStorage() return useMutation({ - mutationFn: async () => { - const agent = new BskyAgent({service: serviceUrl}) - const {data} = await agent.api.chat.bsky.convo.muteConvo( - {convoId}, - {headers, encoding: 'application/json'}, - ) + mutationFn: async ({mute}: {mute: boolean}) => { + if (!convoId) throw new Error('No convoId provided') - return data + const agent = new BskyAgent({service: serviceUrl}) + if (mute) { + const {data} = await agent.api.chat.bsky.convo.muteConvo( + {convoId}, + {headers, encoding: 'application/json'}, + ) + return data + } else { + const {data} = await agent.api.chat.bsky.convo.unmuteConvo( + {convoId}, + {headers, encoding: 'application/json'}, + ) + return data + } }, - onSuccess: data => { - queryClient.invalidateQueries({queryKey: CONVO_LIST_KEY}) - queryClient.invalidateQueries({queryKey: CONVO_KEY(convoId)}) + onSuccess: (data, params) => { + queryClient.setQueryData( + CONVO_KEY(data.convo.id), + prev => { + if (!prev) return + return { + ...prev, + muted: params.mute, + } + }, + ) + queryClient.setQueryData< + InfiniteData + >(CONVO_LIST_KEY, prev => { + if (!prev?.pages) return + return { + ...prev, + pages: prev.pages.map(page => ({ + ...page, + convos: page.convos.map(convo => { + if (convo.id !== data.convo.id) return convo + return { + ...convo, + muted: params.mute, + } + }), + })), + } + }) + onSuccess?.(data) }, - onError: error => { - logger.error(error) - onError?.(error) - }, - }) -} - -export function useUnmuteConvo( - convoId: string, - { - onSuccess, - onError, - }: { - onSuccess?: (data: ChatBskyConvoUnmuteConvo.OutputSchema) => void - onError?: (error: Error) => void - }, -) { - const queryClient = useQueryClient() - const headers = useHeaders() - const {serviceUrl} = useDmServiceUrlStorage() - - return useMutation({ - mutationFn: async () => { - const agent = new BskyAgent({service: serviceUrl}) - const {data} = await agent.api.chat.bsky.convo.unmuteConvo( - {convoId}, - {headers, encoding: 'application/json'}, - ) - - return data - }, - onSuccess: data => { - queryClient.invalidateQueries({queryKey: CONVO_LIST_KEY}) - queryClient.invalidateQueries({queryKey: CONVO_KEY(convoId)}) - onSuccess?.(data) - }, - onError: error => { - logger.error(error) - onError?.(error) + onError: e => { + onError?.(e) }, }) } From 9f6552241f5d54b31e5e91269d225636c255ec4e Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 10 May 2024 09:04:03 -0700 Subject: [PATCH 013/277] bump max width of message (#3955) --- src/components/dms/ActionsWrapper.tsx | 2 +- src/components/dms/ActionsWrapper.web.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/dms/ActionsWrapper.tsx b/src/components/dms/ActionsWrapper.tsx index 315f459de9..5c34ef9ba4 100644 --- a/src/components/dms/ActionsWrapper.tsx +++ b/src/components/dms/ActionsWrapper.tsx @@ -67,7 +67,7 @@ export function ActionsWrapper({ diff --git a/src/components/dms/ActionsWrapper.web.tsx b/src/components/dms/ActionsWrapper.web.tsx index 5cb30d3da6..7725ca3b70 100644 --- a/src/components/dms/ActionsWrapper.web.tsx +++ b/src/components/dms/ActionsWrapper.web.tsx @@ -62,7 +62,7 @@ export function ActionsWrapper({ )} {children} From cf981124e47feb1769ef71d0cb73dbd10e2a48d2 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 10 May 2024 11:08:53 -0500 Subject: [PATCH 014/277] Add icons to drawer (#3956) --- src/view/shell/Drawer.tsx | 96 +++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 55 deletions(-) diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx index b575692036..be35b314b4 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -27,19 +27,6 @@ import {useAnalytics} from 'lib/analytics/analytics' import {FEEDBACK_FORM_URL, HELP_DESK_URL} from 'lib/constants' import {useNavigationTabState} from 'lib/hooks/useNavigationTabState' import {usePalette} from 'lib/hooks/usePalette' -import { - BellIcon, - BellIconSolid, - CogIcon, - HashtagIcon, - HomeIcon, - HomeIconSolid, - ListIcon, - MagnifyingGlassIcon2, - MagnifyingGlassIcon2Solid, - UserIcon, - UserIconSolid, -} from 'lib/icons' import {getTabState, TabState} from 'lib/routes/helpers' import {NavigationProp} from 'lib/routes/types' import {colors, s} from 'lib/styles' @@ -50,8 +37,30 @@ import {formatCountShortOnly} from 'view/com/util/numeric/format' import {Text} from 'view/com/util/text/Text' import {UserAvatar} from 'view/com/util/UserAvatar' import {useTheme as useAlfTheme} from '#/alf' +import { + Bell_Filled_Corner0_Rounded as BellFilled, + Bell_Stroke2_Corner0_Rounded as Bell, +} from '#/components/icons/Bell' +import {BulletList_Stroke2_Corner0_Rounded as List} from '#/components/icons/BulletList' +import { + Hashtag_Filled_Corner0_Rounded as HashtagFilled, + Hashtag_Stroke2_Corner0_Rounded as Hashtag, +} from '#/components/icons/Hashtag' +import { + HomeOpen_Filled_Corner0_Rounded as HomeFilled, + HomeOpen_Stoke2_Corner0_Rounded as Home, +} from '#/components/icons/HomeOpen' +import {MagnifyingGlass_Filled_Stroke2_Corner0_Rounded as MagnifyingGlassFilled} from '#/components/icons/MagnifyingGlass' +import {MagnifyingGlass2_Stroke2_Corner0_Rounded as MagnifyingGlass} from '#/components/icons/MagnifyingGlass2' +import {SettingsGear2_Stroke2_Corner0_Rounded as Settings} from '#/components/icons/SettingsGear2' +import { + UserCircle_Filled_Corner0_Rounded as UserCircleFilled, + UserCircle_Stroke2_Corner0_Rounded as UserCircle, +} from '#/components/icons/UserCircle' import {TextLink} from '../com/util/Link' +const iconWidth = 28 + let DrawerProfileCard = ({ account, onPressProfile, @@ -370,16 +379,14 @@ let SearchMenuItem = ({ } - size={24} - strokeWidth={1.7} + width={iconWidth} /> ) : ( - } - size={24} - strokeWidth={1.7} + width={iconWidth} /> ) } @@ -406,17 +413,12 @@ let HomeMenuItem = ({ } - size="24" - strokeWidth={3.25} + width={iconWidth} /> ) : ( - } - size="24" - strokeWidth={3.25} - /> + } width={iconWidth} /> ) } label={_(msg`Home`)} @@ -443,17 +445,12 @@ let NotificationsMenuItem = ({ } - size="24" - strokeWidth={1.7} + width={iconWidth} /> ) : ( - } - size="24" - strokeWidth={1.7} - /> + } width={iconWidth} /> ) } label={_(msg`Notifications`)} @@ -484,17 +481,12 @@ let FeedsMenuItem = ({ ) : ( - + ) } label={_(msg`Feeds`)} @@ -512,7 +504,7 @@ let ListsMenuItem = ({onPress}: {onPress: () => void}): React.ReactNode => { const pal = usePalette('default') return ( } + icon={} label={_(msg`Lists`)} accessibilityLabel={_(msg`Lists`)} accessibilityHint="" @@ -535,16 +527,14 @@ let ProfileMenuItem = ({ } - size="26" - strokeWidth={1.5} + width={iconWidth} /> ) : ( - } - size="26" - strokeWidth={1.5} + width={iconWidth} /> ) } @@ -563,11 +553,7 @@ let SettingsMenuItem = ({onPress}: {onPress: () => void}): React.ReactNode => { return ( } - size="26" - strokeWidth={1.75} - /> + } width={iconWidth} /> } label={_(msg`Settings`)} accessibilityLabel={_(msg`Settings`)} From 7370bebf072c345c8e25974a694595f32f1bb4ca Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 10 May 2024 17:36:06 +0100 Subject: [PATCH 015/277] remove 12hr time (#3954) --- src/components/dms/MessageItem.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/dms/MessageItem.tsx b/src/components/dms/MessageItem.tsx index e9128c5a07..faf0c88cd8 100644 --- a/src/components/dms/MessageItem.tsx +++ b/src/components/dms/MessageItem.tsx @@ -137,7 +137,6 @@ let MessageItemMetadata = ({ const time = new Intl.DateTimeFormat(undefined, { hour: 'numeric', minute: 'numeric', - hour12: true, }).format(date) const diff = now.getTime() - date.getTime() @@ -163,7 +162,6 @@ let MessageItemMetadata = ({ return new Intl.DateTimeFormat(undefined, { hour: 'numeric', minute: 'numeric', - hour12: true, day: 'numeric', month: 'numeric', year: 'numeric', From ab21aafc281c04c223828b3a2436b02a98115bc7 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 10 May 2024 17:52:21 +0100 Subject: [PATCH 016/277] =?UTF-8?q?[=F0=9F=90=B4]=20Report=20message=20dia?= =?UTF-8?q?log=20(#3941)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * message report dialog * report chat prompt * typo * 100% height sheet on android * messages-specific report options * restore unwanted sexual content * chat -> conversation --- .../ReportDialog/SelectReportOptionView.tsx | 8 +- src/components/dms/ConvoMenu.tsx | 22 +- src/components/dms/MessageItem.tsx | 1 + src/components/dms/MessageMenu.tsx | 25 +- src/components/dms/MessageReportDialog.tsx | 254 ++++++++++++++++++ src/lib/moderation/useReportOptions.ts | 14 + 6 files changed, 309 insertions(+), 15 deletions(-) create mode 100644 src/components/dms/MessageReportDialog.tsx diff --git a/src/components/ReportDialog/SelectReportOptionView.tsx b/src/components/ReportDialog/SelectReportOptionView.tsx index 8219b20951..da3c434401 100644 --- a/src/components/ReportDialog/SelectReportOptionView.tsx +++ b/src/components/ReportDialog/SelectReportOptionView.tsx @@ -25,9 +25,12 @@ import {SquareArrowTopRight_Stroke2_Corner0_Rounded as SquareArrowTopRight} from import {Text} from '#/components/Typography' import {ReportDialogProps} from './types' +type ParamsWithMessages = ReportDialogProps['params'] | {type: 'message'} + export function SelectReportOptionView({ ...props -}: ReportDialogProps & { +}: { + params: ParamsWithMessages labelers: AppBskyLabelerDefs.LabelerViewDetailed[] onSelectReportOption: (reportOption: ReportOption) => void goBack: () => void @@ -54,6 +57,9 @@ export function SelectReportOptionView({ } else if (props.params.type === 'feedgen') { title = _(msg`Report this feed`) description = _(msg`Why should this feed be reviewed?`) + } else if (props.params.type === 'message') { + title = _(msg`Report this message`) + description = _(msg`Why should this message be reviewed?`) } return { diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index 8c8e7ed486..68d8150747 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -50,6 +50,7 @@ let ConvoMenu = ({ const {_} = useLingui() const t = useTheme() const leaveConvoControl = Prompt.usePromptControl() + const reportControl = Prompt.usePromptControl() const {mutate: markAsRead} = useMarkAsReadMutation() const {data: convo} = useConvoQuery(initialConvo) @@ -147,7 +148,7 @@ let ConvoMenu = ({ - {/* TODO(samuel): implement these */} + {/* TODO(samuel): implement this */} {}} - disabled> + label={_(msg`Report conversation`)} + onPress={reportControl.open}> - Report account + Report conversation @@ -194,9 +194,21 @@ let ConvoMenu = ({ confirmButtonColor="negative" onConfirm={() => leaveConvo()} /> + + ) } ConvoMenu = React.memo(ConvoMenu) export {ConvoMenu} + +function noop() {} diff --git a/src/components/dms/MessageItem.tsx b/src/components/dms/MessageItem.tsx index faf0c88cd8..e162e40ee8 100644 --- a/src/components/dms/MessageItem.tsx +++ b/src/components/dms/MessageItem.tsx @@ -193,6 +193,7 @@ let MessageItemMetadata = ({ } MessageItemMetadata = React.memo(MessageItemMetadata) +export {MessageItemMetadata} function localDateString(date: Date) { // can't use toISOString because it should be in local time diff --git a/src/components/dms/MessageMenu.tsx b/src/components/dms/MessageMenu.tsx index 75807f8187..c6abd51106 100644 --- a/src/components/dms/MessageMenu.tsx +++ b/src/components/dms/MessageMenu.tsx @@ -1,10 +1,12 @@ import React from 'react' import {LayoutAnimation, Pressable, View} from 'react-native' import * as Clipboard from 'expo-clipboard' +import {RichText} from '@atproto/api' import {ChatBskyConvoDefs} from '@atproto-labs/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {richTextToString} from '#/lib/strings/rich-text-helpers' import {isWeb} from 'platform/detection' import {useConvo} from 'state/messages/convo' import {ConvoStatus} from 'state/messages/convo/types' @@ -18,6 +20,7 @@ import * as Menu from '#/components/Menu' import * as Prompt from '#/components/Prompt' import {usePromptControl} from '#/components/Prompt' import {Clipboard_Stroke2_Corner2_Rounded as ClipboardIcon} from '../icons/Clipboard' +import {MessageReportDialog} from './MessageReportDialog' export let MessageMenu = ({ message, @@ -35,16 +38,22 @@ export let MessageMenu = ({ const convo = useConvo() const deleteControl = usePromptControl() const retryDeleteControl = usePromptControl() + const reportControl = usePromptControl() const isFromSelf = message.sender?.did === currentAccount?.did const onCopyPostText = React.useCallback(() => { - // use when we have rich text - // const str = richTextToString(richText, true) + const str = richTextToString( + new RichText({ + text: message.text, + facets: message.facets, + }), + true, + ) - Clipboard.setStringAsync(message.text) + Clipboard.setStringAsync(str) Toast.show(_(msg`Copied to clipboard`)) - }, [_, message.text]) + }, [_, message.text, message.facets]) const onDelete = React.useCallback(() => { if (convo.status !== ConvoStatus.Ready) return @@ -56,10 +65,6 @@ export let MessageMenu = ({ .catch(() => retryDeleteControl.open()) }, [_, convo, message.id, retryDeleteControl]) - const onReport = React.useCallback(() => { - // TODO report the message - }, []) - return ( <> @@ -104,7 +109,7 @@ export let MessageMenu = ({ + onPress={reportControl.open}> {_(msg`Report`)} @@ -113,6 +118,8 @@ export let MessageMenu = ({ + + { + const {_} = useLingui() + return ( + + + + + + + + ) +} +MessageReportDialog = memo(MessageReportDialog) +export {MessageReportDialog} + +function DialogInner({message}: {message: ChatBskyConvoDefs.MessageView}) { + const [reportOption, setReportOption] = useState(null) + + return reportOption ? ( + setReportOption(null)} + /> + ) : ( + + ) +} + +function ReasonStep({ + setReportOption, +}: { + setReportOption: (reportOption: ReportOption) => void +}) { + const control = Dialog.useDialogContext() + + return ( + + ) +} + +function SubmitStep({ + message, + reportOption, + goBack, +}: { + message: ChatBskyConvoDefs.MessageView + reportOption: ReportOption + goBack: () => void +}) { + const {_} = useLingui() + const {gtMobile} = useBreakpoints() + const t = useTheme() + const [details, setDetails] = useState('') + const control = Dialog.useDialogContext() + const {getAgent} = useAgent() + + const { + mutate: submit, + error, + isPending: submitting, + } = useMutation({ + mutationFn: async () => { + const report = { + reasonType: reportOption.reason, + subject: { + $type: 'chat.bsky.convo.defs#messageRef', + messageId: message.id, + did: message.sender!.did, + } satisfies ChatBskyConvoDefs.MessageRef, + reason: details, + } satisfies ComAtprotoModerationCreateReport.InputSchema + + await getAgent().createModerationReport(report) + }, + onSuccess: () => { + control.close(() => { + Toast.show(_(msg`Thank you. Your report has been sent.`)) + }) + }, + }) + + return ( + + + + + + Report this message + + + + Your report will be sent to the Bluesky Moderation Service + + + + + + + + Reason: {reportOption.title} + + + + + + + Optionally provide additional information below: + + + + + + + + + + + + + {error && ( + + + There was an issue sending your report. Please check your internet + connection. + + + )} + + + + + ) +} + +function PreviewMessage({message}: {message: ChatBskyConvoDefs.MessageView}) { + const t = useTheme() + const rt = useMemo(() => { + return new RichTextAPI({text: message.text, facets: message.facets}) + }, [message.text, message.facets]) + + return ( + + + + + + + ) +} diff --git a/src/lib/moderation/useReportOptions.ts b/src/lib/moderation/useReportOptions.ts index a22386b991..c96f302a63 100644 --- a/src/lib/moderation/useReportOptions.ts +++ b/src/lib/moderation/useReportOptions.ts @@ -15,6 +15,7 @@ interface ReportOptions { list: ReportOption[] feedgen: ReportOption[] other: ReportOption[] + message: ReportOption[] } export function useReportOptions(): ReportOptions { @@ -72,6 +73,19 @@ export function useReportOptions(): ReportOptions { }, ...common, ], + message: [ + { + reason: ComAtprotoModerationDefs.REASONSPAM, + title: _(msg`Spam`), + description: _(msg`Excessive or unwanted messages`), + }, + { + reason: ComAtprotoModerationDefs.REASONSEXUAL, + title: _(msg`Unwanted Sexual Content`), + description: _(msg`Unwanted sexual content`), + }, + ...common, + ], list: [ { reason: ComAtprotoModerationDefs.REASONVIOLATION, From f84a2def2982155ca4ffbe8e5666b14bc91e43f3 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 10 May 2024 12:44:55 -0500 Subject: [PATCH 017/277] =?UTF-8?q?[=F0=9F=90=B4]=20Simplify=20message=20p?= =?UTF-8?q?assing,=20cleanup=20(#3952)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Simplify message passing * Setup/teardown events --- src/state/messages/convo/agent.ts | 42 ++++++++++-- src/state/messages/events/agent.ts | 105 +++++++++++------------------ src/state/messages/events/types.ts | 27 ++++---- 3 files changed, 86 insertions(+), 88 deletions(-) diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index 65470baa59..79406d1551 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -107,12 +107,6 @@ export class Convo { } else { DEBUG_ACTIVE_CHAT = this.convoId } - - this.events.trailConvo(this.convoId, events => { - this.ingestFirehose(events) - }) - this.events.onConnect(this.onFirehoseConnect) - this.events.onError(this.onFirehoseError) } private commit() { @@ -211,6 +205,7 @@ export class Convo { case ConvoDispatchEvent.Init: { this.status = ConvoStatus.Initializing this.setup() + this.setupFirehose() this.requestPollInterval(ACTIVE_POLL_INTERVAL) break } @@ -232,12 +227,14 @@ export class Convo { } case ConvoDispatchEvent.Suspend: { this.status = ConvoStatus.Suspended + this.cleanupFirehoseConnection?.() this.withdrawRequestedPollInterval() break } case ConvoDispatchEvent.Error: { this.status = ConvoStatus.Error this.error = action.payload + this.cleanupFirehoseConnection?.() this.withdrawRequestedPollInterval() break } @@ -258,12 +255,14 @@ export class Convo { } case ConvoDispatchEvent.Suspend: { this.status = ConvoStatus.Suspended + this.cleanupFirehoseConnection?.() this.withdrawRequestedPollInterval() break } case ConvoDispatchEvent.Error: { this.status = ConvoStatus.Error this.error = action.payload + this.cleanupFirehoseConnection?.() this.withdrawRequestedPollInterval() break } @@ -286,12 +285,14 @@ export class Convo { } case ConvoDispatchEvent.Suspend: { this.status = ConvoStatus.Suspended + this.cleanupFirehoseConnection?.() this.withdrawRequestedPollInterval() break } case ConvoDispatchEvent.Error: { this.status = ConvoStatus.Error this.error = action.payload + this.cleanupFirehoseConnection?.() this.withdrawRequestedPollInterval() break } @@ -601,6 +602,33 @@ export class Convo { } } + private cleanupFirehoseConnection: (() => void) | undefined + private setupFirehose() { + // remove old listeners, if exist + this.cleanupFirehoseConnection?.() + + // reconnect + this.cleanupFirehoseConnection = this.events.on( + event => { + switch (event.type) { + case 'connect': { + this.onFirehoseConnect() + break + } + case 'error': { + this.onFirehoseError(event.error) + break + } + case 'logs': { + this.ingestFirehose(event.logs) + break + } + } + }, + {convoId: this.convoId}, + ) + } + onFirehoseConnect() { this.footerItems.delete(ConvoItemError.FirehoseFailed) this.commit() @@ -709,6 +737,8 @@ export class Convo { id: tempId, message, }) + // remove on each send, it might go through now without user having to click + this.footerItems.delete(ConvoItemError.PendingFailed) this.commit() if (!this.isProcessingPendingMessages) { diff --git a/src/state/messages/events/agent.ts b/src/state/messages/events/agent.ts index 061337d3b8..68225e5955 100644 --- a/src/state/messages/events/agent.ts +++ b/src/state/messages/events/agent.ts @@ -8,9 +8,8 @@ import {DEFAULT_POLL_INTERVAL} from '#/state/messages/events/const' import { MessagesEventBusDispatch, MessagesEventBusDispatchEvent, - MessagesEventBusError, MessagesEventBusErrorCode, - MessagesEventBusEvents, + MessagesEventBusEvent, MessagesEventBusParams, MessagesEventBusStatus, } from '#/state/messages/events/types' @@ -22,10 +21,9 @@ export class MessagesEventBus { private agent: BskyAgent private __tempFromUserDid: string - private emitter = new EventEmitter() + private emitter = new EventEmitter<{event: [MessagesEventBusEvent]}>() private status: MessagesEventBusStatus = MessagesEventBusStatus.Initializing - private error: MessagesEventBusError | undefined private latestRev: string | undefined = undefined private pollInterval = DEFAULT_POLL_INTERVAL private requestedPollIntervals: Map = new Map() @@ -52,65 +50,43 @@ export class MessagesEventBus { } } - trail(handler: (events: ChatBskyConvoGetLog.OutputSchema['logs']) => void) { - this.emitter.on('events', handler) - return () => { - this.emitter.off('events', handler) - } - } - - trailConvo( - convoId: string, - handler: (events: ChatBskyConvoGetLog.OutputSchema['logs']) => void, - ) { - const handle = (events: ChatBskyConvoGetLog.OutputSchema['logs']) => { - const convoEvents = events.filter(ev => { - if (typeof ev.convoId === 'string' && ev.convoId === convoId) { - return ev.convoId === convoId - } - return false - }) - - if (convoEvents.length > 0) { - handler(convoEvents) - } - } - - this.emitter.on('events', handle) - return () => { - this.emitter.off('events', handle) - } - } - getLatestRev() { return this.latestRev } - onConnect(handler: () => void) { - this.emitter.on('connect', handler) + on( + handler: (event: MessagesEventBusEvent) => void, + options: { + convoId?: string + }, + ) { + const handle = (event: MessagesEventBusEvent) => { + if (event.type === 'logs' && options.convoId) { + const filteredLogs = event.logs.filter(log => { + if ( + typeof log.convoId === 'string' && + log.convoId === options.convoId + ) { + return log.convoId === options.convoId + } + return false + }) - if ( - this.status === MessagesEventBusStatus.Ready || - this.status === MessagesEventBusStatus.Backgrounded || - this.status === MessagesEventBusStatus.Suspended - ) { - handler() + if (filteredLogs.length > 0) { + handler({ + ...event, + logs: filteredLogs, + }) + } + } else { + handler(event) + } } + this.emitter.on('event', handle) + return () => { - this.emitter.off('connect', handler) - } - } - - onError(handler: (payload?: MessagesEventBusError) => void) { - this.emitter.on('error', handler) - - if (this.status === MessagesEventBusStatus.Error) { - handler(this.error) - } - - return () => { - this.emitter.off('error', handler) + this.emitter.off('event', handle) } } @@ -138,13 +114,13 @@ export class MessagesEventBus { case MessagesEventBusDispatchEvent.Ready: { this.status = MessagesEventBusStatus.Ready this.resetPoll() - this.emitter.emit('connect') + this.emitter.emit('event', {type: 'connect'}) break } case MessagesEventBusDispatchEvent.Background: { this.status = MessagesEventBusStatus.Backgrounded this.resetPoll() - this.emitter.emit('connect') + this.emitter.emit('event', {type: 'connect'}) break } case MessagesEventBusDispatchEvent.Suspend: { @@ -153,8 +129,7 @@ export class MessagesEventBus { } case MessagesEventBusDispatchEvent.Error: { this.status = MessagesEventBusStatus.Error - this.error = action.payload - this.emitter.emit('error', action.payload) + this.emitter.emit('event', {type: 'error', error: action.payload}) break } } @@ -174,9 +149,8 @@ export class MessagesEventBus { } case MessagesEventBusDispatchEvent.Error: { this.status = MessagesEventBusStatus.Error - this.error = action.payload this.stopPoll() - this.emitter.emit('error', action.payload) + this.emitter.emit('event', {type: 'error', error: action.payload}) break } case MessagesEventBusDispatchEvent.UpdatePoll: { @@ -200,9 +174,8 @@ export class MessagesEventBus { } case MessagesEventBusDispatchEvent.Error: { this.status = MessagesEventBusStatus.Error - this.error = action.payload this.stopPoll() - this.emitter.emit('error', action.payload) + this.emitter.emit('event', {type: 'error', error: action.payload}) break } case MessagesEventBusDispatchEvent.UpdatePoll: { @@ -226,9 +199,8 @@ export class MessagesEventBus { } case MessagesEventBusDispatchEvent.Error: { this.status = MessagesEventBusStatus.Error - this.error = action.payload this.stopPoll() - this.emitter.emit('error', action.payload) + this.emitter.emit('event', {type: 'error', error: action.payload}) break } } @@ -239,7 +211,6 @@ export class MessagesEventBus { case MessagesEventBusDispatchEvent.Resume: { // basically reset this.status = MessagesEventBusStatus.Initializing - this.error = undefined this.latestRev = undefined this.init() break @@ -403,7 +374,7 @@ export class MessagesEventBus { if (needsEmit) { try { - this.emitter.emit('events', batch) + this.emitter.emit('event', {type: 'logs', logs: batch}) } catch (e: any) { logger.error(e, { context: `${LOGGER_CONTEXT}: process latest events`, diff --git a/src/state/messages/events/types.ts b/src/state/messages/events/types.ts index c6be522ae3..e65136e4b8 100644 --- a/src/state/messages/events/types.ts +++ b/src/state/messages/events/types.ts @@ -55,18 +55,15 @@ export type MessagesEventBusDispatch = event: MessagesEventBusDispatchEvent.UpdatePoll } -export type TrailHandler = ( - events: ChatBskyConvoGetLog.OutputSchema['logs'], -) => void - -export type RequestPollIntervalHandler = (interval: number) => () => void -export type OnConnectHandler = (handler: () => void) => () => void -export type OnDisconnectHandler = ( - handler: (error?: MessagesEventBusError) => void, -) => () => void - -export type MessagesEventBusEvents = { - events: [ChatBskyConvoGetLog.OutputSchema['logs']] - connect: undefined - error: [MessagesEventBusError] | undefined -} +export type MessagesEventBusEvent = + | { + type: 'connect' + } + | { + type: 'error' + error: MessagesEventBusError + } + | { + type: 'logs' + logs: ChatBskyConvoGetLog.OutputSchema['logs'] + } From 2974ce1b20397443ed352aba75bb6c18f46e8830 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 10 May 2024 18:02:33 -0500 Subject: [PATCH 018/277] Gate chat icon in bottom bars (#3959) --- src/view/shell/bottom-bar/BottomBar.tsx | 42 ++++++++++++++++++++-- src/view/shell/bottom-bar/BottomBarWeb.tsx | 18 +++++++++- 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/view/shell/bottom-bar/BottomBar.tsx b/src/view/shell/bottom-bar/BottomBar.tsx index bcaaf34178..212587e30b 100644 --- a/src/view/shell/bottom-bar/BottomBar.tsx +++ b/src/view/shell/bottom-bar/BottomBar.tsx @@ -36,6 +36,10 @@ import { Bell_Filled_Corner0_Rounded as BellFilled, Bell_Stroke2_Corner0_Rounded as Bell, } from '#/components/icons/Bell' +import { + Hashtag_Filled_Corner0_Rounded as HashtagFilled, + Hashtag_Stroke2_Corner0_Rounded as Hashtag, +} from '#/components/icons/Hashtag' import { HomeOpen_Filled_Corner0_Rounded as HomeFilled, HomeOpen_Stoke2_Corner0_Rounded as Home, @@ -63,8 +67,14 @@ export function BottomBar({navigation}: BottomTabBarProps) { const safeAreaInsets = useSafeAreaInsets() const {track} = useAnalytics() const {footerHeight} = useShellLayout() - const {isAtHome, isAtSearch, isAtNotifications, isAtMyProfile, isAtMessages} = - useNavigationTabState() + const { + isAtHome, + isAtSearch, + isAtFeeds, + isAtNotifications, + isAtMyProfile, + isAtMessages, + } = useNavigationTabState() const numUnreadNotifications = useUnreadNotifications() const numUnreadMessages = useUnreadMessageCount() const {footerMinimalShellTransform} = useMinimalShellMode() @@ -108,6 +118,10 @@ export function BottomBar({navigation}: BottomTabBarProps) { () => onPressTab('Search'), [onPressTab], ) + const onPressFeeds = React.useCallback( + () => onPressTab('Feeds'), + [onPressTab], + ) const onPressNotifications = React.useCallback( () => onPressTab('Notifications'), [onPressTab], @@ -182,7 +196,7 @@ export function BottomBar({navigation}: BottomTabBarProps) { accessibilityLabel={_(msg`Search`)} accessibilityHint="" /> - {gate('dms') && ( + {gate('dms') ? ( + ) : ( + + ) : ( + + ) + } + onPress={onPressFeeds} + accessible={true} + accessibilityRole="tab" + accessibilityLabel={_(msg`Feeds`)} + accessibilityHint="" + /> )} - {gate('dms') && ( + {gate('dms') ? ( {({isActive}) => { const Icon = isActive ? MessageFilled : Message @@ -113,6 +117,18 @@ export function BottomBarWeb() { ) }} + ) : ( + + {({isActive}) => { + const Icon = isActive ? HashtagFilled : Hashtag + return ( + + ) + }} + )} {({isActive}) => { From 08979f37e723e90901d26578b7ac8a17e23f31cb Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 10 May 2024 22:39:21 -0500 Subject: [PATCH 019/277] Movable following feed (#3593) * Handle home algo with backwards compat * Remove todo, fix pwi view * Simplify filter logic * Handle edge case * Handle home algo in FeedSourceCard * Fix handling of pinned feed if home algo is disabled * Handle home algo on ProfileFeed screen * Rename * Fix pinned feeds key * Improve perf of pinned feeds with primary algo * Update statsig API * Revert unneeded changes * Support following feed as well * Better formatting * Clarify primary algo usage * Better comment * Handle saved feed screen edge case * Restore Feeds sparkle, fix line height * Move gate call down * Filter out primary algo from feeds page * Filter dupe from Feeds screen * Simplify logic * Missing following handling * Hide primary feed setting outside exp * Revert testing change * Migrate usePinnedFeedInfos * Migrate FeedSourceCard * Migrate Feeds screen * Migrate SavedFeeds screen * Handle timeline in feed infos * Finish migrating ProfileFeed, FeedSourceCard * Migrate ProfileList * Finalize mutation hooks * Allow unsaving lists * Handle following feed on Feeds screen * Handle following on SavedFeeds * Get rid of deprecated interface usages * Handle no pinned feeds * Handle no feeds on Feeds screen * Reuse component on SavedFeeds screen * Handle no following feed * Remove primary algo references * Migrate to new plural APIs * Remove unused event * Prevent duplicate keys * Make handling much more clear * Dedupe useHeaderOffset * Filter unknown feed types at source * Use just following * Immprove key handling * Resume from last tab * Bump sdk * Revert Gemfile * Additional protection in FeedSourceCard * Fix ProfileList save/unsave handling * Translate * Translate * Match existing handling post-signup * Ensure onboarding results in correct selected feeds * Some testing tweaks on create/onboarding * Revert primary algo consderations * Remove comment * Handle default feed setting * Rm unnecessary type cast * Remove premature gate check * Remove nullable check in onPageSelecting, assume the pager checks bounds * Use null for default selected feed * Rm unrelated change * Remove the concept of __key__ I don't think this concept is consistent. It's introduced on FeedSourceInfo which is used both by pinned feeds and by useFeedSourceInfoQuery. Pinned feeds use the pinning ID there. But there is no pinning ID for useFeedSourceInfoQuery. So this means this field is sometimes one thing and sometimes some other thing. That is a decent sign that it shouldn't be on that type at all. It's not used anywhere except the desktop feed enumeration. It seems reasonable to assume there that we wouldn't want to show the same feed URL twice. (And if it does occur in the array twice, IMO we should solve that at the API level and dedupe it on read or next write.) So I think we should just use the URL in that place. (I used the descriptor, which is equivalent.) * Dedupe pinned feeds by URL on read * Filter timeline out of mergefeed sources * Put FeedDescriptor into FeedSourceInfo * Group saved info with feed for pins This removes a loop within a loop within a loop. * Fix Feeds link on native --------- Co-authored-by: Dan Abramov --- .../src/ExpoScrollForwarderView.ios.tsx | 2 +- package.json | 2 +- src/components/LabelingServiceCard/index.tsx | 16 +- src/components/hooks/useHeaderOffset.ts | 16 ++ src/components/icons/Home.tsx | 9 + src/components/moderation/LabelsOnMe.tsx | 4 +- src/lib/constants.ts | 21 +- src/screens/Feeds/NoFollowingFeed.tsx | 50 ++++ src/screens/Feeds/NoSavedFeedsOfAnyType.tsx | 57 ++++ src/screens/Home/NoFeedsPinned.tsx | 129 +++++++++ .../Onboarding/StepAlgoFeeds/FeedCard.tsx | 2 +- src/screens/Onboarding/StepFinished.tsx | 57 +++- src/state/preferences/feed-tuners.tsx | 5 +- src/state/queries/feed.ts | 101 ++++--- src/state/queries/post-feed.ts | 6 +- src/state/queries/preferences/const.ts | 21 +- src/state/queries/preferences/index.ts | 71 ++--- src/state/queries/preferences/types.ts | 5 +- src/state/session/agent.ts | 34 ++- src/state/shell/selected-feed.tsx | 35 ++- src/view/com/feeds/FeedPage.tsx | 21 +- src/view/com/feeds/FeedSourceCard.tsx | 78 +++--- src/view/com/home/HomeHeader.tsx | 19 +- src/view/com/lightbox/Lightbox.tsx | 25 +- src/view/com/modals/SelfLabel.tsx | 13 +- src/view/com/pager/TabBar.tsx | 16 +- src/view/com/posts/Feed.tsx | 15 +- src/view/com/posts/FeedErrorMessage.tsx | 53 ++-- src/view/com/util/post-ctrls/RepostButton.tsx | 15 +- src/view/screens/Feeds.tsx | 166 +++++++++-- src/view/screens/Home.tsx | 99 +++---- src/view/screens/PreferencesFollowingFeed.tsx | 25 +- src/view/screens/ProfileFeed.tsx | 109 +++----- src/view/screens/ProfileList.tsx | 109 ++++++-- src/view/screens/SavedFeeds.tsx | 261 ++++++++++++------ src/view/shell/desktop/Feeds.tsx | 28 +- yarn.lock | 8 +- 37 files changed, 1142 insertions(+), 561 deletions(-) create mode 100644 src/components/hooks/useHeaderOffset.ts create mode 100644 src/components/icons/Home.tsx create mode 100644 src/screens/Feeds/NoFollowingFeed.tsx create mode 100644 src/screens/Feeds/NoSavedFeedsOfAnyType.tsx create mode 100644 src/screens/Home/NoFeedsPinned.tsx diff --git a/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.ios.tsx b/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.ios.tsx index 6364d332c5..21a2b9fb26 100644 --- a/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.ios.tsx +++ b/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.ios.tsx @@ -1,5 +1,5 @@ -import {requireNativeViewManager} from 'expo-modules-core' import * as React from 'react' +import {requireNativeViewManager} from 'expo-modules-core' import {ExpoScrollForwarderViewProps} from './ExpoScrollForwarder.types' diff --git a/package.json b/package.json index 26d6b061b1..516428f802 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ }, "dependencies": { "@atproto-labs/api": "^0.12.8-clipclops.0", - "@atproto/api": "^0.12.5", + "@atproto/api": "^0.12.6", "@bam.tech/react-native-image-resizer": "^3.0.4", "@braintree/sanitize-url": "^6.0.2", "@discord/bottom-sheet": "bluesky-social/react-native-bottom-sheet", diff --git a/src/components/LabelingServiceCard/index.tsx b/src/components/LabelingServiceCard/index.tsx index 2bb7ed59ce..542f2d2993 100644 --- a/src/components/LabelingServiceCard/index.tsx +++ b/src/components/LabelingServiceCard/index.tsx @@ -1,18 +1,18 @@ import React from 'react' import {View} from 'react-native' +import {AppBskyLabelerDefs} from '@atproto/api' import {msg, Plural, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {AppBskyLabelerDefs} from '@atproto/api' import {getLabelingServiceTitle} from '#/lib/moderation' -import {Link as InternalLink, LinkProps} from '#/components/Link' -import {Text} from '#/components/Typography' -import {useLabelerInfoQuery} from '#/state/queries/labeler' -import {atoms as a, useTheme, ViewStyleProp} from '#/alf' -import {RichText} from '#/components/RichText' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '../icons/Chevron' -import {UserAvatar} from '#/view/com/util/UserAvatar' import {sanitizeHandle} from '#/lib/strings/handles' +import {useLabelerInfoQuery} from '#/state/queries/labeler' +import {UserAvatar} from '#/view/com/util/UserAvatar' +import {atoms as a, useTheme, ViewStyleProp} from '#/alf' +import {Link as InternalLink, LinkProps} from '#/components/Link' +import {RichText} from '#/components/RichText' +import {Text} from '#/components/Typography' +import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '../icons/Chevron' type LabelingServiceProps = { labeler: AppBskyLabelerDefs.LabelerViewDetailed diff --git a/src/components/hooks/useHeaderOffset.ts b/src/components/hooks/useHeaderOffset.ts new file mode 100644 index 0000000000..e2290c04fb --- /dev/null +++ b/src/components/hooks/useHeaderOffset.ts @@ -0,0 +1,16 @@ +import {useWindowDimensions} from 'react-native' + +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' + +export function useHeaderOffset() { + const {isDesktop, isTablet} = useWebMediaQueries() + const {fontScale} = useWindowDimensions() + if (isDesktop || isTablet) { + return 0 + } + const navBarHeight = 42 + const tabBarPad = 10 + 10 + 3 // padding + border + const normalLineHeight = 1.2 + const tabBarText = 16 * normalLineHeight * fontScale + return navBarHeight + tabBarPad + tabBarText +} diff --git a/src/components/icons/Home.tsx b/src/components/icons/Home.tsx new file mode 100644 index 0000000000..e150b7b813 --- /dev/null +++ b/src/components/icons/Home.tsx @@ -0,0 +1,9 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Home_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M11.46 1.362a2 2 0 0 1 1.08 0c.249.07.448.188.611.301.146.102.306.232.467.363l6.421 5.218.046.036c.169.137.38.308.54.53a2 2 0 0 1 .304.64c.073.264.072.536.071.753v9.229c0 .252 0 .498-.017.706a2.023 2.023 0 0 1-.201.77 2 2 0 0 1-.874.874 2.02 2.02 0 0 1-.77.201c-.208.017-.454.017-.706.017H5.568c-.252 0-.498 0-.706-.017a2.02 2.02 0 0 1-.77-.201 2 2 0 0 1-.874-.874 2.022 2.022 0 0 1-.201-.77C3 18.93 3 18.684 3 18.432V9.203c0-.217-.002-.49.07-.754a2 2 0 0 1 .304-.638c.16-.223.372-.394.541-.53l.045-.037 6.422-5.218c.161-.13.321-.26.467-.362.163-.114.362-.232.612-.302Zm.532 1.943c-.077.054-.18.136-.37.29l-6.4 5.2a6.315 6.315 0 0 0-.215.18c-.002 0-.003.002-.004.003v.004C5 9.036 5 9.112 5 9.262V18.4a8.18 8.18 0 0 0 .011.588l.014.002c.116.01.278.01.575.01H8v-5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v5h2.4a8.207 8.207 0 0 0 .589-.012v-.013c.01-.116.011-.279.011-.575V9.262c0-.15 0-.226-.003-.28v-.004l-.003-.003a6.448 6.448 0 0 0-.216-.18l-6.4-5.2a7.373 7.373 0 0 0-.37-.29L12 3.299l-.008.006ZM14 19v-5h-4v5h4Z', +}) + +export const Home_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'M13.261 1.736a2 2 0 0 0-2.522 0l-7 5.687A2 2 0 0 0 3 8.976V19a2 2 0 0 0 2 2h3v-8a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v8h3a2 2 0 0 0 2-2V8.976a2 2 0 0 0-.739-1.553l-7-5.687ZM14 21h-4v-7h4v7Z', +}) diff --git a/src/components/moderation/LabelsOnMe.tsx b/src/components/moderation/LabelsOnMe.tsx index 46825d7617..ea5c74f9e2 100644 --- a/src/components/moderation/LabelsOnMe.tsx +++ b/src/components/moderation/LabelsOnMe.tsx @@ -3,10 +3,10 @@ import {StyleProp, View, ViewStyle} from 'react-native' import {AppBskyFeedDefs, ComAtprotoLabelDefs} from '@atproto/api' import {msg, Plural} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useSession} from '#/state/session' +import {useSession} from '#/state/session' import {atoms as a} from '#/alf' -import {Button, ButtonText, ButtonIcon, ButtonSize} from '#/components/Button' +import {Button, ButtonIcon, ButtonSize, ButtonText} from '#/components/Button' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' import { LabelsOnMeDialog, diff --git a/src/lib/constants.ts b/src/lib/constants.ts index d7bec1e18d..83f5139112 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -1,4 +1,5 @@ import {Insets, Platform} from 'react-native' +import {AppBskyActorDefs} from '@atproto/api' export const LOCAL_DEV_SERVICE = Platform.OS === 'android' ? 'http://10.0.2.2:2583' : 'http://localhost:2583' @@ -44,7 +45,7 @@ export function IS_TEST_USER(handle?: string) { } export function IS_PROD_SERVICE(url?: string) { - return url && url !== STAGING_SERVICE && url !== LOCAL_DEV_SERVICE + return url && url !== STAGING_SERVICE && !url.startsWith(LOCAL_DEV_SERVICE) } export const PROD_DEFAULT_FEED = (rkey: string) => @@ -92,6 +93,24 @@ export const BSKY_FEED_OWNER_DIDS = [ 'did:plc:q6gjnaw2blty4crticxkmujt', ] +export const DISCOVER_FEED_URI = + 'at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot' +export const DISCOVER_SAVED_FEED = { + type: 'feed', + value: DISCOVER_FEED_URI, + pinned: true, +} +export const TIMELINE_SAVED_FEED = { + type: 'timeline', + value: 'following', + pinned: true, +} + +export const RECOMMENDED_SAVED_FEEDS: Pick< + AppBskyActorDefs.SavedFeed, + 'type' | 'value' | 'pinned' +>[] = [DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED] + export const GIF_SERVICE = 'https://gifs.bsky.app' export const GIF_SEARCH = (params: string) => diff --git a/src/screens/Feeds/NoFollowingFeed.tsx b/src/screens/Feeds/NoFollowingFeed.tsx new file mode 100644 index 0000000000..03ced8ebd5 --- /dev/null +++ b/src/screens/Feeds/NoFollowingFeed.tsx @@ -0,0 +1,50 @@ +import React from 'react' +import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {TIMELINE_SAVED_FEED} from '#/lib/constants' +import {useAddSavedFeedsMutation} from '#/state/queries/preferences' +import {atoms as a, useTheme} from '#/alf' +import {InlineLinkText} from '#/components/Link' +import {Text} from '#/components/Typography' + +export function NoFollowingFeed() { + const t = useTheme() + const {_} = useLingui() + const {mutateAsync: addSavedFeeds} = useAddSavedFeedsMutation() + + const addRecommendedFeeds = React.useCallback( + (e: any) => { + e.preventDefault() + + addSavedFeeds([ + { + ...TIMELINE_SAVED_FEED, + pinned: true, + }, + ]) + + // prevent navigation + return false + }, + [addSavedFeeds], + ) + + return ( + + + Looks like you're missing a following feed.{' '} + + + + Click here to add one. + + + ) +} diff --git a/src/screens/Feeds/NoSavedFeedsOfAnyType.tsx b/src/screens/Feeds/NoSavedFeedsOfAnyType.tsx new file mode 100644 index 0000000000..8f6bd9d2eb --- /dev/null +++ b/src/screens/Feeds/NoSavedFeedsOfAnyType.tsx @@ -0,0 +1,57 @@ +import React from 'react' +import {View} from 'react-native' +import {TID} from '@atproto/common-web' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {RECOMMENDED_SAVED_FEEDS} from '#/lib/constants' +import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' +import {Text} from '#/components/Typography' + +/** + * Explicitly named, since the CTA in this component will overwrite all saved + * feeds if pressed. It should only be presented to the user if they actually + * have no other feeds saved. + */ +export function NoSavedFeedsOfAnyType() { + const t = useTheme() + const {_} = useLingui() + const {isPending, mutateAsync: overwriteSavedFeeds} = + useOverwriteSavedFeedsMutation() + + const addRecommendedFeeds = React.useCallback(async () => { + await overwriteSavedFeeds( + RECOMMENDED_SAVED_FEEDS.map(f => ({ + ...f, + id: TID.nextStr(), + })), + ) + }, [overwriteSavedFeeds]) + + return ( + + + + Looks like you haven't saved any feeds! Use our recommendations or + browse more below. + + + + + + ) +} diff --git a/src/screens/Home/NoFeedsPinned.tsx b/src/screens/Home/NoFeedsPinned.tsx new file mode 100644 index 0000000000..e804e3e09f --- /dev/null +++ b/src/screens/Home/NoFeedsPinned.tsx @@ -0,0 +1,129 @@ +import React from 'react' +import {View} from 'react-native' +import {TID} from '@atproto/common-web' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' + +import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants' +import {isNative} from '#/platform/detection' +import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences' +import {UsePreferencesQueryResponse} from '#/state/queries/preferences' +import {NavigationProp} from 'lib/routes/types' +import {CenteredView} from '#/view/com/util/Views' +import {atoms as a} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {useHeaderOffset} from '#/components/hooks/useHeaderOffset' +import {ListSparkle_Stroke2_Corner0_Rounded as ListSparkle} from '#/components/icons/ListSparkle' +import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' +import {Link} from '#/components/Link' +import {Text} from '#/components/Typography' + +export function NoFeedsPinned({ + preferences, +}: { + preferences: UsePreferencesQueryResponse +}) { + const {_} = useLingui() + const headerOffset = useHeaderOffset() + const navigation = useNavigation() + const {isPending, mutateAsync: overwriteSavedFeeds} = + useOverwriteSavedFeedsMutation() + + const addRecommendedFeeds = React.useCallback(async () => { + let skippedTimeline = false + let skippedDiscover = false + let remainingSavedFeeds = [] + + // remove first instance of both timeline and discover, since we're going to overwrite them + for (const savedFeed of preferences.savedFeeds) { + if (savedFeed.type === 'timeline' && !skippedTimeline) { + skippedTimeline = true + } else if ( + savedFeed.value === DISCOVER_SAVED_FEED.value && + !skippedDiscover + ) { + skippedDiscover = true + } else { + remainingSavedFeeds.push(savedFeed) + } + } + + const toSave = [ + { + ...DISCOVER_SAVED_FEED, + pinned: true, + id: TID.nextStr(), + }, + { + ...TIMELINE_SAVED_FEED, + pinned: true, + id: TID.nextStr(), + }, + ...remainingSavedFeeds, + ] + + await overwriteSavedFeeds(toSave) + }, [overwriteSavedFeeds, preferences.savedFeeds]) + + const onPressFeedsLink = React.useCallback(() => { + if (isNative) { + // Hack that's necessary due to how our navigators are set up. + navigation.navigate('FeedsTab') + navigation.popToTop() + return false + } + }, [navigation]) + + return ( + + + + + Whoops! + + + + Looks like you unpinned all your feeds. But don't worry, you can + add some below 😄 + + + + + + + + + + {_(msg`Browse other feeds`)} + + + + + ) +} diff --git a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx b/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx index d2b2a5f391..0aa063faa5 100644 --- a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx +++ b/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx @@ -2,7 +2,7 @@ import React from 'react' import {View} from 'react-native' import {Image} from 'expo-image' import {LinearGradient} from 'expo-linear-gradient' -import {Trans, msg} from '@lingui/macro' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {FeedSourceInfo, useFeedSourceInfoQuery} from '#/state/queries/feed' diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index e7054fb1ff..4cc611ef4f 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -1,13 +1,15 @@ import React from 'react' import {View} from 'react-native' +import {TID} from '@atproto/common-web' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useAnalytics} from '#/lib/analytics/analytics' -import {BSKY_APP_ACCOUNT_DID} from '#/lib/constants' +import {BSKY_APP_ACCOUNT_DID, IS_PROD_SERVICE} from '#/lib/constants' +import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants' import {logEvent} from '#/lib/statsig/statsig' import {logger} from '#/logger' -import {useSetSaveFeedsMutation} from '#/state/queries/preferences' +import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences' import {useAgent} from '#/state/session' import {useOnboardingDispatch} from '#/state/shell' import { @@ -37,7 +39,7 @@ export function StepFinished() { const {state, dispatch} = React.useContext(Context) const onboardDispatch = useOnboardingDispatch() const [saving, setSaving] = React.useState(false) - const {mutateAsync: saveFeeds} = useSetSaveFeedsMutation() + const {mutateAsync: overwriteSavedFeeds} = useOverwriteSavedFeedsMutation() const {getAgent} = useAgent() const finishOnboarding = React.useCallback(async () => { @@ -64,10 +66,41 @@ export function StepFinished() { // these must be serial (async () => { await getAgent().setInterestsPref({tags: selectedInterests}) - await saveFeeds({ - saved: selectedFeeds, - pinned: selectedFeeds, - }) + + // TODO: In the reduced onboarding, we'll want to exit early here. + + const otherFeeds = selectedFeeds.length + ? selectedFeeds.map(f => ({ + type: 'feed', + value: f, + pinned: true, + id: TID.nextStr(), + })) + : [] + + /* + * If no selected feeds and we're in prod, add the discover feed + * (mimics old behavior) + */ + if ( + IS_PROD_SERVICE(getAgent().service.toString()) && + !otherFeeds.length + ) { + otherFeeds.push({ + ...DISCOVER_SAVED_FEED, + pinned: true, + id: TID.nextStr(), + }) + } + + await overwriteSavedFeeds([ + { + ...TIMELINE_SAVED_FEED, + pinned: true, + id: TID.nextStr(), + }, + ...otherFeeds, + ]) })(), ]) } catch (e: any) { @@ -82,7 +115,15 @@ export function StepFinished() { track('OnboardingV2:StepFinished:End') track('OnboardingV2:Complete') logEvent('onboarding:finished:nextPressed', {}) - }, [state, dispatch, onboardDispatch, setSaving, saveFeeds, track, getAgent]) + }, [ + state, + dispatch, + onboardDispatch, + setSaving, + overwriteSavedFeeds, + track, + getAgent, + ]) React.useEffect(() => { track('OnboardingV2:StepFinished:Start') diff --git a/src/state/preferences/feed-tuners.tsx b/src/state/preferences/feed-tuners.tsx index c4954d20a8..ac129d1722 100644 --- a/src/state/preferences/feed-tuners.tsx +++ b/src/state/preferences/feed-tuners.tsx @@ -1,9 +1,10 @@ import {useMemo} from 'react' + import {FeedTuner} from '#/lib/api/feed-manip' import {FeedDescriptor} from '../queries/post-feed' -import {useLanguagePrefs} from './languages' import {usePreferencesQuery} from '../queries/preferences' import {useSession} from '../session' +import {useLanguagePrefs} from './languages' export function useFeedTuners(feedDesc: FeedDescriptor) { const langPrefs = useLanguagePrefs() @@ -20,7 +21,7 @@ export function useFeedTuners(feedDesc: FeedDescriptor) { if (feedDesc.startsWith('list')) { return [FeedTuner.dedupReposts] } - if (feedDesc === 'home' || feedDesc === 'following') { + if (feedDesc === 'following') { const feedTuners = [] if (preferences?.feedViewPrefs.hideReposts) { diff --git a/src/state/queries/feed.ts b/src/state/queries/feed.ts index 1741d113c4..19cded087b 100644 --- a/src/state/queries/feed.ts +++ b/src/state/queries/feed.ts @@ -1,4 +1,5 @@ import { + AppBskyActorDefs, AppBskyFeedDefs, AppBskyGraphDefs, AppBskyUnspeccedGetPopularFeedGenerators, @@ -13,16 +14,19 @@ import { useQuery, } from '@tanstack/react-query' +import {DISCOVER_FEED_URI, DISCOVER_SAVED_FEED} from '#/lib/constants' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' import {STALE} from '#/state/queries' import {usePreferencesQuery} from '#/state/queries/preferences' import {useAgent, useSession} from '#/state/session' import {router} from '#/routes' +import {FeedDescriptor} from './post-feed' export type FeedSourceFeedInfo = { type: 'feed' uri: string + feedDescriptor: FeedDescriptor route: { href: string name: string @@ -41,6 +45,7 @@ export type FeedSourceFeedInfo = { export type FeedSourceListInfo = { type: 'list' uri: string + feedDescriptor: FeedDescriptor route: { href: string name: string @@ -79,6 +84,7 @@ export function hydrateFeedGenerator( return { type: 'feed', uri: view.uri, + feedDescriptor: `feedgen|${view.uri}`, cid: view.cid, route: { href, @@ -110,6 +116,7 @@ export function hydrateList(view: AppBskyGraphDefs.ListView): FeedSourceInfo { return { type: 'list', uri: view.uri, + feedDescriptor: `list|${view.uri}`, route: { href, name: route[0], @@ -202,27 +209,15 @@ export function useSearchPopularFeedsMutation() { }) } -const FOLLOWING_FEED_STUB: FeedSourceInfo = { - type: 'feed', - displayName: 'Following', - uri: '', - route: { - href: '/', - name: 'Home', - params: {}, - }, - cid: '', - avatar: '', - description: new RichText({text: ''}), - creatorDid: '', - creatorHandle: '', - likeCount: 0, - likeUri: '', +export type SavedFeedSourceInfo = FeedSourceInfo & { + savedFeed: AppBskyActorDefs.SavedFeed } -const DISCOVER_FEED_STUB: FeedSourceInfo = { + +const PWI_DISCOVER_FEED_STUB: SavedFeedSourceInfo = { type: 'feed', displayName: 'Discover', - uri: '', + uri: DISCOVER_FEED_URI, + feedDescriptor: `feedgen|${DISCOVER_FEED_URI}`, route: { href: '/', name: 'Home', @@ -235,6 +230,11 @@ const DISCOVER_FEED_STUB: FeedSourceInfo = { creatorHandle: '', likeCount: 0, likeUri: '', + // --- + savedFeed: { + id: 'pwi-discover', + ...DISCOVER_SAVED_FEED, + }, } const pinnedFeedInfosQueryKeyRoot = 'pinnedFeedsInfos' @@ -243,43 +243,45 @@ export function usePinnedFeedsInfos() { const {hasSession} = useSession() const {getAgent} = useAgent() const {data: preferences, isLoading: isLoadingPrefs} = usePreferencesQuery() - const pinnedUris = preferences?.feeds?.pinned ?? [] + const pinnedItems = preferences?.savedFeeds.filter(feed => feed.pinned) ?? [] return useQuery({ staleTime: STALE.INFINITY, enabled: !isLoadingPrefs, queryKey: [ pinnedFeedInfosQueryKeyRoot, - (hasSession ? 'authed:' : 'unauthed:') + pinnedUris.join(','), + (hasSession ? 'authed:' : 'unauthed:') + + pinnedItems.map(f => f.value).join(','), ], queryFn: async () => { - let resolved = new Map() + if (!hasSession) { + return [PWI_DISCOVER_FEED_STUB] + } + + let resolved = new Map() // Get all feeds. We can do this in a batch. - const feedUris = pinnedUris.filter( - uri => getFeedTypeFromUri(uri) === 'feed', - ) + const pinnedFeeds = pinnedItems.filter(feed => feed.type === 'feed') let feedsPromise = Promise.resolve() - if (feedUris.length > 0) { + if (pinnedFeeds.length > 0) { feedsPromise = getAgent() .app.bsky.feed.getFeedGenerators({ - feeds: feedUris, + feeds: pinnedFeeds.map(f => f.value), }) .then(res => { - for (let feedView of res.data.feeds) { + for (let i = 0; i < res.data.feeds.length; i++) { + const feedView = res.data.feeds[i] resolved.set(feedView.uri, hydrateFeedGenerator(feedView)) } }) } // Get all lists. This currently has to be done individually. - const listUris = pinnedUris.filter( - uri => getFeedTypeFromUri(uri) === 'list', - ) - const listsPromises = listUris.map(listUri => + const pinnedLists = pinnedItems.filter(feed => feed.type === 'list') + const listsPromises = pinnedLists.map(list => getAgent() .app.bsky.graph.getList({ - list: listUri, + list: list.value, limit: 1, }) .then(res => { @@ -288,12 +290,37 @@ export function usePinnedFeedsInfos() { }), ) - // The returned result will have the original order. - const result = [hasSession ? FOLLOWING_FEED_STUB : DISCOVER_FEED_STUB] await Promise.allSettled([feedsPromise, ...listsPromises]) - for (let pinnedUri of pinnedUris) { - if (resolved.has(pinnedUri)) { - result.push(resolved.get(pinnedUri)) + + // order the feeds/lists in the order they were pinned + const result: SavedFeedSourceInfo[] = [] + for (let pinnedItem of pinnedItems) { + const feedInfo = resolved.get(pinnedItem.value) + if (feedInfo) { + result.push({ + ...feedInfo, + savedFeed: pinnedItem, + }) + } else if (pinnedItem.type === 'timeline') { + result.push({ + type: 'feed', + displayName: 'Following', + uri: pinnedItem.value, + feedDescriptor: 'following', + route: { + href: '/', + name: 'Home', + params: {}, + }, + cid: '', + avatar: '', + description: new RichText({text: ''}), + creatorDid: '', + creatorHandle: '', + likeCount: 0, + likeUri: '', + savedFeed: pinnedItem, + }) } } return result diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index dc86a9ba0d..7b312edfe5 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -44,8 +44,8 @@ type AuthorFilter = | 'posts_with_media' type FeedUri = string type ListUri = string + export type FeedDescriptor = - | 'home' | 'following' | `author|${ActorDid}|${AuthorFilter}` | `feedgen|${FeedUri}` @@ -390,7 +390,7 @@ function createApi({ userInterests?: string getAgent: () => BskyAgent }) { - if (feedDesc === 'home') { + if (feedDesc === 'following') { if (feedParams.mergeFeedEnabled) { return new MergeFeedAPI({ getAgent, @@ -401,8 +401,6 @@ function createApi({ } else { return new HomeFeedAPI({getAgent, userInterests}) } - } else if (feedDesc === 'following') { - return new FollowingFeedAPI({getAgent}) } else if (feedDesc.startsWith('author')) { const [_, actor, filter] = feedDesc.split('|') return new AuthorFeedAPI({getAgent, feedParams: {actor, filter}}) diff --git a/src/state/queries/preferences/const.ts b/src/state/queries/preferences/const.ts index 4cb4d1e964..d94edb47e8 100644 --- a/src/state/queries/preferences/const.ts +++ b/src/state/queries/preferences/const.ts @@ -1,8 +1,8 @@ -import { - UsePreferencesQueryResponse, - ThreadViewPreferences, -} from '#/state/queries/preferences/types' import {DEFAULT_LOGGED_OUT_LABEL_PREFERENCES} from '#/state/queries/preferences/moderation' +import { + ThreadViewPreferences, + UsePreferencesQueryResponse, +} from '#/state/queries/preferences/types' export const DEFAULT_HOME_FEED_PREFS: UsePreferencesQueryResponse['feedViewPrefs'] = { @@ -20,20 +20,8 @@ export const DEFAULT_THREAD_VIEW_PREFS: ThreadViewPreferences = { lab_treeViewEnabled: false, } -const DEFAULT_PROD_FEED_PREFIX = (rkey: string) => - `at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/${rkey}` -export const DEFAULT_PROD_FEEDS = { - pinned: [DEFAULT_PROD_FEED_PREFIX('whats-hot')], - saved: [DEFAULT_PROD_FEED_PREFIX('whats-hot')], -} - export const DEFAULT_LOGGED_OUT_PREFERENCES: UsePreferencesQueryResponse = { birthDate: new Date('2022-11-17'), // TODO(pwi) - feeds: { - saved: [], - pinned: [], - unpinned: [], - }, moderationPrefs: { adultContentEnabled: false, labels: DEFAULT_LOGGED_OUT_LABEL_PREFERENCES, @@ -45,4 +33,5 @@ export const DEFAULT_LOGGED_OUT_PREFERENCES: UsePreferencesQueryResponse = { threadViewPrefs: DEFAULT_THREAD_VIEW_PREFS, userAge: 13, // TODO(pwi) interests: {tags: []}, + savedFeeds: [], } diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts index f51eaac2a4..b3d2fa9ecd 100644 --- a/src/state/queries/preferences/index.ts +++ b/src/state/queries/preferences/index.ts @@ -51,14 +51,11 @@ export function usePreferencesQuery() { const preferences: UsePreferencesQueryResponse = { ...res, - feeds: { - saved: res.feeds?.saved || [], - pinned: res.feeds?.pinned || [], - unpinned: - res.feeds.saved?.filter(f => { - return !res.feeds.pinned?.includes(f) - }) || [], - }, + savedFeeds: res.savedFeeds.filter(f => f.type !== 'unknown'), + /** + * Special preference, only used for following feed, previously + * called `home` + */ feedViewPrefs: { ...DEFAULT_HOME_FEED_PREFS, ...(res.feedViewPrefs.home || {}), @@ -168,6 +165,10 @@ export function useSetFeedViewPreferencesMutation() { return useMutation>({ mutationFn: async prefs => { + /* + * special handling here, merged into `feedViewPrefs` above, since + * following was previously called `home` + */ await getAgent().setFeedViewPrefs('home', prefs) // triggers a refetch await queryClient.invalidateQueries({ @@ -192,17 +193,13 @@ export function useSetThreadViewPreferencesMutation() { }) } -export function useSetSaveFeedsMutation() { +export function useOverwriteSavedFeedsMutation() { const queryClient = useQueryClient() const {getAgent} = useAgent() - return useMutation< - void, - unknown, - Pick - >({ - mutationFn: async ({saved, pinned}) => { - await getAgent().setSavedFeeds(saved, pinned) + return useMutation({ + mutationFn: async savedFeeds => { + await getAgent().overwriteSavedFeeds(savedFeeds) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, @@ -211,13 +208,17 @@ export function useSetSaveFeedsMutation() { }) } -export function useSaveFeedMutation() { +export function useAddSavedFeedsMutation() { const queryClient = useQueryClient() const {getAgent} = useAgent() - return useMutation({ - mutationFn: async ({uri}) => { - await getAgent().addSavedFeed(uri) + return useMutation< + void, + unknown, + Pick[] + >({ + mutationFn: async savedFeeds => { + await getAgent().addSavedFeeds(savedFeeds) track('CustomFeed:Save') // triggers a refetch await queryClient.invalidateQueries({ @@ -231,9 +232,9 @@ export function useRemoveFeedMutation() { const queryClient = useQueryClient() const {getAgent} = useAgent() - return useMutation({ - mutationFn: async ({uri}) => { - await getAgent().removeSavedFeed(uri) + return useMutation>({ + mutationFn: async savedFeed => { + await getAgent().removeSavedFeeds([savedFeed.id]) track('CustomFeed:Unsave') // triggers a refetch await queryClient.invalidateQueries({ @@ -243,30 +244,14 @@ export function useRemoveFeedMutation() { }) } -export function usePinFeedMutation() { +export function useUpdateSavedFeedsMutation() { const queryClient = useQueryClient() const {getAgent} = useAgent() - return useMutation({ - mutationFn: async ({uri}) => { - await getAgent().addPinnedFeed(uri) - track('CustomFeed:Pin', {uri}) - // triggers a refetch - await queryClient.invalidateQueries({ - queryKey: preferencesQueryKey, - }) - }, - }) -} + return useMutation({ + mutationFn: async feeds => { + await getAgent().updateSavedFeeds(feeds) -export function useUnpinFeedMutation() { - const queryClient = useQueryClient() - const {getAgent} = useAgent() - - return useMutation({ - mutationFn: async ({uri}) => { - await getAgent().removePinnedFeed(uri) - track('CustomFeed:Unpin', {uri}) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, diff --git a/src/state/queries/preferences/types.ts b/src/state/queries/preferences/types.ts index 96da16f1a8..928bb90da8 100644 --- a/src/state/queries/preferences/types.ts +++ b/src/state/queries/preferences/types.ts @@ -1,7 +1,7 @@ import { + BskyFeedViewPreference, BskyPreferences, BskyThreadViewPreference, - BskyFeedViewPreference, } from '@atproto/api' export type UsePreferencesQueryResponse = Omit< @@ -16,9 +16,6 @@ export type UsePreferencesQueryResponse = Omit< */ threadViewPrefs: ThreadViewPreferences userAge: number | undefined - feeds: Required & { - unpinned: string[] - } } export type ThreadViewPreferences = Pick< diff --git a/src/state/session/agent.ts b/src/state/session/agent.ts index 024f6e7d12..9633dc0e3b 100644 --- a/src/state/session/agent.ts +++ b/src/state/session/agent.ts @@ -1,10 +1,15 @@ import {AtpSessionData, AtpSessionEvent, BskyAgent} from '@atproto/api' +import {TID} from '@atproto/common-web' import {networkRetry} from '#/lib/async/retry' -import {PUBLIC_BSKY_SERVICE} from '#/lib/constants' -import {IS_PROD_SERVICE} from '#/lib/constants' +import { + DISCOVER_SAVED_FEED, + IS_PROD_SERVICE, + PUBLIC_BSKY_SERVICE, + TIMELINE_SAVED_FEED, +} from '#/lib/constants' import {tryFetchGates} from '#/lib/statsig/statsig' -import {DEFAULT_PROD_FEEDS} from '../queries/preferences' +import {logger} from '#/logger' import { configureModerationForAccount, configureModerationForGuest, @@ -134,9 +139,28 @@ export async function createAgentAndCreateAccount( // Not awaited so that we can still get into onboarding. // This is OK because we won't let you toggle adult stuff until you set the date. - agent.setPersonalDetails({birthDate: birthDate.toISOString()}) if (IS_PROD_SERVICE(service)) { - agent.setSavedFeeds(DEFAULT_PROD_FEEDS.saved, DEFAULT_PROD_FEEDS.pinned) + try { + networkRetry(1, async () => { + await agent.setPersonalDetails({birthDate: birthDate.toISOString()}) + await agent.overwriteSavedFeeds([ + { + ...DISCOVER_SAVED_FEED, + id: TID.nextStr(), + }, + { + ...TIMELINE_SAVED_FEED, + id: TID.nextStr(), + }, + ]) + }) + } catch (e: any) { + logger.error(e, { + context: `session: createAgentAndCreateAccount failed to save personal details and feeds`, + }) + } + } else { + agent.setPersonalDetails({birthDate: birthDate.toISOString()}) } return prepareAgent(agent, gates, moderation, onSessionChange) diff --git a/src/state/shell/selected-feed.tsx b/src/state/shell/selected-feed.tsx index df50b3952f..08b7ba77c9 100644 --- a/src/state/shell/selected-feed.tsx +++ b/src/state/shell/selected-feed.tsx @@ -1,47 +1,46 @@ import React from 'react' -import {Gate} from '#/lib/statsig/gates' -import {useGate} from '#/lib/statsig/statsig' import {isWeb} from '#/platform/detection' import * as persisted from '#/state/persisted' +import {FeedDescriptor} from '#/state/queries/post-feed' -type StateContext = string -type SetContext = (v: string) => void +type StateContext = FeedDescriptor | null +type SetContext = (v: FeedDescriptor) => void -const stateContext = React.createContext('home') +const stateContext = React.createContext(null) const setContext = React.createContext((_: string) => {}) -function getInitialFeed(gate: (gateName: Gate) => boolean) { +function getInitialFeed(): FeedDescriptor | null { if (isWeb) { if (window.location.pathname === '/') { const params = new URLSearchParams(window.location.search) const feedFromUrl = params.get('feed') if (feedFromUrl) { // If explicitly booted from a link like /?feed=..., prefer that. - return feedFromUrl + return feedFromUrl as FeedDescriptor } } + const feedFromSession = sessionStorage.getItem('lastSelectedHomeFeed') if (feedFromSession) { // Fall back to a previously chosen feed for this browser tab. - return feedFromSession + return feedFromSession as FeedDescriptor } } - if (!gate('start_session_with_following_v2')) { - const feedFromPersisted = persisted.get('lastSelectedHomeFeed') - if (feedFromPersisted) { - // Fall back to the last chosen one across all tabs. - return feedFromPersisted - } + + const feedFromPersisted = persisted.get('lastSelectedHomeFeed') + if (feedFromPersisted) { + // Fall back to the last chosen one across all tabs. + return feedFromPersisted as FeedDescriptor } - return 'home' + + return null } export function Provider({children}: React.PropsWithChildren<{}>) { - const gate = useGate() - const [state, setState] = React.useState(() => getInitialFeed(gate)) + const [state, setState] = React.useState(() => getInitialFeed()) - const saveState = React.useCallback((feed: string) => { + const saveState = React.useCallback((feed: FeedDescriptor) => { setState(feed) if (isWeb) { try { diff --git a/src/view/com/feeds/FeedPage.tsx b/src/view/com/feeds/FeedPage.tsx index bb782809df..6a9fc9346b 100644 --- a/src/view/com/feeds/FeedPage.tsx +++ b/src/view/com/feeds/FeedPage.tsx @@ -1,5 +1,6 @@ import React from 'react' -import {useWindowDimensions, View} from 'react-native' +import {View} from 'react-native' +import {AppBskyActorDefs} from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' @@ -17,9 +18,9 @@ import {useSession} from '#/state/session' import {useSetMinimalShellMode} from '#/state/shell' import {useComposerControls} from '#/state/shell/composer' import {useAnalytics} from 'lib/analytics/analytics' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {ComposeIcon2} from 'lib/icons' import {s} from 'lib/styles' +import {useHeaderOffset} from '#/components/hooks/useHeaderOffset' import {Feed} from '../posts/Feed' import {FAB} from '../util/fab/FAB' import {ListMethods} from '../util/List' @@ -35,6 +36,7 @@ export function FeedPage({ feedParams, renderEmptyState, renderEndOfFeed, + savedFeedConfig, }: { testID?: string feed: FeedDescriptor @@ -42,6 +44,7 @@ export function FeedPage({ isPageFocused: boolean renderEmptyState: () => JSX.Element renderEndOfFeed?: () => JSX.Element + savedFeedConfig?: AppBskyActorDefs.SavedFeed }) { const {hasSession} = useSession() const {_} = useLingui() @@ -129,6 +132,7 @@ export function FeedPage({ renderEmptyState={renderEmptyState} renderEndOfFeed={renderEndOfFeed} headerOffset={headerOffset} + savedFeedConfig={savedFeedConfig} /> @@ -153,16 +157,3 @@ export function FeedPage({ ) } - -function useHeaderOffset() { - const {isDesktop, isTablet} = useWebMediaQueries() - const {fontScale} = useWindowDimensions() - if (isDesktop || isTablet) { - return 0 - } - const navBarHeight = 42 - const tabBarPad = 10 + 10 + 3 // padding + border - const normalLineHeight = 1.2 - const tabBarText = 16 * normalLineHeight * fontScale - return navBarHeight + tabBarPad + tabBarText -} diff --git a/src/view/com/feeds/FeedSourceCard.tsx b/src/view/com/feeds/FeedSourceCard.tsx index 8a21d86aef..bb536bccdd 100644 --- a/src/view/com/feeds/FeedSourceCard.tsx +++ b/src/view/com/feeds/FeedSourceCard.tsx @@ -1,29 +1,30 @@ import React from 'react' import {Pressable, StyleProp, StyleSheet, View, ViewStyle} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Text} from '../util/text/Text' -import {RichText} from '#/components/RichText' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' -import {UserAvatar} from '../util/UserAvatar' import {AtUri} from '@atproto/api' -import * as Toast from 'view/com/util/Toast' -import {sanitizeHandle} from 'lib/strings/handles' -import {logger} from '#/logger' -import {Trans, msg, Plural} from '@lingui/macro' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Plural, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' + +import {logger} from '#/logger' +import {FeedSourceInfo, useFeedSourceInfoQuery} from '#/state/queries/feed' import { - usePinFeedMutation, - UsePreferencesQueryResponse, + useAddSavedFeedsMutation, usePreferencesQuery, - useSaveFeedMutation, + UsePreferencesQueryResponse, useRemoveFeedMutation, } from '#/state/queries/preferences' -import {useFeedSourceInfoQuery, FeedSourceInfo} from '#/state/queries/feed' -import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' -import {useTheme} from '#/alf' -import * as Prompt from '#/components/Prompt' import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' +import {usePalette} from 'lib/hooks/usePalette' +import {sanitizeHandle} from 'lib/strings/handles' +import {s} from 'lib/styles' +import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' +import * as Toast from 'view/com/util/Toast' +import {useTheme} from '#/alf' +import {atoms as a} from '#/alf' +import * as Prompt from '#/components/Prompt' +import {RichText} from '#/components/RichText' +import {Text} from '../util/text/Text' +import {UserAvatar} from '../util/UserAvatar' export function FeedSourceCard({ feedUri, @@ -87,53 +88,54 @@ export function FeedSourceCardLoaded({ const removePromptControl = Prompt.usePromptControl() const navigation = useNavigationDeduped() - const {isPending: isSavePending, mutateAsync: saveFeed} = - useSaveFeedMutation() + const {isPending: isAddSavedFeedPending, mutateAsync: addSavedFeeds} = + useAddSavedFeedsMutation() const {isPending: isRemovePending, mutateAsync: removeFeed} = useRemoveFeedMutation() - const {isPending: isPinPending, mutateAsync: pinFeed} = usePinFeedMutation() - const isSaved = Boolean(preferences?.feeds?.saved?.includes(feed?.uri || '')) + const savedFeedConfig = preferences?.savedFeeds?.find( + f => f.value === feed?.uri, + ) + const isSaved = Boolean(savedFeedConfig) const onSave = React.useCallback(async () => { - if (!feed) return + if (!feed || isSaved) return try { - if (pinOnSave) { - await pinFeed({uri: feed.uri}) - } else { - await saveFeed({uri: feed.uri}) - } + await addSavedFeeds([ + { + type: 'feed', + value: feed.uri, + pinned: pinOnSave, + }, + ]) Toast.show(_(msg`Added to my feeds`)) } catch (e) { Toast.show(_(msg`There was an issue contacting your server`)) logger.error('Failed to save feed', {message: e}) } - }, [_, feed, pinFeed, pinOnSave, saveFeed]) + }, [_, feed, pinOnSave, addSavedFeeds, isSaved]) const onUnsave = React.useCallback(async () => { - if (!feed) return + if (!savedFeedConfig) return try { - await removeFeed({uri: feed.uri}) + await removeFeed(savedFeedConfig) // await item.unsave() Toast.show(_(msg`Removed from my feeds`)) } catch (e) { Toast.show(_(msg`There was an issue contacting your server`)) logger.error('Failed to unsave feed', {message: e}) } - }, [_, feed, removeFeed]) + }, [_, removeFeed, savedFeedConfig]) const onToggleSaved = React.useCallback(async () => { - // Only feeds can be un/saved, lists are handled elsewhere - if (feed?.type !== 'feed') return - if (isSaved) { removePromptControl.open() } else { await onSave() } - }, [feed?.type, isSaved, removePromptControl, onSave]) + }, [isSaved, removePromptControl, onSave]) /* * LOAD STATE @@ -204,7 +206,7 @@ export function FeedSourceCardLoaded({ } }} key={feed.uri}> - + @@ -221,11 +223,11 @@ export function FeedSourceCardLoaded({ - {showSaveBtn && feed.type === 'feed' && ( + {showSaveBtn && ( () const pal = usePalette('default') const hasPinnedCustom = React.useMemo(() => { - return feeds.some(tab => tab.uri !== '') - }, [feeds]) + if (!hasSession) return false + return feeds.some(tab => { + const isFollowing = tab.uri === 'following' + return !isFollowing + }) + }, [feeds, hasSession]) const items = React.useMemo(() => { const pinnedNames = feeds.map(f => f.displayName) diff --git a/src/view/com/lightbox/Lightbox.tsx b/src/view/com/lightbox/Lightbox.tsx index fd4c486af4..a95a948357 100644 --- a/src/view/com/lightbox/Lightbox.tsx +++ b/src/view/com/lightbox/Lightbox.tsx @@ -1,22 +1,23 @@ import React from 'react' import {LayoutAnimation, StyleSheet, View} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import ImageView from './ImageViewing' -import {shareImageModal, saveImageToMediaLibrary} from 'lib/media/manip' -import * as Toast from '../util/Toast' -import {Text} from '../util/text/Text' -import {s, colors} from 'lib/styles' -import {Button} from '../util/forms/Button' -import {isIOS} from 'platform/detection' import * as MediaLibrary from 'expo-media-library' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + import { + ImagesLightbox, + ProfileImageLightbox, useLightbox, useLightboxControls, - ProfileImageLightbox, - ImagesLightbox, } from '#/state/lightbox' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {saveImageToMediaLibrary, shareImageModal} from 'lib/media/manip' +import {colors, s} from 'lib/styles' +import {isIOS} from 'platform/detection' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import ImageView from './ImageViewing' export function Lightbox() { const {activeLightbox} = useLightbox() diff --git a/src/view/com/modals/SelfLabel.tsx b/src/view/com/modals/SelfLabel.tsx index 2b83c7a9aa..ce3fbcef81 100644 --- a/src/view/com/modals/SelfLabel.tsx +++ b/src/view/com/modals/SelfLabel.tsx @@ -1,16 +1,17 @@ import React, {useState} from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {Text} from '../util/text/Text' -import {s, colors} from 'lib/styles' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useModalControls} from '#/state/modals' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {colors, s} from 'lib/styles' import {isWeb} from 'platform/detection' +import {ScrollView} from 'view/com/modals/util' import {Button} from '../util/forms/Button' import {SelectableBtn} from '../util/forms/SelectableBtn' -import {ScrollView} from 'view/com/modals/util' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useModalControls} from '#/state/modals' +import {Text} from '../util/text/Text' const ADULT_CONTENT_LABELS = ['sexual', 'nudity', 'porn'] diff --git a/src/view/com/pager/TabBar.tsx b/src/view/com/pager/TabBar.tsx index ff8acd60cc..5791e26a97 100644 --- a/src/view/com/pager/TabBar.tsx +++ b/src/view/com/pager/TabBar.tsx @@ -1,11 +1,12 @@ -import React, {useRef, useMemo, useEffect, useState, useCallback} from 'react' -import {StyleSheet, View, ScrollView, LayoutChangeEvent} from 'react-native' -import {Text} from '../util/text/Text' -import {PressableWithHover} from '../util/PressableWithHover' +import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react' +import {LayoutChangeEvent, ScrollView, StyleSheet, View} from 'react-native' + +import {isNative} from '#/platform/detection' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {PressableWithHover} from '../util/PressableWithHover' +import {Text} from '../util/text/Text' import {DraggableScrollView} from './DraggableScrollView' -import {isNative} from '#/platform/detection' export interface TabBarProps { testID?: string @@ -139,7 +140,10 @@ export function TabBar({ + style={[ + selected ? pal.text : pal.textLight, + {lineHeight: 20}, + ]}> {item} diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx index 8969f7cd2c..c51733d1ba 100644 --- a/src/view/com/posts/Feed.tsx +++ b/src/view/com/posts/Feed.tsx @@ -8,6 +8,7 @@ import { View, ViewStyle, } from 'react-native' +import {AppBskyActorDefs} from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' @@ -64,6 +65,7 @@ let Feed = ({ desktopFixedHeightOffset, ListHeaderComponent, extraData, + savedFeedConfig, }: { feed: FeedDescriptor feedParams?: FeedParams @@ -82,6 +84,7 @@ let Feed = ({ desktopFixedHeightOffset?: number ListHeaderComponent?: () => JSX.Element extraData?: any + savedFeedConfig?: AppBskyActorDefs.SavedFeed }): React.ReactNode => { const theme = useTheme() const {track} = useAnalytics() @@ -140,7 +143,6 @@ let Feed = ({ if ( data?.pages.length === 1 && (feed === 'following' || - feed === 'home' || feed === `author|${myDid}|posts_and_author_threads`) ) { queryClient.invalidateQueries({queryKey: RQKEY(feed)}) @@ -280,6 +282,7 @@ let Feed = ({ feedDesc={feed} error={error ?? undefined} onPressTryAgain={onPressTryAgain} + savedFeedConfig={savedFeedConfig} /> ) } else if (item === LOAD_MORE_ERROR_ITEM) { @@ -302,7 +305,15 @@ let Feed = ({ } return }, - [feed, error, onPressTryAgain, onPressRetryLoadMore, renderEmptyState, _], + [ + feed, + error, + onPressTryAgain, + onPressRetryLoadMore, + renderEmptyState, + _, + savedFeedConfig, + ], ) const shouldRenderEndOfFeed = diff --git a/src/view/com/posts/FeedErrorMessage.tsx b/src/view/com/posts/FeedErrorMessage.tsx index d4ca38d07e..a152bc9095 100644 --- a/src/view/com/posts/FeedErrorMessage.tsx +++ b/src/view/com/posts/FeedErrorMessage.tsx @@ -1,21 +1,22 @@ import React from 'react' import {View} from 'react-native' -import {AppBskyFeedGetAuthorFeed, AtUri} from '@atproto/api' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import * as Toast from '../util/Toast' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {usePalette} from 'lib/hooks/usePalette' -import {useNavigation} from '@react-navigation/native' -import {NavigationProp} from 'lib/routes/types' -import {logger} from '#/logger' +import {AppBskyActorDefs, AppBskyFeedGetAuthorFeed, AtUri} from '@atproto/api' import {msg as msgLingui, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {FeedDescriptor} from '#/state/queries/post-feed' -import {EmptyState} from '../util/EmptyState' +import {useNavigation} from '@react-navigation/native' + import {cleanError} from '#/lib/strings/errors' +import {logger} from '#/logger' +import {FeedDescriptor} from '#/state/queries/post-feed' import {useRemoveFeedMutation} from '#/state/queries/preferences' +import {usePalette} from 'lib/hooks/usePalette' +import {NavigationProp} from 'lib/routes/types' import * as Prompt from '#/components/Prompt' +import {EmptyState} from '../util/EmptyState' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' export enum KnownError { Block = 'Block', @@ -33,10 +34,12 @@ export function FeedErrorMessage({ feedDesc, error, onPressTryAgain, + savedFeedConfig, }: { feedDesc: FeedDescriptor error?: Error onPressTryAgain: () => void + savedFeedConfig?: AppBskyActorDefs.SavedFeed }) { const {_: _l} = useLingui() const knownError = React.useMemo( @@ -46,13 +49,15 @@ export function FeedErrorMessage({ if ( typeof knownError !== 'undefined' && knownError !== KnownError.Unknown && - (feedDesc.startsWith('feedgen') || knownError === KnownError.FeedNSFPublic) + (savedFeedConfig?.type === 'feed' || + knownError === KnownError.FeedNSFPublic) ) { return ( ) } @@ -79,10 +84,12 @@ function FeedgenErrorMessage({ feedDesc, knownError, rawError, + savedFeedConfig, }: { feedDesc: FeedDescriptor knownError: KnownError rawError?: Error + savedFeedConfig?: AppBskyActorDefs.SavedFeed }) { const pal = usePalette('default') const {_: _l} = useLingui() @@ -131,7 +138,8 @@ function FeedgenErrorMessage({ const onRemoveFeed = React.useCallback(async () => { try { - await removeFeed({uri}) + if (!savedFeedConfig) return + await removeFeed(savedFeedConfig) } catch (err) { Toast.show( _l( @@ -140,7 +148,7 @@ function FeedgenErrorMessage({ ) logger.error('Failed to remove feed', {message: err}) } - }, [uri, removeFeed, _l]) + }, [removeFeed, _l, savedFeedConfig]) const cta = React.useMemo(() => { switch (knownError) { @@ -154,13 +162,14 @@ function FeedgenErrorMessage({ case KnownError.FeedgenUnknown: { return ( - {knownError === KnownError.FeedgenDoesNotExist && ( - + + + ) +} diff --git a/src/screens/Onboarding/index.tsx b/src/screens/Onboarding/index.tsx index 4296491062..5af7a12dc7 100644 --- a/src/screens/Onboarding/index.tsx +++ b/src/screens/Onboarding/index.tsx @@ -16,6 +16,7 @@ import {StepFinished} from '#/screens/Onboarding/StepFinished' import {StepFollowingFeed} from '#/screens/Onboarding/StepFollowingFeed' import {StepInterests} from '#/screens/Onboarding/StepInterests' import {StepModeration} from '#/screens/Onboarding/StepModeration' +import {StepProfile} from '#/screens/Onboarding/StepProfile' import {StepSuggestedAccounts} from '#/screens/Onboarding/StepSuggestedAccounts' import {StepTopicalFeeds} from '#/screens/Onboarding/StepTopicalFeeds' import {Portal} from '#/components/Portal' @@ -65,6 +66,7 @@ export function Onboarding() { [state, dispatch, interestsDisplayNames], )}> + {state.activeStep === 'profile' && } {state.activeStep === 'interests' && } {state.activeStep === 'suggestedAccounts' && ( diff --git a/src/screens/Onboarding/state.ts b/src/screens/Onboarding/state.ts index d67dc88f3a..9452fbbc71 100644 --- a/src/screens/Onboarding/state.ts +++ b/src/screens/Onboarding/state.ts @@ -6,6 +6,7 @@ export type OnboardingState = { hasPrev: boolean totalSteps: number activeStep: + | 'profile' | 'interests' | 'suggestedAccounts' | 'followingFeed' @@ -28,6 +29,10 @@ export type OnboardingState = { topicalFeedsStepResults: { feedUris: string[] } + profileStepResults: { + imageUri?: string + imageMime?: string + } } export type OnboardingAction = @@ -57,6 +62,11 @@ export type OnboardingAction = type: 'setTopicalFeedsStepResults' feedUris: string[] } + | { + type: 'setProfileStepResults' + imageUri: string + imageMime: string + } export type ApiResponseMap = { interests: string[] @@ -91,6 +101,10 @@ export const initialState: OnboardingState = { topicalFeedsStepResults: { feedUris: [], }, + profileStepResults: { + imageUri: '', + imageMime: '', + }, } export const INTEREST_TO_DISPLAY_NAME_DEFAULTS: { @@ -240,8 +254,8 @@ export function reducer( export const initialStateReduced: OnboardingState = { hasPrev: false, - totalSteps: 7, - activeStep: 'interests', + totalSteps: 3, + activeStep: 'profile', activeStepIndex: 1, interestsStepResults: { @@ -261,6 +275,10 @@ export const initialStateReduced: OnboardingState = { topicalFeedsStepResults: { feedUris: [], }, + profileStepResults: { + imageUri: '', + imageMime: '', + }, } export function reducerReduced( @@ -271,51 +289,27 @@ export function reducerReduced( switch (a.type) { case 'next': { - if (s.activeStep === 'interests') { - next.activeStep = 'suggestedAccounts' + if (s.activeStep === 'profile') { + next.activeStep = 'interests' next.activeStepIndex = 2 - } else if (s.activeStep === 'suggestedAccounts') { - next.activeStep = 'followingFeed' - next.activeStepIndex = 3 - } else if (s.activeStep === 'followingFeed') { - next.activeStep = 'algoFeeds' - next.activeStepIndex = 4 - } else if (s.activeStep === 'algoFeeds') { - next.activeStep = 'topicalFeeds' - next.activeStepIndex = 5 - } else if (s.activeStep === 'topicalFeeds') { - next.activeStep = 'moderation' - next.activeStepIndex = 6 - } else if (s.activeStep === 'moderation') { + } else if (s.activeStep === 'interests') { next.activeStep = 'finished' - next.activeStepIndex = 7 + next.activeStepIndex = 3 } break } case 'prev': { - if (s.activeStep === 'suggestedAccounts') { - next.activeStep = 'interests' + if (s.activeStep === 'interests') { + next.activeStep = 'profile' next.activeStepIndex = 1 - } else if (s.activeStep === 'followingFeed') { - next.activeStep = 'suggestedAccounts' - next.activeStepIndex = 2 - } else if (s.activeStep === 'algoFeeds') { - next.activeStep = 'followingFeed' - next.activeStepIndex = 3 - } else if (s.activeStep === 'topicalFeeds') { - next.activeStep = 'algoFeeds' - next.activeStepIndex = 4 - } else if (s.activeStep === 'moderation') { - next.activeStep = 'topicalFeeds' - next.activeStepIndex = 5 } else if (s.activeStep === 'finished') { - next.activeStep = 'moderation' - next.activeStepIndex = 6 + next.activeStep = 'interests' + next.activeStepIndex = 2 } break } case 'finish': { - next = initialState + next = initialStateReduced break } case 'setInterestsStepResults': { @@ -326,22 +320,18 @@ export function reducerReduced( break } case 'setSuggestedAccountsStepResults': { - next.suggestedAccountsStepResults = { - accountDids: next.suggestedAccountsStepResults.accountDids.concat( - a.accountDids, - ), - } break } case 'setAlgoFeedsStepResults': { - next.algoFeedsStepResults = { - feedUris: a.feedUris, - } break } case 'setTopicalFeedsStepResults': { - next.topicalFeedsStepResults = { - feedUris: next.topicalFeedsStepResults.feedUris.concat(a.feedUris), + break + } + case 'setProfileStepResults': { + next.profileStepResults = { + imageUri: a.imageUri, + imageMime: a.imageMime, } break } @@ -349,7 +339,7 @@ export function reducerReduced( const state = { ...next, - hasPrev: next.activeStep !== 'interests', + hasPrev: next.activeStep !== 'profile', } logger.debug(`onboarding`, { @@ -362,6 +352,7 @@ export function reducerReduced( suggestedAccountsStepResults: state.suggestedAccountsStepResults, algoFeedsStepResults: state.algoFeedsStepResults, topicalFeedsStepResults: state.topicalFeedsStepResults, + profileStepResults: state.profileStepResults, }) if (s.activeStep !== state.activeStep) { From 4e37e2f59bcf9fd1f44abbe65d701ebe36de4369 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 10 May 2024 23:37:23 -0500 Subject: [PATCH 021/277] [Reduced Onboarding] Add profile step (#3933) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Onboarding avatar creator or upload (#2860) * add screen to onboarding flow * update base * add icon * fix icon * fix after merge * create flatlist * add emoji list * add state context, pressables * select/update * add camera icon * add photo selection button * image selection * cleanup * add most needed icons * fix icon naming * add icons * export path strings for emoji * canvas drawing for web * types * move breakpoints to individual steps * create canvas * canvas working 🎉 * update state * it works! * working on both platforms * remove comments * remove log * remove unused web canvas * animate picture selection/removal * compress images on web correctly * add times icon * scrollable horizontal flatlist on web * prefetch * adjustments * add more assets * remove unused smiles * add all the icons * adjust color options * animate grow/shrink selections * change layout on tablet/desktop * better web layout * fix path * adjust web layout * organize * organize imports and cleanup styles * make generated images smaller * implement design changes use row for buttons on web use RNGH FlatList random color at start improve logic update dialog for web update dialog style on mobile some more progress create dialog simplify context start implementing design * rm change * cleanup imports * trigger a pr label * Formatting --------- Co-authored-by: Eric Bailey (cherry picked from commit 087186e3867b0eefb11a056b0b644f5585fa16bd) * UI tweaks * Revert layout change * Gate avi upload * Support returning to profile step * Add Statsig --------- Co-authored-by: Hailey Co-authored-by: Dan Abramov --- package.json | 1 + src/components/Dialog/index.tsx | 3 +- src/lib/analytics/types.ts | 2 + src/lib/media/avatar-generator.tsx | 0 src/lib/statsig/events.ts | 1 + src/screens/Onboarding/Layout.tsx | 2 +- src/screens/Onboarding/StepFinished.tsx | 23 ++ .../Onboarding/StepInterests/index.tsx | 2 +- .../Onboarding/StepProfile/AvatarCircle.tsx | 77 +++++ .../StepProfile/AvatarCreatorCircle.tsx | 43 +++ .../StepProfile/AvatarCreatorItems.tsx | 145 ++++++++ .../StepProfile/PlaceholderCanvas.tsx | 67 ++++ src/screens/Onboarding/StepProfile/index.tsx | 322 ++++++++++++++++-- src/screens/Onboarding/StepProfile/types.ts | 148 ++++++++ .../StepSuggestedAccounts/index.tsx | 2 +- src/screens/Onboarding/state.ts | 33 +- yarn.lock | 41 +++ 17 files changed, 876 insertions(+), 36 deletions(-) create mode 100644 src/lib/media/avatar-generator.tsx create mode 100644 src/screens/Onboarding/StepProfile/AvatarCircle.tsx create mode 100644 src/screens/Onboarding/StepProfile/AvatarCreatorCircle.tsx create mode 100644 src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx create mode 100644 src/screens/Onboarding/StepProfile/PlaceholderCanvas.tsx create mode 100644 src/screens/Onboarding/StepProfile/types.ts diff --git a/package.json b/package.json index 516428f802..97fe301456 100644 --- a/package.json +++ b/package.json @@ -185,6 +185,7 @@ "react-native-uitextview": "^1.1.6", "react-native-url-polyfill": "^1.3.0", "react-native-uuid": "^2.0.1", + "react-native-view-shot": "^3.8.0", "react-native-web": "~0.19.6", "react-native-web-webview": "^1.0.2", "react-native-webview": "13.6.4", diff --git a/src/components/Dialog/index.tsx b/src/components/Dialog/index.tsx index e5a6792db6..b5258c02b9 100644 --- a/src/components/Dialog/index.tsx +++ b/src/components/Dialog/index.tsx @@ -213,7 +213,8 @@ export function Inner({children, style}: DialogInnerProps) { return ( { setSaving(true) + // TODO uncomment const { interestsStepResults, suggestedAccountsStepResults, algoFeedsStepResults, topicalFeedsStepResults, + profileStepResults, } = state const {selectedInterests} = interestsStepResults const selectedFeeds = [ @@ -110,6 +113,26 @@ export function StepFinished() { } })(), ]) + + if (gate('reduced_onboarding_and_home_algo')) { + await getAgent().upsertProfile(async existing => { + existing = existing ?? {} + + if (profileStepResults.imageUri && profileStepResults.imageMime) { + const res = await uploadBlob( + getAgent(), + profileStepResults.imageUri, + profileStepResults.imageMime, + ) + + if (res.data.blob) { + existing.avatar = res.data.blob + } + } + + return existing + }) + } } catch (e: any) { logger.info(`onboarding: bulk save failed`) logger.error(e) diff --git a/src/screens/Onboarding/StepInterests/index.tsx b/src/screens/Onboarding/StepInterests/index.tsx index 174488a34f..d6678f4b0c 100644 --- a/src/screens/Onboarding/StepInterests/index.tsx +++ b/src/screens/Onboarding/StepInterests/index.tsx @@ -31,8 +31,8 @@ import {Text} from '#/components/Typography' export function StepInterests() { const {_} = useLingui() const t = useTheme() - const {track} = useAnalytics() const {gtMobile} = useBreakpoints() + const {track} = useAnalytics() const {state, dispatch, interestsDisplayNames} = React.useContext(Context) const [saving, setSaving] = React.useState(false) const [interests, setInterests] = React.useState( diff --git a/src/screens/Onboarding/StepProfile/AvatarCircle.tsx b/src/screens/Onboarding/StepProfile/AvatarCircle.tsx new file mode 100644 index 0000000000..1be38b0d5f --- /dev/null +++ b/src/screens/Onboarding/StepProfile/AvatarCircle.tsx @@ -0,0 +1,77 @@ +import React from 'react' +import {View} from 'react-native' +import {Image as ExpoImage} from 'expo-image' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {AvatarCreatorCircle} from '#/screens/Onboarding/StepProfile/AvatarCreatorCircle' +import {useAvatar} from '#/screens/Onboarding/StepProfile/index' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon} from '#/components/Button' +import {Pencil_Stroke2_Corner0_Rounded as Pencil} from '#/components/icons/Pencil' +import {StreamingLive_Stroke2_Corner0_Rounded as StreamingLive} from '#/components/icons/StreamingLive' + +export function AvatarCircle({ + openLibrary, + openCreator, +}: { + openLibrary: () => unknown + openCreator: () => unknown +}) { + const {_} = useLingui() + const t = useTheme() + const {avatar} = useAvatar() + + const styles = React.useMemo( + () => ({ + imageContainer: [ + a.rounded_full, + a.overflow_hidden, + a.align_center, + a.justify_center, + a.border, + t.atoms.border_contrast_low, + t.atoms.bg_contrast_25, + { + height: 200, + width: 200, + }, + ], + }), + [t.atoms.bg_contrast_25, t.atoms.border_contrast_low], + ) + + return ( + + {avatar.useCreatedAvatar ? ( + + ) : avatar.image ? ( + + ) : ( + + + + )} + + + + + ) +} diff --git a/src/screens/Onboarding/StepProfile/AvatarCreatorCircle.tsx b/src/screens/Onboarding/StepProfile/AvatarCreatorCircle.tsx new file mode 100644 index 0000000000..1cd68eb61b --- /dev/null +++ b/src/screens/Onboarding/StepProfile/AvatarCreatorCircle.tsx @@ -0,0 +1,43 @@ +import React from 'react' +import {View} from 'react-native' + +import {Avatar} from '#/screens/Onboarding/StepProfile/index' +import {atoms as a, useTheme} from '#/alf' + +export function AvatarCreatorCircle({ + avatar, + size = 125, +}: { + avatar: Avatar + size?: number +}) { + const t = useTheme() + const Icon = avatar.placeholder.component + + const styles = React.useMemo( + () => ({ + imageContainer: [ + a.rounded_full, + a.overflow_hidden, + a.align_center, + a.justify_center, + a.border, + t.atoms.border_contrast_high, + { + height: size, + width: size, + backgroundColor: avatar.backgroundColor, + }, + ], + }), + [avatar.backgroundColor, size, t.atoms.border_contrast_high], + ) + + return ( + + + + + + ) +} diff --git a/src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx b/src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx new file mode 100644 index 0000000000..98c01ce7dc --- /dev/null +++ b/src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx @@ -0,0 +1,145 @@ +import React from 'react' +import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {Avatar} from '#/screens/Onboarding/StepProfile/index' +import { + AvatarColor, + avatarColors, + emojiItems, + EmojiName, + emojiNames, +} from '#/screens/Onboarding/StepProfile/types' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon} from '#/components/Button' +import {Text} from '#/components/Typography' + +const ACTIVE_BORDER_WIDTH = 3 +const ACTIVE_BORDER_STYLES = { + top: -ACTIVE_BORDER_WIDTH, + bottom: -ACTIVE_BORDER_WIDTH, + left: -ACTIVE_BORDER_WIDTH, + right: -ACTIVE_BORDER_WIDTH, + opacity: 0.5, + borderWidth: 3, +} + +export function AvatarCreatorItems({ + type, + avatar, + setAvatar, +}: { + type: 'emojis' | 'colors' + avatar: Avatar + setAvatar: React.Dispatch> +}) { + const {_} = useLingui() + const t = useTheme() + const isEmojis = type === 'emojis' + + const onSelectEmoji = React.useCallback( + (emoji: EmojiName) => { + setAvatar(prev => ({ + ...prev, + placeholder: emojiItems[emoji], + })) + }, + [setAvatar], + ) + + const onSelectColor = React.useCallback( + (color: AvatarColor) => { + setAvatar(prev => ({ + ...prev, + backgroundColor: color, + })) + }, + [setAvatar], + ) + + return ( + + + {isEmojis ? ( + Select an emoji + ) : ( + Select a color + )} + + + + {isEmojis + ? emojiNames.map(emojiName => ( + + )) + : avatarColors.map(color => ( + + ))} + + + ) +} diff --git a/src/screens/Onboarding/StepProfile/PlaceholderCanvas.tsx b/src/screens/Onboarding/StepProfile/PlaceholderCanvas.tsx new file mode 100644 index 0000000000..29ba39a0b4 --- /dev/null +++ b/src/screens/Onboarding/StepProfile/PlaceholderCanvas.tsx @@ -0,0 +1,67 @@ +import React from 'react' +import {View} from 'react-native' +import ViewShot from 'react-native-view-shot' + +import {useAvatar} from '#/screens/Onboarding/StepProfile/index' +import {atoms as a} from '#/alf' + +const SIZE_MULTIPLIER = 1.5 + +export interface PlaceholderCanvasRef { + capture: () => Promise +} + +// This component is supposed to be invisible to the user. We only need this for ViewShot to have something to +// "screenshot". +export const PlaceholderCanvas = React.forwardRef( + function PlaceholderCanvas({}, ref) { + const {avatar} = useAvatar() + const viewshotRef = React.useRef() + const Icon = avatar.placeholder.component + + const styles = React.useMemo( + () => ({ + container: [a.absolute, {top: -2000}], + imageContainer: [ + a.align_center, + a.justify_center, + {height: 150 * SIZE_MULTIPLIER, width: 150 * SIZE_MULTIPLIER}, + ], + }), + [], + ) + + React.useImperativeHandle(ref, () => ({ + // @ts-ignore this library doesn't have types + capture: viewshotRef.current.capture, + })) + + return ( + + + + + + + + ) + }, +) diff --git a/src/screens/Onboarding/StepProfile/index.tsx b/src/screens/Onboarding/StepProfile/index.tsx index 8db3e77616..bf47bbc95b 100644 --- a/src/screens/Onboarding/StepProfile/index.tsx +++ b/src/screens/Onboarding/StepProfile/index.tsx @@ -1,55 +1,319 @@ import React from 'react' import {View} from 'react-native' +import {Image as ExpoImage} from 'expo-image' +import { + ImagePickerOptions, + launchImageLibraryAsync, + MediaTypeOptions, +} from 'expo-image-picker' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {useAnalytics} from '#/lib/analytics/analytics' +import {logEvent} from '#/lib/statsig/statsig' +import {usePhotoLibraryPermission} from 'lib/hooks/usePermissions' +import {compressIfNeeded} from 'lib/media/manip' +import {openCropper} from 'lib/media/picker' +import {getDataUriSize} from 'lib/media/util' +import {isNative, isWeb} from 'platform/detection' import { DescriptionText, OnboardingControls, TitleText, } from '#/screens/Onboarding/Layout' import {Context} from '#/screens/Onboarding/state' -import {atoms as a} from '#/alf' +import {AvatarCircle} from '#/screens/Onboarding/StepProfile/AvatarCircle' +import {AvatarCreatorCircle} from '#/screens/Onboarding/StepProfile/AvatarCreatorCircle' +import {AvatarCreatorItems} from '#/screens/Onboarding/StepProfile/AvatarCreatorItems' +import { + PlaceholderCanvas, + PlaceholderCanvasRef, +} from '#/screens/Onboarding/StepProfile/PlaceholderCanvas' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' import {IconCircle} from '#/components/IconCircle' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' +import {CircleInfo_Stroke2_Corner0_Rounded} from '#/components/icons/CircleInfo' import {StreamingLive_Stroke2_Corner0_Rounded as StreamingLive} from '#/components/icons/StreamingLive' +import {Text} from '#/components/Typography' +import {AvatarColor, avatarColors, Emoji, emojiItems} from './types' + +export interface Avatar { + image?: { + path: string + mime: string + size: number + width: number + height: number + } + backgroundColor: AvatarColor + placeholder: Emoji + useCreatedAvatar: boolean +} + +interface IAvatarContext { + avatar: Avatar + setAvatar: React.Dispatch> +} + +const AvatarContext = React.createContext({} as IAvatarContext) +export const useAvatar = () => React.useContext(AvatarContext) + +const randomColor = + avatarColors[Math.floor(Math.random() * avatarColors.length)] export function StepProfile() { const {_} = useLingui() - const {dispatch} = React.useContext(Context) + const t = useTheme() + const {gtMobile} = useBreakpoints() + const {track} = useAnalytics() + const {requestPhotoAccessIfNeeded} = usePhotoLibraryPermission() + const creatorControl = Dialog.useDialogControl() + const [error, setError] = React.useState('') + + const {state, dispatch} = React.useContext(Context) + const [avatar, setAvatar] = React.useState({ + image: state.profileStepResults?.image, + placeholder: emojiItems.at, + backgroundColor: randomColor, + useCreatedAvatar: false, + }) + + const canvasRef = React.useRef(null) + + React.useEffect(() => { + track('OnboardingV2:StepProfile:Start') + }, [track]) + + const openPicker = React.useCallback( + async (opts?: ImagePickerOptions) => { + const response = await launchImageLibraryAsync({ + exif: false, + mediaTypes: MediaTypeOptions.Images, + quality: 1, + ...opts, + }) + + return (response.assets ?? []) + .slice(0, 1) + .filter(asset => { + if ( + !asset.mimeType?.startsWith('image/') || + (!asset.mimeType?.endsWith('jpeg') && + !asset.mimeType?.endsWith('jpg') && + !asset.mimeType?.endsWith('png')) + ) { + setError(_(msg`Only .jpg and .png files are supported`)) + return false + } + return true + }) + .map(image => ({ + mime: 'image/jpeg', + height: image.height, + width: image.width, + path: image.uri, + size: getDataUriSize(image.uri), + })) + }, + [_, setError], + ) + + const onContinue = React.useCallback(async () => { + let imageUri = avatar?.image?.path + if (!imageUri || avatar.useCreatedAvatar) { + imageUri = await canvasRef.current?.capture() + } + + if (imageUri) { + dispatch({ + type: 'setProfileStepResults', + image: avatar.image, + imageUri, + imageMime: avatar.image?.mime ?? 'image/jpeg', + }) + } - const onContinue = React.useCallback(() => { dispatch({type: 'next'}) - }, [dispatch]) + track('OnboardingV2:StepProfile:End') + logEvent('onboarding:profile:nextPressed', {}) + }, [avatar.image, avatar.useCreatedAvatar, dispatch, track]) + + const onDoneCreating = React.useCallback(() => { + setAvatar(prev => ({ + ...prev, + useCreatedAvatar: true, + })) + creatorControl.close() + }, [creatorControl]) + + const openLibrary = React.useCallback(async () => { + if (!(await requestPhotoAccessIfNeeded())) { + return + } + + setError('') + + const items = await openPicker({ + aspect: [1, 1], + }) + let image = items[0] + if (!image) return + + if (!isWeb) { + image = await openCropper({ + mediaType: 'photo', + cropperCircleOverlay: true, + height: image.height, + width: image.width, + path: image.path, + }) + } + image = await compressIfNeeded(image, 1000000) + + // If we are on mobile, prefetching the image will load the image into memory before we try and display it, + // stopping any brief flickers. + if (isNative) { + await ExpoImage.prefetch(image.path) + } + + setAvatar(prev => ({ + ...prev, + image, + useCreatedAvatar: false, + })) + }, [requestPhotoAccessIfNeeded, setAvatar, openPicker, setError]) + + const onSecondaryPress = React.useCallback(() => { + if (avatar.useCreatedAvatar) { + openLibrary() + } else { + creatorControl.open() + } + }, [avatar.useCreatedAvatar, creatorControl, openLibrary]) + + const value = React.useMemo( + () => ({ + avatar, + setAvatar, + }), + [avatar], + ) return ( - - + + + + + Give your profile a face + + + + Help people know you're not a bot by uploading a picture or creating + an avatar. + + + + - - Give your profile a face - - - - Help people know you're not a bot by uploading a picture or creating - an avatar. - - + {error && ( + + + {error} + + )} + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + ) } diff --git a/src/screens/Onboarding/StepProfile/types.ts b/src/screens/Onboarding/StepProfile/types.ts new file mode 100644 index 0000000000..92a82f101d --- /dev/null +++ b/src/screens/Onboarding/StepProfile/types.ts @@ -0,0 +1,148 @@ +import {Alien_Stroke2_Corner0_Rounded as Alien} from '#/components/icons/Alien' +import {Apple_Stroke2_Corner0_Rounded as Apple} from '#/components/icons/Apple' +import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' +import {Atom_Stroke2_Corner0_Rounded as Atom} from '#/components/icons/Atom' +import {Celebrate_Stroke2_Corner0_Rounded as Celebrate} from '#/components/icons/Celebrate' +import {Coffee_Stroke2_Corner0_Rounded as Coffee} from '#/components/icons/Coffee' +import { + EmojiArc_Stroke2_Corner0_Rounded as EmojiArc, + EmojiHeartEyes_Stroke2_Corner0_Rounded as EmojiHeartEyes, +} from '#/components/icons/Emoji' +import {Explosion_Stroke2_Corner0_Rounded as Explosion} from '#/components/icons/Explosion' +import {GameController_Stroke2_Corner0_Rounded as GameController} from '#/components/icons/GameController' +import {Lab_Stroke2_Corner0_Rounded as Lab} from '#/components/icons/Lab' +import {Leaf_Stroke2_Corner0_Rounded as Leaf} from '#/components/icons/Leaf' +import {MusicNote_Stroke2_Corner0_Rounded as MusicNote} from '#/components/icons/MusicNote' +import {PiggyBank_Stroke2_Corner0_Rounded as PiggyBank} from '#/components/icons/PiggyBank' +import {Pizza_Stroke2_Corner0_Rounded as Pizza} from '#/components/icons/Pizza' +import {Poop_Stroke2_Corner0_Rounded as Poop} from '#/components/icons/Poop' +import {Rose_Stroke2_Corner0_Rounded as Rose} from '#/components/icons/Rose' +import {Shaka_Stroke2_Corner0_Rounded as Shaka} from '#/components/icons/Shaka' +import {UFO_Stroke2_Corner0_Rounded as UFO} from '#/components/icons/UFO' +import {Zap_Stroke2_Corner0_Rounded as Zap} from '#/components/icons/Zap' + +/** + * If you want to add or remove icons from the selection, just add the name to the `emojiNames` array and + * add the item to the `emojiItems` record.. + */ + +export const emojiNames = [ + 'at', + 'arc', + 'heartEyes', + 'alien', + 'apple', + 'atom', + 'celebrate', + 'coffee', + 'gameController', + 'leaf', + 'musicNote', + 'pizza', + 'rose', + 'shaka', + 'ufo', + 'zap', + 'explosion', + 'lab', + 'piggyBank', + 'poop', +] as const +export type EmojiName = (typeof emojiNames)[number] + +export interface Emoji { + name: EmojiName + component: typeof EmojiArc +} +export const emojiItems: Record = { + at: { + name: 'at', + component: At, + }, + arc: { + name: 'arc', + component: EmojiArc, + }, + heartEyes: { + name: 'heartEyes', + component: EmojiHeartEyes, + }, + alien: { + name: 'alien', + component: Alien, + }, + apple: { + name: 'apple', + component: Apple, + }, + atom: { + name: 'atom', + component: Atom, + }, + celebrate: { + name: 'celebrate', + component: Celebrate, + }, + coffee: { + name: 'coffee', + component: Coffee, + }, + gameController: { + name: 'gameController', + component: GameController, + }, + leaf: { + name: 'leaf', + component: Leaf, + }, + musicNote: { + name: 'musicNote', + component: MusicNote, + }, + pizza: { + name: 'pizza', + component: Pizza, + }, + rose: { + name: 'rose', + component: Rose, + }, + shaka: { + name: 'shaka', + component: Shaka, + }, + ufo: { + name: 'ufo', + component: UFO, + }, + zap: { + name: 'zap', + component: Zap, + }, + explosion: { + name: 'explosion', + component: Explosion, + }, + lab: { + name: 'lab', + component: Lab, + }, + piggyBank: { + name: 'piggyBank', + component: PiggyBank, + }, + poop: { + name: 'poop', + component: Poop, + }, +} + +export const avatarColors = [ + '#FE8311', + '#FED811', + '#73DF84', + '#1185FE', + '#EF75EA', + '#F55454', +] as const +export type AvatarColor = (typeof avatarColors)[number] diff --git a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx index 7b2ad2b999..774f2d3b01 100644 --- a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx +++ b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx @@ -69,9 +69,9 @@ export function Inner({ export function StepSuggestedAccounts() { const {_} = useLingui() + const {gtMobile} = useBreakpoints() const {track} = useAnalytics() const {state, dispatch, interestsDisplayNames} = React.useContext(Context) - const {gtMobile} = useBreakpoints() const suggestedDids = React.useMemo(() => { return aggregateInterestItems( state.interestsStepResults.selectedInterests, diff --git a/src/screens/Onboarding/state.ts b/src/screens/Onboarding/state.ts index 9452fbbc71..3031dfbf48 100644 --- a/src/screens/Onboarding/state.ts +++ b/src/screens/Onboarding/state.ts @@ -13,6 +13,7 @@ export type OnboardingState = { | 'algoFeeds' | 'topicalFeeds' | 'moderation' + | 'profile' | 'finished' activeStepIndex: number @@ -30,6 +31,13 @@ export type OnboardingState = { feedUris: string[] } profileStepResults: { + image?: { + path: string + mime: string + size: number + width: number + height: number + } imageUri?: string imageMime?: string } @@ -64,6 +72,7 @@ export type OnboardingAction = } | { type: 'setProfileStepResults' + image?: OnboardingState['profileStepResults']['image'] imageUri: string imageMime: string } @@ -80,7 +89,7 @@ export type ApiResponseMap = { export const initialState: OnboardingState = { hasPrev: false, - totalSteps: 7, + totalSteps: 8, activeStep: 'interests', activeStepIndex: 1, @@ -102,6 +111,7 @@ export const initialState: OnboardingState = { feedUris: [], }, profileStepResults: { + image: undefined, imageUri: '', imageMime: '', }, @@ -168,8 +178,11 @@ export function reducer( next.activeStep = 'moderation' next.activeStepIndex = 6 } else if (s.activeStep === 'moderation') { - next.activeStep = 'finished' + next.activeStep = 'profile' next.activeStepIndex = 7 + } else if (s.activeStep === 'profile') { + next.activeStep = 'finished' + next.activeStepIndex = 8 } break } @@ -189,9 +202,12 @@ export function reducer( } else if (s.activeStep === 'moderation') { next.activeStep = 'topicalFeeds' next.activeStepIndex = 5 - } else if (s.activeStep === 'finished') { + } else if (s.activeStep === 'profile') { next.activeStep = 'moderation' next.activeStepIndex = 6 + } else if (s.activeStep === 'finished') { + next.activeStep = 'profile' + next.activeStepIndex = 7 } break } @@ -226,6 +242,14 @@ export function reducer( } break } + case 'setProfileStepResults': { + next.profileStepResults = { + image: a.image, + imageUri: a.imageUri, + imageMime: a.imageMime, + } + break + } } const state = { @@ -243,6 +267,7 @@ export function reducer( suggestedAccountsStepResults: state.suggestedAccountsStepResults, algoFeedsStepResults: state.algoFeedsStepResults, topicalFeedsStepResults: state.topicalFeedsStepResults, + profileStepResults: state.profileStepResults, }) if (s.activeStep !== state.activeStep) { @@ -276,6 +301,7 @@ export const initialStateReduced: OnboardingState = { feedUris: [], }, profileStepResults: { + image: undefined, imageUri: '', imageMime: '', }, @@ -330,6 +356,7 @@ export function reducerReduced( } case 'setProfileStepResults': { next.profileStepResults = { + image: a.image, imageUri: a.imageUri, imageMime: a.imageMime, } diff --git a/yarn.lock b/yarn.lock index 4f4968b7d2..6df2993f4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9114,6 +9114,11 @@ base-64@0.1.0, base-64@^0.1.0: resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== +base64-arraybuffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" + integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== + base64-js@^1.0.2, base64-js@^1.2.3, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" @@ -10239,6 +10244,13 @@ css-in-js-utils@^3.1.0: dependencies: hyphenate-style-name "^1.0.3" +css-line-break@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-line-break/-/css-line-break-2.1.0.tgz#bfef660dfa6f5397ea54116bb3cb4873edbc4fa0" + integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w== + dependencies: + utrie "^1.0.2" + css-loader@^6.5.1: version "6.8.1" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" @@ -13233,6 +13245,14 @@ html-webpack-plugin@^5.5.0: pretty-error "^4.0.0" tapable "^2.0.0" +html2canvas@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/html2canvas/-/html2canvas-1.4.1.tgz#7cef1888311b5011d507794a066041b14669a543" + integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA== + dependencies: + css-line-break "^2.1.0" + text-segmentation "^1.0.3" + htmlparser2@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" @@ -18827,6 +18847,13 @@ react-native-uuid@^2.0.1: resolved "https://registry.yarnpkg.com/react-native-uuid/-/react-native-uuid-2.0.1.tgz#ed4e2dfb1683eddb66967eb5dca140dfe1abddb9" integrity sha512-cptnoIbL53GTCrWlb/+jrDC6tvb7ypIyzbXNJcpR3Vab0mkeaaVd5qnB3f0whXYzS+SMoSQLcUUB0gEWqkPC0g== +react-native-view-shot@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/react-native-view-shot/-/react-native-view-shot-3.8.0.tgz#1aa1905f0e79428ca32bf80c16fd4abc719c600b" + integrity sha512-4cU8SOhMn3YQIrskh+5Q8VvVRxQOu8/s1M9NAL4z5BY1Rm0HXMWkQJ4N0XsZ42+Yca+y86ISF3LC5qdLPvPuiA== + dependencies: + html2canvas "^1.4.1" + react-native-web-webview@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/react-native-web-webview/-/react-native-web-webview-1.0.2.tgz#c215efa70c17589f2c8d640b1f1dc669b18c6e02" @@ -20831,6 +20858,13 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +text-segmentation@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/text-segmentation/-/text-segmentation-1.0.3.tgz#52a388159efffe746b24a63ba311b6ac9f2d7943" + integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw== + dependencies: + utrie "^1.0.2" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -21486,6 +21520,13 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +utrie@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/utrie/-/utrie-1.0.2.tgz#d42fe44de9bc0119c25de7f564a6ed1b2c87a645" + integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw== + dependencies: + base64-arraybuffer "^1.0.2" + uuid@^3.0.1, uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" From d0440d087eb219639c3deb782e378eb2f1f97058 Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 10 May 2024 21:44:17 -0700 Subject: [PATCH 022/277] bump (#3961) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 97fe301456..a343c063d9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bsky.app", - "version": "1.81.0", + "version": "1.82.0", "private": true, "engines": { "node": ">=18" From 6f5b551bdaa133ec6fa0f91f3f9621542b4217a8 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Fri, 10 May 2024 21:57:21 -0700 Subject: [PATCH 023/277] Add shutdown message to for you feed (#3776) --- src/lib/constants.ts | 4 + src/view/com/posts/Feed.tsx | 13 +- src/view/com/posts/FeedShutdownMsg.tsx | 159 +++++++++++++++++++++++++ 3 files changed, 174 insertions(+), 2 deletions(-) create mode 100644 src/view/com/posts/FeedShutdownMsg.tsx diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 83f5139112..051ed4d595 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -111,6 +111,10 @@ export const RECOMMENDED_SAVED_FEEDS: Pick< 'type' | 'value' | 'pinned' >[] = [DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED] +export const KNOWN_SHUTDOWN_FEEDS = [ + 'at://did:plc:wqowuobffl66jv3kpsvo7ak4/app.bsky.feed.generator/the-algorithm', // for you by skygaze +] + export const GIF_SERVICE = 'https://gifs.bsky.app' export const GIF_SEARCH = (params: string) => diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx index c51733d1ba..e45abfedc0 100644 --- a/src/view/com/posts/Feed.tsx +++ b/src/view/com/posts/Feed.tsx @@ -14,6 +14,7 @@ import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' import {FALLBACK_MARKER_POST} from '#/lib/api/feed/home' +import {KNOWN_SHUTDOWN_FEEDS} from '#/lib/constants' import {logEvent} from '#/lib/statsig/statsig' import {logger} from '#/logger' import {isWeb} from '#/platform/detection' @@ -36,12 +37,14 @@ import {PostFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' import {DiscoverFallbackHeader} from './DiscoverFallbackHeader' import {FeedErrorMessage} from './FeedErrorMessage' +import {FeedShutdownMsg} from './FeedShutdownMsg' import {FeedSlice} from './FeedSlice' const LOADING_ITEM = {_reactKey: '__loading__'} const EMPTY_FEED_ITEM = {_reactKey: '__empty__'} const ERROR_ITEM = {_reactKey: '__error__'} const LOAD_MORE_ERROR_ITEM = {_reactKey: '__load_more_error__'} +const FEED_SHUTDOWN_MSG_ITEM = {_reactKey: '__feed_shutdown_msg_item__'} // DISABLED need to check if this is causing random feed refreshes -prf // const REFRESH_AFTER = STALE.HOURS.ONE @@ -96,7 +99,7 @@ let Feed = ({ const [isPTRing, setIsPTRing] = React.useState(false) const checkForNewRef = React.useRef<(() => void) | null>(null) const lastFetchRef = React.useRef(Date.now()) - const feedType = feed.split('|')[0] + const [feedType, feedUri] = feed.split('|') const opts = React.useMemo( () => ({enabled, ignoreFilterFor}), @@ -196,6 +199,9 @@ let Feed = ({ const feedItems = React.useMemo(() => { let arr: any[] = [] + if (KNOWN_SHUTDOWN_FEEDS.includes(feedUri)) { + arr = arr.concat([FEED_SHUTDOWN_MSG_ITEM]) + } if (isFetched) { if (isError && isEmpty) { arr = arr.concat([ERROR_ITEM]) @@ -213,7 +219,7 @@ let Feed = ({ arr.push(LOADING_ITEM) } return arr - }, [isFetched, isError, isEmpty, data]) + }, [isFetched, isError, isEmpty, data, feedUri]) // events // = @@ -296,6 +302,8 @@ let Feed = ({ ) } else if (item === LOADING_ITEM) { return + } else if (item === FEED_SHUTDOWN_MSG_ITEM) { + return } else if (item.rootUri === FALLBACK_MARKER_POST.post.uri) { // HACK // tell the user we fell back to discover @@ -307,6 +315,7 @@ let Feed = ({ }, [ feed, + feedUri, error, onPressTryAgain, onPressRetryLoadMore, diff --git a/src/view/com/posts/FeedShutdownMsg.tsx b/src/view/com/posts/FeedShutdownMsg.tsx new file mode 100644 index 0000000000..bc047e8311 --- /dev/null +++ b/src/view/com/posts/FeedShutdownMsg.tsx @@ -0,0 +1,159 @@ +import React from 'react' +import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {PROD_DEFAULT_FEED} from '#/lib/constants' +import {logger} from '#/logger' +import { + useAddSavedFeedsMutation, + usePreferencesQuery, + useRemoveFeedMutation, + useUpdateSavedFeedsMutation, +} from '#/state/queries/preferences' +import {useSetSelectedFeed} from '#/state/shell/selected-feed' +import * as Toast from '#/view/com/util/Toast' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import {InlineLinkText} from '#/components/Link' +import {Loader} from '#/components/Loader' +import {Text} from '#/components/Typography' + +export function FeedShutdownMsg({feedUri}: {feedUri: string}) { + const t = useTheme() + const {_} = useLingui() + const setSelectedFeed = useSetSelectedFeed() + const {data: preferences} = usePreferencesQuery() + const {mutateAsync: addSavedFeeds, isPending: isAddSavedFeedPending} = + useAddSavedFeedsMutation() + const {mutateAsync: removeFeed, isPending: isRemovePending} = + useRemoveFeedMutation() + const {mutateAsync: updateSavedFeeds, isPending: isUpdateFeedPending} = + useUpdateSavedFeedsMutation() + + const feedConfig = preferences?.savedFeeds?.find( + f => f.value === feedUri && f.pinned, + ) + const discoverFeedConfig = preferences?.savedFeeds?.find( + f => f.value === PROD_DEFAULT_FEED('whats-hot'), + ) + const hasFeedPinned = Boolean(feedConfig) + const hasDiscoverPinned = Boolean(discoverFeedConfig?.pinned) + + const onRemoveFeed = React.useCallback(async () => { + try { + if (feedConfig) { + await removeFeed(feedConfig) + Toast.show(_(msg`Removed from your feeds`)) + } + } catch (err: any) { + Toast.show( + _( + msg`There was an an issue updating your feeds, please check your internet connection and try again.`, + ), + ) + logger.error('Failed up update feeds', {message: err}) + } + }, [removeFeed, feedConfig, _]) + + const onReplaceFeed = React.useCallback(async () => { + try { + if (!discoverFeedConfig) { + await addSavedFeeds([ + { + type: 'feed', + value: PROD_DEFAULT_FEED('whats-hot'), + pinned: true, + }, + ]) + } else { + await updateSavedFeeds([ + { + ...discoverFeedConfig, + pinned: true, + }, + ]) + } + setSelectedFeed(`feedgen|${PROD_DEFAULT_FEED('whats-hot')}`) + if (feedConfig) { + await removeFeed(feedConfig) + } + Toast.show(_(msg`The feed has been replaced with Discover.`)) + } catch (err: any) { + Toast.show( + _( + msg`There was an an issue updating your feeds, please check your internet connection and try again.`, + ), + ) + logger.error('Failed up update feeds', {message: err}) + } + }, [ + addSavedFeeds, + updateSavedFeeds, + removeFeed, + discoverFeedConfig, + feedConfig, + setSelectedFeed, + _, + ]) + + const isProcessing = + isAddSavedFeedPending || isUpdateFeedPending || isRemovePending + return ( + + + :( + + + + This feed is no longer online. We are showing{' '} + + Discover + {' '} + instead. + + + {hasFeedPinned ? ( + + + {!hasDiscoverPinned && ( + + )} + + ) : undefined} + + ) +} From 51b4b22dec9eb48a10befddd30ebff0bd999dc40 Mon Sep 17 00:00:00 2001 From: dan Date: Sat, 11 May 2024 19:54:58 +0100 Subject: [PATCH 024/277] Onboarding fixes (#3966) * Ensure prefs are up-to-date before leaving onboarding * Parallelize upsertProfile call * Don't upsertProfile if no image * Don't waterfall blob upload * Fix useProfileUpdateMutation to parallelize uploads * Invalidate user profile before leaving onboarding * Ungate setting the pic --- src/screens/Onboarding/StepFinished.tsx | 55 ++++++++++++++++--------- src/state/queries/profile.ts | 37 +++++++++++------ 2 files changed, 60 insertions(+), 32 deletions(-) diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index 1480696214..51793777ee 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -3,13 +3,18 @@ import {View} from 'react-native' import {TID} from '@atproto/common-web' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {useQueryClient} from '@tanstack/react-query' import {useAnalytics} from '#/lib/analytics/analytics' import {BSKY_APP_ACCOUNT_DID, IS_PROD_SERVICE} from '#/lib/constants' import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants' import {logEvent, useGate} from '#/lib/statsig/statsig' import {logger} from '#/logger' -import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences' +import { + preferencesQueryKey, + useOverwriteSavedFeedsMutation, +} from '#/state/queries/preferences' +import {RQKEY as profileRQKey} from '#/state/queries/profile' import {useAgent} from '#/state/session' import {useOnboardingDispatch} from '#/state/shell' import {uploadBlob} from 'lib/api' @@ -41,6 +46,7 @@ export function StepFinished() { const onboardDispatch = useOnboardingDispatch() const [saving, setSaving] = React.useState(false) const {mutateAsync: overwriteSavedFeeds} = useOverwriteSavedFeedsMutation() + const queryClient = useQueryClient() const {getAgent} = useAgent() const gate = useGate() @@ -112,33 +118,41 @@ export function StepFinished() { ]) } })(), - ]) - if (gate('reduced_onboarding_and_home_algo')) { - await getAgent().upsertProfile(async existing => { - existing = existing ?? {} - - if (profileStepResults.imageUri && profileStepResults.imageMime) { - const res = await uploadBlob( - getAgent(), - profileStepResults.imageUri, - profileStepResults.imageMime, - ) - - if (res.data.blob) { - existing.avatar = res.data.blob - } + (async () => { + const {imageUri, imageMime} = profileStepResults + if (imageUri && imageMime) { + const blobPromise = uploadBlob(getAgent(), imageUri, imageMime) + await getAgent().upsertProfile(async existing => { + existing = existing ?? {} + const res = await blobPromise + if (res.data.blob) { + existing.avatar = res.data.blob + } + return existing + }) } - - return existing - }) - } + })(), + ]) } catch (e: any) { logger.info(`onboarding: bulk save failed`) logger.error(e) // don't alert the user, just let them into their account } + // Try to ensure that prefs and profile are up-to-date by the time we render Home. + await Promise.all([ + queryClient.invalidateQueries({ + queryKey: preferencesQueryKey, + }), + queryClient.invalidateQueries({ + queryKey: profileRQKey(getAgent().session?.did ?? ''), + }), + ]).catch(e => { + logger.error(e) + // Keep going. + }) + setSaving(false) dispatch({type: 'finish'}) onboardDispatch({type: 'finish'}) @@ -154,6 +168,7 @@ export function StepFinished() { track, getAgent, gate, + queryClient, ]) React.useEffect(() => { diff --git a/src/state/queries/profile.ts b/src/state/queries/profile.ts index 103d34733c..3e25359166 100644 --- a/src/state/queries/profile.ts +++ b/src/state/queries/profile.ts @@ -6,6 +6,7 @@ import { AppBskyActorProfile, AtUri, BskyAgent, + ComAtprotoRepoUploadBlob, } from '@atproto/api' import { QueryClient, @@ -124,6 +125,26 @@ export function useProfileUpdateMutation() { newUserBanner, checkCommitted, }) => { + let newUserAvatarPromise: + | Promise + | undefined + if (newUserAvatar) { + newUserAvatarPromise = uploadBlob( + getAgent(), + newUserAvatar.path, + newUserAvatar.mime, + ) + } + let newUserBannerPromise: + | Promise + | undefined + if (newUserBanner) { + newUserBannerPromise = uploadBlob( + getAgent(), + newUserBanner.path, + newUserBanner.mime, + ) + } await getAgent().upsertProfile(async existing => { existing = existing || {} if (typeof updates === 'function') { @@ -132,22 +153,14 @@ export function useProfileUpdateMutation() { existing.displayName = updates.displayName existing.description = updates.description } - if (newUserAvatar) { - const res = await uploadBlob( - getAgent(), - newUserAvatar.path, - newUserAvatar.mime, - ) + if (newUserAvatarPromise) { + const res = await newUserAvatarPromise existing.avatar = res.data.blob } else if (newUserAvatar === null) { existing.avatar = undefined } - if (newUserBanner) { - const res = await uploadBlob( - getAgent(), - newUserBanner.path, - newUserBanner.mime, - ) + if (newUserBannerPromise) { + const res = await newUserBannerPromise existing.banner = res.data.blob } else if (newUserBanner === null) { existing.banner = undefined From 08462375ca12576ce588da464e6d418a53d6f55f Mon Sep 17 00:00:00 2001 From: dan Date: Sat, 11 May 2024 20:35:08 +0100 Subject: [PATCH 025/277] Fix flashes when replacing For You (#3967) * Fix flashes when replacing For You * Switch to Discover if pinned after removing --- src/state/queries/preferences/index.ts | 40 +++++++++++++++++++++ src/view/com/posts/FeedShutdownMsg.tsx | 48 ++++++++------------------ 2 files changed, 54 insertions(+), 34 deletions(-) diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts index b3d2fa9ecd..555fd85a49 100644 --- a/src/state/queries/preferences/index.ts +++ b/src/state/queries/preferences/index.ts @@ -6,6 +6,7 @@ import { import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' import {track} from '#/lib/analytics/analytics' +import {PROD_DEFAULT_FEED} from '#/lib/constants' import {replaceEqualDeep} from '#/lib/functions' import {getAge} from '#/lib/strings/time' import {STALE} from '#/state/queries' @@ -244,6 +245,45 @@ export function useRemoveFeedMutation() { }) } +export function useReplaceForYouWithDiscoverFeedMutation() { + const queryClient = useQueryClient() + const {getAgent} = useAgent() + + return useMutation({ + mutationFn: async ({ + forYouFeedConfig, + discoverFeedConfig, + }: { + forYouFeedConfig: AppBskyActorDefs.SavedFeed | undefined + discoverFeedConfig: AppBskyActorDefs.SavedFeed | undefined + }) => { + if (forYouFeedConfig) { + await getAgent().removeSavedFeeds([forYouFeedConfig.id]) + } + if (!discoverFeedConfig) { + await getAgent().addSavedFeeds([ + { + type: 'feed', + value: PROD_DEFAULT_FEED('whats-hot'), + pinned: true, + }, + ]) + } else { + await getAgent().updateSavedFeeds([ + { + ...discoverFeedConfig, + pinned: true, + }, + ]) + } + // triggers a refetch + await queryClient.invalidateQueries({ + queryKey: preferencesQueryKey, + }) + }, + }) +} + export function useUpdateSavedFeedsMutation() { const queryClient = useQueryClient() const {getAgent} = useAgent() diff --git a/src/view/com/posts/FeedShutdownMsg.tsx b/src/view/com/posts/FeedShutdownMsg.tsx index bc047e8311..47f8941e2a 100644 --- a/src/view/com/posts/FeedShutdownMsg.tsx +++ b/src/view/com/posts/FeedShutdownMsg.tsx @@ -6,10 +6,9 @@ import {useLingui} from '@lingui/react' import {PROD_DEFAULT_FEED} from '#/lib/constants' import {logger} from '#/logger' import { - useAddSavedFeedsMutation, usePreferencesQuery, useRemoveFeedMutation, - useUpdateSavedFeedsMutation, + useReplaceForYouWithDiscoverFeedMutation, } from '#/state/queries/preferences' import {useSetSelectedFeed} from '#/state/shell/selected-feed' import * as Toast from '#/view/com/util/Toast' @@ -24,12 +23,10 @@ export function FeedShutdownMsg({feedUri}: {feedUri: string}) { const {_} = useLingui() const setSelectedFeed = useSetSelectedFeed() const {data: preferences} = usePreferencesQuery() - const {mutateAsync: addSavedFeeds, isPending: isAddSavedFeedPending} = - useAddSavedFeedsMutation() const {mutateAsync: removeFeed, isPending: isRemovePending} = useRemoveFeedMutation() - const {mutateAsync: updateSavedFeeds, isPending: isUpdateFeedPending} = - useUpdateSavedFeedsMutation() + const {mutateAsync: replaceFeedWithDiscover, isPending: isReplacePending} = + useReplaceForYouWithDiscoverFeedMutation() const feedConfig = preferences?.savedFeeds?.find( f => f.value === feedUri && f.pinned, @@ -46,6 +43,9 @@ export function FeedShutdownMsg({feedUri}: {feedUri: string}) { await removeFeed(feedConfig) Toast.show(_(msg`Removed from your feeds`)) } + if (hasDiscoverPinned) { + setSelectedFeed(`feedgen|${PROD_DEFAULT_FEED('whats-hot')}`) + } } catch (err: any) { Toast.show( _( @@ -54,30 +54,15 @@ export function FeedShutdownMsg({feedUri}: {feedUri: string}) { ) logger.error('Failed up update feeds', {message: err}) } - }, [removeFeed, feedConfig, _]) + }, [removeFeed, feedConfig, _, hasDiscoverPinned, setSelectedFeed]) const onReplaceFeed = React.useCallback(async () => { try { - if (!discoverFeedConfig) { - await addSavedFeeds([ - { - type: 'feed', - value: PROD_DEFAULT_FEED('whats-hot'), - pinned: true, - }, - ]) - } else { - await updateSavedFeeds([ - { - ...discoverFeedConfig, - pinned: true, - }, - ]) - } + await replaceFeedWithDiscover({ + forYouFeedConfig: feedConfig, + discoverFeedConfig, + }) setSelectedFeed(`feedgen|${PROD_DEFAULT_FEED('whats-hot')}`) - if (feedConfig) { - await removeFeed(feedConfig) - } Toast.show(_(msg`The feed has been replaced with Discover.`)) } catch (err: any) { Toast.show( @@ -88,17 +73,14 @@ export function FeedShutdownMsg({feedUri}: {feedUri: string}) { logger.error('Failed up update feeds', {message: err}) } }, [ - addSavedFeeds, - updateSavedFeeds, - removeFeed, + replaceFeedWithDiscover, discoverFeedConfig, feedConfig, setSelectedFeed, _, ]) - const isProcessing = - isAddSavedFeedPending || isUpdateFeedPending || isRemovePending + const isProcessing = isReplacePending || isRemovePending return ( Replace with Discover - {(isAddSavedFeedPending || isUpdateFeedPending) && ( - - )} + {isReplacePending && } )} From 97750c4aabbcf221561d1d373cb2238627411be2 Mon Sep 17 00:00:00 2001 From: Hailey Date: Sat, 11 May 2024 15:07:50 -0700 Subject: [PATCH 026/277] Show "label has been placed..." even for self-labels (#3874) * show labels placed on your content even if it's a self-label even friendlier wording friendlier wording remove unnecessary `export` temp revert reordering show labels placed on your content even if it's a self-label * Bump api 0.12.9 --------- Co-authored-by: Paul Frazee --- package.json | 2 +- src/components/moderation/LabelsOnMe.tsx | 4 +- .../moderation/LabelsOnMeDialog.tsx | 96 ++++++++++++------- yarn.lock | 8 +- 4 files changed, 67 insertions(+), 43 deletions(-) diff --git a/package.json b/package.json index a343c063d9..4ed2b933fe 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ }, "dependencies": { "@atproto-labs/api": "^0.12.8-clipclops.0", - "@atproto/api": "^0.12.6", + "@atproto/api": "^0.12.9", "@bam.tech/react-native-image-resizer": "^3.0.4", "@braintree/sanitize-url": "^6.0.2", "@discord/bottom-sheet": "bluesky-social/react-native-bottom-sheet", diff --git a/src/components/moderation/LabelsOnMe.tsx b/src/components/moderation/LabelsOnMe.tsx index ea5c74f9e2..77d0e2d939 100644 --- a/src/components/moderation/LabelsOnMe.tsx +++ b/src/components/moderation/LabelsOnMe.tsx @@ -32,9 +32,7 @@ export function LabelsOnMe({ if (!labels || !currentAccount) { return null } - labels = labels.filter( - l => !l.val.startsWith('!') && l.src !== currentAccount.did, - ) + labels = labels.filter(l => !l.val.startsWith('!')) if (!labels.length) { return null } diff --git a/src/components/moderation/LabelsOnMeDialog.tsx b/src/components/moderation/LabelsOnMeDialog.tsx index 176b04941e..858ac9ce4a 100644 --- a/src/components/moderation/LabelsOnMeDialog.tsx +++ b/src/components/moderation/LabelsOnMeDialog.tsx @@ -7,7 +7,7 @@ import {useLingui} from '@lingui/react' import {useLabelInfo} from '#/lib/moderation/useLabelInfo' import {makeProfileLink} from '#/lib/routes/links' import {sanitizeHandle} from '#/lib/strings/handles' -import {useAgent} from '#/state/session' +import {useAgent, useSession} from '#/state/session' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonText} from '#/components/Button' @@ -33,13 +33,28 @@ export interface LabelsOnMeDialogProps { labels: ComAtprotoLabelDefs.Label[] } -export function LabelsOnMeDialogInner(props: LabelsOnMeDialogProps) { +export function LabelsOnMeDialog(props: LabelsOnMeDialogProps) { + return ( + + + + + + ) +} + +function LabelsOnMeDialogInner(props: LabelsOnMeDialogProps) { const {_} = useLingui() + const {currentAccount} = useSession() const [appealingLabel, setAppealingLabel] = React.useState< ComAtprotoLabelDefs.Label | undefined >(undefined) const {subject, labels} = props const isAccount = 'did' in subject + const containsSelfLabel = React.useMemo( + () => labels.some(l => l.src === currentAccount?.did), + [currentAccount?.did, labels], + ) return ( - - You may appeal these labels if you feel they were placed in error. - + {containsSelfLabel ? ( + + You may appeal non-self labels if you feel they were placed in + error. + + ) : ( + + You may appeal these labels if you feel they were placed in + error. + + )} @@ -75,6 +98,7 @@ export function LabelsOnMeDialogInner(props: LabelsOnMeDialogProps) { - - - + {!isSelfLabel && ( + + + + )} - Source:{' '} - control.close()}> - {labeler ? sanitizeHandle(labeler.creator.handle, '@') : label.src} - + {isSelfLabel ? ( + This label was applied by you + ) : ( + <> + Source:{' '} + control.close()}> + {labeler + ? sanitizeHandle(labeler.creator.handle, '@') + : label.src} + + + )} diff --git a/yarn.lock b/yarn.lock index 6df2993f4a..1e53b30624 100644 --- a/yarn.lock +++ b/yarn.lock @@ -58,10 +58,10 @@ multiformats "^9.9.0" tlds "^1.234.0" -"@atproto/api@^0.12.6": - version "0.12.6" - resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.12.6.tgz#690c004c5ac7fc7bceac4605d8c1ec1f580be270" - integrity sha512-30htXN2Hjl1jzzeAtIhggOsVS4vA975pMUQYoA4xMonug+z6O9NHcka3yYb4C9ldpnGugvRPKH7EhAUbiDTC5w== +"@atproto/api@^0.12.9": + version "0.12.9" + resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.12.9.tgz#5ae040980e574a5d9496368c4ca032c0cda174ec" + integrity sha512-3D4n2ZAAsDRnjevvcoIxQxuMMoqc+7vtVyP7EnrEdeOmRSCF9j8yXTqhn6rcHCbzcs3DKyYR26nQemtZsMsE0g== dependencies: "@atproto/common-web" "^0.3.0" "@atproto/lexicon" "^0.4.0" From 4458b031732149d6f9c107582b9e4ec343385518 Mon Sep 17 00:00:00 2001 From: dan Date: Sun, 12 May 2024 18:30:00 +0100 Subject: [PATCH 027/277] FeedFeedback fixes (#3968) * Lower seen threshold to 1.5s * Send feedContext for replies * Use a simpler and more reliable feedContext fallback --------- Co-authored-by: Paul Frazee --- src/lib/api/feed-manip.ts | 4 ++++ src/state/queries/post-feed.ts | 2 +- src/view/com/util/List.tsx | 2 +- src/view/com/util/List.web.tsx | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts index 85089608a7..3902a56599 100644 --- a/src/lib/api/feed-manip.ts +++ b/src/lib/api/feed-manip.ts @@ -71,6 +71,10 @@ export class FeedViewPostsSlice { ?.__source as ReasonFeedSource } + get feedContext() { + return this.items.find(item => item.feedContext)?.feedContext + } + containsUri(uri: string) { return !!this.items.find(item => item.post.uri === uri) } diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index 7b312edfe5..e670e9da4a 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -303,7 +303,7 @@ export function usePostFeedQuery( i === 0 && slice.source ? slice.source : item.reason, - feedContext: item.feedContext, + feedContext: item.feedContext || slice.feedContext, moderation: moderations[i], } } diff --git a/src/view/com/util/List.tsx b/src/view/com/util/List.tsx index 0064a7b80c..90f5905f10 100644 --- a/src/view/com/util/List.tsx +++ b/src/view/com/util/List.tsx @@ -90,7 +90,7 @@ function ListImpl( }, { itemVisiblePercentThreshold: 40, - minimumViewTime: 2e3, + minimumViewTime: 1.5e3, }, ] }, [onItemSeen]) diff --git a/src/view/com/util/List.web.tsx b/src/view/com/util/List.web.tsx index a64f7acf31..df097bafab 100644 --- a/src/view/com/util/List.web.tsx +++ b/src/view/com/util/List.web.tsx @@ -27,7 +27,7 @@ export type ListProps = Omit< } export type ListRef = React.MutableRefObject // TODO: Better types. -const ON_ITEM_SEEN_WAIT_DURATION = 2e3 // post must be "seen" 2 seconds before capturing +const ON_ITEM_SEEN_WAIT_DURATION = 1.5e3 // when we consider post to be "seen" const ON_ITEM_SEEN_INTERSECTION_OPTS = { rootMargin: '-200px 0px -200px 0px', } // post must be 200px visible to be "seen" From 00a57df5b16bc946c50079914962cc2819011e80 Mon Sep 17 00:00:00 2001 From: Matthieu Sieben Date: Sun, 12 May 2024 23:18:42 +0200 Subject: [PATCH 028/277] =?UTF-8?q?=E2=9C=85=20Fix=20"Download=20CAR=20fil?= =?UTF-8?q?e"=20on=20mobile=20(#3816)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * download CAR file using AtpAgent instead of building URL * add loader icon on download car button * actually save to disk on android * style nits * bottom margin nit * localize toast * remove fallback so back button works correctly * keep throwing an error if mime type isn't used * be more explicit with toasts * send errors to sentry when encountered --------- Co-authored-by: Hailey --- src/lib/api/api-polyfill.ts | 6 +- src/lib/media/manip.ts | 74 +++++++++++++++- src/lib/media/manip.web.ts | 25 +++++- src/view/screens/Settings/ExportCarDialog.tsx | 86 ++++++++++--------- 4 files changed, 144 insertions(+), 47 deletions(-) diff --git a/src/lib/api/api-polyfill.ts b/src/lib/api/api-polyfill.ts index ea1d975985..e3aec76316 100644 --- a/src/lib/api/api-polyfill.ts +++ b/src/lib/api/api-polyfill.ts @@ -1,5 +1,5 @@ -import {BskyAgent, stringifyLex, jsonToLex} from '@atproto/api' import RNFS from 'react-native-fs' +import {BskyAgent, jsonToLex, stringifyLex} from '@atproto/api' const GET_TIMEOUT = 15e3 // 15s const POST_TIMEOUT = 60e3 // 60s @@ -68,8 +68,10 @@ async function fetchHandler( resBody = jsonToLex(await res.json()) } else if (resMimeType.startsWith('text/')) { resBody = await res.text() + } else if (resMimeType === 'application/vnd.ipld.car') { + resBody = await res.arrayBuffer() } else { - throw new Error('TODO: non-textual response body') + throw new Error('Non-supported mime type') } } diff --git a/src/lib/media/manip.ts b/src/lib/media/manip.ts index 9cd4abc626..71d5c701f8 100644 --- a/src/lib/media/manip.ts +++ b/src/lib/media/manip.ts @@ -1,12 +1,23 @@ import {Image as RNImage, Share as RNShare} from 'react-native' import {Image} from 'react-native-image-crop-picker' import uuid from 'react-native-uuid' -import {cacheDirectory, copyAsync, deleteAsync} from 'expo-file-system' +import { + cacheDirectory, + copyAsync, + deleteAsync, + documentDirectory, + EncodingType, + makeDirectoryAsync, + StorageAccessFramework, + writeAsStringAsync, +} from 'expo-file-system' import * as MediaLibrary from 'expo-media-library' import * as Sharing from 'expo-sharing' import ImageResizer from '@bam.tech/react-native-image-resizer' +import {Buffer} from 'buffer' import RNFetchBlob from 'rn-fetch-blob' +import {logger} from '#/logger' import {isAndroid, isIOS} from 'platform/detection' import {Dimensions} from './types' @@ -240,3 +251,64 @@ function normalizePath(str: string, allPlatforms = false): string { } return str } + +export async function saveBytesToDisk( + filename: string, + bytes: Uint8Array, + type: string, +) { + const encoded = Buffer.from(bytes).toString('base64') + return await saveToDevice(filename, encoded, type) +} + +export async function saveToDevice( + filename: string, + encoded: string, + type: string, +) { + try { + if (isIOS) { + const tmpFileUrl = await withTempFile(filename, encoded) + await Sharing.shareAsync(tmpFileUrl, {UTI: type}) + safeDeleteAsync(tmpFileUrl) + return true + } else { + const permissions = + await StorageAccessFramework.requestDirectoryPermissionsAsync() + + if (!permissions.granted) { + return false + } + + const fileUrl = await StorageAccessFramework.createFileAsync( + permissions.directoryUri, + filename, + type, + ) + + await writeAsStringAsync(fileUrl, encoded, { + encoding: EncodingType.Base64, + }) + return true + } + } catch (e) { + logger.error('Error occurred while saving file', {message: e}) + return false + } +} + +async function withTempFile( + filename: string, + encoded: string, +): Promise { + // Using a directory so that the file name is not a random string + // documentDirectory will always be available on native, so we assert as a string. + const tmpDirUri = joinPath(documentDirectory as string, String(uuid.v4())) + await makeDirectoryAsync(tmpDirUri, {intermediates: true}) + + const tmpFileUrl = joinPath(tmpDirUri, filename) + await writeAsStringAsync(tmpFileUrl, encoded, { + encoding: EncodingType.Base64, + }) + return tmpFileUrl +} diff --git a/src/lib/media/manip.web.ts b/src/lib/media/manip.web.ts index 522aa2e51b..25315ebbd8 100644 --- a/src/lib/media/manip.web.ts +++ b/src/lib/media/manip.web.ts @@ -1,6 +1,7 @@ -import {Dimensions} from './types' import {Image as RNImage} from 'react-native-image-crop-picker' -import {getDataUriSize, blobToDataUri} from './util' + +import {Dimensions} from './types' +import {blobToDataUri, getDataUriSize} from './util' export async function compressIfNeeded( img: RNImage, @@ -138,3 +139,23 @@ function createResizedImage( img.src = dataUri }) } + +export async function saveBytesToDisk( + filename: string, + bytes: Uint8Array, + type: string, +) { + const blob = new Blob([bytes], {type}) + const url = URL.createObjectURL(blob) + await downloadUrl(url, filename) + // Firefox requires a small delay + setTimeout(() => URL.revokeObjectURL(url), 100) + return true +} + +async function downloadUrl(href: string, filename: string) { + const a = document.createElement('a') + a.href = href + a.download = filename + a.click() +} diff --git a/src/view/screens/Settings/ExportCarDialog.tsx b/src/view/screens/Settings/ExportCarDialog.tsx index 1b8d430b2a..af835cb620 100644 --- a/src/view/screens/Settings/ExportCarDialog.tsx +++ b/src/view/screens/Settings/ExportCarDialog.tsx @@ -3,12 +3,16 @@ import {View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useAgent, useSession} from '#/state/session' -import {atoms as a, useBreakpoints, useTheme} from '#/alf' -import {Button, ButtonText} from '#/components/Button' +import {saveBytesToDisk} from '#/lib/media/manip' +import {logger} from '#/logger' +import {useAgent} from '#/state/session' +import * as Toast from '#/view/com/util/Toast' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' -import {InlineLinkText, Link} from '#/components/Link' -import {P, Text} from '#/components/Typography' +import {InlineLinkText} from '#/components/Link' +import {Loader} from '#/components/Loader' +import {Text} from '#/components/Typography' export function ExportCarDialog({ control, @@ -17,21 +21,35 @@ export function ExportCarDialog({ }) { const {_} = useLingui() const t = useTheme() - const {gtMobile} = useBreakpoints() - const {currentAccount} = useSession() const {getAgent} = useAgent() + const [loading, setLoading] = React.useState(false) - const downloadUrl = React.useMemo(() => { + const download = React.useCallback(async () => { const agent = getAgent() - if (!currentAccount || !agent.session) { - return '' // shouldnt ever happen + if (!agent.session) { + return // shouldnt ever happen } - // eg: https://bsky.social/xrpc/com.atproto.sync.getRepo?did=did:plc:ewvi7nxzyoun6zhxrhs64oiz - const url = new URL(agent.pdsUrl || agent.service) - url.pathname = '/xrpc/com.atproto.sync.getRepo' - url.searchParams.set('did', agent.session.did) - return url.toString() - }, [currentAccount, getAgent]) + try { + setLoading(true) + const did = agent.session.did + const downloadRes = await agent.com.atproto.sync.getRepo({did}) + const saveRes = await saveBytesToDisk( + 'repo.car', + downloadRes.data, + downloadRes.headers['content-type'], + ) + + if (saveRes) { + Toast.show(_(msg`File saved successfully!`)) + } + } catch (e) { + logger.error('Error occurred while downloading CAR file', {message: e}) + Toast.show(_(msg`Error occurred while saving file`)) + } finally { + setLoading(false) + control.close() + } + }, [_, control, getAgent]) return ( @@ -40,34 +58,34 @@ export function ExportCarDialog({ - + Export My Data -

+ Your account repository, containing all public data records, can be downloaded as a "CAR" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately. -

+ - + disabled={loading} + onPress={download}> Download CAR file - + {loading && } + -

. -

- - - - - - {!gtMobile && } +
From 73d094c67e53506fd3c4ab2c29b37ab481cd9331 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 13 May 2024 02:10:29 -0700 Subject: [PATCH 029/277] Delete the entire temporary directory instead of just the temp file, also use `cacheDirectory` over `documentDirectory` (#3985) * lint * remove extra arg --- src/lib/media/manip.ts | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/lib/media/manip.ts b/src/lib/media/manip.ts index 71d5c701f8..3e647004bb 100644 --- a/src/lib/media/manip.ts +++ b/src/lib/media/manip.ts @@ -5,7 +5,6 @@ import { cacheDirectory, copyAsync, deleteAsync, - documentDirectory, EncodingType, makeDirectoryAsync, StorageAccessFramework, @@ -268,9 +267,9 @@ export async function saveToDevice( ) { try { if (isIOS) { - const tmpFileUrl = await withTempFile(filename, encoded) - await Sharing.shareAsync(tmpFileUrl, {UTI: type}) - safeDeleteAsync(tmpFileUrl) + await withTempFile(filename, encoded, async tmpFileUrl => { + await Sharing.shareAsync(tmpFileUrl, {UTI: type}) + }) return true } else { const permissions = @@ -297,18 +296,24 @@ export async function saveToDevice( } } -async function withTempFile( +async function withTempFile( filename: string, encoded: string, -): Promise { + cb: (url: string) => T | Promise, +): Promise { + // cacheDirectory will not ever be null so we assert as a string. // Using a directory so that the file name is not a random string - // documentDirectory will always be available on native, so we assert as a string. - const tmpDirUri = joinPath(documentDirectory as string, String(uuid.v4())) + const tmpDirUri = joinPath(cacheDirectory as string, String(uuid.v4())) await makeDirectoryAsync(tmpDirUri, {intermediates: true}) - const tmpFileUrl = joinPath(tmpDirUri, filename) - await writeAsStringAsync(tmpFileUrl, encoded, { - encoding: EncodingType.Base64, - }) - return tmpFileUrl + try { + const tmpFileUrl = joinPath(tmpDirUri, filename) + await writeAsStringAsync(tmpFileUrl, encoded, { + encoding: EncodingType.Base64, + }) + + return await cb(tmpFileUrl) + } finally { + safeDeleteAsync(tmpDirUri) + } } From 5cd4ac3a34f629945ccb86e451fbf20dd06e6863 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 13 May 2024 08:39:34 -0700 Subject: [PATCH 030/277] get a little more accurate with month length (#3981) * get a little more accurate with month length * create some wiggle room, create some specific tests * update more tests --- __tests__/lib/string.test.ts | 42 ++++++++++++++++++++++++++++++++++++ src/lib/strings/time.ts | 21 ++++++++++++------ 2 files changed, 57 insertions(+), 6 deletions(-) diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts index c8a209dfad..75cbaeea56 100644 --- a/__tests__/lib/string.test.ts +++ b/__tests__/lib/string.test.ts @@ -143,6 +143,10 @@ describe('makeRecordUri', () => { }) describe('ago', () => { + const oneYearDate = new Date( + new Date().setMonth(new Date().getMonth() - 11), + ).setDate(new Date().getDate() - 28) + const inputs = [ 1671461038, '04 Dec 1995 00:12:00 GMT', @@ -151,7 +155,32 @@ describe('ago', () => { new Date().setMinutes(new Date().getMinutes() - 10), new Date().setHours(new Date().getHours() - 1), new Date().setDate(new Date().getDate() - 1), + new Date().setDate(new Date().getDate() - 20), + new Date().setDate(new Date().getDate() - 25), + new Date().setDate(new Date().getDate() - 28), + new Date().setDate(new Date().getDate() - 29), + new Date().setDate(new Date().getDate() - 30), new Date().setMonth(new Date().getMonth() - 1), + new Date(new Date().setMonth(new Date().getMonth() - 1)).setDate( + new Date().getDate() - 20, + ), + new Date(new Date().setMonth(new Date().getMonth() - 1)).setDate( + new Date().getDate() - 25, + ), + new Date(new Date().setMonth(new Date().getMonth() - 1)).setDate( + new Date().getDate() - 28, + ), + new Date(new Date().setMonth(new Date().getMonth() - 1)).setDate( + new Date().getDate() - 29, + ), + new Date().setMonth(new Date().getMonth() - 11), + new Date(new Date().setMonth(new Date().getMonth() - 11)).setDate( + new Date().getDate() - 20, + ), + new Date(new Date().setMonth(new Date().getMonth() - 11)).setDate( + new Date().getDate() - 25, + ), + oneYearDate, ] const outputs = [ new Date(1671461038).toLocaleDateString(), @@ -161,7 +190,20 @@ describe('ago', () => { '10m', '1h', '1d', + '20d', + '25d', + '28d', + '29d', '1mo', + '1mo', + '1mo', + '1mo', + '2mo', + '2mo', + '11mo', + '11mo', + '11mo', + new Date(oneYearDate).toLocaleDateString(), ] it('correctly calculates how much time passed, in a string', () => { diff --git a/src/lib/strings/time.ts b/src/lib/strings/time.ts index 3e162af1a2..8de4b52aed 100644 --- a/src/lib/strings/time.ts +++ b/src/lib/strings/time.ts @@ -2,8 +2,8 @@ const NOW = 5 const MINUTE = 60 const HOUR = MINUTE * 60 const DAY = HOUR * 24 -const MONTH = DAY * 28 -const YEAR = DAY * 365 +const MONTH_30 = DAY * 30 +const MONTH = DAY * 30.41675 // This results in 365.001 days in a year, which is close enough for nearly all cases export function ago(date: number | string | Date): string { let ts: number if (typeof date === 'string') { @@ -22,12 +22,21 @@ export function ago(date: number | string | Date): string { return `${Math.floor(diffSeconds / MINUTE)}m` } else if (diffSeconds < DAY) { return `${Math.floor(diffSeconds / HOUR)}h` - } else if (diffSeconds < MONTH) { + } else if (diffSeconds < MONTH_30) { return `${Math.round(diffSeconds / DAY)}d` - } else if (diffSeconds < YEAR) { - return `${Math.floor(diffSeconds / MONTH)}mo` } else { - return new Date(ts).toLocaleDateString() + let months = diffSeconds / MONTH + if (months % 1 >= 0.9) { + months = Math.ceil(months) + } else { + months = Math.floor(months) + } + + if (months < 12) { + return `${months}mo` + } else { + return new Date(ts).toLocaleDateString() + } } } From d49b93dc7e77962c143e4798344c8e35ab8a637e Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 13 May 2024 08:43:13 -0700 Subject: [PATCH 031/277] Replace e2e tests with Maestro (#3983) * Setup maestro tests and convert some initial tests * Remove detox * Replace all tests with maestro --- .detoxrc.js | 86 ------- .eslintrc.js | 1 - __e2e__/config.yml | 2 + __e2e__/flows/composer-self-label.yml | 30 +++ __e2e__/flows/composer.yml | 87 +++++++ __e2e__/flows/create-account.yml | 37 +++ __e2e__/flows/curate-lists.yml | 208 +++++++++++++++++ __e2e__/flows/home-screen.yml | 63 ++++++ __e2e__/flows/login.yml | 26 +++ __e2e__/flows/mod-lists.yml | 45 ++++ __e2e__/flows/profile-screen-edit.yml | 119 ++++++++++ __e2e__/flows/profile-screen.yml | 37 +++ __e2e__/flows/search-screen.yml | 22 ++ __e2e__/flows/thread-muting.yml | 82 +++++++ __e2e__/flows/thread-screen.yml | 84 +++++++ __e2e__/jest.config.js | 12 - .../{maestro/scroll.yaml => perf-test.yml} | 2 +- __e2e__/setupApp.yml | 11 + __e2e__/setupServer.js | 5 + __e2e__/tests/composer.test.ts | 109 --------- __e2e__/tests/create-account.test.ts | 39 ---- __e2e__/tests/curate-lists.test.ts | 213 ------------------ __e2e__/tests/home-screen.test.ts | 110 --------- __e2e__/tests/invite-codes.test.skip.ts | 47 ---- __e2e__/tests/login.test.ts | 23 -- __e2e__/tests/merge-feed.test.skip.ts | 163 -------------- __e2e__/tests/mod-lists.test.ts | 189 ---------------- __e2e__/tests/profile-screen.test.ts | 196 ---------------- __e2e__/tests/search-screen.test.ts | 25 -- __e2e__/tests/self-labeling.test.ts | 36 --- __e2e__/tests/shell.test.skip.ts | 33 --- __e2e__/tests/thread-muting.test.ts | 103 --------- __e2e__/tests/thread-screen.test.ts | 131 ----------- __e2e__/util.ts | 141 ------------ docs/build.md | 9 +- docs/testing.md | 14 +- jest/test-pds.ts | 3 +- package.json | 9 +- src/view/com/testing/TestCtrls.e2e.tsx | 11 +- src/view/com/util/Toast.e2e.tsx | 1 + yarn.lock | 48 ---- 41 files changed, 882 insertions(+), 1730 deletions(-) delete mode 100644 .detoxrc.js create mode 100644 __e2e__/config.yml create mode 100644 __e2e__/flows/composer-self-label.yml create mode 100644 __e2e__/flows/composer.yml create mode 100644 __e2e__/flows/create-account.yml create mode 100644 __e2e__/flows/curate-lists.yml create mode 100644 __e2e__/flows/home-screen.yml create mode 100644 __e2e__/flows/login.yml create mode 100644 __e2e__/flows/mod-lists.yml create mode 100644 __e2e__/flows/profile-screen-edit.yml create mode 100644 __e2e__/flows/profile-screen.yml create mode 100644 __e2e__/flows/search-screen.yml create mode 100644 __e2e__/flows/thread-muting.yml create mode 100644 __e2e__/flows/thread-screen.yml delete mode 100644 __e2e__/jest.config.js rename __e2e__/{maestro/scroll.yaml => perf-test.yml} (100%) create mode 100644 __e2e__/setupApp.yml create mode 100644 __e2e__/setupServer.js delete mode 100644 __e2e__/tests/composer.test.ts delete mode 100644 __e2e__/tests/create-account.test.ts delete mode 100644 __e2e__/tests/curate-lists.test.ts delete mode 100644 __e2e__/tests/home-screen.test.ts delete mode 100644 __e2e__/tests/invite-codes.test.skip.ts delete mode 100644 __e2e__/tests/login.test.ts delete mode 100644 __e2e__/tests/merge-feed.test.skip.ts delete mode 100644 __e2e__/tests/mod-lists.test.ts delete mode 100644 __e2e__/tests/profile-screen.test.ts delete mode 100644 __e2e__/tests/search-screen.test.ts delete mode 100644 __e2e__/tests/self-labeling.test.ts delete mode 100644 __e2e__/tests/shell.test.skip.ts delete mode 100644 __e2e__/tests/thread-muting.test.ts delete mode 100644 __e2e__/tests/thread-screen.test.ts delete mode 100644 __e2e__/util.ts create mode 100644 src/view/com/util/Toast.e2e.tsx diff --git a/.detoxrc.js b/.detoxrc.js deleted file mode 100644 index 9066204308..0000000000 --- a/.detoxrc.js +++ /dev/null @@ -1,86 +0,0 @@ -/** @type {Detox.DetoxConfig} */ -module.exports = { - testRunner: { - args: { - $0: 'jest', - config: '__e2e__/jest.config.js', - }, - jest: { - setupTimeout: 120000, - }, - }, - apps: { - 'ios.debug': { - type: 'ios.app', - binaryPath: 'ios/build/Build/Products/Debug-iphonesimulator/bluesky.app', - build: - 'xcodebuild -workspace ios/Bluesky.xcworkspace -scheme Bluesky -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build', - }, - 'ios.release': { - type: 'ios.app', - binaryPath: - 'ios/build/Build/Products/Release-iphonesimulator/bluesky.app', - build: - 'xcodebuild -workspace ios/Bluesky.xcworkspace -scheme Bluesky -configuration Release -sdk iphonesimulator -derivedDataPath ios/build', - }, - 'android.debug': { - type: 'android.apk', - binaryPath: 'android/app/build/outputs/apk/debug/app-debug.apk', - build: - 'cd android ; ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug ; cd -', - reversePorts: [8081], - }, - 'android.release': { - type: 'android.apk', - binaryPath: 'android/app/build/outputs/apk/release/app-release.apk', - build: - 'cd android ; ./gradlew assembleRelease assembleAndroidTest -DtestBuildType=release ; cd -', - }, - }, - devices: { - simulator: { - type: 'ios.simulator', - device: { - type: 'iPhone 15 Pro', - }, - }, - attached: { - type: 'android.attached', - device: { - adbName: '.*', - }, - }, - emulator: { - type: 'android.emulator', - device: { - avdName: 'Pixel_3a_API_30_x86', - }, - }, - }, - configurations: { - 'ios.sim.debug': { - device: 'simulator', - app: 'ios.debug', - }, - 'ios.sim.release': { - device: 'simulator', - app: 'ios.release', - }, - 'android.att.debug': { - device: 'attached', - app: 'android.debug', - }, - 'android.att.release': { - device: 'attached', - app: 'android.release', - }, - 'android.emu.debug': { - device: 'emulator', - app: 'android.debug', - }, - 'android.emu.release': { - device: 'emulator', - app: 'android.release', - }, - }, -} diff --git a/.eslintrc.js b/.eslintrc.js index 29136d5dd0..eb7ad04b1e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -9,7 +9,6 @@ module.exports = { parser: '@typescript-eslint/parser', plugins: [ '@typescript-eslint', - 'detox', 'react', 'lingui', 'simple-import-sort', diff --git a/__e2e__/config.yml b/__e2e__/config.yml new file mode 100644 index 0000000000..b36b0ef601 --- /dev/null +++ b/__e2e__/config.yml @@ -0,0 +1,2 @@ +flows: + - "flows/*" \ No newline at end of file diff --git a/__e2e__/flows/composer-self-label.yml b/__e2e__/flows/composer-self-label.yml new file mode 100644 index 0000000000..cc38b1d995 --- /dev/null +++ b/__e2e__/flows/composer-self-label.yml @@ -0,0 +1,30 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: ?users +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" + +# Post an image with the porn label +- tapOn: + id: "composeFAB" +- inputText: "Post with an image" +- tapOn: + id: "openGalleryBtn" +- tapOn: + id: "labelsBtn" +- tapOn: + label: "Tap on porn" + point: 78%,67% +- tapOn: + label: "Tap on confirm" + point: 51%,92% +- tapOn: + id: "composerPublishBtn" +- tapOn: + id: "e2eRefreshHome" +- assertVisible: "Adult Content" \ No newline at end of file diff --git a/__e2e__/flows/composer.yml b/__e2e__/flows/composer.yml new file mode 100644 index 0000000000..f6d760ea5f --- /dev/null +++ b/__e2e__/flows/composer.yml @@ -0,0 +1,87 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: ?users +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" +- tapOn: + id: "composeFAB" +- inputText: "Post text only" +- tapOn: + id: "composerPublishBtn" +- assertVisible: + id: "composeFAB" +- tapOn: + id: "composeFAB" +- inputText: "Post with an image" +- tapOn: + id: "openGalleryBtn" +- tapOn: + id: "composerPublishBtn" +- assertVisible: + id: "composeFAB" +- tapOn: + id: "composeFAB" +- inputText: "Post with a https://example.com link card" +- tapOn: + id: "composerPublishBtn" +- assertVisible: + id: "composeFAB" +- tapOn: + id: "e2eRefreshHome" +- tapOn: + id: "replyBtn" +- inputText: "Reply text only" +- tapOn: + id: "composerPublishBtn" +- assertVisible: + id: "composeFAB" +- tapOn: + id: "replyBtn" +- inputText: "Reply with an image" +- tapOn: + id: "openGalleryBtn" +- tapOn: + id: "composerPublishBtn" +- assertVisible: + id: "composeFAB" +- tapOn: + id: "replyBtn" +- inputText: "Reply with a https://example.com link card" +- tapOn: + id: "composerPublishBtn" +- assertVisible: + id: "composeFAB" +- tapOn: + id: "repostBtn" +- tapOn: + id: "quoteBtn" +- inputText: "QP text only" +- tapOn: + id: "composerPublishBtn" +- assertVisible: + id: "composeFAB" +- tapOn: + id: "repostBtn" +- tapOn: + id: "quoteBtn" +- inputText: "QP with an image" +- tapOn: + id: "openGalleryBtn" +- tapOn: + id: "composerPublishBtn" +- assertVisible: + id: "composeFAB" +- tapOn: + id: "repostBtn" +- tapOn: + id: "quoteBtn" +- inputText: "QP with a https://example.com link card" +- tapOn: + id: "composerPublishBtn" +- assertVisible: + id: "composeFAB" diff --git a/__e2e__/flows/create-account.yml b/__e2e__/flows/create-account.yml new file mode 100644 index 0000000000..99ac1371a5 --- /dev/null +++ b/__e2e__/flows/create-account.yml @@ -0,0 +1,37 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eOpenLoggedOutView" +- tapOn: + id: "createAccountButton" +- tapOn: + id: "selectServiceButton" +- tapOn: + id: "customSelectBtn" +- tapOn: + id: "customServerTextInput" +- inputText: "http://localhost:3000" +- pressKey: Enter +- tapOn: + id: "doneBtn" +- tapOn: + id: "emailInput" +- inputText: "example@test.com" +- tapOn: + id: "passwordInput" +- inputText: "hunter2" +- pressKey: Enter +- tapOn: + id: "nextBtn" +- tapOn: + id: "handleInput" +- inputText: "e2e-test" +- tapOn: + id: "nextBtn" + diff --git a/__e2e__/flows/curate-lists.yml b/__e2e__/flows/curate-lists.yml new file mode 100644 index 0000000000..35f4f800dc --- /dev/null +++ b/__e2e__/flows/curate-lists.yml @@ -0,0 +1,208 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users&follows&posts" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" + +- tapOn: + label: "Create a curate list" + id: "e2eGotoLists" +- tapOn: + id: "newUserListBtn" +- assertVisible: + id: "createOrEditListModal" +- tapOn: + id: "editNameInput" +- inputText: "Good Ppl" +- tapOn: + id: "editDescriptionInput" +- inputText: "They good" +- tapOn: "Save" +- tapOn: "Save" +- assertNotVisible: + id: "createOrEditListModal" +- tapOn: "About" +- assertVisible: "Good Ppl" +- assertVisible: "They good" + +- tapOn: + label: "Edit display name and description via the edit curatelist modal" + point: "90%,9%" +- tapOn: "Edit list details" +- assertVisible: + id: "createOrEditListModal" +- tapOn: + id: "editNameInput" +- eraseText +- inputText: "Bad Ppl" +- hideKeyboard +- tapOn: + id: "editDescriptionInput" +- eraseText +- inputText: "They bad" +- tapOn: "Save" +- tapOn: "Save" +- assertNotVisible: + id: "createOrEditListModal" +- assertVisible: Bad Ppl +- assertVisible: They bad + +- tapOn: + label: "Remove description via the edit curatelist modal" + point: "90%,9%" +- tapOn: "Edit list details" +- assertVisible: + id: "createOrEditListModal" +- tapOn: + id: "editDescriptionInput" +- eraseText +- tapOn: "Save" +- tapOn: "Save" +- assertNotVisible: + id: "createOrEditListModal" +- assertNotVisible: + id: "listDescription" + +- tapOn: + label: "Delete the curatelist" + point: "90%,9%" +- tapOn: "Delete List" +- tapOn: + id: "confirmBtn" +- assertVisible: + id: "listsEmpty" + +- tapOn: + label: "Create a new curatelist" + id: "e2eGotoLists" +- tapOn: + id: "newUserListBtn" +- assertVisible: + id: "createOrEditListModal" +- tapOn: + id: "editNameInput" +- inputText: "Good Ppl" +- tapOn: + id: "editDescriptionInput" +- inputText: "They good" +- tapOn: "Save" +- tapOn: "Save" +- assertNotVisible: + id: "createOrEditListModal" +- tapOn: "About" +- assertVisible: "Good Ppl" +- assertVisible: "They good" +- tapOn: "About" + +- tapOn: + label: "Adds users on curatelists from the list" + id: "addUserBtn" +- assertVisible: + id: "listAddUserModal" +- tapOn: + id: "searchInput" +- inputText: "b" +- pressKey: Enter +- tapOn: + id: "user-bob.test-addBtn" +- tapOn: + id: "doneBtn" +- assertNotVisible: + id: "listAddUserModal" +- assertVisible: + id: "user-bob.test" + +- tapOn: "Posts" +- assertVisible: + label: "Shows posts by the users in the list" + id: "feedItem-by-bob.test" + +- tapOn: + label: "Pins the list" + id: "pinBtn" +- tapOn: + id: "e2eGotoHome" +- tapOn: "Good Ppl" +- assertVisible: + id: "feedItem-by-bob.test" +- tapOn: + id: "bottomBarFeedsBtn" +- tapOn: + id: "saved-feed-Good Ppl" +- assertVisible: + id: "feedItem-by-bob.test" +- tapOn: + id: "unpinBtn" +- tapOn: + id: "bottomBarHomeBtn" +- assertNotVisible: + id: "homeScreenFeedTabs-Good Ppl" +- tapOn: + id: "e2eGotoLists" +- tapOn: + id: "list-Good Ppl" + +- tapOn: "About" +- assertVisible: + label: "Removes users on curatelists from the list" + id: "user-bob.test" +- tapOn: + point: "90%,43%" +- assertVisible: + id: "userAddRemoveListsModal" +- tapOn: + id: "user-bob.test-addBtn" +- tapOn: + id: "doneBtn" +- assertNotVisible: + id: "userAddRemoveListsModal" + +- tapOn: + label: "Shows the curatelist on my profile" + id: "bottomBarProfileBtn" +- swipe: + from: + id: "profilePager-selector" + direction: LEFT +- tapOn: + id: "profilePager-selector-5" +- tapOn: + id: "list-Good Ppl" + +- tapOn: + label: "Adds and removes users on curatelists from the profile" + id: "bottomBarSearchBtn" +- tapOn: + id: "searchTextInput" +- inputText: "bob" +- tapOn: + id: "searchAutoCompleteResult-bob.test" +- assertVisible: + id: "profileView" +- tapOn: + id: "profileHeaderDropdownBtn" +- tapOn: "Add to Lists" +- assertVisible: + id: "userAddRemoveListsModal" +- tapOn: + id: "user-bob.test-addBtn" +- tapOn: + id: "doneBtn" +- assertNotVisible: + id: "userAddRemoveListsModal" +- tapOn: + id: "profileHeaderDropdownBtn" +- tapOn: "Add to Lists" +- assertVisible: + id: "userAddRemoveListsModal" +- tapOn: + id: "user-bob.test-addBtn" +- tapOn: + id: "doneBtn" +- assertNotVisible: + id: "userAddRemoveListsModal" diff --git a/__e2e__/flows/home-screen.yml b/__e2e__/flows/home-screen.yml new file mode 100644 index 0000000000..69a1fe37f4 --- /dev/null +++ b/__e2e__/flows/home-screen.yml @@ -0,0 +1,63 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: ?users&follows&posts&feeds +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" + +- tapOn: + label: "Can go to feeds page using feeds button in tab bar" + text: "Feeds ✨" +- assertVisible: "Discover New Feeds" + +- tapOn: + label: "Feeds button disappears after pinning a feed" + id: "bottomBarProfileBtn" +- swipe: + from: + id: "profilePager-selector" + direction: LEFT +- tapOn: + id: "profilePager-selector-4" +- tapOn: + id: "feed-alice-favs" +- tapOn: "Pin to Home" +- tapOn: + id: "bottomBarHomeBtn" +- assertNotVisible: "Feeds ✨" + +- tapOn: + label: "Can like posts" + id: "likeBtn" +- assertVisible: + id: "likeCount" + text: "1" +- tapOn: + id: "likeBtn" +- assertNotVisible: + id: "likeCount" + +- tapOn: + label: "Can repost posts" + id: "repostBtn" +- tapOn: "Repost" +- assertVisible: + id: "repostCount" + text: "1" +- tapOn: + id: "repostBtn" +- tapOn: "Undo repost" +- assertNotVisible: + id: "repostCount" + +- tapOn: + label: "Can delete posts" + id: "postDropdownBtn" + childOf: + id: "feedItem-by-alice.test" +- tapOn: "Delete post" +- tapOn: "Delete" diff --git a/__e2e__/flows/login.yml b/__e2e__/flows/login.yml new file mode 100644 index 0000000000..f1001f78da --- /dev/null +++ b/__e2e__/flows/login.yml @@ -0,0 +1,26 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eOpenLoggedOutView" +- tapOn: "Sign in" +- tapOn: + id: "selectServiceButton" +- tapOn: "Custom" +- tapOn: + id: "customServerTextInput" +- inputText: "http://localhost:3000" +- tapOn: "Done" +- tapOn: + id: "loginUsernameInput" +- inputText: "Alice" +- tapOn: + id: "loginPasswordInput" +- inputText: "hunter2" +- pressKey: Enter +- assertVisible: "Following" \ No newline at end of file diff --git a/__e2e__/flows/mod-lists.yml b/__e2e__/flows/mod-lists.yml new file mode 100644 index 0000000000..75ee100a83 --- /dev/null +++ b/__e2e__/flows/mod-lists.yml @@ -0,0 +1,45 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users&follows&labels" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" + +# create a modlist +- tapOn: + id: "e2eGotoModeration" +- tapOn: + id: "moderationlistsBtn" +- tapOn: "New" +- tapOn: + id: "editNameInput" +- inputText: "Muted Users" +- tapOn: + id: "editDescriptionInput" +- inputText: "Shhh" +- tapOn: "Save" +- tapOn: "Save" + +# view modlist +- assertVisible: "Muted Users" +- assertVisible: "Shhh" + +# toggle mute subscription +- tapOn: + point: "70%,9%" +- tapOn: "Mute accounts" +- tapOn: "Mute list" +- tapOn: "Unmute" + +# toggle block subscription +- tapOn: + point: "70%,9%" +- tapOn: "Block accounts" +- tapOn: "Block list" +- tapOn: "Unblock" + + # the rest of the behaviors are tested in curate-lists.yml \ No newline at end of file diff --git a/__e2e__/flows/profile-screen-edit.yml b/__e2e__/flows/profile-screen-edit.yml new file mode 100644 index 0000000000..602cc66887 --- /dev/null +++ b/__e2e__/flows/profile-screen-edit.yml @@ -0,0 +1,119 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users&posts&feeds" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" + + +# Navigate to my profile +- tapOn: + id: "bottomBarProfileBtn" + +# Can see feeds +- swipe: + from: + id: "profilePager-selector" + direction: LEFT +- tapOn: + id: "profilePager-selector-4" +- assertVisible: + id: "feed-alice-favs" +- swipe: + from: + id: "profilePager-selector" + direction: RIGHT +- tapOn: + id: "profilePager-selector-0" + +# Open and close edit profile modal +- tapOn: + id: "profileHeaderEditProfileButton" +- assertVisible: + id: "editProfileModal" +- tapOn: + id: "editProfileCancelBtn" +- assertNotVisible: + id: "editProfileModal" + +# Edit display name and description via the edit profile modal +- tapOn: + id: "profileHeaderEditProfileButton" +- assertVisible: + id: "editProfileModal" +- tapOn: + id: "editProfileDisplayNameInput" +- eraseText +- inputText: "Alicia" +- tapOn: + id: "editProfileDescriptionInput" +- eraseText +- inputText: "One cool hacker" +- tapOn: "Description" +- tapOn: + id: "editProfileSaveBtn" +- assertNotVisible: + id: "editProfileModal" +- assertVisible: "Alicia" +- assertVisible: "One cool hacker" + +# Remove display name and description via the edit profile modal +- tapOn: + id: "profileHeaderEditProfileButton" +- assertVisible: + id: "editProfileModal" +- tapOn: + id: "editProfileDisplayNameInput" +- eraseText +- tapOn: + id: "editProfileDescriptionInput" +- eraseText +- tapOn: "Description" +- tapOn: + id: "editProfileSaveBtn" +- assertNotVisible: + id: "editProfileModal" +- assertVisible: "alice.test" +- assertNotVisible: "One cool hacker" + +# Set avi and banner via the edit profile modal +- assertVisible: + id: "userBannerFallback" +- tapOn: + id: "profileHeaderEditProfileButton" +- assertVisible: + id: "editProfileModal" +- tapOn: + id: "changeBannerBtn" +- tapOn: "Upload from Library" +- tapOn: + id: "changeAvatarBtn" +- tapOn: "Upload from Library" +- tapOn: + id: "editProfileSaveBtn" +- assertNotVisible: + id: "editProfileModal" +- assertVisible: + id: "userBannerImage" + +# # Remove avi and banner via the edit profile modal +- tapOn: + id: "profileHeaderEditProfileButton" +- assertVisible: + id: "editProfileModal" +- tapOn: + id: "changeBannerBtn" +- tapOn: "Remove Banner" +- tapOn: + id: "changeAvatarBtn" +- tapOn: "Remove Avatar" +- tapOn: + id: "editProfileSaveBtn" +- assertNotVisible: + id: "editProfileModal" +- assertVisible: + id: "userBannerFallback" diff --git a/__e2e__/flows/profile-screen.yml b/__e2e__/flows/profile-screen.yml new file mode 100644 index 0000000000..7d2d43deea --- /dev/null +++ b/__e2e__/flows/profile-screen.yml @@ -0,0 +1,37 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users&posts&feeds" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" + +# Navigate to another user profile +- tapOn: + id: "bottomBarSearchBtn" +- tapOn: + id: "searchTextInput" +- inputText: "b" +- tapOn: + id: "searchAutoCompleteResult-bob.test" +- assertVisible: + id: "profileView" + +# Can follow/unfollow another user +- tapOn: + id: "followBtn" +- tapOn: + id: "unfollowBtn" + +# Can mute/unmute another user +- tapOn: + id: "profileHeaderDropdownBtn" +- tapOn: "Mute Account" +- assertVisible: "Account Muted" +- tapOn: + id: "profileHeaderDropdownBtn" +- tapOn: "Unmute Account" +- assertNotVisible: "Account Muted" \ No newline at end of file diff --git a/__e2e__/flows/search-screen.yml b/__e2e__/flows/search-screen.yml new file mode 100644 index 0000000000..0d31d03fb9 --- /dev/null +++ b/__e2e__/flows/search-screen.yml @@ -0,0 +1,22 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" + +# Navigate to another user profile via autocomplete +- tapOn: + id: "bottomBarSearchBtn" +- tapOn: + id: "searchTextInput" +- inputText: "b" +- tapOn: + id: "searchAutoCompleteResult-bob.test" +- assertVisible: + id: "profileView" + diff --git a/__e2e__/flows/thread-muting.yml b/__e2e__/flows/thread-muting.yml new file mode 100644 index 0000000000..316389a79f --- /dev/null +++ b/__e2e__/flows/thread-muting.yml @@ -0,0 +1,82 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users&follows" +- runFlow: + file: ../setupApp.yml + + +# Login, create a thread, and log out +- tapOn: + id: "e2eSignInAlice" +- tapOn: + id: "composeFAB" +- inputText: "Test thread" +- tapOn: + id: "composerPublishBtn" + +# Login, reply to the thread, and log out +- tapOn: + id: "e2eSignInBob" +- tapOn: + id: "replyBtn" +- inputText: "Reply 1" +- tapOn: + id: "composerPublishBtn" + +# Login, confirm notification exists, mute thread, and log out +- tapOn: + id: "e2eSignInAlice" +- tapOn: + id: "bottomBarNotificationsBtn" +- assertVisible: + id: "feedItem-by-bob.test" +- tapOn: + id: "feedItem-by-bob.test" +- tapOn: + id: "postDropdownBtn" + childOf: + id: "postThreadItem-by-bob.test" +- tapOn: "Mute thread" + +# Login, reply to the thread twice, and log out +- tapOn: + id: "e2eSignInBob" +- tapOn: + id: "bottomBarProfileBtn" +- tapOn: + id: "profilePager-selector-1" +- tapOn: + id: "replyBtn" +- inputText: "Reply 2" +- tapOn: + id: "composerPublishBtn" +- tapOn: + id: "replyBtn" +- inputText: "Reply 3" +- tapOn: + id: "composerPublishBtn" + + +# Login, confirm notifications dont exist, unmute the thread, confirm notifications exist +- tapOn: + id: "e2eSignInAlice" +- tapOn: + id: "bottomBarNotificationsBtn" +- assertNotVisible: + id: "feedItem-by-bob.test" +- tapOn: + id: "bottomBarHomeBtn" +- tapOn: + id: "postDropdownBtn" +- tapOn: "Unmute thread" +- tapOn: + id: "bottomBarNotificationsBtn" +- swipe: + from: + id: "notifsFeed" + direction: DOWN +- assertVisible: + id: "feedItem-by-bob.test" diff --git a/__e2e__/flows/thread-screen.yml b/__e2e__/flows/thread-screen.yml new file mode 100644 index 0000000000..22f71345db --- /dev/null +++ b/__e2e__/flows/thread-screen.yml @@ -0,0 +1,84 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users&follows&thread" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" + + +# Navigate to thread +- tapOn: "Thread root" +- assertVisible: "Thread reply" + +# Can like the root post +- tapOn: + id: "likeBtn" + childOf: + id: "postThreadItem-by-bob.test" +- assertVisible: + id: "likeCount-expanded" +- tapOn: + id: "likeBtn" + childOf: + id: "postThreadItem-by-bob.test" +- assertNotVisible: + id: "likeCount-expanded" + +# Can like a reply post +- tapOn: + id: "likeBtn" + childOf: + id: "postThreadItem-by-carla.test" +- assertVisible: + id: "likeCount" + childOf: + id: "postThreadItem-by-carla.test" +- tapOn: + id: "likeBtn" + childOf: + id: "postThreadItem-by-carla.test" +- assertNotVisible: + id: "likeCount" + childOf: + id: "postThreadItem-by-carla.test" + +# Can repost the root post +- tapOn: + id: "repostBtn" + childOf: + id: "postThreadItem-by-bob.test" +- tapOn: "Repost" +- assertVisible: + id: "repostCount-expanded" +- tapOn: + id: "repostBtn" + childOf: + id: "postThreadItem-by-bob.test" +- tapOn: "Undo repost" +- assertNotVisible: + id: "repostCount-expanded" + + +# Can repost a reply post +- tapOn: + id: "repostBtn" + childOf: + id: "postThreadItem-by-carla.test" +- tapOn: "Repost" +- assertVisible: + id: "repostCount" + childOf: + id: "postThreadItem-by-carla.test" +- tapOn: + id: "repostBtn" + childOf: + id: "postThreadItem-by-carla.test" +- tapOn: "Undo repost" +- assertNotVisible: + id: "repostCount" + childOf: + id: "postThreadItem-by-carla.test" diff --git a/__e2e__/jest.config.js b/__e2e__/jest.config.js deleted file mode 100644 index 80c2ad5b3a..0000000000 --- a/__e2e__/jest.config.js +++ /dev/null @@ -1,12 +0,0 @@ -/** @type {import('@jest/types').Config.InitialOptions} */ -module.exports = { - rootDir: '..', - testMatch: ['/__e2e__/**/*.test.ts'], - testTimeout: 120000, - maxWorkers: 1, - globalSetup: 'detox/runners/jest/globalSetup', - globalTeardown: 'detox/runners/jest/globalTeardown', - reporters: ['detox/runners/jest/reporter'], - testEnvironment: 'detox/runners/jest/testEnvironment', - verbose: true, -} diff --git a/__e2e__/maestro/scroll.yaml b/__e2e__/perf-test.yml similarity index 100% rename from __e2e__/maestro/scroll.yaml rename to __e2e__/perf-test.yml index 2d32793eb0..7a7b7a18c9 100644 --- a/__e2e__/maestro/scroll.yaml +++ b/__e2e__/perf-test.yml @@ -1,3 +1,4 @@ + # flow.yaml appId: xyz.blueskyweb.app @@ -74,4 +75,3 @@ appId: xyz.blueskyweb.app - "scroll" - "scroll" - "scroll" - diff --git a/__e2e__/setupApp.yml b/__e2e__/setupApp.yml new file mode 100644 index 0000000000..8c3ffd2d3b --- /dev/null +++ b/__e2e__/setupApp.yml @@ -0,0 +1,11 @@ +appId: xyz.blueskyweb.app +--- +- launchApp: + appId: "xyz.blueskyweb.app" + clearState: true +- waitForAnimationToEnd +- tapOn: "http://localhost:8081" +- waitForAnimationToEnd +- swipe: + from: "Bluesky" + direction: DOWN diff --git a/__e2e__/setupServer.js b/__e2e__/setupServer.js new file mode 100644 index 0000000000..7b1fb95745 --- /dev/null +++ b/__e2e__/setupServer.js @@ -0,0 +1,5 @@ +// eslint-disable-next-line +http.post('http://localhost:1986/' + SERVER_PATH, { + headers: {'Content-Type': 'text/plain'}, + body: '', +}) diff --git a/__e2e__/tests/composer.test.ts b/__e2e__/tests/composer.test.ts deleted file mode 100644 index 06781410f6..0000000000 --- a/__e2e__/tests/composer.test.ts +++ /dev/null @@ -1,109 +0,0 @@ -/* eslint-env detox/detox */ - -import {beforeAll, describe, it} from '@jest/globals' -import {expect} from 'detox' - -import {createServer, loginAsAlice, openApp, sleep} from '../util' - -describe('Composer', () => { - beforeAll(async () => { - await createServer('?users') - await openApp({ - permissions: {notifications: 'YES', medialibrary: 'YES', photos: 'YES'}, - }) - }) - - it('Login', async () => { - await loginAsAlice() - await element(by.id('homeScreenFeedTabs-Following')).tap() - }) - - it('Post text only', async () => { - await element(by.id('composeFAB')).tap() - await device.takeScreenshot('1- opened composer') - await element(by.id('composerTextInput')).typeText('Post text only') - await device.takeScreenshot('2- entered text') - await element(by.id('composerPublishBtn')).tap() - await device.takeScreenshot('3- opened general section') - await expect(element(by.id('composeFAB'))).toBeVisible() - }) - - it('Post with an image', async () => { - await element(by.id('composeFAB')).tap() - await element(by.id('composerTextInput')).typeText('Post with an image') - await element(by.id('openGalleryBtn')).tap() - await sleep(1e3) - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - }) - - it('Post with a link card', async () => { - await element(by.id('composeFAB')).tap() - await element(by.id('composerTextInput')).typeText( - 'Post with a https://example.com link card', - ) - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - }) - - it('Reply text only', async () => { - await element(by.id('e2eRefreshHome')).tap() - - const post = by.id('feedItem-by-alice.test') - await element(by.id('replyBtn').withAncestor(post)).atIndex(0).tap() - await element(by.id('composerTextInput')).typeText('Reply text only') - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - }) - - it('Reply with an image', async () => { - const post = by.id('feedItem-by-alice.test') - await element(by.id('replyBtn').withAncestor(post)).atIndex(0).tap() - await element(by.id('composerTextInput')).typeText('Reply with an image') - await element(by.id('openGalleryBtn')).tap() - await sleep(1e3) - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - }) - - it('Reply with a link card', async () => { - const post = by.id('feedItem-by-alice.test') - await element(by.id('replyBtn').withAncestor(post)).atIndex(0).tap() - await element(by.id('composerTextInput')).typeText( - 'Reply with a https://example.com link card', - ) - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - }) - - it('QP text only', async () => { - const post = by.id('feedItem-by-alice.test') - await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap() - await element(by.id('quoteBtn').withAncestor(by.id('repostModal'))).tap() - await element(by.id('composerTextInput')).typeText('QP text only') - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - }) - - it('QP with an image', async () => { - const post = by.id('feedItem-by-alice.test') - await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap() - await element(by.id('quoteBtn').withAncestor(by.id('repostModal'))).tap() - await element(by.id('composerTextInput')).typeText('QP with an image') - await element(by.id('openGalleryBtn')).tap() - await sleep(1e3) - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - }) - - it('QP with a link card', async () => { - const post = by.id('feedItem-by-alice.test') - await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap() - await element(by.id('quoteBtn').withAncestor(by.id('repostModal'))).tap() - await element(by.id('composerTextInput')).typeText( - 'QP with a https://example.com link card', - ) - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - }) -}) diff --git a/__e2e__/tests/create-account.test.ts b/__e2e__/tests/create-account.test.ts deleted file mode 100644 index 9c56c914ea..0000000000 --- a/__e2e__/tests/create-account.test.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* eslint-env detox/detox */ - -import {describe, beforeAll, it} from '@jest/globals' -import {expect} from 'detox' -import {openApp, createServer} from '../util' - -describe('Create account', () => { - let service: string - beforeAll(async () => { - service = await createServer('') - await openApp({permissions: {notifications: 'YES'}}) - }) - - it('I can create a new account', async () => { - await element(by.id('e2eOpenLoggedOutView')).tap() - - await element(by.id('createAccountButton')).tap() - await device.takeScreenshot('1- opened create account screen') - await element(by.id('selectServiceButton')).tap() - await device.takeScreenshot('2- selected other server') - await element(by.id('customSelectBtn')).tap() - await element(by.id('customServerTextInput')).typeText(service) - await element(by.id('customServerTextInput')).tapReturnKey() - await element(by.id('doneBtn')).tap() - await device.takeScreenshot('3- input test server URL') - await element(by.id('emailInput')).typeText('example@test.com') - await element(by.id('passwordInput')).typeText('hunter2') - await device.takeScreenshot('4- entered account details') - - await element(by.id('nextBtn')).tap() - - await element(by.id('handleInput')).typeText('e2e-test') - await device.takeScreenshot('5- entered handle') - - await element(by.id('nextBtn')).tap() - - await expect(element(by.id('onboardingInterests'))).toBeVisible() - }) -}) diff --git a/__e2e__/tests/curate-lists.test.ts b/__e2e__/tests/curate-lists.test.ts deleted file mode 100644 index 635357b8d2..0000000000 --- a/__e2e__/tests/curate-lists.test.ts +++ /dev/null @@ -1,213 +0,0 @@ -/* eslint-env detox/detox */ - -import {beforeAll, describe, it} from '@jest/globals' -import {expect} from 'detox' - -import {createServer, loginAsAlice, loginAsBob, openApp, sleep} from '../util' - -describe('Curate lists', () => { - beforeAll(async () => { - await createServer('?users&follows&posts') - await openApp({ - permissions: {notifications: 'YES', medialibrary: 'YES', photos: 'YES'}, - }) - }) - - it('Login and create a curatelists', async () => { - await loginAsAlice() - await element(by.id('e2eGotoLists')).tap() - await element(by.id('newUserListBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).toBeVisible() - await element(by.id('editNameInput')).typeText('Good Ppl') - await element(by.id('editDescriptionInput')).typeText('They good') - await element(by.id('saveBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() - await element(by.text('About')).tap() - await expect(element(by.id('headerTitle'))).toHaveText('Good Ppl') - await expect(element(by.id('listDescription'))).toHaveText('They good') - }) - - it('Edit display name and description via the edit curatelist modal', async () => { - await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit list details')).tap() - await expect(element(by.id('createOrEditListModal'))).toBeVisible() - await element(by.id('editNameInput')).clearText() - await element(by.id('editNameInput')).typeText('Bad Ppl') - await element(by.id('editDescriptionInput')).clearText() - await element(by.id('editDescriptionInput')).typeText('They bad') - await element(by.id('saveBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() - await expect(element(by.id('headerTitle'))).toHaveText('Bad Ppl') - await expect(element(by.id('listDescription'))).toHaveText('They bad') - // have to wait for the toast to clear - await waitFor(element(by.id('headerDropdownBtn'))) - .toBeVisible() - .withTimeout(5000) - }) - - it('Remove description via the edit curatelist modal', async () => { - await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit list details')).tap() - await expect(element(by.id('createOrEditListModal'))).toBeVisible() - await element(by.id('editDescriptionInput')).clearText() - await element(by.id('saveBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() - await expect(element(by.id('listDescription'))).not.toBeVisible() - // have to wait for the toast to clear - await waitFor(element(by.id('headerDropdownBtn'))) - .toBeVisible() - .withTimeout(5000) - }) - - it('Set avi via the edit curatelist modal', async () => { - await expect(element(by.id('userAvatarFallback'))).toExist() - await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit list details')).tap() - await expect(element(by.id('createOrEditListModal'))).toBeVisible() - await element(by.id('changeAvatarBtn')).tap() - await element(by.text('Upload from Library')).tap() - await sleep(3e3) - await element(by.id('saveBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() - await expect(element(by.id('userAvatarImage'))).toExist() - // have to wait for the toast to clear - await waitFor(element(by.id('headerDropdownBtn'))) - .toBeVisible() - .withTimeout(5000) - }) - - it('Remove avi via the edit curatelist modal', async () => { - await expect(element(by.id('userAvatarImage'))).toExist() - await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit list details')).tap() - await expect(element(by.id('createOrEditListModal'))).toBeVisible() - await element(by.id('changeAvatarBtn')).tap() - await element(by.text('Remove Avatar')).tap() - await element(by.id('saveBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() - await expect(element(by.id('userAvatarFallback'))).toExist() - // have to wait for the toast to clear - await waitFor(element(by.id('headerDropdownBtn'))) - .toBeVisible() - .withTimeout(5000) - }) - - it('Delete the curatelist', async () => { - await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Delete List')).tap() - await element(by.id('confirmBtn')).tap() - await expect(element(by.id('listsEmpty'))).toBeVisible() - }) - - it('Create a new curatelist', async () => { - await element(by.id('e2eGotoLists')).tap() - await element(by.id('newUserListBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).toBeVisible() - await element(by.id('editNameInput')).typeText('Good Ppl') - await element(by.id('editDescriptionInput')).typeText('They good') - await element(by.id('saveBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() - await element(by.text('About')).tap() - await expect(element(by.id('headerTitle'))).toHaveText('Good Ppl') - await expect(element(by.id('listDescription'))).toHaveText('They good') - }) - - it('Adds users on curatelists from the list', async () => { - await element(by.text('About')).tap() - await element(by.id('addUserBtn')).tap() - await expect(element(by.id('listAddUserModal'))).toBeVisible() - await element(by.id('searchInput')).typeText('b') - await waitFor(element(by.id('user-bob.test-addBtn'))) - .toBeVisible() - .withTimeout(5000) - await element(by.id('user-bob.test-addBtn')).tap() - await element(by.id('doneBtn')).tap() - await expect(element(by.id('listAddUserModal'))).not.toBeVisible() - await expect(element(by.id('user-bob.test'))).toBeVisible() - }) - - it('Shows posts by the users in the list', async () => { - await element(by.text('Posts')).tap() - await expect(element(by.id('feedItem-by-bob.test'))).toBeVisible() - }) - - it('Pins the list', async () => { - await expect(element(by.id('pinBtn'))).toBeVisible() - await element(by.id('pinBtn')).tap() - await element(by.id('e2eGotoHome')).tap() - await element(by.id('homeScreenFeedTabs-Good Ppl')).tap() - await expect(element(by.id('feedItem-by-bob.test'))).toBeVisible() - - await element(by.id('bottomBarFeedsBtn')).tap() - await element(by.id('saved-feed-Good Ppl')).tap() - await expect(element(by.id('feedItem-by-bob.test'))).toBeVisible() - - await element(by.id('unpinBtn')).tap() - await element(by.id('bottomBarHomeBtn')).tap() - await expect( - element(by.id('homeScreenFeedTabs-Good Ppl')), - ).not.toBeVisible() - - await element(by.id('e2eGotoLists')).tap() - await element(by.id('list-Good Ppl')).tap() - }) - - it('Removes users on curatelists from the list', async () => { - await element(by.text('About')).tap() - await expect(element(by.id('user-bob.test'))).toBeVisible() - await element(by.id('user-bob.test-editBtn')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('user-bob.test-addBtn')).tap() - await element(by.id('doneBtn')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() - }) - - it('Shows the curatelist on my profile', async () => { - await element(by.id('bottomBarProfileBtn')).tap() - await element(by.id('profilePager-selector')).swipe('left') - await element(by.id('profilePager-selector-5')).tap() - await element(by.id('list-Good Ppl')).tap() - }) - - it('Adds and removes users on curatelists from the profile', async () => { - await element(by.id('bottomBarSearchBtn')).tap() - await element(by.id('searchTextInput')).typeText('bob') - await element(by.id('searchAutoCompleteResult-bob.test')).tap() - await expect(element(by.id('profileView'))).toBeVisible() - - await element(by.id('profileHeaderDropdownBtn')).tap() - await element(by.text('Add to Lists')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('user-bob.test-addBtn')).tap() - await element(by.id('doneBtn')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() - - await element(by.id('profileHeaderDropdownBtn')).tap() - await element(by.text('Add to Lists')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('user-bob.test-addBtn')).tap() - await element(by.id('doneBtn')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() - }) - - it('Can report a user list', async () => { - await element(by.id('e2eGotoSettings')).tap() - await element(by.id('signOutBtn')).tap() - await loginAsBob() - await element(by.id('bottomBarSearchBtn')).tap() - await element(by.id('searchTextInput')).typeText('alice') - await element(by.id('searchAutoCompleteResult-alice.test')).tap() - await element(by.id('profilePager-selector')).swipe('left') - await element(by.id('profilePager-selector-3')).tap() - await element(by.id('list-Good Ppl')).tap() - await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Report List')).tap() - await expect(element(by.id('reportModal'))).toBeVisible() - await expect(element(by.text('Report List'))).toBeVisible() - await element( - by.id('reportReasonRadios-com.atproto.moderation.defs#reasonRude'), - ).tap() - await element(by.id('sendReportBtn')).tap() - await expect(element(by.id('reportModal'))).not.toBeVisible() - }) -}) diff --git a/__e2e__/tests/home-screen.test.ts b/__e2e__/tests/home-screen.test.ts deleted file mode 100644 index b594c46978..0000000000 --- a/__e2e__/tests/home-screen.test.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* eslint-env detox/detox */ - -import {beforeAll, describe, it} from '@jest/globals' -import {expect} from 'detox' - -import {createServer, loginAsAlice, openApp} from '../util' - -describe('Home screen', () => { - beforeAll(async () => { - await createServer('?users&follows&posts&feeds') - await openApp({permissions: {notifications: 'YES'}}) - }) - - it('Login', async () => { - await loginAsAlice() - await element(by.id('homeScreenFeedTabs-Following')).tap() - }) - - it('Can go to feeds page using feeds button in tab bar', async () => { - await element(by.id('homeScreenFeedTabs-Feeds ✨')).tap() - await expect(element(by.text('Discover New Feeds'))).toBeVisible() - }) - - it('Feeds button disappears after pinning a feed', async () => { - await element(by.id('bottomBarProfileBtn')).tap() - await element(by.id('profilePager-selector')).swipe('left') - await element(by.id('profilePager-selector-4')).tap() - await element(by.id('feed-alice-favs')).tap() - await element(by.id('pinBtn')).tap() - await element(by.id('bottomBarHomeBtn')).tap() - await expect( - element(by.id('homeScreenFeedTabs-Feeds ✨')), - ).not.toBeVisible() - }) - - it('Can like posts', async () => { - const carlaPosts = by.id('feedItem-by-carla.test') - await expect( - element(by.id('likeCount').withAncestor(carlaPosts)).atIndex(0), - ).not.toExist() - await element(by.id('likeBtn').withAncestor(carlaPosts)).atIndex(0).tap() - await expect( - element(by.id('likeCount').withAncestor(carlaPosts)).atIndex(0), - ).toHaveText('1') - await element(by.id('likeBtn').withAncestor(carlaPosts)).atIndex(0).tap() - await expect( - element(by.id('likeCount').withAncestor(carlaPosts)).atIndex(0), - ).not.toExist() - }) - - it('Can repost posts', async () => { - const carlaPosts = by.id('feedItem-by-carla.test') - await expect( - element(by.id('repostCount').withAncestor(carlaPosts)).atIndex(0), - ).not.toExist() - await element(by.id('repostBtn').withAncestor(carlaPosts)).atIndex(0).tap() - await expect(element(by.id('repostModal'))).toBeVisible() - await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() - await expect(element(by.id('repostModal'))).not.toBeVisible() - await expect( - element(by.id('repostCount').withAncestor(carlaPosts)).atIndex(0), - ).toHaveText('1') - await element(by.id('repostBtn').withAncestor(carlaPosts)).atIndex(0).tap() - await expect(element(by.id('repostModal'))).toBeVisible() - await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() - await expect(element(by.id('repostModal'))).not.toBeVisible() - await expect( - element(by.id('repostCount').withAncestor(carlaPosts)).atIndex(0), - ).not.toExist() - }) - - // TODO skipping because the test env PDS isnt setup correctly to handle the report -prf - // it('Can report posts', async () => { - // const carlaPosts = by.id('feedItem-by-carla.test') - // await element(by.id('postDropdownBtn').withAncestor(carlaPosts)) - // .atIndex(0) - // .tap() - // await element(by.text('Report post')).tap() - // await element(by.id('com.atproto.moderation.defs#reasonSpam')).tap() - // await element(by.id('sendReportBtn')).tap() - // }) - - it('Can swipe between feeds', async () => { - await element(by.id('homeScreen')).swipe('left', 'fast', 0.75) - await expect(element(by.id('customFeedPage'))).toBeVisible() - await element(by.id('homeScreen')).swipe('right', 'fast', 0.75) - await expect(element(by.id('followingFeedPage'))).toBeVisible() - }) - - it('Can tap between feeds', async () => { - await element(by.id('homeScreenFeedTabs-alice-favs')).tap() - await expect(element(by.id('customFeedPage'))).toBeVisible() - await element(by.id('homeScreenFeedTabs-Following')).tap() - await expect(element(by.id('followingFeedPage'))).toBeVisible() - }) - - it('Can delete posts', async () => { - const alicePosts = by.id('feedItem-by-alice.test') - await expect(element(alicePosts.withDescendant(by.text('Post')))).toExist() - await element(by.id('postDropdownBtn').withAncestor(alicePosts)) - .atIndex(0) - .tap() - await element(by.text('Delete post')).tap() - await expect(element(by.id('confirmModal'))).toBeVisible() - await element(by.id('confirmBtn')).tap() - await expect( - element(alicePosts.withDescendant(by.text('Post'))), - ).not.toExist() - }) -}) diff --git a/__e2e__/tests/invite-codes.test.skip.ts b/__e2e__/tests/invite-codes.test.skip.ts deleted file mode 100644 index 9f00f05255..0000000000 --- a/__e2e__/tests/invite-codes.test.skip.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* eslint-env detox/detox */ - -import {beforeAll, describe, it} from '@jest/globals' -import {expect} from 'detox' - -import {createServer, loginAsAlice, openApp} from '../util' - -describe('invite-codes', () => { - let service: string - let inviteCode = '' - beforeAll(async () => { - service = await createServer('?users&invite') - await openApp({permissions: {notifications: 'YES'}}) - }) - - it('I can fetch invite codes', async () => { - await loginAsAlice() - await element(by.id('e2eOpenInviteCodesModal')).tap() - await expect(element(by.id('inviteCodesModal'))).toBeVisible() - const attrs = await element(by.id('inviteCode-0-code')).getAttributes() - inviteCode = attrs.text - await element(by.id('closeBtn')).tap() - await element(by.id('e2eSignOut')).tap() - }) - - it('I can create a new account with the invite code', async () => { - await element(by.id('e2eOpenLoggedOutView')).tap() - await element(by.id('createAccountButton')).tap() - await device.takeScreenshot('1- opened create account screen') - await element(by.id('selectServiceButton')).tap() - await device.takeScreenshot('2- selected other server') - await element(by.id('customSelectBtn')).tap() - await element(by.id('customServerTextInput')).typeText(service) - await element(by.id('customServerTextInput')).tapReturnKey() - await element(by.id('doneBtn')).tap() - await device.takeScreenshot('3- input test server URL') - await element(by.id('inviteCodeInput')).typeText(inviteCode) - await element(by.id('emailInput')).typeText('example@test.com') - await element(by.id('passwordInput')).typeText('hunter2') - await device.takeScreenshot('4- entered account details') - await element(by.id('nextBtn')).tap() - await element(by.id('handleInput')).typeText('e2e-test') - await device.takeScreenshot('4- entered handle') - await element(by.id('nextBtn')).tap() - await expect(element(by.id('onboardingInterests'))).toBeVisible() - }) -}) diff --git a/__e2e__/tests/login.test.ts b/__e2e__/tests/login.test.ts deleted file mode 100644 index b4cedef6c4..0000000000 --- a/__e2e__/tests/login.test.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* eslint-env detox/detox */ - -import {describe, beforeAll, it} from '@jest/globals' -import {expect} from 'detox' -import {openApp, login, createServer} from '../util' - -describe('Login', () => { - let service: string - beforeAll(async () => { - service = await createServer('?users') - await openApp({permissions: {notifications: 'YES'}}) - }) - - it('As Alice, I can login', async () => { - await element(by.id('e2eOpenLoggedOutView')).tap() - - await expect(element(by.id('signInButton'))).toBeVisible() - await login(service, 'alice', 'hunter2', { - takeScreenshots: true, - }) - await device.takeScreenshot('5- opened home screen') - }) -}) diff --git a/__e2e__/tests/merge-feed.test.skip.ts b/__e2e__/tests/merge-feed.test.skip.ts deleted file mode 100644 index 4a8b3cbcef..0000000000 --- a/__e2e__/tests/merge-feed.test.skip.ts +++ /dev/null @@ -1,163 +0,0 @@ -/* eslint-env detox/detox */ - -import {describe, beforeAll, it} from '@jest/globals' -import {expect} from 'detox' -import {openApp, loginAsAlice, createServer} from '../util' - -describe('Mergefeed', () => { - beforeAll(async () => { - await createServer('?mergefeed') - await openApp({permissions: {notifications: 'YES'}}) - }) - - it('Login', async () => { - await element(by.id('e2eOpenLoggedOutView')).tap() - await loginAsAlice() - await element(by.id('e2eToggleMergefeed')).tap() - await element(by.id('bottomBarFeedsBtn')).tap() - await element(by.id('feed-alice-favs-toggleSave')).tap() - await element(by.id('e2eGotoHome')).tap() - }) - - it('Sees the expected mix of posts with default filters', async () => { - await element(by.id('followingFeedPage-feed-flatlist')).swipe( - 'down', - 'slow', - 1, - 0.5, - 0.5, - ) - // followed users - await expect( - element( - by.id('postText').withAncestor(by.id('feedItem-by-carla.test')), - ).atIndex(0), - ).toHaveText('Post 9') - await expect( - element( - by.id('postText').withAncestor(by.id('feedItem-by-bob.test')), - ).atIndex(0), - ).toHaveText('Post 9') - await element(by.id('followingFeedPage-feed-flatlist')).swipe( - 'up', - 'fast', - 1, - 0.5, - 0.5, - ) - // feed users - await expect( - element( - by.id('postText').withAncestor(by.id('feedItem-by-dan.test')), - ).atIndex(0), - ).toHaveText('Post 0') - }) - - it('Sees the expected mix of posts with replies disabled', async () => { - await element(by.id('followingFeedPage-feed-flatlist')).swipe( - 'down', - 'fast', - 1, - 0.5, - 0.5, - ) - await element(by.id('followingFeedPage-feed-flatlist')).swipe( - 'down', - 'fast', - 1, - 0.5, - 0.5, - ) - await element(by.id('viewHeaderHomeFeedPrefsBtn')).tap() - await element(by.id('toggleRepliesBtn')).tap() - await element(by.id('confirmBtn')).tap() - await element(by.id('followingFeedPage-feed-flatlist')).swipe( - 'down', - 'slow', - 1, - 0.5, - 0.5, - ) - - // followed users - await expect( - element( - by.id('postText').withAncestor(by.id('feedItem-by-carla.test')), - ).atIndex(0), - ).toHaveText('Post 9') - await expect( - element( - by.id('postText').withAncestor(by.id('feedItem-by-bob.test')), - ).atIndex(0), - ).toHaveText('Post 9') - await element(by.id('followingFeedPage-feed-flatlist')).swipe( - 'up', - 'fast', - 1, - 0.5, - 0.5, - ) - - // feed users - await expect( - element( - by.id('postText').withAncestor(by.id('feedItem-by-dan.test')), - ).atIndex(0), - ).toHaveText('Post 0') - }) - - it('Sees the expected mix of posts with no follows', async () => { - await element(by.id('followingFeedPage-feed-flatlist')).swipe( - 'down', - 'fast', - 1, - 0.5, - 0.5, - ) - - await element(by.id('bottomBarSearchBtn')).tap() - await element(by.id('searchTextInput')).typeText('bob') - await element(by.id('searchAutoCompleteResult-bob.test')).tap() - await expect(element(by.id('profileView'))).toBeVisible() - await element(by.id('unfollowBtn')).tap() - await element(by.id('profileHeaderBackBtn')).tap() - - // have to wait for the toast to clear - await waitFor(element(by.id('searchTextInputClearBtn'))) - .toBeVisible() - .withTimeout(5000) - await element(by.id('searchTextInputClearBtn')).tap() - await element(by.id('searchTextInput')).typeText('carla') - await element(by.id('searchAutoCompleteResult-carla.test')).tap() - await expect(element(by.id('profileView'))).toBeVisible() - await element(by.id('unfollowBtn')).tap() - await element(by.id('profileHeaderBackBtn')).tap() - - await element(by.id('bottomBarHomeBtn')).tap() - await element(by.id('followingFeedPage-feed-flatlist')).swipe( - 'down', - 'slow', - 1, - 0.5, - 0.5, - ) - await element(by.id('followingFeedPage-feed-flatlist')).swipe( - 'down', - 'slow', - 1, - 0.5, - 0.5, - ) - - // followed users NOT present - await expect(element(by.id('feedItem-by-carla.test'))).not.toExist() - await expect(element(by.id('feedItem-by-bob.test'))).not.toExist() - - // feed users - await expect( - element( - by.id('postText').withAncestor(by.id('feedItem-by-dan.test')), - ).atIndex(0), - ).toHaveText('Post 0') - }) -}) diff --git a/__e2e__/tests/mod-lists.test.ts b/__e2e__/tests/mod-lists.test.ts deleted file mode 100644 index c3d4149e09..0000000000 --- a/__e2e__/tests/mod-lists.test.ts +++ /dev/null @@ -1,189 +0,0 @@ -/* eslint-env detox/detox */ - -import {describe, beforeAll, it} from '@jest/globals' -import {expect} from 'detox' -import {openApp, loginAsAlice, loginAsBob, createServer} from '../util' - -describe('Mod lists', () => { - beforeAll(async () => { - await createServer('?users&follows&labels') - await openApp({ - permissions: {notifications: 'YES', medialibrary: 'YES', photos: 'YES'}, - }) - }) - - it('Login and view my modlists', async () => { - await loginAsAlice() - await element(by.id('e2eGotoModeration')).tap() - await element(by.id('moderationlistsBtn')).tap() - await expect(element(by.id('list-Muted Users'))).toBeVisible() - await element(by.id('list-Muted Users')).tap() - await expect( - element(by.id('user-muted-by-list-account.test')), - ).toBeVisible() - }) - - it('Toggle mute subscription', async () => { - await element(by.id('unmuteBtn')).tap() - await element(by.id('subscribeBtn')).tap() - await element(by.text('Mute accounts')).tap() - await element(by.id('confirmBtn')).tap() - }) - - it('Edit display name and description via the edit modlist modal', async () => { - await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit list details')).tap() - await expect(element(by.id('createOrEditListModal'))).toBeVisible() - await element(by.id('editNameInput')).clearText() - await element(by.id('editNameInput')).typeText('Bad Ppl') - await element(by.id('editDescriptionInput')).clearText() - await element(by.id('editDescriptionInput')).typeText('They bad') - await element(by.id('saveBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() - await expect(element(by.id('headerTitle'))).toHaveText('Bad Ppl') - await expect(element(by.id('listDescription'))).toHaveText('They bad') - // have to wait for the toast to clear - await waitFor(element(by.id('headerDropdownBtn'))) - .toBeVisible() - .withTimeout(5000) - }) - - it('Remove description via the edit modlist modal', async () => { - await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Edit list details')).tap() - await expect(element(by.id('createOrEditListModal'))).toBeVisible() - await element(by.id('editDescriptionInput')).clearText() - await element(by.id('saveBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() - await expect(element(by.id('listDescription'))).not.toBeVisible() - // have to wait for the toast to clear - await waitFor(element(by.id('headerDropdownBtn'))) - .toBeVisible() - .withTimeout(5000) - }) - - // DISABLED e2e environment is real finicky about avatar uploads -prf - // it('Set avi via the edit modlist modal', async () => { - // await expect(element(by.id('userAvatarFallback'))).toExist() - // await element(by.id('headerDropdownBtn')).tap() - // await element(by.text('Edit list details')).tap() - // await expect(element(by.id('createOrEditListModal'))).toBeVisible() - // await element(by.id('changeAvatarBtn')).tap() - // await element(by.text('Library')).tap() - // await sleep(3e3) - // await element(by.id('saveBtn')).tap() - // await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() - // await expect(element(by.id('userAvatarImage'))).toExist() - // // have to wait for the toast to clear - // await waitFor(element(by.id('headerDropdownBtn'))) - // .toBeVisible() - // .withTimeout(5000) - // }) - - // it('Remove avi via the edit modlist modal', async () => { - // await expect(element(by.id('userAvatarImage'))).toExist() - // await element(by.id('headerDropdownBtn')).tap() - // await element(by.text('Edit list details')).tap() - // await expect(element(by.id('createOrEditListModal'))).toBeVisible() - // await element(by.id('changeAvatarBtn')).tap() - // await element(by.text('Remove')).tap() - // await element(by.id('saveBtn')).tap() - // await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() - // await expect(element(by.id('userAvatarFallback'))).toExist() - // // have to wait for the toast to clear - // await waitFor(element(by.id('headerDropdownBtn'))) - // .toBeVisible() - // .withTimeout(5000) - // }) - - it('Delete the modlist', async () => { - await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Delete List')).tap() - await element(by.id('confirmBtn')).tap() - await expect(element(by.id('listsEmpty'))).toBeVisible() - }) - - it('Create a new modlist', async () => { - await element(by.id('newModListBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).toBeVisible() - await element(by.id('editNameInput')).typeText('Bad Ppl') - await element(by.id('editDescriptionInput')).typeText('They bad') - await element(by.id('saveBtn')).tap() - await expect(element(by.id('createOrEditListModal'))).not.toBeVisible() - await expect(element(by.id('headerTitle'))).toHaveText('Bad Ppl') - await expect(element(by.id('listDescription'))).toHaveText('They bad') - }) - - it('Adds and removes users on modlists from the list', async () => { - await element(by.id('addUserBtn')).tap() - await expect(element(by.id('listAddUserModal'))).toBeVisible() - await waitFor(element(by.id('user-warn-posts.test-addBtn'))) - .toBeVisible() - .withTimeout(5000) - await element(by.id('user-warn-posts.test-addBtn')).tap() - await element(by.id('doneBtn')).tap() - await expect(element(by.id('listAddUserModal'))).not.toBeVisible() - await element(by.id('listItems-flatlist')).swipe( - 'down', - 'slow', - 1, - 0.5, - 0.5, - ) - await expect(element(by.id('user-warn-posts.test'))).toBeVisible() - await element(by.id('user-warn-posts.test-editBtn')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('user-warn-posts.test-addBtn')).tap() - await element(by.id('doneBtn')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() - }) - - it('Shows the modlist on my profile', async () => { - await element(by.id('bottomBarProfileBtn')).tap() - await element(by.id('profilePager-selector')).swipe('left') - await element(by.id('profilePager-selector-5')).tap() - await element(by.id('list-Bad Ppl')).tap() - }) - - it('Adds and removes users on modlists from the profile', async () => { - await element(by.id('bottomBarSearchBtn')).tap() - await element(by.id('searchTextInput')).typeText('bob') - await element(by.id('searchAutoCompleteResult-bob.test')).tap() - await expect(element(by.id('profileView'))).toBeVisible() - - await element(by.id('profileHeaderDropdownBtn')).tap() - await element(by.text('Add to Lists')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('user-bob.test-addBtn')).tap() - await element(by.id('doneBtn')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() - - await element(by.id('profileHeaderDropdownBtn')).tap() - await element(by.text('Add to Lists')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).toBeVisible() - await element(by.id('user-bob.test-addBtn')).tap() - await element(by.id('doneBtn')).tap() - await expect(element(by.id('userAddRemoveListsModal'))).not.toBeVisible() - }) - - it('Can report a mute list', async () => { - await element(by.id('e2eGotoSettings')).tap() - await element(by.id('signOutBtn')).tap() - await loginAsBob() - await element(by.id('bottomBarSearchBtn')).tap() - await element(by.id('searchTextInput')).typeText('alice') - await element(by.id('searchAutoCompleteResult-alice.test')).tap() - await element(by.id('profilePager-selector')).swipe('left') - await element(by.id('profilePager-selector-3')).tap() - await element(by.id('list-Bad Ppl')).tap() - await element(by.id('headerDropdownBtn')).tap() - await element(by.text('Report List')).tap() - await expect(element(by.id('reportModal'))).toBeVisible() - await expect(element(by.text('Report List'))).toBeVisible() - await element( - by.id('reportReasonRadios-com.atproto.moderation.defs#reasonRude'), - ).tap() - await element(by.id('sendReportBtn')).tap() - await expect(element(by.id('reportModal'))).not.toBeVisible() - }) -}) diff --git a/__e2e__/tests/profile-screen.test.ts b/__e2e__/tests/profile-screen.test.ts deleted file mode 100644 index 7c3207ec83..0000000000 --- a/__e2e__/tests/profile-screen.test.ts +++ /dev/null @@ -1,196 +0,0 @@ -/* eslint-env detox/detox */ - -import {beforeAll, describe, it} from '@jest/globals' -import {expect} from 'detox' - -import {createServer, loginAsAlice, openApp, sleep} from '../util' - -describe('Profile screen', () => { - beforeAll(async () => { - await createServer('?users&posts&feeds') - await openApp({ - permissions: {notifications: 'YES', medialibrary: 'YES', photos: 'YES'}, - }) - }) - - it('Login and navigate to my profile', async () => { - await loginAsAlice() - await element(by.id('bottomBarProfileBtn')).tap() - }) - - it('Can see feeds', async () => { - await element(by.id('profilePager-selector')).swipe('left') - await element(by.id('profilePager-selector-4')).tap() - await expect(element(by.id('feed-alice-favs'))).toBeVisible() - await element(by.id('profilePager-selector')).swipe('right') - await element(by.id('profilePager-selector-0')).tap() - }) - - it('Open and close edit profile modal', async () => { - await element(by.id('profileHeaderEditProfileButton')).tap() - await expect(element(by.id('editProfileModal'))).toBeVisible() - await element(by.id('editProfileCancelBtn')).tap() - await expect(element(by.id('editProfileModal'))).not.toBeVisible() - }) - - it('Edit display name and description via the edit profile modal', async () => { - await element(by.id('profileHeaderEditProfileButton')).tap() - await expect(element(by.id('editProfileModal'))).toBeVisible() - await element(by.id('editProfileDisplayNameInput')).clearText() - await element(by.id('editProfileDisplayNameInput')).typeText('Alicia') - await element(by.id('editProfileDescriptionInput')).clearText() - await element(by.id('editProfileDescriptionInput')).typeText( - 'One cool hacker', - ) - await element(by.id('editProfileSaveBtn')).tap() - await expect(element(by.id('editProfileModal'))).not.toBeVisible() - await expect(element(by.id('profileHeaderDisplayName'))).toHaveText( - 'Alicia', - ) - await expect(element(by.id('profileHeaderDescription'))).toHaveText( - 'One cool hacker', - ) - }) - - it('Remove display name and description via the edit profile modal', async () => { - await element(by.id('profileHeaderEditProfileButton')).tap() - await expect(element(by.id('editProfileModal'))).toBeVisible() - await element(by.id('editProfileDisplayNameInput')).clearText() - await element(by.id('editProfileDescriptionInput')).clearText() - await element(by.id('editProfileSaveBtn')).tap() - await expect(element(by.id('editProfileModal'))).not.toBeVisible() - await expect(element(by.id('profileHeaderDisplayName'))).toHaveText( - 'alice.test', - ) - await expect(element(by.id('profileHeaderDescription'))).not.toExist() - }) - - it('Set avi and banner via the edit profile modal', async () => { - await expect(element(by.id('userBannerFallback'))).toExist() - await expect(element(by.id('userAvatarFallback'))).toExist() - await element(by.id('profileHeaderEditProfileButton')).tap() - await expect(element(by.id('editProfileModal'))).toBeVisible() - await element(by.id('changeBannerBtn')).tap() - await element(by.text('Upload from Library')).tap() - await sleep(3e3) - await element(by.id('changeAvatarBtn')).tap() - await element(by.text('Upload from Library')).tap() - await sleep(3e3) - await element(by.id('editProfileSaveBtn')).tap() - await expect(element(by.id('editProfileModal'))).not.toBeVisible() - await expect(element(by.id('userBannerImage'))).toExist() - await expect(element(by.id('userAvatarImage'))).toExist() - }) - - it('Remove avi and banner via the edit profile modal', async () => { - await expect(element(by.id('userBannerImage'))).toExist() - await expect(element(by.id('userAvatarImage'))).toExist() - await element(by.id('profileHeaderEditProfileButton')).tap() - await expect(element(by.id('editProfileModal'))).toBeVisible() - await element(by.id('changeBannerBtn')).tap() - await element(by.text('Remove Banner')).tap() - await element(by.id('changeAvatarBtn')).tap() - await element(by.text('Remove Avatar')).tap() - await element(by.id('editProfileSaveBtn')).tap() - await expect(element(by.id('editProfileModal'))).not.toBeVisible() - await expect(element(by.id('userBannerFallback'))).toExist() - await expect(element(by.id('userAvatarFallback'))).toExist() - }) - - it('Navigate to another user profile', async () => { - await element(by.id('bottomBarSearchBtn')).tap() - // have to wait for the toast to clear - await waitFor(element(by.id('searchTextInput'))) - .toBeVisible() - .withTimeout(5000) - await element(by.id('searchTextInput')).typeText('bob') - await element(by.id('searchAutoCompleteResult-bob.test')).tap() - await expect(element(by.id('profileView'))).toBeVisible() - }) - - it('Can follow/unfollow another user', async () => { - await element(by.id('followBtn')).tap() - await expect(element(by.id('unfollowBtn'))).toBeVisible() - await element(by.id('unfollowBtn')).tap() - await expect(element(by.id('followBtn'))).toBeVisible() - }) - - it('Can mute/unmute another user', async () => { - await expect(element(by.id('profileHeaderAlert'))).not.toExist() - await element(by.id('profileHeaderDropdownBtn')).tap() - await element(by.text('Mute Account')).tap() - await expect(element(by.id('profileHeaderAlert'))).toBeVisible() - await element(by.id('profileHeaderDropdownBtn')).tap() - await element(by.text('Unmute Account')).tap() - await expect(element(by.id('profileHeaderAlert'))).not.toExist() - }) - - // TODO skipping because the test env PDS isnt setup correctly to handle the report -prf - // it('Can report another user', async () => { - // await element(by.id('profileHeaderDropdownBtn')).tap() - // await element(by.text('Report Account')).tap() - // await expect(element(by.id('reportModal'))).toBeVisible() - // await element( - // by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'), - // ).tap() - // await element(by.id('sendReportBtn')).tap() - // await expect(element(by.id('reportModal'))).not.toBeVisible() - // }) - - it('Can like posts', async () => { - await element(by.id('postsFeed-flatlist')).swipe( - 'down', - 'slow', - 1, - 0.5, - 0.5, - ) - - const posts = by.id('feedItem-by-bob.test') - await expect( - element(by.id('likeCount').withAncestor(posts)).atIndex(0), - ).not.toExist() - await element(by.id('likeBtn').withAncestor(posts)).atIndex(0).tap() - await expect( - element(by.id('likeCount').withAncestor(posts)).atIndex(0), - ).toHaveText('1') - await element(by.id('likeBtn').withAncestor(posts)).atIndex(0).tap() - await expect( - element(by.id('likeCount').withAncestor(posts)).atIndex(0), - ).not.toExist() - }) - - it('Can repost posts', async () => { - const posts = by.id('feedItem-by-bob.test') - await expect( - element(by.id('repostCount').withAncestor(posts)).atIndex(0), - ).not.toExist() - await element(by.id('repostBtn').withAncestor(posts)).atIndex(0).tap() - await expect(element(by.id('repostModal'))).toBeVisible() - await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() - await expect(element(by.id('repostModal'))).not.toBeVisible() - await expect( - element(by.id('repostCount').withAncestor(posts)).atIndex(0), - ).toHaveText('1') - await element(by.id('repostBtn').withAncestor(posts)).atIndex(0).tap() - await expect(element(by.id('repostModal'))).toBeVisible() - await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() - await expect(element(by.id('repostModal'))).not.toBeVisible() - await expect( - element(by.id('repostCount').withAncestor(posts)).atIndex(0), - ).not.toExist() - }) - - // TODO skipping because the test env PDS isnt setup correctly to handle the report -prf - // it('Can report posts', async () => { - // const posts = by.id('feedItem-by-bob.test') - // await element(by.id('postDropdownBtn').withAncestor(posts)).atIndex(0).tap() - // await element(by.text('Report post')).tap() - // await expect(element(by.id('reportModal'))).toBeVisible() - // await element( - // by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'), - // ).tap() - // await element(by.id('sendReportBtn')).tap() - // await expect(element(by.id('reportModal'))).not.toBeVisible() - // }) -}) diff --git a/__e2e__/tests/search-screen.test.ts b/__e2e__/tests/search-screen.test.ts deleted file mode 100644 index 1dbb3cbfaa..0000000000 --- a/__e2e__/tests/search-screen.test.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* eslint-env detox/detox */ - -import {describe, beforeAll, it} from '@jest/globals' -import {expect} from 'detox' -import {openApp, loginAsAlice, createServer} from '../util' - -describe('Search screen', () => { - beforeAll(async () => { - await createServer('?users') - await openApp({ - permissions: {notifications: 'YES', medialibrary: 'YES', photos: 'YES'}, - }) - }) - - it('Login', async () => { - await loginAsAlice() - }) - - it('Navigate to another user profile via autocomplete', async () => { - await element(by.id('bottomBarSearchBtn')).tap() - await element(by.id('searchTextInput')).typeText('bob') - await element(by.id('searchAutoCompleteResult-bob.test')).tap() - await expect(element(by.id('profileView'))).toBeVisible() - }) -}) diff --git a/__e2e__/tests/self-labeling.test.ts b/__e2e__/tests/self-labeling.test.ts deleted file mode 100644 index bba8ed484c..0000000000 --- a/__e2e__/tests/self-labeling.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* eslint-env detox/detox */ - -import {describe, beforeAll, it} from '@jest/globals' -import {expect} from 'detox' -import {openApp, loginAsAlice, createServer, sleep} from '../util' - -describe('Self-labeling', () => { - beforeAll(async () => { - await createServer('?users') - await openApp({ - permissions: {notifications: 'YES', medialibrary: 'YES', photos: 'YES'}, - }) - }) - - it('Login', async () => { - await loginAsAlice() - await element(by.id('homeScreenFeedTabs-Following')).tap() - }) - - it('Post an image with the porn label', async () => { - await element(by.id('composeFAB')).tap() - await element(by.id('composerTextInput')).typeText('Post with an image') - await element(by.id('openGalleryBtn')).tap() - await sleep(3e3) - await element(by.id('labelsBtn')).tap() - await element(by.id('pornLabelBtn')).tap() - await element(by.id('confirmBtn')).tap() - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - const posts = by.id('feedItem-by-alice.test') - await element(by.id('e2eRefreshHome')).tap() - await expect( - element(by.id('contentHider-embed').withAncestor(posts)).atIndex(0), - ).toExist() - }) -}) diff --git a/__e2e__/tests/shell.test.skip.ts b/__e2e__/tests/shell.test.skip.ts deleted file mode 100644 index 69619dd81b..0000000000 --- a/__e2e__/tests/shell.test.skip.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* eslint-env detox/detox */ - -import {openApp, loginAsAlice, createServer} from '../util' - -describe('Shell', () => { - beforeAll(async () => { - await createServer('?users') - await openApp({permissions: {notifications: 'YES'}}) - }) - - it('Login', async () => { - await loginAsAlice() - await element(by.id('homeScreenFeedTabs-Following')).tap() - }) - - it('Can swipe the shelf open', async () => { - await element(by.id('homeScreen')).swipe('right', 'fast', 0.75) - await expect(element(by.id('drawer'))).toBeVisible() - await element(by.id('drawer')).swipe('left', 'fast', 0.75) - await expect(element(by.id('drawer'))).not.toBeVisible() - }) - - it('Can open the shelf by pressing the header avi', async () => { - await element(by.id('viewHeaderDrawerBtn')).tap() - await expect(element(by.id('drawer'))).toBeVisible() - }) - - it('Can navigate using the shelf', async () => { - await element(by.id('menuItemButton-Notifications')).tap() - await expect(element(by.id('drawer'))).not.toBeVisible() - await expect(element(by.id('notificationsScreen'))).toBeVisible() - }) -}) diff --git a/__e2e__/tests/thread-muting.test.ts b/__e2e__/tests/thread-muting.test.ts deleted file mode 100644 index ae62f93dcf..0000000000 --- a/__e2e__/tests/thread-muting.test.ts +++ /dev/null @@ -1,103 +0,0 @@ -/* eslint-env detox/detox */ - -import {describe, beforeAll, it} from '@jest/globals' -import {expect} from 'detox' -import {openApp, loginAsAlice, loginAsBob, createServer} from '../util' - -describe('Thread muting', () => { - beforeAll(async () => { - await createServer('?users&follows') - await openApp({permissions: {notifications: 'YES'}}) - }) - - it('Login, create a thread, and log out', async () => { - await loginAsAlice() - await element(by.id('homeScreenFeedTabs-Following')).tap() - await element(by.id('composeFAB')).tap() - await element(by.id('composerTextInput')).typeText('Test thread') - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - }) - - it('Login, reply to the thread, and log out', async () => { - await loginAsBob() - await element(by.id('homeScreenFeedTabs-Following')).tap() - const alicePosts = by.id('feedItem-by-alice.test') - await element(by.id('replyBtn').withAncestor(alicePosts)).atIndex(0).tap() - await element(by.id('composerTextInput')).typeText('Reply 1') - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - }) - - it('Login, confirm notification exists, mute thread, and log out', async () => { - await loginAsAlice() - await element(by.id('bottomBarNotificationsBtn')).tap() - const bobNotifs = by.id('feedItem-by-bob.test') - await expect( - element(by.id('postText').withAncestor(bobNotifs)).atIndex(0), - ).toHaveText('Reply 1') - await element(by.id('postDropdownBtn').withAncestor(bobNotifs)) - .atIndex(0) - .tap() - await element(by.text('Mute thread')).tap() - // have to wait for the toast to clear - await waitFor(element(by.id('viewHeaderDrawerBtn'))) - .toBeVisible() - .withTimeout(5000) - }) - - it('Login, reply to the thread twice, and log out', async () => { - await loginAsBob() - - await element(by.id('bottomBarProfileBtn')).tap() - await element(by.id('profilePager-selector-1')).tap() - const bobPosts = by.id('feedItem-by-bob.test') - await element(by.id('replyBtn').withAncestor(bobPosts)).atIndex(0).tap() - await element(by.id('composerTextInput')).typeText('Reply 2') - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - - const alicePosts = by.id('feedItem-by-alice.test') - await element(by.id('replyBtn').withAncestor(alicePosts)).atIndex(0).tap() - await element(by.id('composerTextInput')).typeText('Reply 3') - await element(by.id('composerPublishBtn')).tap() - await expect(element(by.id('composeFAB'))).toBeVisible() - - await element(by.id('bottomBarHomeBtn')).tap() - }) - - it('Login, confirm notifications dont exist, unmute the thread, confirm notifications exist', async () => { - await loginAsAlice() - - await element(by.id('bottomBarNotificationsBtn')).tap() - const bobNotifs = by.id('feedItem-by-bob.test') - await expect( - element(by.id('postText').withAncestor(bobNotifs)).atIndex(0), - ).not.toExist() - - await element(by.id('bottomBarHomeBtn')).tap() - const alicePosts = by.id('feedItem-by-alice.test') - await element(by.id('postDropdownBtn').withAncestor(alicePosts)) - .atIndex(0) - .tap() - await element(by.text('Unmute thread')).tap() - - // TODO - // the swipe down to trigger PTR isnt working and I dont want to block on this - // -prf - // await element(by.id('bottomBarNotificationsBtn')).tap() - // await element(by.id('notifsFeed')).swipe('down', 'fast') - // await waitFor(element(by.id('postText').withAncestor(bobNotifs))) - // .toBeVisible() - // .withTimeout(5000) - // await expect( - // element(by.id('postText').withAncestor(bobNotifs)).atIndex(0), - // ).toHaveText('Reply 2') - // await expect( - // element(by.id('postText').withAncestor(bobNotifs)).atIndex(1), - // ).toHaveText('Reply 3') - // await expect( - // element(by.id('postText').withAncestor(bobNotifs)).atIndex(2), - // ).toHaveText('Reply 1') - }) -}) diff --git a/__e2e__/tests/thread-screen.test.ts b/__e2e__/tests/thread-screen.test.ts deleted file mode 100644 index b99da11a67..0000000000 --- a/__e2e__/tests/thread-screen.test.ts +++ /dev/null @@ -1,131 +0,0 @@ -/* eslint-env detox/detox */ - -import {beforeAll, describe, it} from '@jest/globals' -import {expect} from 'detox' - -import {createServer, loginAsAlice, openApp} from '../util' - -describe('Thread screen', () => { - beforeAll(async () => { - await createServer('?users&follows&thread') - await openApp({permissions: {notifications: 'YES'}}) - }) - - it('Login & navigate to thread', async () => { - await loginAsAlice() - await element(by.id('homeScreenFeedTabs-Following')).tap() - await element(by.id('feedItem-by-bob.test')).atIndex(0).tap() - await expect( - element( - by - .id('postThreadItem-by-bob.test') - .withDescendant(by.text('Thread root')), - ), - ).toBeVisible() - await expect( - element( - by - .id('postThreadItem-by-carla.test') - .withDescendant(by.text('Thread reply')), - ), - ).toBeVisible() - }) - - it('Can like the root post', async () => { - const post = by.id('postThreadItem-by-bob.test') - await expect( - element(by.id('likeCount-expanded').withAncestor(post)).atIndex(0), - ).not.toExist() - await element(by.id('likeBtn').withAncestor(post)).atIndex(0).tap() - await expect( - element(by.id('likeCount-expanded').withAncestor(post)).atIndex(0), - ).toHaveText('1 like') - await element(by.id('likeBtn').withAncestor(post)).atIndex(0).tap() - await expect( - element(by.id('likeCount-expanded').withAncestor(post)).atIndex(0), - ).not.toExist() - }) - - it('Can like a reply post', async () => { - const post = by.id('postThreadItem-by-carla.test') - await expect( - element(by.id('likeCount').withAncestor(post)).atIndex(0), - ).not.toExist() - await element(by.id('likeBtn').withAncestor(post)).atIndex(0).tap() - await expect( - element(by.id('likeCount').withAncestor(post)).atIndex(0), - ).toHaveText('1') - await element(by.id('likeBtn').withAncestor(post)).atIndex(0).tap() - await expect( - element(by.id('likeCount').withAncestor(post)).atIndex(0), - ).not.toExist() - }) - - it('Can repost the root post', async () => { - const post = by.id('postThreadItem-by-bob.test') - await expect( - element(by.id('repostCount-expanded').withAncestor(post)).atIndex(0), - ).not.toExist() - await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap() - await expect(element(by.id('repostModal'))).toBeVisible() - await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() - await expect(element(by.id('repostModal'))).not.toBeVisible() - await expect( - element(by.id('repostCount-expanded').withAncestor(post)).atIndex(0), - ).toHaveText('1 repost') - await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap() - await expect(element(by.id('repostModal'))).toBeVisible() - await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() - await expect(element(by.id('repostModal'))).not.toBeVisible() - await expect( - element(by.id('repostCount-expanded').withAncestor(post)).atIndex(0), - ).not.toExist() - }) - - it('Can repost a reply post', async () => { - const post = by.id('postThreadItem-by-carla.test') - await expect( - element(by.id('repostCount').withAncestor(post)).atIndex(0), - ).not.toExist() - await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap() - await expect(element(by.id('repostModal'))).toBeVisible() - await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() - await expect(element(by.id('repostModal'))).not.toBeVisible() - await expect( - element(by.id('repostCount').withAncestor(post)).atIndex(0), - ).toHaveText('1') - await element(by.id('repostBtn').withAncestor(post)).atIndex(0).tap() - await expect(element(by.id('repostModal'))).toBeVisible() - await element(by.id('repostBtn').withAncestor(by.id('repostModal'))).tap() - await expect(element(by.id('repostModal'))).not.toBeVisible() - await expect( - element(by.id('repostCount').withAncestor(post)).atIndex(0), - ).not.toExist() - }) - - // TODO skipping because the test env PDS isnt setup correctly to handle the report -prf - // it('Can report the root post', async () => { - // const post = by.id('postThreadItem-by-bob.test') - // await element(by.id('postDropdownBtn').withAncestor(post)).atIndex(0).tap() - // await element(by.text('Report post')).tap() - // await expect(element(by.id('reportModal'))).toBeVisible() - // await element( - // by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'), - // ).tap() - // await element(by.id('sendReportBtn')).tap() - // await expect(element(by.id('reportModal'))).not.toBeVisible() - // }) - - // TODO skipping because the test env PDS isnt setup correctly to handle the report -prf - // it('Can report a reply post', async () => { - // const post = by.id('postThreadItem-by-carla.test') - // await element(by.id('postDropdownBtn').withAncestor(post)).atIndex(0).tap() - // await element(by.text('Report post')).tap() - // await expect(element(by.id('reportModal'))).toBeVisible() - // await element( - // by.id('reportReasonRadios-com.atproto.moderation.defs#reasonSpam'), - // ).tap() - // await element(by.id('sendReportBtn')).tap() - // await expect(element(by.id('reportModal'))).not.toBeVisible() - // }) -}) diff --git a/__e2e__/util.ts b/__e2e__/util.ts deleted file mode 100644 index 70fbdb6010..0000000000 --- a/__e2e__/util.ts +++ /dev/null @@ -1,141 +0,0 @@ -import {execSync} from 'child_process' -import {resolveConfig} from 'detox/internals' -import http from 'http' - -const platform = device.getPlatform() - -export async function openApp(opts: any) { - opts = opts || {} - const config = await resolveConfig() - - if (device.getPlatform() === 'ios') { - // disable password autofill - execSync( - `plutil -replace restrictedBool.allowPasswordAutoFill.value -bool NO ~/Library/Developer/CoreSimulator/Devices/${device.id}/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/UserSettings.plist`, - ) - execSync( - `plutil -replace restrictedBool.allowPasswordAutoFill.value -bool NO ~/Library/Developer/CoreSimulator/Devices/${device.id}/data/Library/UserConfigurationProfiles/EffectiveUserSettings.plist`, - ) - execSync( - `plutil -replace restrictedBool.allowPasswordAutoFill.value -bool NO ~/Library/Developer/CoreSimulator/Devices/${device.id}/data/Library/UserConfigurationProfiles/PublicInfo/PublicEffectiveUserSettings.plist`, - ) - } - if (config.configurationName.split('.').includes('debug')) { - return await openAppForDebugBuild(platform, opts) - } else { - return await device.launchApp({ - ...opts, - newInstance: true, - }) - } -} - -export async function isVisible(id: string) { - try { - await expect(element(by.id(id))).toBeVisible() - return true - } catch (e) { - return false - } -} - -export async function login( - service: string, - username: string, - password: string, - {takeScreenshots} = {takeScreenshots: false}, -) { - await element(by.id('signInButton')).tap() - if (takeScreenshots) { - await device.takeScreenshot('1- opened sign-in screen') - } - if (await isVisible('chooseAccountForm')) { - await element(by.id('chooseNewAccountBtn')).tap() - } - await element(by.id('selectServiceButton')).tap() - if (takeScreenshots) { - await device.takeScreenshot('2- opened service selector') - } - await element(by.id('customSelectBtn')).tap() - await element(by.id('customServerTextInput')).typeText(service) - await element(by.id('customServerTextInput')).tapReturnKey() - await element(by.id('doneBtn')).tap() - if (takeScreenshots) { - await device.takeScreenshot('3- input custom service') - } - await element(by.id('loginUsernameInput')).typeText(username) - await element(by.id('loginPasswordInput')).typeText(password) - if (takeScreenshots) { - await device.takeScreenshot('4- entered username and password') - } - await element(by.id('loginNextButton')).tap() -} - -export async function loginAsAlice() { - await element(by.id('e2eSignInAlice')).tap() -} - -export async function loginAsBob() { - await element(by.id('e2eSignInBob')).tap() -} - -async function openAppForDebugBuild(platform: string, opts: any) { - const deepLinkUrl = // Local testing with packager - /*process.env.EXPO_USE_UPDATES - ? // Testing latest published EAS update for the test_debug channel - getDeepLinkUrl(getLatestUpdateUrl()) - : */ getDeepLinkUrl(getDevLauncherPackagerUrl(platform)) - - if (platform === 'ios') { - await device.launchApp({ - ...opts, - newInstance: true, - }) - sleep(3000) - await device.openURL({ - url: deepLinkUrl, - }) - } else { - await device.launchApp({ - ...opts, - newInstance: true, - url: deepLinkUrl, - }) - } - - await sleep(3000) -} - -export async function createServer(path = ''): Promise { - return new Promise(function (resolve, reject) { - var req = http.request( - { - method: 'POST', - host: 'localhost', - port: 1986, - path: `/${path}`, - }, - function (res) { - const body: Buffer[] = [] - res.on('data', chunk => body.push(chunk)) - res.on('end', function () { - try { - resolve(Buffer.concat(body).toString()) - } catch (e) { - reject(e) - } - }) - }, - ) - req.on('error', reject) - req.end() - }) -} - -const getDeepLinkUrl = (url: string) => - `expo+bluesky://expo-development-client/?url=${encodeURIComponent(url)}` - -const getDevLauncherPackagerUrl = (platform: string) => - `http://localhost:8081/index.bundle?platform=${platform}&dev=true&minify=false&disableOnboarding=1` - -export const sleep = (t: number) => new Promise(res => setTimeout(res, t)) diff --git a/docs/build.md b/docs/build.md index deab91a5ba..88733d3b09 100644 --- a/docs/build.md +++ b/docs/build.md @@ -16,10 +16,6 @@ - Add `eval "$(rbenv init - zsh)"` to your `~/.zshrc` - From inside the project directory: - `bundler install` (this will install Cocoapods) -- Setup your environment [for e2e testing using detox](https://wix.github.io/Detox/docs/introduction/getting-started): - - `yarn global add detox-cli` - - `brew tap wix/brew` - - `brew install applesimutils` - After initial setup: - Copy `google-services.json.example` to `google-services.json` or provide your own `google-services.json`. (A real firebase project is NOT required) - `npx expo prebuild` -> you will also need to run this anytime `app.json` or native `package.json` deps change @@ -120,10 +116,7 @@ To open the [Developer Menu](https://docs.expo.dev/debugging/tools/#developer-me ### Running E2E Tests -- Make sure you've set your environment following the above -- Make sure Metro and the dev server are running -- Run `yarn e2e` -- Find the artifacts in the `artifact` folder +See [testing.md](./testing.md). ### Polyfills diff --git a/docs/testing.md b/docs/testing.md index e9b9445e04..ae0a424fbd 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -3,13 +3,19 @@ Make sure you've copied `.env.example` to `.env.test` and provided any required values. -### Using Maestro E2E tests +## Using Maestro + 1. Install Maestro by following [these instructions](https://maestro.mobile.dev/getting-started/installing-maestro). This will help us run the E2E tests. -2. You can write Maestro tests in `__e2e__/maestro` directory by creating a new `.yaml` file or by modifying an existing one. -3. You can also use [Maestro Studio](https://maestro.mobile.dev/getting-started/maestro-studio) which automatically generates commands by recording your actions on the app. Therefore, you can create realistic tests without having to manually write any code. Use the `maestro studio` command to start recording your actions. +2. You can write Maestro tests in `/.maestro/flows/` directory by creating a new `.yml` file or by modifying an existing one. +3. You can also use [Maestro Studio](https://maestro.mobile.dev/getting-started/maestro-studio) which automatically generates commands by recording your actions on the app. Therefore, you can create realistic tests without having to manually write any code. Use the `maestro studio` command to start recording your actions. +### Running Maestro tests -### Using Flashlight for Performance Testing +- In one tab, run `yarn e2e:mock-server` +- In a second tab, run `yarn e2e:metro` +- In a third tab, run `yarn e2e:run` + +## Using Flashlight for Performance Testing 1. Make sure Maestro is installed (optional: only for automated testing) by following the instructions above 2. Install Flashlight by following [these instructions](https://docs.flashlight.dev/) 3. The simplest way to get started is by running `yarn perf:measure` which will run a live preview of the performance test results. You can [see a demo here](https://github.com/bamlab/flashlight/assets/4534323/4038a342-f145-4c3b-8cde-17949bf52612) diff --git a/jest/test-pds.ts b/jest/test-pds.ts index 1c52d944c6..2fe623ca98 100644 --- a/jest/test-pds.ts +++ b/jest/test-pds.ts @@ -114,8 +114,7 @@ export async function createServer( pdsUrl, mocker: new Mocker(testNet, pdsUrl, pic), async close() { - await testNet.pds.server.destroy() - await testNet.plc.server.destroy() + await testNet.close() }, } } diff --git a/package.json b/package.json index 4ed2b933fe..13ffc35c83 100644 --- a/package.json +++ b/package.json @@ -31,11 +31,10 @@ "lint": "eslint --cache --ext .js,.jsx,.ts,.tsx src", "typecheck": "tsc --project ./tsconfig.check.json", "e2e:mock-server": "./jest/dev-infra/with-test-redis-and-db.sh ts-node --project tsconfig.e2e.json __e2e__/mock-server.ts", - "e2e:metro": "NODE_ENV=test RN_SRC_EXT=e2e.ts,e2e.tsx expo run:ios", - "e2e:build": "NODE_ENV=test detox build -c ios.sim.debug", - "e2e:run": "NODE_ENV=test detox test --configuration ios.sim.debug --take-screenshots all", + "e2e:metro": "EXPO_PUBLIC_ENV=e2e NODE_ENV=test RN_SRC_EXT=e2e.ts,e2e.tsx expo run:ios", + "e2e:run": "maestro test __e2e__", "perf:test": "NODE_ENV=test maestro test", - "perf:test:run": "NODE_ENV=test maestro test __e2e__/maestro/scroll.yaml", + "perf:test:run": "NODE_ENV=test maestro test __e2e__/perf-test.yml", "perf:test:measure": "NODE_ENV=test flashlight test --bundleId xyz.blueskyweb.app --testCommand \"yarn perf:test\" --duration 150000 --resultsFilePath .perf/results.json", "perf:test:results": "NODE_ENV=test flashlight report .perf/results.json", "perf:measure": "NODE_ENV=test flashlight measure", @@ -239,10 +238,8 @@ "babel-plugin-module-resolver": "^5.0.0", "babel-plugin-react-native-web": "^0.18.12", "babel-preset-expo": "^10.0.0", - "detox": "^20.14.8", "eslint": "^8.19.0", "eslint-plugin-bsky-internal": "link:./eslint", - "eslint-plugin-detox": "^1.0.0", "eslint-plugin-ft-flow": "^2.0.3", "eslint-plugin-lingui": "^0.2.0", "eslint-plugin-react": "^7.33.2", diff --git a/src/view/com/testing/TestCtrls.e2e.tsx b/src/view/com/testing/TestCtrls.e2e.tsx index 1eb99c4f5e..1c82a712ed 100644 --- a/src/view/com/testing/TestCtrls.e2e.tsx +++ b/src/view/com/testing/TestCtrls.e2e.tsx @@ -1,11 +1,14 @@ import React from 'react' -import {Pressable, View} from 'react-native' -import {navigate} from '../../../Navigation' -import {useModalControls} from '#/state/modals' +import {LogBox, Pressable, View} from 'react-native' import {useQueryClient} from '@tanstack/react-query' -import {useSessionApi} from '#/state/session' + +import {useModalControls} from '#/state/modals' import {useSetFeedViewPreferencesMutation} from '#/state/queries/preferences' +import {useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import {navigate} from '../../../Navigation' + +LogBox.ignoreAllLogs() /** * This utility component is only included in the test simulator diff --git a/src/view/com/util/Toast.e2e.tsx b/src/view/com/util/Toast.e2e.tsx new file mode 100644 index 0000000000..c5582ff0a8 --- /dev/null +++ b/src/view/com/util/Toast.e2e.tsx @@ -0,0 +1 @@ +export function show() {} diff --git a/yarn.lock b/yarn.lock index 1e53b30624..f29994bd25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10719,47 +10719,6 @@ detect-port-alt@^1.1.6: address "^1.0.1" debug "^2.6.0" -detox@^20.14.8: - version "20.14.8" - resolved "https://registry.yarnpkg.com/detox/-/detox-20.14.8.tgz#0a550cf677fc98a68d56d162e1c5caad317de9ca" - integrity sha512-3E/0/7Cb7x+wcBsZpCxD8FykZUsFnfVT00d6PWH940boc0Mo1Kzabh+I151X/On4qZMqVdUzgwmap/z8g/kmaw== - dependencies: - ajv "^8.6.3" - bunyan "^1.8.12" - bunyan-debug-stream "^3.1.0" - caf "^15.0.1" - chalk "^4.0.0" - child-process-promise "^2.2.0" - execa "^5.1.1" - find-up "^5.0.0" - fs-extra "^11.0.0" - funpermaproxy "^1.1.0" - glob "^8.0.3" - ini "^1.3.4" - jest-environment-emit "^1.0.5" - json-cycle "^1.3.0" - lodash "^4.17.11" - multi-sort-stream "^1.0.3" - multipipe "^4.0.0" - node-ipc "9.2.1" - proper-lockfile "^3.0.2" - resolve-from "^5.0.0" - sanitize-filename "^1.6.1" - semver "^7.0.0" - serialize-error "^8.0.1" - shell-quote "^1.7.2" - signal-exit "^3.0.3" - stream-json "^1.7.4" - strip-ansi "^6.0.1" - telnet-client "1.2.8" - tempfile "^2.0.0" - trace-event-lib "^1.3.1" - which "^1.3.1" - ws "^7.0.0" - yargs "^17.0.0" - yargs-parser "^21.0.0" - yargs-unparser "^2.0.0" - didyoumean@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" @@ -11393,13 +11352,6 @@ eslint-module-utils@^2.8.0: version "0.0.0" uid "" -eslint-plugin-detox@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-detox/-/eslint-plugin-detox-1.0.0.tgz#2d9c0130e8ebc4ced56efb6eeaf0d0f5c163398d" - integrity sha512-Dd+Cwyap5IO9DBKXOKrQTE1RQk9hvSSi+qsS1cMVPZY37mojz2PvriEOfGhKj5XN1G14lJ8TArf+6Y+Np2ZsoQ== - dependencies: - requireindex "~1.1.0" - eslint-plugin-eslint-comments@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz#9e1cd7b4413526abb313933071d7aba05ca12ffa" From e02cae2acdc9f7c22a14aefeacbcd0ce4472b1a0 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 13 May 2024 08:49:54 -0700 Subject: [PATCH 032/277] Fix overflowing text on web and iOS in `PostMeta` (#3982) * `flexShrink` on iOS and web `flexShrink` on iOS and web `flexShrink` on iOS and web actually, `flexShrink` use `flex` * adjust web * `expect-error` `onMouseUp` * ignore ref type check --- src/components/ProfileHoverCard/index.web.tsx | 10 +++++----- src/view/com/util/PostMeta.tsx | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/ProfileHoverCard/index.web.tsx b/src/components/ProfileHoverCard/index.web.tsx index c6125e2e57..09a4b397bb 100644 --- a/src/components/ProfileHoverCard/index.web.tsx +++ b/src/components/ProfileHoverCard/index.web.tsx @@ -285,14 +285,14 @@ export function ProfileHoverCardInner(props: ProfileHoverCardProps) { } return ( -
+ style={{flexShrink: 1}}> {props.children} {isVisible && ( @@ -307,7 +307,7 @@ export function ProfileHoverCardInner(props: ProfileHoverCardProps) {
)} - + ) } diff --git a/src/view/com/util/PostMeta.tsx b/src/view/com/util/PostMeta.tsx index c0e4d80991..b6fe6d374d 100644 --- a/src/view/com/util/PostMeta.tsx +++ b/src/view/com/util/PostMeta.tsx @@ -142,6 +142,6 @@ const styles = StyleSheet.create({ }, maxWidth: { flex: isAndroid ? 1 : undefined, - maxWidth: !isAndroid ? '80%' : undefined, + flexShrink: isAndroid ? undefined : 1, }, }) From 63b38b413d7a9e243646d11219b0959b3e59cc79 Mon Sep 17 00:00:00 2001 From: Matthieu Sieben Date: Mon, 13 May 2024 18:19:21 +0200 Subject: [PATCH 033/277] fix wording in french onboarding (#3987) --- src/locale/locales/fr/messages.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 7cc0f489b0..8bbb80d8a3 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -3260,7 +3260,7 @@ msgstr "Oups !" #: src/screens/Onboarding/StepFinished.tsx:121 msgid "Open" -msgstr "Ouvrir" +msgstr "Ouvert" #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 From d3406c89cf0c5b46197a87298dcd4e1326fef643 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 13 May 2024 09:19:35 -0700 Subject: [PATCH 034/277] Move request for notifications permissions to `HomeReadyScreen` (#3977) * cleanup the current logic * add statsig logs * implement requests for permissions where needed * oops * let `addPushTokenListener` handle the token registration * place new log event type with the other `notifications` type * place registration next to handler * more organization * only call `gate()` if permission is not yet granted * be more specific to prevent gate pollution * nit * make `token` non-optional in `registerToken` * remove `prevDid`, move `registerPushToken` into `useEffect` * keep it outside actually * nit --- src/lib/notifications/notifications.ts | 108 +++++++++++------- src/lib/statsig/events.ts | 3 + src/lib/statsig/gates.ts | 1 + .../Onboarding/StepInterests/index.tsx | 12 +- src/screens/Onboarding/StepProfile/index.tsx | 14 ++- src/view/screens/Home.tsx | 11 +- src/view/shell/index.tsx | 23 +--- 7 files changed, 105 insertions(+), 67 deletions(-) diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index 38c18bf3fe..66cedeaa62 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -1,27 +1,22 @@ +import React from 'react' import * as Notifications from 'expo-notifications' import {BskyAgent} from '@atproto/api' import {logger} from '#/logger' -import {SessionAccount} from '#/state/session' -import {devicePlatform} from 'platform/detection' +import {SessionAccount, useAgent, useSession} from '#/state/session' +import {logEvent, useGate} from 'lib/statsig/statsig' +import {devicePlatform, isNative} from 'platform/detection' const SERVICE_DID = (serviceUrl?: string) => serviceUrl?.includes('staging') ? 'did:web:api.staging.bsky.dev' : 'did:web:api.bsky.app' -export async function requestPermissionsAndRegisterToken( +async function registerPushToken( getAgent: () => BskyAgent, account: SessionAccount, + token: Notifications.DevicePushToken, ) { - // request notifications permission once the user has logged in - const perms = await Notifications.getPermissionsAsync() - if (!perms.granted) { - await Notifications.requestPermissionsAsync() - } - - // register the push token with the server - const token = await Notifications.getDevicePushTokenAsync() try { await getAgent().api.app.bsky.notification.registerPush({ serviceDid: SERVICE_DID(account.service), @@ -42,38 +37,63 @@ export async function requestPermissionsAndRegisterToken( } } -export function registerTokenChangeHandler( - getAgent: () => BskyAgent, - account: SessionAccount, -): () => void { - // listens for new changes to the push token - // In rare situations, a push token may be changed by the push notification service while the app is running. When a token is rolled, the old one becomes invalid and sending notifications to it will fail. A push token listener will let you handle this situation gracefully by registering the new token with your backend right away. - const sub = Notifications.addPushTokenListener(async newToken => { - logger.debug( - 'Notifications: Push token changed', - {tokenType: newToken.data, token: newToken.type}, - logger.DebugContext.notifications, - ) - try { - await getAgent().api.app.bsky.notification.registerPush({ - serviceDid: SERVICE_DID(account.service), - platform: devicePlatform, - token: newToken.data, - appId: 'xyz.blueskyweb.app', - }) - logger.debug( - 'Notifications: Sent push token (event)', - { - tokenType: newToken.type, - token: newToken.data, - }, - logger.DebugContext.notifications, - ) - } catch (error) { - logger.error('Notifications: Failed to set push token', {message: error}) +export function useNotificationsRegistration() { + const [currentPermissions] = Notifications.usePermissions() + const {getAgent} = useAgent() + const {currentAccount} = useSession() + + React.useEffect(() => { + if (!currentAccount || !currentPermissions?.granted) { + return } - }) - return () => { - sub.remove() - } + + // Whenever we all `getDevicePushTokenAsync()`, a change event will be fired below + Notifications.getDevicePushTokenAsync() + + // According to the Expo docs, there is a chance that the token will change while the app is open in some rare + // cases. This will fire `registerPushToken` whenever that happens. + const subscription = Notifications.addPushTokenListener(async newToken => { + registerPushToken(getAgent, currentAccount, newToken) + }) + + return () => { + subscription.remove() + } + }, [currentAccount, currentPermissions?.granted, getAgent]) +} + +export function useRequestNotificationsPermission() { + const gate = useGate() + const [currentPermissions] = Notifications.usePermissions() + + return React.useCallback( + async (context: 'StartOnboarding' | 'AfterOnboarding') => { + if ( + !isNative || + currentPermissions?.status === 'granted' || + (currentPermissions?.status === 'denied' && + !currentPermissions?.canAskAgain) + ) { + return + } + if ( + context === 'StartOnboarding' && + gate('request_notifications_permission_after_onboarding') + ) { + return + } + if ( + context === 'AfterOnboarding' && + !gate('request_notifications_permission_after_onboarding') + ) { + return + } + + const res = await Notifications.requestPermissionsAsync() + logEvent('notifications:request', { + status: res.status, + }) + }, + [currentPermissions?.canAskAgain, currentPermissions?.status, gate], + ) } diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index 3355377fe3..d73d21a1a2 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -16,6 +16,9 @@ export type LogEvents = { logContext: 'SwitchAccount' | 'Settings' | 'Deactivated' } 'notifications:openApp': {} + 'notifications:request': { + status: 'granted' | 'denied' | 'undetermined' + } 'state:background': { secondsActive: number } diff --git a/src/lib/statsig/gates.ts b/src/lib/statsig/gates.ts index a2dbb49502..315706ad0c 100644 --- a/src/lib/statsig/gates.ts +++ b/src/lib/statsig/gates.ts @@ -5,6 +5,7 @@ export type Gate = | 'disable_poll_on_discover_v2' | 'dms' | 'reduced_onboarding_and_home_algo' + | 'request_notifications_permission_after_onboarding' | 'show_follow_back_label_v2' | 'start_session_with_following_v2' | 'test_gate_1' diff --git a/src/screens/Onboarding/StepInterests/index.tsx b/src/screens/Onboarding/StepInterests/index.tsx index d6678f4b0c..2711f6779c 100644 --- a/src/screens/Onboarding/StepInterests/index.tsx +++ b/src/screens/Onboarding/StepInterests/index.tsx @@ -5,11 +5,12 @@ import {useLingui} from '@lingui/react' import {useQuery} from '@tanstack/react-query' import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' +import {logEvent, useGate} from '#/lib/statsig/statsig' import {capitalize} from '#/lib/strings/capitalize' import {logger} from '#/logger' import {useAgent} from '#/state/session' import {useOnboardingDispatch} from '#/state/shell' +import {useRequestNotificationsPermission} from 'lib/notifications/notifications' import { DescriptionText, OnboardingControls, @@ -33,6 +34,9 @@ export function StepInterests() { const t = useTheme() const {gtMobile} = useBreakpoints() const {track} = useAnalytics() + const gate = useGate() + const requestNotificationsPermission = useRequestNotificationsPermission() + const {state, dispatch, interestsDisplayNames} = React.useContext(Context) const [saving, setSaving] = React.useState(false) const [interests, setInterests] = React.useState( @@ -129,6 +133,12 @@ export function StepInterests() { track('OnboardingV2:StepInterests:Start') }, [track]) + React.useEffect(() => { + if (!gate('reduced_onboarding_and_home_algo')) { + requestNotificationsPermission('StartOnboarding') + } + }, [gate, requestNotificationsPermission]) + const title = isError ? ( Oh no! Something went wrong. ) : ( diff --git a/src/screens/Onboarding/StepProfile/index.tsx b/src/screens/Onboarding/StepProfile/index.tsx index bf47bbc95b..d480a32af2 100644 --- a/src/screens/Onboarding/StepProfile/index.tsx +++ b/src/screens/Onboarding/StepProfile/index.tsx @@ -10,11 +10,12 @@ import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' +import {logEvent, useGate} from '#/lib/statsig/statsig' import {usePhotoLibraryPermission} from 'lib/hooks/usePermissions' import {compressIfNeeded} from 'lib/media/manip' import {openCropper} from 'lib/media/picker' import {getDataUriSize} from 'lib/media/util' +import {useRequestNotificationsPermission} from 'lib/notifications/notifications' import {isNative, isWeb} from 'platform/detection' import { DescriptionText, @@ -69,6 +70,9 @@ export function StepProfile() { const {gtMobile} = useBreakpoints() const {track} = useAnalytics() const {requestPhotoAccessIfNeeded} = usePhotoLibraryPermission() + const gate = useGate() + const requestNotificationsPermission = useRequestNotificationsPermission() + const creatorControl = Dialog.useDialogControl() const [error, setError] = React.useState('') @@ -86,6 +90,14 @@ export function StepProfile() { track('OnboardingV2:StepProfile:Start') }, [track]) + React.useEffect(() => { + // We have an experiment running for redueced onboarding, where this screen shows up as the first in onboarding. + // We only want to request permissions when that gate is actually active to prevent pollution + if (gate('reduced_onboarding_and_home_algo')) { + requestNotificationsPermission('StartOnboarding') + } + }, [gate, requestNotificationsPermission]) + const openPicker = React.useCallback( async (opts?: ImagePickerOptions) => { const response = await launchImageLibraryAsync({ diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index bd17e5fe48..d2d31ce6a6 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -20,6 +20,7 @@ import { } from '#/state/shell' import {useSelectedFeed, useSetSelectedFeed} from '#/state/shell/selected-feed' import {useOTAUpdates} from 'lib/hooks/useOTAUpdates' +import {useRequestNotificationsPermission} from 'lib/notifications/notifications' import {HomeTabNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {FeedPage} from 'view/com/feeds/FeedPage' import {Pager, PagerRef, RenderTabBarFnProps} from 'view/com/pager/Pager' @@ -58,7 +59,9 @@ function HomeScreenReady({ preferences: UsePreferencesQueryResponse pinnedFeedInfos: SavedFeedSourceInfo[] }) { - useOTAUpdates() + const gate = useGate() + const requestNotificationsPermission = useRequestNotificationsPermission() + const allFeeds = React.useMemo( () => pinnedFeedInfos.map(f => f.feedDescriptor), [pinnedFeedInfos], @@ -70,6 +73,11 @@ function HomeScreenReady({ const selectedFeed = allFeeds[selectedIndex] useSetTitle(pinnedFeedInfos[selectedIndex]?.displayName) + useOTAUpdates() + + React.useEffect(() => { + requestNotificationsPermission('AfterOnboarding') + }, [requestNotificationsPermission]) const pagerRef = React.useRef(null) const lastPagerReportedIndexRef = React.useRef(selectedIndex) @@ -109,7 +117,6 @@ function HomeScreenReady({ }), ) - const gate = useGate() const mode = useMinimalShellMode() const {isMobile} = useWebMediaQueries() useFocusEffect( diff --git a/src/view/shell/index.tsx b/src/view/shell/index.tsx index 425c1b3f80..7d080e57b1 100644 --- a/src/view/shell/index.tsx +++ b/src/view/shell/index.tsx @@ -13,7 +13,7 @@ import * as NavigationBar from 'expo-navigation-bar' import {StatusBar} from 'expo-status-bar' import {useNavigationState} from '@react-navigation/native' -import {useAgent, useSession} from '#/state/session' +import {useSession} from '#/state/session' import { useIsDrawerOpen, useIsDrawerSwipeDisabled, @@ -22,7 +22,7 @@ import { import {useCloseAnyActiveElement} from '#/state/util' import {useNotificationsHandler} from 'lib/hooks/useNotificationHandler' import {usePalette} from 'lib/hooks/usePalette' -import * as notifications from 'lib/notifications/notifications' +import {useNotificationsRegistration} from 'lib/notifications/notifications' import {isStateAtTabRoot} from 'lib/routes/helpers' import {useTheme} from 'lib/ThemeContext' import {isAndroid} from 'platform/detection' @@ -57,13 +57,11 @@ function ShellInner() { [setIsDrawerOpen], ) const canGoBack = useNavigationState(state => !isStateAtTabRoot(state)) - const {hasSession, currentAccount} = useSession() - const {getAgent} = useAgent() + const {hasSession} = useSession() const closeAnyActiveElement = useCloseAnyActiveElement() const {importantForAccessibility} = useDialogStateContext() - // start undefined - const currentAccountDid = React.useRef(undefined) + useNotificationsRegistration() useNotificationsHandler() React.useEffect(() => { @@ -78,19 +76,6 @@ function ShellInner() { } }, [closeAnyActiveElement]) - React.useEffect(() => { - // only runs when did changes - if (currentAccount && currentAccountDid.current !== currentAccount.did) { - currentAccountDid.current = currentAccount.did - notifications.requestPermissionsAndRegisterToken(getAgent, currentAccount) - const unsub = notifications.registerTokenChangeHandler( - getAgent, - currentAccount, - ) - return unsub - } - }, [currentAccount, getAgent]) - return ( <> Date: Mon, 13 May 2024 11:11:35 -0700 Subject: [PATCH 035/277] actually register token on permissions change (#3990) * actually register token on permissions change * actually register token on permissions change * get updated permissions every time * remove all usages of `usePermissions` * skip perms check on granted result from request --- src/lib/notifications/notifications.ts | 31 +++++++++++++++++--------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index 66cedeaa62..18578c0c42 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -37,18 +37,24 @@ async function registerPushToken( } } +async function getPushToken(skipPermissionCheck = false) { + const granted = + skipPermissionCheck || (await Notifications.getPermissionsAsync()).granted + if (granted) { + Notifications.getDevicePushTokenAsync() + } +} + export function useNotificationsRegistration() { - const [currentPermissions] = Notifications.usePermissions() const {getAgent} = useAgent() const {currentAccount} = useSession() React.useEffect(() => { - if (!currentAccount || !currentPermissions?.granted) { + if (!currentAccount) { return } - // Whenever we all `getDevicePushTokenAsync()`, a change event will be fired below - Notifications.getDevicePushTokenAsync() + getPushToken() // According to the Expo docs, there is a chance that the token will change while the app is open in some rare // cases. This will fire `registerPushToken` whenever that happens. @@ -59,20 +65,20 @@ export function useNotificationsRegistration() { return () => { subscription.remove() } - }, [currentAccount, currentPermissions?.granted, getAgent]) + }, [currentAccount, getAgent]) } export function useRequestNotificationsPermission() { const gate = useGate() - const [currentPermissions] = Notifications.usePermissions() return React.useCallback( async (context: 'StartOnboarding' | 'AfterOnboarding') => { + const permissions = await Notifications.getPermissionsAsync() + if ( !isNative || - currentPermissions?.status === 'granted' || - (currentPermissions?.status === 'denied' && - !currentPermissions?.canAskAgain) + permissions?.status === 'granted' || + (permissions?.status === 'denied' && !permissions?.canAskAgain) ) { return } @@ -93,7 +99,12 @@ export function useRequestNotificationsPermission() { logEvent('notifications:request', { status: res.status, }) + + if (res.granted) { + // This will fire a pushTokenEvent, which will handle registration of the token + getPushToken(true) + } }, - [currentPermissions?.canAskAgain, currentPermissions?.status, gate], + [gate], ) } From 10919319bf6fba26e12d14025dac5f08f7b95939 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 13 May 2024 13:15:38 -0500 Subject: [PATCH 036/277] Remove profile step from old onboarding (#3989) --- src/screens/Onboarding/StepFinished.tsx | 2 ++ src/screens/Onboarding/state.ts | 21 +++------------------ 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index 51793777ee..0acb0093a3 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -120,6 +120,8 @@ export function StepFinished() { })(), (async () => { + if (!gate('reduced_onboarding_and_home_algo')) return + const {imageUri, imageMime} = profileStepResults if (imageUri && imageMime) { const blobPromise = uploadBlob(getAgent(), imageUri, imageMime) diff --git a/src/screens/Onboarding/state.ts b/src/screens/Onboarding/state.ts index 3031dfbf48..c08603587b 100644 --- a/src/screens/Onboarding/state.ts +++ b/src/screens/Onboarding/state.ts @@ -89,7 +89,7 @@ export type ApiResponseMap = { export const initialState: OnboardingState = { hasPrev: false, - totalSteps: 8, + totalSteps: 7, activeStep: 'interests', activeStepIndex: 1, @@ -178,11 +178,8 @@ export function reducer( next.activeStep = 'moderation' next.activeStepIndex = 6 } else if (s.activeStep === 'moderation') { - next.activeStep = 'profile' - next.activeStepIndex = 7 - } else if (s.activeStep === 'profile') { next.activeStep = 'finished' - next.activeStepIndex = 8 + next.activeStepIndex = 7 } break } @@ -202,12 +199,9 @@ export function reducer( } else if (s.activeStep === 'moderation') { next.activeStep = 'topicalFeeds' next.activeStepIndex = 5 - } else if (s.activeStep === 'profile') { + } else if (s.activeStep === 'finished') { next.activeStep = 'moderation' next.activeStepIndex = 6 - } else if (s.activeStep === 'finished') { - next.activeStep = 'profile' - next.activeStepIndex = 7 } break } @@ -242,14 +236,6 @@ export function reducer( } break } - case 'setProfileStepResults': { - next.profileStepResults = { - image: a.image, - imageUri: a.imageUri, - imageMime: a.imageMime, - } - break - } } const state = { @@ -267,7 +253,6 @@ export function reducer( suggestedAccountsStepResults: state.suggestedAccountsStepResults, algoFeedsStepResults: state.algoFeedsStepResults, topicalFeedsStepResults: state.topicalFeedsStepResults, - profileStepResults: state.profileStepResults, }) if (s.activeStep !== state.activeStep) { From f0cd8ab6f46f45c79de5aaf6eb7def782dc99836 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 13 May 2024 14:44:21 -0500 Subject: [PATCH 037/277] Swap in base following (#3991) --- src/state/queries/post-feed.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index e670e9da4a..0d54d9ee0d 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -14,7 +14,6 @@ import { useInfiniteQuery, } from '@tanstack/react-query' -import {HomeFeedAPI} from '#/lib/api/feed/home' import {aggregateUserInterests} from '#/lib/api/feed/utils' import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {logger} from '#/logger' @@ -399,7 +398,7 @@ function createApi({ userInterests, }) } else { - return new HomeFeedAPI({getAgent, userInterests}) + return new FollowingFeedAPI({getAgent}) } } else if (feedDesc.startsWith('author')) { const [_, actor, filter] = feedDesc.split('|') From 27bb73c701d812b6ce85d230cd1433d8f6d51528 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 13 May 2024 14:20:27 -0700 Subject: [PATCH 038/277] New onboarding tests (#3996) * Add onboarding test * Add onboarding avatar-creator test * Update profile screen edit test --- __e2e__/flows/onboarding-avatar-creator.yml | 32 ++ __e2e__/flows/onboarding.yml | 28 ++ __e2e__/flows/profile-screen-edit.yml | 6 + src/lib/media/picker.e2e.tsx | 25 +- src/view/com/testing/TestCtrls.e2e.tsx | 16 +- yarn.lock | 325 +------------------- 6 files changed, 104 insertions(+), 328 deletions(-) create mode 100644 __e2e__/flows/onboarding-avatar-creator.yml create mode 100644 __e2e__/flows/onboarding.yml diff --git a/__e2e__/flows/onboarding-avatar-creator.yml b/__e2e__/flows/onboarding-avatar-creator.yml new file mode 100644 index 0000000000..3a20053ba5 --- /dev/null +++ b/__e2e__/flows/onboarding-avatar-creator.yml @@ -0,0 +1,32 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" +- tapOn: + id: "e2eStartOnboarding" +- tapOn: "Open avatar creator" +- tapOn: "Select the zap emoji as your avatar" +- tapOn: + label: "Tap on yellow" + point: "23%,79%" +- tapOn: "Done" +- waitForAnimationToEnd +- tapOn: "Select an avatar" +- tapOn: "Select the atom emoji as your avatar" +- tapOn: "Done" +- waitForAnimationToEnd +- tapOn: "Continue to next step" +- assertVisible: "What are your interests?" +- tapOn: + label: "Tap on continue" + point: "50%,92%" +- assertVisible: "You're ready to go!" +- tapOn: + label: "Tap on Lets go" + point: "50%,92%" \ No newline at end of file diff --git a/__e2e__/flows/onboarding.yml b/__e2e__/flows/onboarding.yml new file mode 100644 index 0000000000..68d9897885 --- /dev/null +++ b/__e2e__/flows/onboarding.yml @@ -0,0 +1,28 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" +- tapOn: + id: "e2eStartOnboarding" +- tapOn: "Select an avatar" +- waitForAnimationToEnd +- tapOn: + point: "16%,22%" +- waitForAnimationToEnd +- tapOn: "Choose" +- waitForAnimationToEnd +- tapOn: "Continue to next step" +- assertVisible: "What are your interests?" +- tapOn: + label: "Tap on continue" + point: "50%,92%" +- assertVisible: "You're ready to go!" +- tapOn: + label: "Tap on Lets go" + point: "50%,92%" \ No newline at end of file diff --git a/__e2e__/flows/profile-screen-edit.yml b/__e2e__/flows/profile-screen-edit.yml index 602cc66887..640f53882b 100644 --- a/__e2e__/flows/profile-screen-edit.yml +++ b/__e2e__/flows/profile-screen-edit.yml @@ -90,9 +90,15 @@ appId: xyz.blueskyweb.app - tapOn: id: "changeBannerBtn" - tapOn: "Upload from Library" +- waitForAnimationToEnd +- tapOn: "Choose" +- waitForAnimationToEnd - tapOn: id: "changeAvatarBtn" - tapOn: "Upload from Library" +- waitForAnimationToEnd +- tapOn: "Choose" +- waitForAnimationToEnd - tapOn: id: "editProfileSaveBtn" - assertNotVisible: diff --git a/src/lib/media/picker.e2e.tsx b/src/lib/media/picker.e2e.tsx index 31702ab227..e6b46ba774 100644 --- a/src/lib/media/picker.e2e.tsx +++ b/src/lib/media/picker.e2e.tsx @@ -1,7 +1,11 @@ -import {Image as RNImage} from 'react-native-image-crop-picker' import RNFS from 'react-native-fs' -import {CropperOptions} from './types' +import { + Image as RNImage, + openCropper as openCropperFn, +} from 'react-native-image-crop-picker' + import {compressIfNeeded} from './manip' +import {CropperOptions} from './types' async function getFile() { let files = await RNFS.readDir( @@ -29,12 +33,17 @@ export async function openCamera(): Promise { return await getFile() } -export async function openCropper(opts: CropperOptions): Promise { +export async function openCropper(opts: CropperOptions) { + const item = await openCropperFn({ + ...opts, + forceJpg: true, // ios only + }) + return { - path: opts.path, - mime: 'image/jpeg', - size: 123, - width: 4288, - height: 2848, + path: item.path, + mime: item.mime, + size: item.size, + width: item.width, + height: item.height, } } diff --git a/src/view/com/testing/TestCtrls.e2e.tsx b/src/view/com/testing/TestCtrls.e2e.tsx index 1c82a712ed..135b7dee61 100644 --- a/src/view/com/testing/TestCtrls.e2e.tsx +++ b/src/view/com/testing/TestCtrls.e2e.tsx @@ -3,9 +3,9 @@ import {LogBox, Pressable, View} from 'react-native' import {useQueryClient} from '@tanstack/react-query' import {useModalControls} from '#/state/modals' -import {useSetFeedViewPreferencesMutation} from '#/state/queries/preferences' import {useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' +import {useOnboardingDispatch} from '#/state/shell/onboarding' import {navigate} from '../../../Navigation' LogBox.ignoreAllLogs() @@ -22,7 +22,7 @@ export function TestCtrls() { const queryClient = useQueryClient() const {logout, login} = useSessionApi() const {openModal} = useModalControls() - const {mutate: setFeedViewPref} = useSetFeedViewPreferencesMutation() + const onboardingDispatch = useOnboardingDispatch() const {setShowLoggedOut} = useLoggedOutViewControls() const onPressSignInAlice = async () => { await login( @@ -88,12 +88,6 @@ export function TestCtrls() { accessibilityRole="button" style={BTN} /> - setFeedViewPref({lab_mergeFeedEnabled: true})} - accessibilityRole="button" - style={BTN} - /> queryClient.invalidateQueries({queryKey: ['post-feed']})} @@ -112,6 +106,12 @@ export function TestCtrls() { accessibilityRole="button" style={BTN} /> + onboardingDispatch({type: 'start'})} + accessibilityRole="button" + style={BTN} + /> ) } diff --git a/yarn.lock b/yarn.lock index f29994bd25..5029f12599 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3523,11 +3523,6 @@ resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== -"@flatten-js/interval-tree@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@flatten-js/interval-tree/-/interval-tree-1.1.2.tgz#fcc891da48bc230392884be01c26fe8c625702e8" - integrity sha512-OwLoV9E/XM6b7bes2rSFnGNjyRy7vcoIHFTnmBR2WAaZTf0Fe4EX4GdA65vU1KgFAasti7iRSg2dZfYd1Zt00Q== - "@floating-ui/core@^1.0.0": version "1.6.0" resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.0.tgz#fa41b87812a16bf123122bf945946bae3fdf7fc1" @@ -8378,7 +8373,7 @@ ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.6.0, ajv@^8.6.3, ajv@^8.9.0: +ajv@^8.0.0, ajv@^8.10.0, ajv@^8.11.0, ajv@^8.6.0, ajv@^8.9.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -9190,7 +9185,7 @@ bl@^4.0.3, bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" -bluebird@^3.5.4, bluebird@^3.5.5: +bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -9380,45 +9375,6 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== -bunyamin@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/bunyamin/-/bunyamin-1.5.1.tgz#14df1b2f0b82d781d8f8d81eb2e83542353ac8d7" - integrity sha512-VgWWb3G3HwajZF8fFM8TJjkWOqeDBZgzWBeQb7EhKQTQd33Zri0nghLeg4r86kQqqNlo/p9Jjgwh/O7Q6XpZIg== - dependencies: - "@flatten-js/interval-tree" "^1.1.2" - multi-sort-stream "^1.0.4" - stream-json "^1.7.5" - trace-event-lib "^1.3.1" - -bunyan-debug-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bunyan-debug-stream/-/bunyan-debug-stream-3.1.0.tgz#78309c67ad85cfb8f011155334152c49209dcda8" - integrity sha512-VaFYbDVdiSn3ZpdozrjZ8mFpxHXl26t11C1DKRQtbo0EgffqeFNrRLOGIESKVeGEvVu4qMxMSSxzNlSw7oTj7w== - dependencies: - chalk "^4.1.2" - -bunyan@^1.8.12: - version "1.8.15" - resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.15.tgz#8ce34ca908a17d0776576ca1b2f6cbd916e93b46" - integrity sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig== - optionalDependencies: - dtrace-provider "~0.8" - moment "^2.19.3" - mv "~2" - safe-json-stringify "~1" - -bunyan@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-2.0.5.tgz#9dd056755220dddd8b5bb9cf76f3d0d766e96e71" - integrity sha512-Jvl74TdxCN6rSP9W1I6+UOUtwslTDqsSFkDqZlFb/ilaSvQ+bZAnXT/GT97IZ5L+Vph0joPZPhxUyn6FLNmFAA== - dependencies: - exeunt "1.1.0" - optionalDependencies: - dtrace-provider "~0.8" - moment "^2.19.3" - mv "~2" - safe-json-stringify "~1" - bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -9453,11 +9409,6 @@ cacache@^15.3.0: tar "^6.0.2" unique-filename "^1.1.1" -caf@^15.0.1: - version "15.0.1" - resolved "https://registry.yarnpkg.com/caf/-/caf-15.0.1.tgz#28f1f17bd93dc4b5d95207ad07066eddf4768160" - integrity sha512-Xp/IK6vMwujxWZXra7djdYzPdPnEQKa7Mudu2wZgDQ3TJry1I0TgtjEgwZHpoBcMp68j4fb0/FZ1SJyMEgJrXQ== - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -9508,7 +9459,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.2.1: +camelcase@^6.2.0, camelcase@^6.2.1: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -9619,15 +9570,6 @@ check-types@^11.1.1: resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.2.tgz#7afc0b6a860d686885062f2dba888ba5710335b4" integrity sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA== -child-process-promise@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/child-process-promise/-/child-process-promise-2.2.1.tgz#4730a11ef610fad450b8f223c79d31d7bdad8074" - integrity sha512-Fi4aNdqBsr0mv+jgWxcZ/7rAIC2mgihrptyVI4foh/rrjY/3BNjfP9+oaiFx/fzim+1ZyCNBae0DlyfQhSugog== - dependencies: - cross-spawn "^4.0.2" - node-version "^1.0.0" - promise-polyfill "^6.0.1" - chokidar@3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" @@ -10175,14 +10117,6 @@ cross-fetch@^3.1.5: dependencies: node-fetch "^2.6.12" -cross-spawn@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" - integrity sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA== - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -10519,11 +10453,6 @@ decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - decimal.js@^10.2.1, decimal.js@^10.4.2: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" @@ -10917,20 +10846,6 @@ dset@^3.1.1, dset@^3.1.2: resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== -dtrace-provider@~0.8: - version "0.8.8" - resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e" - integrity sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg== - dependencies: - nan "^2.14.0" - -duplexer2@^0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== - dependencies: - readable-stream "^2.0.2" - duplexer@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" @@ -10941,11 +10856,6 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -easy-stack@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.1.tgz#8afe4264626988cabb11f3c704ccd0c835411066" - integrity sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w== - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -11643,11 +11553,6 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -event-pubsub@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" - integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ== - event-target-shim@^5.0.0, event-target-shim@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -11716,11 +11621,6 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -exeunt@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/exeunt/-/exeunt-1.1.0.tgz#af72db6f94b3cb75e921aee375d513049843d284" - integrity sha512-dd++Yn/0Fp+gtJ04YHov7MeAii+LFivJc6KqnJNfplzLVUkUDrfKoQDTLlCgzcW15vY5hKlHasWeIsQJ8agHsw== - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -12492,11 +12392,6 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - flatted@^3.1.0: version "3.2.7" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" @@ -12628,15 +12523,6 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^8.1.0, fs-extra@~8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -12708,11 +12594,6 @@ functions-have-names@^1.2.2, functions-have-names@^1.2.3: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -funpermaproxy@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/funpermaproxy/-/funpermaproxy-1.1.0.tgz#39cb0b8bea908051e4608d8a414f1d87b55bf557" - integrity sha512-2Sp1hWuO8m5fqeFDusyhKqYPT+7rGLw34N3qonDcdRP8+n7M7Gl/yKp/q7oCxnnJ6pWCectOmLFJpsMU/++KrQ== - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -13442,7 +13323,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -14266,20 +14147,6 @@ jest-each@^29.7.0: jest-util "^29.7.0" pretty-format "^29.7.0" -jest-environment-emit@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/jest-environment-emit/-/jest-environment-emit-1.0.5.tgz#e6f33451f98b88ccd48e9e1188bb535880f03c1b" - integrity sha512-OsQ08AhYxkkyDBTIow+9ogNmJheQIGWQKp0Nku+1ToLWjAj2Pd6LmypN8HgUIqYHs4HFcqkQ25kaf1qExmoZpg== - dependencies: - bunyamin "^1.5.0" - bunyan "^2.0.5" - bunyan-debug-stream "^3.1.0" - funpermaproxy "^1.1.0" - lodash.merge "^4.6.2" - node-ipc "9.2.1" - strip-ansi "^6.0.0" - tslib "^2.5.3" - jest-environment-jsdom@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" @@ -15120,18 +14987,6 @@ js-cookie@3.0.1: resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414" integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw== -js-message@1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.7.tgz#fbddd053c7a47021871bb8b2c95397cc17c20e47" - integrity sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA== - -js-queue@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/js-queue/-/js-queue-2.0.2.tgz#0be590338f903b36c73d33c31883a821412cd482" - integrity sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA== - dependencies: - easy-stack "^1.0.1" - js-sha256@^0.10.1: version "0.10.1" resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.10.1.tgz#b40104ba1368e823fdd5f41b66b104b15a0da60d" @@ -15272,11 +15127,6 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== -json-cycle@^1.3.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/json-cycle/-/json-cycle-1.5.0.tgz#b1f1d976eee16cef51d5f3d3b3caece3e90ba23a" - integrity sha512-GOehvd5PO2FeZ5T4c+RxobeT5a1PiGpF4u9/3+UvrMU4bhnVqzJY7hm39wg8PDCqkU91fWGH8qjWR4bn+wgq9w== - json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -15707,7 +15557,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: +lodash@^4.17.13, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -15766,14 +15616,6 @@ lru-cache@^10.2.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -16363,11 +16205,6 @@ mobx@^6.6.1: resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.10.0.tgz#3537680fe98d45232cc19cc8f76280bd8bb6b0b7" integrity sha512-WMbVpCMFtolbB8swQ5E2YRrU+Yu8iLozCVx3CdGjbBKlP7dFiCSuiG06uea3JCFN5DnvtAX7+G5Bp82e2xu0ww== -moment@^2.19.3: - version "2.29.4" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" - integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== - moo@^0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" @@ -16393,11 +16230,6 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multi-sort-stream@^1.0.3, multi-sort-stream@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/multi-sort-stream/-/multi-sort-stream-1.0.4.tgz#e4348edc9edc36e16333e531a90c0f166235cc99" - integrity sha512-hAZ8JOEQFbgdLe8HWZbb7gdZg0/yAIHF00Qfo3kd0rXFv96nXe+/bPTrKHZ2QMHugGX4FiAyET1Lt+jiB+7Qlg== - multicast-dns@^7.2.5: version "7.2.5" resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" @@ -16411,14 +16243,6 @@ multiformats@^9.4.2, multiformats@^9.5.4, multiformats@^9.6.4, multiformats@^9.9 resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== -multipipe@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-4.0.0.tgz#d302554ae664c1157dbfd1e8f98f03c517b3948a" - integrity sha512-jzcEAzFXoWwWwUbvHCNPwBlTz3WCWe/jPcXSmTfbo/VjRwRTfvLZ/bdvtiTdqCe8d4otCSsPCbhGYcX+eggpKQ== - dependencies: - duplexer2 "^0.1.2" - object-assign "^4.1.0" - mute-stream@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" @@ -16442,11 +16266,6 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.14.0: - version "2.17.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" - integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== - nanoid@^3.1.23, nanoid@^3.3.1, nanoid@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" @@ -16576,15 +16395,6 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-ipc@9.2.1: - version "9.2.1" - resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.2.1.tgz#b32f66115f9d6ce841dc4ec2009d6a733f98bb6b" - integrity sha512-mJzaM6O3xHf9VT8BULvJSbdVbmHUKRNOH7zDDkCrA1/T+CVjq2WVIDfLt0azZRXpgArJtl3rtmEozrbXPZ9GaQ== - dependencies: - event-pubsub "4.3.0" - js-message "1.0.7" - js-queue "2.0.2" - node-releases@^2.0.13: version "2.0.13" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" @@ -16595,11 +16405,6 @@ node-stream-zip@^1.9.1: resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw== -node-version@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.2.0.tgz#34fde3ffa8e1149bd323983479dda620e1b5060d" - integrity sha512-ma6oU4Sk0qOoKEAymVoTvk8EdXEobdS7m/mAGhDJ8Rouugho48crHBORAmy5BoOcv8wraPM6xumapQp5hl4iIQ== - nodemailer-html-to-text@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/nodemailer-html-to-text/-/nodemailer-html-to-text-3.2.0.tgz#91b959491fef8f7d91796047abb728aa86d4a12b" @@ -18188,11 +17993,6 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== -promise-polyfill@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.1.0.tgz#dfa96943ea9c121fca4de9b5868cb39d3472e057" - integrity sha512-g0LWaH0gFsxovsU7R5LrrhHhWAWiHRnh1GPrhXnPgYsDkIqjRYUYSZEsej/wtleDrz5xVSIDbeKfidztp2XHFQ== - promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" @@ -18224,15 +18024,6 @@ prop-types@^15.6.1, prop-types@^15.7.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" -proper-lockfile@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-3.2.0.tgz#89ca420eea1d55d38ca552578851460067bcda66" - integrity sha512-iMghHHXv2bsxl6NchhEaFck8tvX3F9cknEEh1SUpguUOBjN7PAAW9BLzmbc1g/mCD1gY3EE2EABBHPJfFdHFmA== - dependencies: - graceful-fs "^4.1.11" - retry "^0.12.0" - signal-exit "^3.0.2" - prosemirror-changeset@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz#dae94b63aec618fac7bb9061648e6e2a79988383" @@ -18407,11 +18198,6 @@ pseudolocale@^2.0.0: dependencies: commander "^10.0.0" -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== - psl@^1.1.33, psl@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" @@ -19026,7 +18812,7 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@~2.3.6: +readable-stream@^2.0.1, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -19277,11 +19063,6 @@ requireg@^0.2.2: rc "~1.2.7" resolve "~1.7.1" -requireindex@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz#e5404b81557ef75db6e49c5a72004893fe03e162" - integrity sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg== - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -19384,11 +19165,6 @@ restore-cursor@^4.0.0: onetime "^5.1.0" signal-exit "^3.0.2" -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - retry@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" @@ -19559,13 +19335,6 @@ safe-stable-stringify@^2.3.1, safe-stable-stringify@^2.4.3: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sanitize-filename@^1.6.1: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - sanitize.css@*: version "13.0.0" resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-13.0.0.tgz#2675553974b27964c75562ade3bd85d79879f173" @@ -19678,7 +19447,7 @@ semver@7.5.3: dependencies: lru-cache "^6.0.0" -semver@7.5.4, semver@^7.0.0, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: +semver@7.5.4, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -19739,13 +19508,6 @@ serialize-error@^2.1.0: resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" integrity sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw== -serialize-error@^8.0.1: - version "8.1.0" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-8.1.0.tgz#3a069970c712f78634942ddd50fbbc0eaebe2f67" - integrity sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ== - dependencies: - type-fest "^0.20.2" - serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -19877,7 +19639,7 @@ shell-quote@1.8.0: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.0.tgz#20d078d0eaf71d54f43bd2ba14a1b5b9bfa5c8ba" integrity sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ== -shell-quote@^1.6.1, shell-quote@^1.7.2, shell-quote@^1.7.3: +shell-quote@^1.6.1, shell-quote@^1.7.3: version "1.8.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== @@ -20243,18 +20005,6 @@ stream-buffers@2.2.x: resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4" integrity sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg== -stream-chain@^2.2.5: - version "2.2.5" - resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" - integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== - -stream-json@^1.7.4, stream-json@^1.7.5: - version "1.8.0" - resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.8.0.tgz#53f486b2e3b4496c506131f8d7260ba42def151c" - integrity sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw== - dependencies: - stream-chain "^2.2.5" - streamx@^2.15.0: version "2.15.5" resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.5.tgz#87bcef4dc7f0b883f9359671203344a4e004c7f1" @@ -20710,13 +20460,6 @@ tar@^6.0.2, tar@^6.0.5: mkdirp "^1.0.3" yallist "^4.0.0" -telnet-client@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/telnet-client/-/telnet-client-1.2.8.tgz#946c0dadc8daa3f19bb40a3e898cb870403a4ca4" - integrity sha512-W+w4k3QAmULVNhBVT2Fei369kGZCh/TH25M7caJAXW+hLxwoQRuw0di3cX4l0S9fgH3Mvq7u+IFMoBDpEw/eIg== - dependencies: - bluebird "^3.5.4" - temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -20734,14 +20477,6 @@ temp@^0.8.4: dependencies: rimraf "~2.6.2" -tempfile@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" - integrity sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA== - dependencies: - temp-dir "^1.0.0" - uuid "^3.0.1" - tempy@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8" @@ -20976,25 +20711,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -trace-event-lib@^1.3.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/trace-event-lib/-/trace-event-lib-1.4.1.tgz#a749b8141650f56dcdecea760df4735f28d1ac6b" - integrity sha512-TOgFolKG8JFY+9d5EohGWMvwvteRafcyfPWWNIqcuD1W/FUvxWcy2MSCZ/beYHM63oYPHYHCd3tkbgCctHVP7w== - dependencies: - browser-process-hrtime "^1.0.0" - traverse@~0.6.6: version "0.6.7" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== - dependencies: - utf8-byte-length "^1.0.1" - tryer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" @@ -21039,7 +20760,7 @@ tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.5.0, tslib@^2.5.3: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.5.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -21426,11 +21147,6 @@ use-sidecar@^1.1.2: detect-node-es "^1.1.0" tslib "^2.0.0" -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== - utf8@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" @@ -21479,7 +21195,7 @@ utrie@^1.0.2: dependencies: base64-arraybuffer "^1.0.2" -uuid@^3.0.1, uuid@^3.3.2: +uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -22208,7 +21924,7 @@ ws@^6.2.2: dependencies: async-limiter "~1.0.0" -ws@^7, ws@^7.0.0, ws@^7.3.1, ws@^7.4.6, ws@^7.5.1: +ws@^7, ws@^7.3.1, ws@^7.4.6, ws@^7.5.1: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== @@ -22292,11 +22008,6 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== - yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -22335,21 +22046,11 @@ yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.0.0, yargs-parser@^21.1.1: +yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs-unparser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - yargs@^15.1.0: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" @@ -22380,7 +22081,7 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.0.0, yargs@^17.3.1, yargs@^17.6.2: +yargs@^17.3.1, yargs@^17.6.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== From 5d92ac2ce3eeb0e6d8f1c1f1ca2941dde74756ee Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Mon, 13 May 2024 22:36:56 +0100 Subject: [PATCH 039/277] dont send message if >1000 graphemes (#3995) --- src/lib/constants.ts | 2 ++ src/screens/Messages/Conversation/MessageInput.tsx | 12 +++++++++--- .../Messages/Conversation/MessageInput.web.tsx | 9 ++++++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 051ed4d595..05d1591f56 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -36,6 +36,8 @@ export const MAX_DESCRIPTION = 256 export const MAX_GRAPHEME_LENGTH = 300 +export const MAX_DM_GRAPHEME_LENGTH = 1000 + // Recommended is 100 per: https://www.w3.org/WAI/GL/WCAG20/tests/test3.html // but increasing limit per user feedback export const MAX_ALT_TEXT = 1000 diff --git a/src/screens/Messages/Conversation/MessageInput.tsx b/src/screens/Messages/Conversation/MessageInput.tsx index 3de15e661d..926d66e7d3 100644 --- a/src/screens/Messages/Conversation/MessageInput.tsx +++ b/src/screens/Messages/Conversation/MessageInput.tsx @@ -11,9 +11,11 @@ import { import {useSafeAreaInsets} from 'react-native-safe-area-context' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import Graphemer from 'graphemer' -import {HITSLOP_10} from '#/lib/constants' -import {useHaptics} from 'lib/haptics' +import {HITSLOP_10, MAX_DM_GRAPHEME_LENGTH} from '#/lib/constants' +import {useHaptics} from '#/lib/haptics' +import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {PaperPlane_Stroke2_Corner0_Rounded as PaperPlane} from '#/components/icons/PaperPlane' @@ -39,13 +41,17 @@ export function MessageInput({ if (message.trim() === '') { return } + if (new Graphemer().countGraphemes(message) > MAX_DM_GRAPHEME_LENGTH) { + Toast.show(_(msg`Message is too long`)) + return + } onSendMessage(message.trimEnd()) playHaptic() setMessage('') setTimeout(() => { inputRef.current?.focus() }, 100) - }, [message, onSendMessage, playHaptic]) + }, [message, onSendMessage, playHaptic, _]) const onInputLayout = React.useCallback( (e: NativeSyntheticEvent) => { diff --git a/src/screens/Messages/Conversation/MessageInput.web.tsx b/src/screens/Messages/Conversation/MessageInput.web.tsx index a2f255bdc1..2ee03bb310 100644 --- a/src/screens/Messages/Conversation/MessageInput.web.tsx +++ b/src/screens/Messages/Conversation/MessageInput.web.tsx @@ -2,8 +2,11 @@ import React from 'react' import {Pressable, StyleSheet, View} from 'react-native' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import Graphemer from 'graphemer' import TextareaAutosize from 'react-textarea-autosize' +import {MAX_DM_GRAPHEME_LENGTH} from '#/lib/constants' +import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {PaperPlane_Stroke2_Corner0_Rounded as PaperPlane} from '#/components/icons/PaperPlane' @@ -21,9 +24,13 @@ export function MessageInput({ if (message.trim() === '') { return } + if (new Graphemer().countGraphemes(message) > MAX_DM_GRAPHEME_LENGTH) { + Toast.show(_(msg`Message is too long`)) + return + } onSendMessage(message.trimEnd()) setMessage('') - }, [message, onSendMessage]) + }, [message, onSendMessage, _]) const onKeyDown = React.useCallback( (e: React.KeyboardEvent) => { From 9980012021bb176d3d84acc3fa14893e6f097f64 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 13 May 2024 16:54:03 -0500 Subject: [PATCH 040/277] Gate base following feed usage (#3994) --- src/state/queries/post-feed.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index 0d54d9ee0d..b9e0628f73 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -14,8 +14,10 @@ import { useInfiniteQuery, } from '@tanstack/react-query' +import {HomeFeedAPI} from '#/lib/api/feed/home' import {aggregateUserInterests} from '#/lib/api/feed/utils' import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' +import {useGate} from '#/lib/statsig/statsig' import {logger} from '#/logger' import {STALE} from '#/state/queries' import {DEFAULT_LOGGED_OUT_PREFERENCES} from '#/state/queries/preferences/const' @@ -116,6 +118,7 @@ export function usePostFeedQuery( result: InfiniteData } | null>(null) const lastPageCountRef = useRef(0) + const gate = useGate() // Make sure this doesn't invalidate unless really needed. const selectArgs = React.useMemo( @@ -149,6 +152,7 @@ export function usePostFeedQuery( feedTuners, userInterests, // Not in the query key because they don't change. getAgent, + useBaseFollowingFeed: gate('reduced_onboarding_and_home_algo'), }), cursor: undefined, } @@ -382,12 +386,14 @@ function createApi({ feedTuners, userInterests, getAgent, + useBaseFollowingFeed, }: { feedDesc: FeedDescriptor feedParams: FeedParams feedTuners: FeedTunerFn[] userInterests?: string getAgent: () => BskyAgent + useBaseFollowingFeed: boolean }) { if (feedDesc === 'following') { if (feedParams.mergeFeedEnabled) { @@ -398,7 +404,11 @@ function createApi({ userInterests, }) } else { - return new FollowingFeedAPI({getAgent}) + if (useBaseFollowingFeed) { + return new FollowingFeedAPI({getAgent}) + } else { + return new HomeFeedAPI({getAgent, userInterests}) + } } } else if (feedDesc.startsWith('author')) { const [_, actor, filter] = feedDesc.split('|') From 95514e3af715bb1bb632a4c8fee133d9fab47012 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 13 May 2024 16:54:12 -0500 Subject: [PATCH 041/277] [Reduced Onboarding] Fix forward/backward nav with profile step (#3997) * WIP * Fix forward-backward to profile step * [Reduced Onboarding] Add avatar metric (#3999) * Add prop to finished event * Fix type * Use separate event --- src/lib/statsig/events.ts | 3 +++ src/screens/Onboarding/StepFinished.tsx | 8 ++++++++ src/screens/Onboarding/StepProfile/index.tsx | 15 +++++++++++---- src/screens/Onboarding/state.ts | 15 +++++++++++++++ 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index d73d21a1a2..85254992ee 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -53,6 +53,9 @@ export type LogEvents = { 'onboarding:moderation:nextPressed': {} 'onboarding:profile:nextPressed': {} 'onboarding:finished:nextPressed': {} + 'onboarding:finished:avatarResult': { + avatarResult: 'default' | 'created' | 'uploaded' + } 'home:feedDisplayed': { feedUrl: string feedType: string diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index 0acb0093a3..3db0cbd2c9 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -134,6 +134,14 @@ export function StepFinished() { return existing }) } + + logEvent('onboarding:finished:avatarResult', { + avatarResult: profileStepResults.isCreatedAvatar + ? 'created' + : profileStepResults.image + ? 'uploaded' + : 'default', + }) })(), ]) } catch (e: any) { diff --git a/src/screens/Onboarding/StepProfile/index.tsx b/src/screens/Onboarding/StepProfile/index.tsx index d480a32af2..93d8a40203 100644 --- a/src/screens/Onboarding/StepProfile/index.tsx +++ b/src/screens/Onboarding/StepProfile/index.tsx @@ -79,9 +79,10 @@ export function StepProfile() { const {state, dispatch} = React.useContext(Context) const [avatar, setAvatar] = React.useState({ image: state.profileStepResults?.image, - placeholder: emojiItems.at, - backgroundColor: randomColor, - useCreatedAvatar: false, + placeholder: state.profileStepResults.creatorState?.emoji || emojiItems.at, + backgroundColor: + state.profileStepResults.creatorState?.backgroundColor || randomColor, + useCreatedAvatar: state.profileStepResults.isCreatedAvatar, }) const canvasRef = React.useRef(null) @@ -144,17 +145,23 @@ export function StepProfile() { image: avatar.image, imageUri, imageMime: avatar.image?.mime ?? 'image/jpeg', + isCreatedAvatar: avatar.useCreatedAvatar, + creatorState: { + emoji: avatar.placeholder, + backgroundColor: avatar.backgroundColor, + }, }) } dispatch({type: 'next'}) track('OnboardingV2:StepProfile:End') logEvent('onboarding:profile:nextPressed', {}) - }, [avatar.image, avatar.useCreatedAvatar, dispatch, track]) + }, [avatar, dispatch, track]) const onDoneCreating = React.useCallback(() => { setAvatar(prev => ({ ...prev, + image: undefined, useCreatedAvatar: true, })) creatorControl.close() diff --git a/src/screens/Onboarding/state.ts b/src/screens/Onboarding/state.ts index c08603587b..50d815674c 100644 --- a/src/screens/Onboarding/state.ts +++ b/src/screens/Onboarding/state.ts @@ -1,6 +1,7 @@ import React from 'react' import {logger} from '#/logger' +import {AvatarColor, Emoji} from '#/screens/Onboarding/StepProfile/types' export type OnboardingState = { hasPrev: boolean @@ -31,6 +32,7 @@ export type OnboardingState = { feedUris: string[] } profileStepResults: { + isCreatedAvatar: boolean image?: { path: string mime: string @@ -40,6 +42,10 @@ export type OnboardingState = { } imageUri?: string imageMime?: string + creatorState?: { + emoji: Emoji + backgroundColor: AvatarColor + } } } @@ -72,9 +78,14 @@ export type OnboardingAction = } | { type: 'setProfileStepResults' + isCreatedAvatar: boolean image?: OnboardingState['profileStepResults']['image'] imageUri: string imageMime: string + creatorState?: { + emoji: Emoji + backgroundColor: AvatarColor + } } export type ApiResponseMap = { @@ -111,6 +122,7 @@ export const initialState: OnboardingState = { feedUris: [], }, profileStepResults: { + isCreatedAvatar: false, image: undefined, imageUri: '', imageMime: '', @@ -286,6 +298,7 @@ export const initialStateReduced: OnboardingState = { feedUris: [], }, profileStepResults: { + isCreatedAvatar: false, image: undefined, imageUri: '', imageMime: '', @@ -341,9 +354,11 @@ export function reducerReduced( } case 'setProfileStepResults': { next.profileStepResults = { + isCreatedAvatar: a.isCreatedAvatar, image: a.image, imageUri: a.imageUri, imageMime: a.imageMime, + creatorState: a.creatorState, } break } From 0776cd99e55e6b47274e52e36dfe58bb82ebec91 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 13 May 2024 15:56:48 -0700 Subject: [PATCH 042/277] Make feeds easier to reorder (#3998) * Make feeds easier to reorder * Add reorder e2e test * Tweak feed card to only allow one line (#4002) --------- Co-authored-by: Eric Bailey --- __e2e__/flows/feed-reorder.yml | 82 +++++++++++++++++++++++++++ src/view/com/feeds/FeedSourceCard.tsx | 4 +- src/view/screens/SavedFeeds.tsx | 64 ++++++++++++--------- 3 files changed, 121 insertions(+), 29 deletions(-) create mode 100644 __e2e__/flows/feed-reorder.yml diff --git a/__e2e__/flows/feed-reorder.yml b/__e2e__/flows/feed-reorder.yml new file mode 100644 index 0000000000..4b96a201ce --- /dev/null +++ b/__e2e__/flows/feed-reorder.yml @@ -0,0 +1,82 @@ +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: ?users&follows&posts&feeds +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" + +# Pin alice's feed +- tapOn: + id: "bottomBarProfileBtn" +- swipe: + from: + id: "profilePager-selector" + direction: LEFT +- tapOn: + id: "profilePager-selector-4" +- tapOn: + id: "feed-alice-favs" +- tapOn: "Pin to Home" +- tapOn: + id: "bottomBarHomeBtn" +- assertNotVisible: "Feeds ✨" +- assertVisible: + id: "homeScreenFeedTabs-selector-0" + text: "Following" +- assertVisible: + id: "homeScreenFeedTabs-selector-1" + text: "alice-favs" + +# Set alice-favs first +- tapOn: + id: "viewHeaderDrawerBtn" +- tapOn: + id: "menuItemButton-Feeds" +- tapOn: "Edit Saved Feeds" +- tapOn: + label: "Tap on down arrow" + point: "79%,23%" +- tapOn: + id: "bottomBarHomeBtn" +- assertVisible: + id: "homeScreenFeedTabs-selector-0" + text: "alice-favs" +- assertVisible: + id: "homeScreenFeedTabs-selector-1" + text: "Following" + +# Set following first +- tapOn: + id: "viewHeaderDrawerBtn" +- tapOn: + id: "menuItemButton-Feeds" +- tapOn: + label: "Tap on down arrow" + point: "79%,23%" +- tapOn: + id: "bottomBarHomeBtn" +- assertVisible: + id: "homeScreenFeedTabs-selector-0" + text: "Following" +- assertVisible: + id: "homeScreenFeedTabs-selector-1" + text: "alice-favs" + +# Remove following +- tapOn: + id: "viewHeaderDrawerBtn" +- tapOn: + id: "menuItemButton-Feeds" +- tapOn: + label: "Tap on unpin" + point: "91%,23%" +- tapOn: + id: "bottomBarHomeBtn" +- assertVisible: + id: "homeScreenFeedTabs-selector-0" + text: "alice-favs" +- assertNotVisible: "Following" diff --git a/src/view/com/feeds/FeedSourceCard.tsx b/src/view/com/feeds/FeedSourceCard.tsx index bb536bccdd..9bf6ba6b62 100644 --- a/src/view/com/feeds/FeedSourceCard.tsx +++ b/src/view/com/feeds/FeedSourceCard.tsx @@ -211,10 +211,10 @@ export function FeedSourceCardLoaded({ - + {feed.displayName} - + {feed.type === 'feed' ? ( Feed by {sanitizeHandle(feed.creatorHandle, '@')} ) : ( diff --git a/src/view/screens/SavedFeeds.tsx b/src/view/screens/SavedFeeds.tsx index d50f9f74d0..a3aee19dc1 100644 --- a/src/view/screens/SavedFeeds.tsx +++ b/src/view/screens/SavedFeeds.tsx @@ -292,21 +292,37 @@ function ListItem({ return ( + {feed.type === 'timeline' ? ( + + ) : ( + + )} {isPinned ? ( - + <> ({ + backgroundColor: pal.viewLight.backgroundColor, + paddingHorizontal: 12, + paddingVertical: 10, + borderRadius: 4, + marginRight: 8, opacity: - state.hovered || state.focused || isUpdatePending ? 0.5 : 1, + state.hovered || state.pressed || isUpdatePending ? 0.5 : 1, })}> ({ + backgroundColor: pal.viewLight.backgroundColor, + paddingHorizontal: 12, + paddingVertical: 10, + borderRadius: 4, + marginRight: 8, opacity: - state.hovered || state.focused || isUpdatePending ? 0.5 : 1, + state.hovered || state.pressed || isUpdatePending ? 0.5 : 1, })}> - + - + ) : null} - {feed.type === 'timeline' ? ( - - ) : ( - - )} ({ + backgroundColor: pal.viewLight.backgroundColor, + paddingHorizontal: 12, + paddingVertical: 10, + borderRadius: 4, opacity: state.hovered || state.focused || isUpdatePending ? 0.5 : 1, })}> @@ -424,14 +442,6 @@ const styles = StyleSheet.create({ alignItems: 'center', borderBottomWidth: 1, }, - webArrowButtonsContainer: { - paddingLeft: 16, - flexDirection: 'column', - justifyContent: 'space-around', - }, - webArrowUpButton: { - marginBottom: 10, - }, noTopBorder: { borderTopWidth: 0, }, From fce65b74ff91e8b356569743e1c199a32772b516 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 13 May 2024 18:26:58 -0700 Subject: [PATCH 043/277] align the trash icon in the center in feed edit list (#4004) * align the trash icon in the center * align_center instead of align_start --- src/view/com/feeds/FeedSourceCard.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/view/com/feeds/FeedSourceCard.tsx b/src/view/com/feeds/FeedSourceCard.tsx index 9bf6ba6b62..3cef40360f 100644 --- a/src/view/com/feeds/FeedSourceCard.tsx +++ b/src/view/com/feeds/FeedSourceCard.tsx @@ -206,7 +206,7 @@ export function FeedSourceCardLoaded({ } }} key={feed.uri}> - + @@ -224,7 +224,7 @@ export function FeedSourceCardLoaded({ {showSaveBtn && ( - + Date: Mon, 13 May 2024 19:51:12 -0700 Subject: [PATCH 044/277] add a `Login` notifications request (#4006) --- src/lib/notifications/notifications.ts | 3 ++- src/lib/statsig/events.ts | 1 + src/screens/Login/LoginForm.tsx | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index 18578c0c42..52f984a599 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -72,7 +72,7 @@ export function useRequestNotificationsPermission() { const gate = useGate() return React.useCallback( - async (context: 'StartOnboarding' | 'AfterOnboarding') => { + async (context: 'StartOnboarding' | 'AfterOnboarding' | 'Login') => { const permissions = await Notifications.getPermissionsAsync() if ( @@ -97,6 +97,7 @@ export function useRequestNotificationsPermission() { const res = await Notifications.requestPermissionsAsync() logEvent('notifications:request', { + context: context, status: res.status, }) diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index 85254992ee..660a37d2a7 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -17,6 +17,7 @@ export type LogEvents = { } 'notifications:openApp': {} 'notifications:request': { + context: 'StartOnboarding' | 'AfterOnboarding' | 'Login' status: 'granted' | 'denied' | 'undetermined' } 'state:background': { diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index 17fc323688..58c100294c 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -19,6 +19,7 @@ import {cleanError} from '#/lib/strings/errors' import {createFullHandle} from '#/lib/strings/handles' import {logger} from '#/logger' import {useSessionApi} from '#/state/session' +import {useRequestNotificationsPermission} from 'lib/notifications/notifications' import {atoms as a, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {FormError} from '#/components/forms/FormError' @@ -65,6 +66,7 @@ export const LoginForm = ({ const passwordInputRef = useRef(null) const {_} = useLingui() const {login} = useSessionApi() + const requestNotificationsPermission = useRequestNotificationsPermission() const onPressSelectService = React.useCallback(() => { Keyboard.dismiss() @@ -111,6 +113,7 @@ export const LoginForm = ({ }, 'LoginForm', ) + requestNotificationsPermission('Login') } catch (e: any) { const errMsg = e.toString() LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) From 107760d551dee695f76409337048cd8c7917b784 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 13 May 2024 20:23:31 -0700 Subject: [PATCH 045/277] Add better onboard testing (#4007) --- __e2e__/flows/onboarding-old.yml | 31 ++++++++++++++++++++++++++ src/lib/statsig/statsig.tsx | 22 ++++++++++++++++++ src/view/com/testing/TestCtrls.e2e.tsx | 19 +++++++++++++++- 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 __e2e__/flows/onboarding-old.yml diff --git a/__e2e__/flows/onboarding-old.yml b/__e2e__/flows/onboarding-old.yml new file mode 100644 index 0000000000..dae24bb1c4 --- /dev/null +++ b/__e2e__/flows/onboarding-old.yml @@ -0,0 +1,31 @@ +# Remove this test when the old onboarding is deprecated +appId: xyz.blueskyweb.app +--- +- runScript: + file: ../setupServer.js + env: + SERVER_PATH: "?users" +- runFlow: + file: ../setupApp.yml +- tapOn: + id: "e2eSignInAlice" +- tapOn: + id: "e2eStartLongboarding" +- tapOn: "Continue to next step" +- tapOn: "Continue to the next step without following any accounts" +- tapOn: Show replies in Following feed +- tapOn: Show quote-posts in Following feed +- tapOn: Show re-posts in Following feed +- tapOn: Show replies in Following feed +- waitForAnimationToEnd +- tapOn: Continue to next step +- waitForAnimationToEnd +- tapOn: "Continue to the next step" +- waitForAnimationToEnd +- tapOn: Continue to next step +- waitForAnimationToEnd +- tapOn: Continue to next step +- waitForAnimationToEnd +- tapOn: "Complete onboarding and start using your account" +- waitForAnimationToEnd +- assertVisible: Following \ No newline at end of file diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx index 2e3fdfd5cb..3b649f88d8 100644 --- a/src/lib/statsig/statsig.tsx +++ b/src/lib/statsig/statsig.tsx @@ -130,6 +130,28 @@ export function useGate(): (gateName: Gate) => boolean { return gate } +/** + * Debugging tool to override a gate. USE ONLY IN E2E TESTS! + */ +export function useDangerousSetGate(): ( + gateName: Gate, + value: boolean, +) => void { + const cache = React.useContext(GateCache) + if (!cache) { + throw Error( + 'useDangerousSetGate() cannot be called outside StatsigProvider.', + ) + } + const dangerousSetGate = React.useCallback( + (gateName: Gate, value: boolean) => { + cache.set(gateName, value) + }, + [cache], + ) + return dangerousSetGate +} + function toStatsigUser(did: string | undefined): StatsigUser { let userID: string | undefined if (did) { diff --git a/src/view/com/testing/TestCtrls.e2e.tsx b/src/view/com/testing/TestCtrls.e2e.tsx index 135b7dee61..fbad86f6a9 100644 --- a/src/view/com/testing/TestCtrls.e2e.tsx +++ b/src/view/com/testing/TestCtrls.e2e.tsx @@ -2,6 +2,7 @@ import React from 'react' import {LogBox, Pressable, View} from 'react-native' import {useQueryClient} from '@tanstack/react-query' +import {useDangerousSetGate} from '#/lib/statsig/statsig' import {useModalControls} from '#/state/modals' import {useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' @@ -24,6 +25,7 @@ export function TestCtrls() { const {openModal} = useModalControls() const onboardingDispatch = useOnboardingDispatch() const {setShowLoggedOut} = useLoggedOutViewControls() + const setGate = useDangerousSetGate() const onPressSignInAlice = async () => { await login( { @@ -108,7 +110,22 @@ export function TestCtrls() { /> onboardingDispatch({type: 'start'})} + onPress={() => { + // TODO remove when experiment is over + setGate('reduced_onboarding_and_home_algo', true) + onboardingDispatch({type: 'start'}) + }} + accessibilityRole="button" + style={BTN} + /> + {/* TODO remove this entire control when experiment is over */} + { + // TODO remove when experiment is over + setGate('reduced_onboarding_and_home_algo', false) + onboardingDispatch({type: 'start'}) + }} accessibilityRole="button" style={BTN} /> From 9173be686c1df9adc6cbb9cc2175f8909a868c35 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 14 May 2024 09:22:09 -0500 Subject: [PATCH 046/277] =?UTF-8?q?[=F0=9F=90=B4]=20Swap=20in=20new=20pack?= =?UTF-8?q?age,=20update=20usages=20(#3992)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Swap in new package, update usages * Remove uneccessary patch * Override type in safe place --- package.json | 3 +- src/components/dms/ActionsWrapper.tsx | 2 +- src/components/dms/ActionsWrapper.web.tsx | 2 +- src/components/dms/ConvoMenu.tsx | 6 +- src/components/dms/MessageItem.tsx | 3 +- src/components/dms/MessageMenu.tsx | 3 +- src/components/dms/MessageReportDialog.tsx | 4 +- src/screens/Messages/List/index.tsx | 2 +- src/state/messages/convo/agent.ts | 58 ++++++------------- src/state/messages/convo/index.tsx | 8 +-- src/state/messages/convo/types.ts | 5 +- src/state/messages/events/agent.ts | 17 ++---- src/state/messages/events/index.tsx | 11 +--- src/state/messages/events/types.ts | 3 +- src/state/queries/messages/const.ts | 3 + src/state/queries/messages/conversation.ts | 25 ++++---- .../queries/messages/get-convo-for-members.ts | 14 ++--- .../queries/messages/leave-conversation.ts | 18 ++---- .../queries/messages/list-converations.ts | 18 ++---- .../queries/messages/mute-conversation.ts | 16 +++-- src/state/queries/messages/temp-headers.ts | 11 ---- yarn.lock | 20 ++----- 22 files changed, 79 insertions(+), 173 deletions(-) create mode 100644 src/state/queries/messages/const.ts delete mode 100644 src/state/queries/messages/temp-headers.ts diff --git a/package.json b/package.json index 13ffc35c83..0a52aa97b6 100644 --- a/package.json +++ b/package.json @@ -49,8 +49,7 @@ "open-analyzer": "EXPO_PUBLIC_OPEN_ANALYZER=1 yarn build-web" }, "dependencies": { - "@atproto-labs/api": "^0.12.8-clipclops.0", - "@atproto/api": "^0.12.9", + "@atproto/api": "^0.12.10", "@bam.tech/react-native-image-resizer": "^3.0.4", "@braintree/sanitize-url": "^6.0.2", "@discord/bottom-sheet": "bluesky-social/react-native-bottom-sheet", diff --git a/src/components/dms/ActionsWrapper.tsx b/src/components/dms/ActionsWrapper.tsx index 5c34ef9ba4..9c58b62147 100644 --- a/src/components/dms/ActionsWrapper.tsx +++ b/src/components/dms/ActionsWrapper.tsx @@ -7,7 +7,7 @@ import Animated, { useSharedValue, withTiming, } from 'react-native-reanimated' -import {ChatBskyConvoDefs} from '@atproto-labs/api' +import {ChatBskyConvoDefs} from '@atproto/api' import {HITSLOP_10} from 'lib/constants' import {useHaptics} from 'lib/haptics' diff --git a/src/components/dms/ActionsWrapper.web.tsx b/src/components/dms/ActionsWrapper.web.tsx index 7725ca3b70..29cc89dd18 100644 --- a/src/components/dms/ActionsWrapper.web.tsx +++ b/src/components/dms/ActionsWrapper.web.tsx @@ -1,6 +1,6 @@ import React from 'react' import {StyleSheet, View} from 'react-native' -import {ChatBskyConvoDefs} from '@atproto-labs/api' +import {ChatBskyConvoDefs} from '@atproto/api' import {atoms as a} from '#/alf' import {MessageMenu} from '#/components/dms/MessageMenu' diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index 68d8150747..0a1d3f01cc 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -1,8 +1,6 @@ import React, {useCallback} from 'react' import {Keyboard, Pressable, View} from 'react-native' -import {AppBskyActorDefs} from '@atproto/api' -import {ChatBskyConvoDefs} from '@atproto-labs/api' -import {ConvoView} from '@atproto-labs/api/dist/client/types/chat/bsky/convo/defs' +import {AppBskyActorDefs, ChatBskyConvoDefs} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' @@ -37,7 +35,7 @@ let ConvoMenu = ({ hideTrigger, triggerOpacity, }: { - convo: ConvoView + convo: ChatBskyConvoDefs.ConvoView profile: AppBskyActorDefs.ProfileViewBasic onUpdateConvo?: (convo: ChatBskyConvoDefs.ConvoView) => void control?: Menu.MenuControlProps diff --git a/src/components/dms/MessageItem.tsx b/src/components/dms/MessageItem.tsx index e162e40ee8..f8ab851884 100644 --- a/src/components/dms/MessageItem.tsx +++ b/src/components/dms/MessageItem.tsx @@ -1,7 +1,6 @@ import React, {useCallback, useMemo, useRef} from 'react' import {LayoutAnimation, StyleProp, TextStyle, View} from 'react-native' -import {RichText as RichTextAPI} from '@atproto/api' -import {ChatBskyConvoDefs} from '@atproto-labs/api' +import {ChatBskyConvoDefs, RichText as RichTextAPI} from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' diff --git a/src/components/dms/MessageMenu.tsx b/src/components/dms/MessageMenu.tsx index c6abd51106..3349b2ff89 100644 --- a/src/components/dms/MessageMenu.tsx +++ b/src/components/dms/MessageMenu.tsx @@ -1,8 +1,7 @@ import React from 'react' import {LayoutAnimation, Pressable, View} from 'react-native' import * as Clipboard from 'expo-clipboard' -import {RichText} from '@atproto/api' -import {ChatBskyConvoDefs} from '@atproto-labs/api' +import {ChatBskyConvoDefs, RichText} from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' diff --git a/src/components/dms/MessageReportDialog.tsx b/src/components/dms/MessageReportDialog.tsx index eedb12440e..6071312e94 100644 --- a/src/components/dms/MessageReportDialog.tsx +++ b/src/components/dms/MessageReportDialog.tsx @@ -1,10 +1,10 @@ import React, {memo, useMemo, useState} from 'react' import {View} from 'react-native' -import {RichText as RichTextAPI} from '@atproto/api' import { ChatBskyConvoDefs, ComAtprotoModerationCreateReport, -} from '@atproto-labs/api' + RichText as RichTextAPI, +} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useMutation} from '@tanstack/react-query' diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index 55d65a8884..b9ce8f2517 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -1,6 +1,6 @@ import React, {useCallback, useMemo, useState} from 'react' import {View} from 'react-native' -import {ChatBskyConvoDefs} from '@atproto-labs/api' +import {ChatBskyConvoDefs} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index 79406d1551..a453e81c62 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -1,10 +1,10 @@ -import {AppBskyActorDefs} from '@atproto/api' import { + AppBskyActorDefs, BskyAgent, ChatBskyConvoDefs, ChatBskyConvoGetLog, ChatBskyConvoSendMessage, -} from '@atproto-labs/api' +} from '@atproto/api' import {nanoid} from 'nanoid/non-secure' import {networkRetry} from '#/lib/async/retry' @@ -26,6 +26,7 @@ import { } from '#/state/messages/convo/types' import {MessagesEventBus} from '#/state/messages/events/agent' import {MessagesEventBusError} from '#/state/messages/events/types' +import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' // TODO temporary let DEBUG_ACTIVE_CHAT: string | undefined @@ -46,7 +47,7 @@ export class Convo { private agent: BskyAgent private events: MessagesEventBus - private __tempFromUserDid: string + private senderUserDid: string private status: ConvoStatus = ConvoStatus.Uninitialized private error: @@ -89,7 +90,7 @@ export class Convo { this.convoId = params.convoId this.agent = params.agent this.events = params.events - this.__tempFromUserDid = params.__tempFromUserDid + this.senderUserDid = params.agent.session?.did! this.subscribe = this.subscribe.bind(this) this.getSnapshot = this.getSnapshot.bind(this) @@ -467,11 +468,7 @@ export class Convo { { convoId: this.convoId, }, - { - headers: { - Authorization: this.__tempFromUserDid, - }, - }, + {headers: DM_SERVICE_HEADERS}, ) }) @@ -479,10 +476,8 @@ export class Convo { resolve({ convo, - sender: convo.members.find(m => m.did === this.__tempFromUserDid), - recipients: convo.members.filter( - m => m.did !== this.__tempFromUserDid, - ), + sender: convo.members.find(m => m.did === this.senderUserDid), + recipients: convo.members.filter(m => m.did !== this.senderUserDid), }) } catch (e) { reject(e) @@ -557,11 +552,7 @@ export class Convo { convoId: this.convoId, limit: isNative ? 30 : 60, }, - { - headers: { - Authorization: this.__tempFromUserDid, - }, - }, + {headers: DM_SERVICE_HEADERS}, ) }) const {cursor, messages} = response.data @@ -775,12 +766,7 @@ export class Convo { convoId: this.convoId, message, }, - { - encoding: 'application/json', - headers: { - Authorization: this.__tempFromUserDid, - }, - }, + {encoding: 'application/json', headers: DM_SERVICE_HEADERS}, ) }) const res = response.data @@ -792,7 +778,6 @@ export class Convo { this.newMessages.set(res.id, { ...res, $type: 'chat.bsky.convo.defs#messageView', - sender: this.sender, }) this.pendingMessages.delete(id) @@ -835,12 +820,7 @@ export class Convo { message, })), }, - { - encoding: 'application/json', - headers: { - Authorization: this.__tempFromUserDid, - }, - }, + {encoding: 'application/json', headers: DM_SERVICE_HEADERS}, ) }) const {items} = data @@ -853,9 +833,6 @@ export class Convo { this.newMessages.set(item.id, { ...item, $type: 'chat.bsky.convo.defs#messageView', - sender: this.convo?.members.find( - m => m.did === this.__tempFromUserDid, - ), }) } @@ -899,12 +876,7 @@ export class Convo { convoId: this.convoId, messageId, }, - { - encoding: 'application/json', - headers: { - Authorization: this.__tempFromUserDid, - }, - }, + {encoding: 'application/json', headers: DM_SERVICE_HEADERS}, ) }) } catch (e: any) { @@ -970,7 +942,11 @@ export class Convo { id: nanoid(), rev: '__fake__', sentAt: new Date().toISOString(), - sender: this.sender, + /* + * `getItems` is only run in "active" status states, where + * `this.sender` is defined + */ + sender: this.sender!, }, nextMessage: null, }) diff --git a/src/state/messages/convo/index.tsx b/src/state/messages/convo/index.tsx index 311e8ce05e..9c52958323 100644 --- a/src/state/messages/convo/index.tsx +++ b/src/state/messages/convo/index.tsx @@ -1,6 +1,5 @@ import React, {useContext, useState, useSyncExternalStore} from 'react' import {AppState} from 'react-native' -import {BskyAgent} from '@atproto-labs/api' import {useFocusEffect, useIsFocused} from '@react-navigation/native' import {Convo} from '#/state/messages/convo/agent' @@ -8,7 +7,6 @@ import {ConvoParams, ConvoState} from '#/state/messages/convo/types' import {useMessagesEventBus} from '#/state/messages/events' import {useMarkAsReadMutation} from '#/state/queries/messages/conversation' import {useAgent} from '#/state/session' -import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage' const ChatContext = React.createContext(null) @@ -25,18 +23,14 @@ export function ConvoProvider({ convoId, }: Pick & {children: React.ReactNode}) { const isScreenFocused = useIsFocused() - const {serviceUrl} = useDmServiceUrlStorage() const {getAgent} = useAgent() const events = useMessagesEventBus() const [convo] = useState( () => new Convo({ convoId, - agent: new BskyAgent({ - service: serviceUrl, - }), + agent: getAgent(), events, - __tempFromUserDid: getAgent().session?.did!, }), ) const service = useSyncExternalStore(convo.subscribe, convo.getSnapshot) diff --git a/src/state/messages/convo/types.ts b/src/state/messages/convo/types.ts index 920635c8c2..4615acc2d9 100644 --- a/src/state/messages/convo/types.ts +++ b/src/state/messages/convo/types.ts @@ -1,9 +1,9 @@ -import {AppBskyActorDefs} from '@atproto/api' import { + AppBskyActorDefs, BskyAgent, ChatBskyConvoDefs, ChatBskyConvoSendMessage, -} from '@atproto-labs/api' +} from '@atproto/api' import {MessagesEventBus} from '#/state/messages/events/agent' @@ -11,7 +11,6 @@ export type ConvoParams = { convoId: string agent: BskyAgent events: MessagesEventBus - __tempFromUserDid: string } export enum ConvoStatus { diff --git a/src/state/messages/events/agent.ts b/src/state/messages/events/agent.ts index 68225e5955..3759eb3a08 100644 --- a/src/state/messages/events/agent.ts +++ b/src/state/messages/events/agent.ts @@ -1,4 +1,4 @@ -import {BskyAgent, ChatBskyConvoGetLog} from '@atproto-labs/api' +import {BskyAgent, ChatBskyConvoGetLog} from '@atproto/api' import EventEmitter from 'eventemitter3' import {nanoid} from 'nanoid/non-secure' @@ -13,6 +13,7 @@ import { MessagesEventBusParams, MessagesEventBusStatus, } from '#/state/messages/events/types' +import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' const LOGGER_CONTEXT = 'MessagesEventBus' @@ -20,7 +21,6 @@ export class MessagesEventBus { private id: string private agent: BskyAgent - private __tempFromUserDid: string private emitter = new EventEmitter<{event: [MessagesEventBusEvent]}>() private status: MessagesEventBusStatus = MessagesEventBusStatus.Initializing @@ -31,7 +31,6 @@ export class MessagesEventBus { constructor(params: MessagesEventBusParams) { this.id = nanoid(3) this.agent = params.agent - this.__tempFromUserDid = params.__tempFromUserDid this.init() } @@ -242,11 +241,7 @@ export class MessagesEventBus { { limit: 1, }, - { - headers: { - Authorization: this.__tempFromUserDid, - }, - }, + {headers: DM_SERVICE_HEADERS}, ) }) // throw new Error('UNCOMMENT TO TEST INIT FAILURE') @@ -337,11 +332,7 @@ export class MessagesEventBus { { cursor: this.latestRev, }, - { - headers: { - Authorization: this.__tempFromUserDid, - }, - }, + {headers: DM_SERVICE_HEADERS}, ) }) diff --git a/src/state/messages/events/index.tsx b/src/state/messages/events/index.tsx index 08ec77503f..e8768573b8 100644 --- a/src/state/messages/events/index.tsx +++ b/src/state/messages/events/index.tsx @@ -1,12 +1,10 @@ import React from 'react' import {AppState} from 'react-native' -import {BskyAgent} from '@atproto-labs/api' import {useGate} from '#/lib/statsig/statsig' import {isWeb} from '#/platform/detection' import {MessagesEventBus} from '#/state/messages/events/agent' import {useAgent} from '#/state/session' -import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage' import {IS_DEV} from '#/env' const MessagesEventBusContext = React.createContext( @@ -26,15 +24,11 @@ export function Temp_MessagesEventBusProvider({ }: { children: React.ReactNode }) { - const {serviceUrl} = useDmServiceUrlStorage() const {getAgent} = useAgent() const [bus] = React.useState( () => new MessagesEventBus({ - agent: new BskyAgent({ - service: serviceUrl, - }), - __tempFromUserDid: getAgent().session?.did!, + agent: getAgent(), }), ) @@ -74,8 +68,7 @@ export function MessagesEventBusProvider({ children: React.ReactNode }) { const gate = useGate() - const {serviceUrl} = useDmServiceUrlStorage() - if (gate('dms') && serviceUrl) { + if (gate('dms')) { return ( {children} ) diff --git a/src/state/messages/events/types.ts b/src/state/messages/events/types.ts index e65136e4b8..305418bd3c 100644 --- a/src/state/messages/events/types.ts +++ b/src/state/messages/events/types.ts @@ -1,8 +1,7 @@ -import {BskyAgent, ChatBskyConvoGetLog} from '@atproto-labs/api' +import {BskyAgent, ChatBskyConvoGetLog} from '@atproto/api' export type MessagesEventBusParams = { agent: BskyAgent - __tempFromUserDid: string } export enum MessagesEventBusStatus { diff --git a/src/state/queries/messages/const.ts b/src/state/queries/messages/const.ts new file mode 100644 index 0000000000..98916b7377 --- /dev/null +++ b/src/state/queries/messages/const.ts @@ -0,0 +1,3 @@ +export const DM_SERVICE_HEADERS = { + 'atproto-proxy': 'did:web:dms.divy.zone#bsky_chat', +} diff --git a/src/state/queries/messages/conversation.ts b/src/state/queries/messages/conversation.ts index e420ba7363..bd5b746f16 100644 --- a/src/state/queries/messages/conversation.ts +++ b/src/state/queries/messages/conversation.ts @@ -1,26 +1,23 @@ -import {BskyAgent} from '@atproto-labs/api' -import {ConvoView} from '@atproto-labs/api/dist/client/types/chat/bsky/convo/defs' +import {ChatBskyConvoDefs} from '@atproto/api' import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' +import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' import {useOnMarkAsRead} from '#/state/queries/messages/list-converations' -import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage' +import {useAgent} from '#/state/session' import {RQKEY as LIST_CONVOS_KEY} from './list-converations' -import {useHeaders} from './temp-headers' const RQKEY_ROOT = 'convo' export const RQKEY = (convoId: string) => [RQKEY_ROOT, convoId] -export function useConvoQuery(convo: ConvoView) { - const headers = useHeaders() - const {serviceUrl} = useDmServiceUrlStorage() +export function useConvoQuery(convo: ChatBskyConvoDefs.ConvoView) { + const {getAgent} = useAgent() return useQuery({ queryKey: RQKEY(convo.id), queryFn: async () => { - const agent = new BskyAgent({service: serviceUrl}) - const {data} = await agent.api.chat.bsky.convo.getConvo( + const {data} = await getAgent().api.chat.bsky.convo.getConvo( {convoId: convo.id}, - {headers}, + {headers: DM_SERVICE_HEADERS}, ) return data.convo }, @@ -29,10 +26,9 @@ export function useConvoQuery(convo: ConvoView) { } export function useMarkAsReadMutation() { - const headers = useHeaders() - const {serviceUrl} = useDmServiceUrlStorage() const optimisticUpdate = useOnMarkAsRead() const queryClient = useQueryClient() + const {getAgent} = useAgent() return useMutation({ mutationFn: async ({ @@ -44,15 +40,14 @@ export function useMarkAsReadMutation() { }) => { if (!convoId) throw new Error('No convoId provided') - const agent = new BskyAgent({service: serviceUrl}) - await agent.api.chat.bsky.convo.updateRead( + await getAgent().api.chat.bsky.convo.updateRead( { convoId, messageId, }, { encoding: 'application/json', - headers, + headers: DM_SERVICE_HEADERS, }, ) }, diff --git a/src/state/queries/messages/get-convo-for-members.ts b/src/state/queries/messages/get-convo-for-members.ts index 0a657c07e9..083146b83b 100644 --- a/src/state/queries/messages/get-convo-for-members.ts +++ b/src/state/queries/messages/get-convo-for-members.ts @@ -1,10 +1,10 @@ -import {BskyAgent, ChatBskyConvoGetConvoForMembers} from '@atproto-labs/api' +import {ChatBskyConvoGetConvoForMembers} from '@atproto/api' import {useMutation, useQueryClient} from '@tanstack/react-query' import {logger} from '#/logger' -import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage' +import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' +import {useAgent} from '#/state/session' import {RQKEY as CONVO_KEY} from './conversation' -import {useHeaders} from './temp-headers' export function useGetConvoForMembers({ onSuccess, @@ -14,15 +14,13 @@ export function useGetConvoForMembers({ onError?: (error: Error) => void }) { const queryClient = useQueryClient() - const headers = useHeaders() - const {serviceUrl} = useDmServiceUrlStorage() + const {getAgent} = useAgent() return useMutation({ mutationFn: async (members: string[]) => { - const agent = new BskyAgent({service: serviceUrl}) - const {data} = await agent.api.chat.bsky.convo.getConvoForMembers( + const {data} = await getAgent().api.chat.bsky.convo.getConvoForMembers( {members: members}, - {headers}, + {headers: DM_SERVICE_HEADERS}, ) return data diff --git a/src/state/queries/messages/leave-conversation.ts b/src/state/queries/messages/leave-conversation.ts index 5d5c64c5b9..d7d47b2741 100644 --- a/src/state/queries/messages/leave-conversation.ts +++ b/src/state/queries/messages/leave-conversation.ts @@ -1,14 +1,10 @@ -import { - BskyAgent, - ChatBskyConvoLeaveConvo, - ChatBskyConvoListConvos, -} from '@atproto-labs/api' +import {ChatBskyConvoLeaveConvo, ChatBskyConvoListConvos} from '@atproto/api' import {useMutation, useQueryClient} from '@tanstack/react-query' import {logger} from '#/logger' -import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage' +import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' +import {useAgent} from '#/state/session' import {RQKEY as CONVO_LIST_KEY} from './list-converations' -import {useHeaders} from './temp-headers' export function useLeaveConvo( convoId: string | undefined, @@ -21,17 +17,15 @@ export function useLeaveConvo( }, ) { const queryClient = useQueryClient() - const headers = useHeaders() - const {serviceUrl} = useDmServiceUrlStorage() + const {getAgent} = useAgent() return useMutation({ mutationFn: async () => { if (!convoId) throw new Error('No convoId provided') - const agent = new BskyAgent({service: serviceUrl}) - const {data} = await agent.api.chat.bsky.convo.leaveConvo( + const {data} = await getAgent().api.chat.bsky.convo.leaveConvo( {convoId}, - {headers, encoding: 'application/json'}, + {headers: DM_SERVICE_HEADERS, encoding: 'application/json'}, ) return data diff --git a/src/state/queries/messages/list-converations.ts b/src/state/queries/messages/list-converations.ts index 936dd3a4aa..3689624173 100644 --- a/src/state/queries/messages/list-converations.ts +++ b/src/state/queries/messages/list-converations.ts @@ -1,29 +1,23 @@ import {useCallback, useMemo} from 'react' -import { - BskyAgent, - ChatBskyConvoDefs, - ChatBskyConvoListConvos, -} from '@atproto-labs/api' +import {ChatBskyConvoDefs, ChatBskyConvoListConvos} from '@atproto/api' import {useInfiniteQuery, useQueryClient} from '@tanstack/react-query' import {useCurrentConvoId} from '#/state/messages/current-convo-id' -import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage' -import {useHeaders} from './temp-headers' +import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' +import {useAgent} from '#/state/session' export const RQKEY = ['convo-list'] type RQPageParam = string | undefined export function useListConvos({refetchInterval}: {refetchInterval: number}) { - const headers = useHeaders() - const {serviceUrl} = useDmServiceUrlStorage() + const {getAgent} = useAgent() return useInfiniteQuery({ queryKey: RQKEY, queryFn: async ({pageParam}) => { - const agent = new BskyAgent({service: serviceUrl}) - const {data} = await agent.api.chat.bsky.convo.listConvos( + const {data} = await getAgent().api.chat.bsky.convo.listConvos( {cursor: pageParam}, - {headers}, + {headers: DM_SERVICE_HEADERS}, ) return data diff --git a/src/state/queries/messages/mute-conversation.ts b/src/state/queries/messages/mute-conversation.ts index f30612c73e..fa760e00de 100644 --- a/src/state/queries/messages/mute-conversation.ts +++ b/src/state/queries/messages/mute-conversation.ts @@ -1,15 +1,14 @@ import { - BskyAgent, ChatBskyConvoDefs, ChatBskyConvoListConvos, ChatBskyConvoMuteConvo, -} from '@atproto-labs/api' +} from '@atproto/api' import {InfiniteData, useMutation, useQueryClient} from '@tanstack/react-query' -import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage' +import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' +import {useAgent} from '#/state/session' import {RQKEY as CONVO_KEY} from './conversation' import {RQKEY as CONVO_LIST_KEY} from './list-converations' -import {useHeaders} from './temp-headers' export function useMuteConvo( convoId: string | undefined, @@ -22,24 +21,23 @@ export function useMuteConvo( }, ) { const queryClient = useQueryClient() - const headers = useHeaders() - const {serviceUrl} = useDmServiceUrlStorage() + const {getAgent} = useAgent() return useMutation({ mutationFn: async ({mute}: {mute: boolean}) => { if (!convoId) throw new Error('No convoId provided') - const agent = new BskyAgent({service: serviceUrl}) + const agent = getAgent() if (mute) { const {data} = await agent.api.chat.bsky.convo.muteConvo( {convoId}, - {headers, encoding: 'application/json'}, + {headers: DM_SERVICE_HEADERS, encoding: 'application/json'}, ) return data } else { const {data} = await agent.api.chat.bsky.convo.unmuteConvo( {convoId}, - {headers, encoding: 'application/json'}, + {headers: DM_SERVICE_HEADERS, encoding: 'application/json'}, ) return data } diff --git a/src/state/queries/messages/temp-headers.ts b/src/state/queries/messages/temp-headers.ts deleted file mode 100644 index 9e46e8a616..0000000000 --- a/src/state/queries/messages/temp-headers.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {useSession} from '#/state/session' - -// toy auth -export const useHeaders = () => { - const {currentAccount} = useSession() - return { - get Authorization() { - return currentAccount!.did - }, - } -} diff --git a/yarn.lock b/yarn.lock index 5029f12599..ca2ae379c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,10 +34,10 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@atproto-labs/api@^0.12.8-clipclops.0": - version "0.12.8-clipclops.0" - resolved "https://registry.yarnpkg.com/@atproto-labs/api/-/api-0.12.8-clipclops.0.tgz#1c5d41d3396e439a0b645f7e1ccf500cc4b42580" - integrity sha512-YYDtWWk6BR+aRBVja/1v+gceNK81lkmF5bi6O4pTmJhFt/321XATx/ql8uTWta4VnVThoFeNPG6nLr7hs8b9cA== +"@atproto/api@^0.12.10": + version "0.12.10" + resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.12.10.tgz#a745f0e9a273a8e42d208e6d7f91535b73619720" + integrity sha512-WhZXvtVENdWSqfiPKiVIjX84r1zFnpEKApyh8rBjxBzGstWfabiz7bKW2eybZNHMty1IyFHwMHaLXPruoSJlHQ== dependencies: "@atproto/common-web" "^0.3.0" "@atproto/lexicon" "^0.4.0" @@ -58,18 +58,6 @@ multiformats "^9.9.0" tlds "^1.234.0" -"@atproto/api@^0.12.9": - version "0.12.9" - resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.12.9.tgz#5ae040980e574a5d9496368c4ca032c0cda174ec" - integrity sha512-3D4n2ZAAsDRnjevvcoIxQxuMMoqc+7vtVyP7EnrEdeOmRSCF9j8yXTqhn6rcHCbzcs3DKyYR26nQemtZsMsE0g== - dependencies: - "@atproto/common-web" "^0.3.0" - "@atproto/lexicon" "^0.4.0" - "@atproto/syntax" "^0.3.0" - "@atproto/xrpc" "^0.5.0" - multiformats "^9.9.0" - tlds "^1.234.0" - "@atproto/aws@^0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@atproto/aws/-/aws-0.2.0.tgz#17f3faf744824457cabd62f87be8bf08cacf8029" From bffb9b590672c1e636083bdf9873f5cd8ab97b57 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 14 May 2024 17:41:20 +0100 Subject: [PATCH 047/277] =?UTF-8?q?[=F0=9F=90=B4]=20Chat=20muted=20state?= =?UTF-8?q?=20(#3988)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * separate out chatlistitem and add muted icon * move bell icon to the right of the timeelapsed --- .../icons/bellOff_filled_corner0_rounded.svg | 1 + .../icons/bellOff_stroke2_corner0_rounded.svg | 1 + src/components/icons/Bell2.tsx | 8 + src/screens/Messages/List/ChatListItem.tsx | 209 ++++++++++++++++++ src/screens/Messages/List/index.tsx | 187 +--------------- 5 files changed, 222 insertions(+), 184 deletions(-) create mode 100644 assets/icons/bellOff_filled_corner0_rounded.svg create mode 100644 assets/icons/bellOff_stroke2_corner0_rounded.svg create mode 100644 src/screens/Messages/List/ChatListItem.tsx diff --git a/assets/icons/bellOff_filled_corner0_rounded.svg b/assets/icons/bellOff_filled_corner0_rounded.svg new file mode 100644 index 0000000000..4c6997a709 --- /dev/null +++ b/assets/icons/bellOff_filled_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/bellOff_stroke2_corner0_rounded.svg b/assets/icons/bellOff_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..0ed4910d4b --- /dev/null +++ b/assets/icons/bellOff_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/src/components/icons/Bell2.tsx b/src/components/icons/Bell2.tsx index 084445b1d1..f3d46d09dc 100644 --- a/src/components/icons/Bell2.tsx +++ b/src/components/icons/Bell2.tsx @@ -7,3 +7,11 @@ export const Bell2_Stroke2_Corner0_Rounded = createSinglePathSVG({ export const Bell2_Filled_Corner0_Rounded = createSinglePathSVG({ path: 'M12 2a7.307 7.307 0 0 0-7.298 6.943l-.19 3.798-1.321 2.641A1.809 1.809 0 0 0 4.809 18H7.1a5.002 5.002 0 0 0 9.8 0h2.291a1.809 1.809 0 0 0 1.618-2.618l-1.32-2.641-.19-3.798A7.308 7.308 0 0 0 12 2Zm0 18a3.001 3.001 0 0 1-2.83-2h5.66A3.001 3.001 0 0 1 12 20Z', }) + +export const Bell2Off_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M2.293 2.293a1 1 0 0 1 1.414 0l18 18a1 1 0 0 1-1.414 1.414L17.586 19h-.94c-.904 1.748-2.607 3-4.646 3-2.039 0-3.742-1.252-4.646-3H4a1 1 0 0 1-.991-1.132l1.207-9.053c.116-.87.372-1.69.743-2.442L2.293 3.707a1 1 0 0 1 0-1.414Zm4.19 5.604c-.134.376-.23.772-.285 1.183L5.142 17h10.444L6.483 7.897ZM9.778 19c.61.637 1.399 1 2.222 1s1.613-.363 2.222-1H9.778ZM8.834 2.666a7.853 7.853 0 0 1 10.95 6.15l.645 4.832a1 1 0 0 1-1.983.265l-.644-4.833A5.853 5.853 0 0 0 9.64 4.495a1 1 0 0 1-.807-1.83Z', +}) + +export const Bell2Off_Filled_Corner0_Rounded = createSinglePathSVG({ + path: 'm19.785 8.815 1.034 7.761L7.595 3.352a7.853 7.853 0 0 1 12.19 5.463ZM4 19h3.354c.904 1.748 2.607 3 4.646 3 2.038 0 3.742-1.252 4.646-3h.94l2.707 2.707a1 1 0 0 0 1.414-1.414l-18-18a1 1 0 0 0-1.414 1.414l2.666 2.666a7.842 7.842 0 0 0-.743 2.442l-1.207 9.053A1 1 0 0 0 4 19Zm8 1c-.823 0-1.613-.363-2.222-1h4.443c-.608.637-1.398 1-2.221 1Z', +}) diff --git a/src/screens/Messages/List/ChatListItem.tsx b/src/screens/Messages/List/ChatListItem.tsx new file mode 100644 index 0000000000..13706472f1 --- /dev/null +++ b/src/screens/Messages/List/ChatListItem.tsx @@ -0,0 +1,209 @@ +import React from 'react' +import {View} from 'react-native' +import {ChatBskyConvoDefs} from '@atproto-labs/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' + +import {NavigationProp} from '#/lib/routes/types' +import {isNative} from '#/platform/detection' +import {useSession} from '#/state/session' +import {TimeElapsed} from '#/view/com/util/TimeElapsed' +import {UserAvatar} from '#/view/com/util/UserAvatar' +import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' +import {Button} from '#/components/Button' +import {ConvoMenu} from '#/components/dms/ConvoMenu' +import {Bell2Off_Filled_Corner0_Rounded as BellStroke} from '#/components/icons/Bell2' +import {useMenuControl} from '#/components/Menu' +import {Text} from '#/components/Typography' + +export function ChatListItem({ + convo, + index, +}: { + convo: ChatBskyConvoDefs.ConvoView + index: number +}) { + const t = useTheme() + const {_} = useLingui() + const {currentAccount} = useSession() + const menuControl = useMenuControl() + const {gtMobile} = useBreakpoints() + + let lastMessage = _(msg`No messages yet`) + let lastMessageSentAt: string | null = null + if (ChatBskyConvoDefs.isMessageView(convo.lastMessage)) { + if (convo.lastMessage.sender?.did === currentAccount?.did) { + lastMessage = _(msg`You: ${convo.lastMessage.text}`) + } else { + lastMessage = convo.lastMessage.text + } + lastMessageSentAt = convo.lastMessage.sentAt + } + if (ChatBskyConvoDefs.isDeletedMessageView(convo.lastMessage)) { + lastMessage = _(msg`Message deleted`) + } + + const otherUser = convo.members.find( + member => member.did !== currentAccount?.did, + ) + + const navigation = useNavigation() + const [showActions, setShowActions] = React.useState(false) + + const onMouseEnter = React.useCallback(() => { + setShowActions(true) + }, []) + + const onMouseLeave = React.useCallback(() => { + setShowActions(false) + }, []) + + const onFocus = React.useCallback(e => { + if (e.nativeEvent.relatedTarget == null) return + setShowActions(true) + }, []) + + const onPress = React.useCallback(() => { + navigation.push('MessagesConversation', { + conversation: convo.id, + }) + }, [convo.id, navigation]) + + if (!otherUser) { + return null + } + + return ( + + + + ) +} diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index b9ce8f2517..05559b7d19 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -3,28 +3,22 @@ import {View} from 'react-native' import {ChatBskyConvoDefs} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' import {NativeStackScreenProps} from '@react-navigation/native-stack' import {sha256} from 'js-sha256' import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' -import {MessagesTabNavigatorParams, NavigationProp} from '#/lib/routes/types' +import {MessagesTabNavigatorParams} from '#/lib/routes/types' import {useGate} from '#/lib/statsig/statsig' import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' -import {isNative} from '#/platform/detection' import {useListConvos} from '#/state/queries/messages/list-converations' -import {useSession} from '#/state/session' import {List} from '#/view/com/util/List' -import {TimeElapsed} from '#/view/com/util/TimeElapsed' -import {UserAvatar} from '#/view/com/util/UserAvatar' import {ViewHeader} from '#/view/com/util/ViewHeader' import {CenteredView} from '#/view/com/util/Views' import {ScrollView} from '#/view/com/util/Views' -import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {DialogControlProps, useDialogControl} from '#/components/Dialog' -import {ConvoMenu} from '#/components/dms/ConvoMenu' import {NewChat} from '#/components/dms/NewChat' import * as TextField from '#/components/forms/TextField' import {useRefreshOnFocus} from '#/components/hooks/useRefreshOnFocus' @@ -32,10 +26,10 @@ import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus import {SettingsSliderVertical_Stroke2_Corner0_Rounded as SettingsSlider} from '#/components/icons/SettingsSlider' import {Link} from '#/components/Link' import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' -import {useMenuControl} from '#/components/Menu' import {Text} from '#/components/Typography' import {ClipClopGate} from '../gate' import {useDmServiceUrlStorage} from '../Temp/useDmServiceUrlStorage' +import {ChatListItem} from './ChatListItem' type Props = NativeStackScreenProps @@ -255,181 +249,6 @@ export function MessagesScreen({navigation, route}: Props) { ) } -function ChatListItem({ - convo, - index, -}: { - convo: ChatBskyConvoDefs.ConvoView - index: number -}) { - const t = useTheme() - const {_} = useLingui() - const {currentAccount} = useSession() - const menuControl = useMenuControl() - const {gtMobile} = useBreakpoints() - - let lastMessage = _(msg`No messages yet`) - let lastMessageSentAt: string | null = null - if (ChatBskyConvoDefs.isMessageView(convo.lastMessage)) { - if (convo.lastMessage.sender?.did === currentAccount?.did) { - lastMessage = _(msg`You: ${convo.lastMessage.text}`) - } else { - lastMessage = convo.lastMessage.text - } - lastMessageSentAt = convo.lastMessage.sentAt - } - if (ChatBskyConvoDefs.isDeletedMessageView(convo.lastMessage)) { - lastMessage = _(msg`Message deleted`) - } - - const otherUser = convo.members.find( - member => member.did !== currentAccount?.did, - ) - - const navigation = useNavigation() - const [showActions, setShowActions] = React.useState(false) - - const onMouseEnter = React.useCallback(() => { - setShowActions(true) - }, []) - - const onMouseLeave = React.useCallback(() => { - setShowActions(false) - }, []) - - const onFocus = React.useCallback(e => { - if (e.nativeEvent.relatedTarget == null) return - setShowActions(true) - }, []) - - const onPress = React.useCallback(() => { - navigation.push('MessagesConversation', { - conversation: convo.id, - }) - }, [convo.id, navigation]) - - if (!otherUser) { - return null - } - - return ( - - - - ) -} - function DesktopHeader({ newChatControl, onNavigateToSettings, From 1c51a48764e4145679198f68368713410e28c8da Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 14 May 2024 11:59:53 -0500 Subject: [PATCH 048/277] =?UTF-8?q?[=F0=9F=90=B4]=20Make=20status=20checks?= =?UTF-8?q?=20easier,=20fix=20load=20state=20(#4010)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Make status checks easier, fix load state * Make naming more clear * Split up types for easier re-use * Replace hacky usage --- src/components/dms/MessageMenu.tsx | 7 +- .../Messages/Conversation/MessagesList.tsx | 18 +- src/screens/Messages/Conversation/index.tsx | 14 +- src/state/messages/convo/index.tsx | 32 +++- src/state/messages/convo/types.ts | 162 +++++++++--------- src/state/messages/convo/util.ts | 22 +++ 6 files changed, 154 insertions(+), 101 deletions(-) create mode 100644 src/state/messages/convo/util.ts diff --git a/src/components/dms/MessageMenu.tsx b/src/components/dms/MessageMenu.tsx index 3349b2ff89..55c3ac21b6 100644 --- a/src/components/dms/MessageMenu.tsx +++ b/src/components/dms/MessageMenu.tsx @@ -7,8 +7,7 @@ import {useLingui} from '@lingui/react' import {richTextToString} from '#/lib/strings/rich-text-helpers' import {isWeb} from 'platform/detection' -import {useConvo} from 'state/messages/convo' -import {ConvoStatus} from 'state/messages/convo/types' +import {useConvoActive} from 'state/messages/convo' import {useSession} from 'state/session' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' @@ -34,7 +33,7 @@ export let MessageMenu = ({ const {_} = useLingui() const t = useTheme() const {currentAccount} = useSession() - const convo = useConvo() + const convo = useConvoActive() const deleteControl = usePromptControl() const retryDeleteControl = usePromptControl() const reportControl = usePromptControl() @@ -55,8 +54,6 @@ export let MessageMenu = ({ }, [_, message.text, message.facets]) const onDelete = React.useCallback(() => { - if (convo.status !== ConvoStatus.Ready) return - LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) convo .deleteMessage(message.id) diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index 5ba82eeff9..dac534cd41 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -7,8 +7,8 @@ import {AppBskyRichtextFacet, RichText} from '@atproto/api' import {shortenLinks} from '#/lib/strings/rich-text-manip' import {isNative} from '#/platform/detection' -import {useConvo} from '#/state/messages/convo' -import {ConvoItem, ConvoStatus} from '#/state/messages/convo/types' +import {useConvoActive} from '#/state/messages/convo' +import {ConvoItem} from '#/state/messages/convo/types' import {useAgent} from '#/state/session' import {ScrollProvider} from 'lib/ScrollContext' import {isWeb} from 'platform/detection' @@ -60,7 +60,7 @@ function onScrollToIndexFailed() { } export function MessagesList() { - const convo = useConvo() + const convo = useConvoActive() const {getAgent} = useAgent() const flatListRef = useRef(null) @@ -128,7 +128,7 @@ export function MessagesList() { // The check for `hasInitiallyScrolled` prevents an initial fetch on mount. FlatList triggers `onStartReached` // immediately on mount, since we are in fact at an offset of zero, so we have to ignore those initial calls. const onStartReached = useCallback(() => { - if (convo.status === ConvoStatus.Ready && hasInitiallyScrolled.value) { + if (hasInitiallyScrolled.value) { convo.fetchMessageHistory() } }, [convo, hasInitiallyScrolled]) @@ -150,12 +150,10 @@ export function MessagesList() { return true }) - if (convo.status === ConvoStatus.Ready) { - convo.sendMessage({ - text: rt.text, - facets: rt.facets, - }) - } + convo.sendMessage({ + text: rt.text, + facets: rt.facets, + }) }, [convo, getAgent], ) diff --git a/src/screens/Messages/Conversation/index.tsx b/src/screens/Messages/Conversation/index.tsx index a783a0bd6d..01c205ac82 100644 --- a/src/screens/Messages/Conversation/index.tsx +++ b/src/screens/Messages/Conversation/index.tsx @@ -15,7 +15,7 @@ import {useGate} from '#/lib/statsig/statsig' import {useCurrentConvoId} from '#/state/messages/current-convo-id' import {BACK_HITSLOP} from 'lib/constants' import {isIOS, isWeb} from 'platform/detection' -import {ConvoProvider, useConvo} from 'state/messages/convo' +import {ConvoProvider, isConvoActive, useConvo} from 'state/messages/convo' import {ConvoStatus} from 'state/messages/convo/types' import {PreviewableUserAvatar} from 'view/com/util/UserAvatar' import {CenteredView} from 'view/com/util/Views' @@ -72,14 +72,14 @@ function Inner() { React.useEffect(() => { if ( !hasInitiallyRendered && - convoState.status === ConvoStatus.Ready && + isConvoActive(convoState) && !convoState.isFetchingHistory ) { setTimeout(() => { setHasInitiallyRendered(true) }, 15) } - }, [convoState.isFetchingHistory, convoState.status, hasInitiallyRendered]) + }, [convoState, hasInitiallyRendered]) if (convoState.status === ConvoStatus.Error) { return ( @@ -108,10 +108,10 @@ function Inner() {
- {convoState.status !== ConvoStatus.Ready ? ( - - ) : ( + {isConvoActive(convoState) ? ( + ) : ( + )} {!hasInitiallyRendered && ( )} - {convoState.status === ConvoStatus.Ready && profile ? ( + {isConvoActive(convoState) && profile ? ( (null) export function useConvo() { @@ -18,6 +27,27 @@ export function useConvo() { return ctx } +/** + * This hook should only be used when the Convo is "active", meaning the chat + * is loaded and ready to be used, or its in a suspended or background state, + * and ready for resumption. + */ +export function useConvoActive() { + const ctx = useContext(ChatContext) as + | ConvoStateReady + | ConvoStateBackgrounded + | ConvoStateSuspended + if (!ctx) { + throw new Error('useConvo must be used within a ConvoProvider') + } + if (!isConvoActive(ctx)) { + throw new Error( + `useConvoActive must only be rendered when the Convo is ready.`, + ) + } + return ctx +} + export function ConvoProvider({ children, convoId, diff --git a/src/state/messages/convo/types.ts b/src/state/messages/convo/types.ts index 4615acc2d9..6ce4d40bd6 100644 --- a/src/state/messages/convo/types.ts +++ b/src/state/messages/convo/types.ts @@ -107,82 +107,88 @@ export type ConvoItem = retry: () => void } +type DeleteMessage = (messageId: string) => Promise +type SendMessage = ( + message: ChatBskyConvoSendMessage.InputSchema['message'], +) => Promise +type FetchMessageHistory = () => Promise + +export type ConvoStateUninitialized = { + status: ConvoStatus.Uninitialized + items: [] + convo: undefined + error: undefined + sender: undefined + recipients: undefined + isFetchingHistory: false + deleteMessage: undefined + sendMessage: undefined + fetchMessageHistory: undefined +} +export type ConvoStateInitializing = { + status: ConvoStatus.Initializing + items: [] + convo: undefined + error: undefined + sender: undefined + recipients: undefined + isFetchingHistory: boolean + deleteMessage: undefined + sendMessage: undefined + fetchMessageHistory: undefined +} +export type ConvoStateReady = { + status: ConvoStatus.Ready + items: ConvoItem[] + convo: ChatBskyConvoDefs.ConvoView + error: undefined + sender: AppBskyActorDefs.ProfileViewBasic + recipients: AppBskyActorDefs.ProfileViewBasic[] + isFetchingHistory: boolean + deleteMessage: DeleteMessage + sendMessage: SendMessage + fetchMessageHistory: FetchMessageHistory +} +export type ConvoStateBackgrounded = { + status: ConvoStatus.Backgrounded + items: ConvoItem[] + convo: ChatBskyConvoDefs.ConvoView + error: undefined + sender: AppBskyActorDefs.ProfileViewBasic + recipients: AppBskyActorDefs.ProfileViewBasic[] + isFetchingHistory: boolean + deleteMessage: DeleteMessage + sendMessage: SendMessage + fetchMessageHistory: FetchMessageHistory +} +export type ConvoStateSuspended = { + status: ConvoStatus.Suspended + items: ConvoItem[] + convo: ChatBskyConvoDefs.ConvoView + error: undefined + sender: AppBskyActorDefs.ProfileViewBasic + recipients: AppBskyActorDefs.ProfileViewBasic[] + isFetchingHistory: boolean + deleteMessage: DeleteMessage + sendMessage: SendMessage + fetchMessageHistory: FetchMessageHistory +} +export type ConvoStateError = { + status: ConvoStatus.Error + items: [] + convo: undefined + error: any + sender: undefined + recipients: undefined + isFetchingHistory: false + deleteMessage: undefined + sendMessage: undefined + fetchMessageHistory: undefined +} export type ConvoState = - | { - status: ConvoStatus.Uninitialized - items: [] - convo: undefined - error: undefined - sender: undefined - recipients: undefined - isFetchingHistory: false - deleteMessage: undefined - sendMessage: undefined - fetchMessageHistory: undefined - } - | { - status: ConvoStatus.Initializing - items: [] - convo: undefined - error: undefined - sender: undefined - recipients: undefined - isFetchingHistory: boolean - deleteMessage: undefined - sendMessage: undefined - fetchMessageHistory: undefined - } - | { - status: ConvoStatus.Ready - items: ConvoItem[] - convo: ChatBskyConvoDefs.ConvoView - error: undefined - sender: AppBskyActorDefs.ProfileViewBasic - recipients: AppBskyActorDefs.ProfileViewBasic[] - isFetchingHistory: boolean - deleteMessage: (messageId: string) => Promise - sendMessage: ( - message: ChatBskyConvoSendMessage.InputSchema['message'], - ) => void - fetchMessageHistory: () => void - } - | { - status: ConvoStatus.Suspended - items: ConvoItem[] - convo: ChatBskyConvoDefs.ConvoView - error: undefined - sender: AppBskyActorDefs.ProfileViewBasic - recipients: AppBskyActorDefs.ProfileViewBasic[] - isFetchingHistory: boolean - deleteMessage: (messageId: string) => Promise - sendMessage: ( - message: ChatBskyConvoSendMessage.InputSchema['message'], - ) => Promise - fetchMessageHistory: () => Promise - } - | { - status: ConvoStatus.Backgrounded - items: ConvoItem[] - convo: ChatBskyConvoDefs.ConvoView - error: undefined - sender: AppBskyActorDefs.ProfileViewBasic - recipients: AppBskyActorDefs.ProfileViewBasic[] - isFetchingHistory: boolean - deleteMessage: (messageId: string) => Promise - sendMessage: ( - message: ChatBskyConvoSendMessage.InputSchema['message'], - ) => Promise - fetchMessageHistory: () => Promise - } - | { - status: ConvoStatus.Error - items: [] - convo: undefined - error: any - sender: undefined - recipients: undefined - isFetchingHistory: false - deleteMessage: undefined - sendMessage: undefined - fetchMessageHistory: undefined - } + | ConvoStateUninitialized + | ConvoStateInitializing + | ConvoStateReady + | ConvoStateBackgrounded + | ConvoStateSuspended + | ConvoStateError diff --git a/src/state/messages/convo/util.ts b/src/state/messages/convo/util.ts new file mode 100644 index 0000000000..ffaa4104a7 --- /dev/null +++ b/src/state/messages/convo/util.ts @@ -0,0 +1,22 @@ +import { + ConvoState, + ConvoStateBackgrounded, + ConvoStateReady, + ConvoStateSuspended, + ConvoStatus, +} from './types' + +/** + * Checks if a `Convo` has a `status` that is "active", meaning the chat is + * loaded and ready to be used, or its in a suspended or background state, and + * ready for resumption. + */ +export function isConvoActive( + convo: ConvoState, +): convo is ConvoStateReady | ConvoStateBackgrounded | ConvoStateSuspended { + return ( + convo.status === ConvoStatus.Ready || + convo.status === ConvoStatus.Backgrounded || + convo.status === ConvoStatus.Suspended + ) +} From d7f1b2a5dfd91f86639c1ecbd75b66c47e09edac Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 14 May 2024 12:20:12 -0500 Subject: [PATCH 049/277] Fix dep (#4011) --- src/screens/Messages/List/ChatListItem.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/screens/Messages/List/ChatListItem.tsx b/src/screens/Messages/List/ChatListItem.tsx index 13706472f1..f7d115ed0b 100644 --- a/src/screens/Messages/List/ChatListItem.tsx +++ b/src/screens/Messages/List/ChatListItem.tsx @@ -1,6 +1,6 @@ import React from 'react' import {View} from 'react-native' -import {ChatBskyConvoDefs} from '@atproto-labs/api' +import {ChatBskyConvoDefs} from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' From d515985fdd81db255b3160d8ee6c25cd0586ded5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Be=C3=A0?= Date: Tue, 14 May 2024 19:48:47 +0200 Subject: [PATCH 050/277] Update catalan messages.po (#3984) * Update catalan messages.po New lines update You can check it @jordimas @darccio @ferranrego @MiquelAdell @johnnydement @surfdude29 * Update messages.po apply @surfdude29 corrections --- src/locale/locales/ca/messages.po | 172 +++++++++++++++--------------- 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/src/locale/locales/ca/messages.po b/src/locale/locales/ca/messages.po index fa93c60865..f67d106683 100644 --- a/src/locale/locales/ca/messages.po +++ b/src/locale/locales/ca/messages.po @@ -22,7 +22,7 @@ msgstr "(sense correu)" #: src/view/com/notifications/FeedItem.tsx:239 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" -msgstr "" +msgstr "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" #: src/view/shell/desktop/RightNav.tsx:168 #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" @@ -30,53 +30,53 @@ msgstr "" #: src/components/moderation/LabelsOnMe.tsx:57 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" -msgstr "" +msgstr "{0, plural, one {# etiqueta s'ha aplicat a aquest compte} other {# etiquetes s'han aplicat a aquest compte}}" #: src/components/moderation/LabelsOnMe.tsx:63 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" -msgstr "" +msgstr "{0, plural, one {# etiqueta s'ha aplicat a aquest contingut} other {# etiquetes s'han aplicat a aquest contingut}}" #: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, one {# republicació} other {# republicacions}}" #: src/components/ProfileHoverCard/index.web.tsx:373 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" -msgstr "" +msgstr "{0, plural, one {seguidor} other {seguidors}}" #: src/components/ProfileHoverCard/index.web.tsx:377 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" -msgstr "" +msgstr "{0, plural, one {seguint} other {seguint}}" #: src/view/com/util/post-ctrls/PostCtrls.tsx:245 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" -msgstr "" +msgstr "{0, plural, one {Like (# m'agrada)} other {Like (# m'agrades)}}" #: src/view/com/post-thread/PostThreadItem.tsx:359 msgid "{0, plural, one {like} other {likes}}" -msgstr "" +msgstr "{0, plural, one {m'agrada} other {m'agrades}}" #: src/view/com/feeds/FeedSourceCard.tsx:267 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{0, plural, one {Li ha agradat a # user} other {Li ha agradat a # users}}" #: src/screens/Profile/Header/Metrics.tsx:59 msgid "{0, plural, one {post} other {posts}}" -msgstr "" +msgstr "{0, plural, one {publicació} other {publicacions}}" #: src/view/com/util/post-ctrls/PostCtrls.tsx:204 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" -msgstr "" +msgstr "{0, plural, one {Resposta per (# reply)} other {Resposta per (# replies)}}" #: src/view/com/post-thread/PostThreadItem.tsx:339 msgid "{0, plural, one {repost} other {reposts}}" -msgstr "" +msgstr "{0, plural, one {republicació} other {republicacions}}" #: src/view/com/util/post-ctrls/PostCtrls.tsx:241 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" -msgstr "" +msgstr "{0, plural, one {Desmarca m'agrada (# like)} other {Desmarca m'agrada (# likes)}}" #: src/view/com/modals/Repost.tsx:44 #~ msgid "{0}" @@ -88,15 +88,15 @@ msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{count, plural, one {Li ha agradat a # user} other {Li ha agradat a # users}}" #: src/screens/Deactivated.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" -msgstr "" +msgstr "{estimatedTimeHrs, plural, one {hora} other {hores}}" #: src/screens/Deactivated.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" -msgstr "" +msgstr "{estimatedTimeMins, plural, one {minut} other {minuts}}" #: src/components/ProfileHoverCard/index.web.tsx:454 #: src/screens/Profile/Header/Metrics.tsx:50 @@ -121,11 +121,11 @@ msgstr "{following} seguint" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 #: src/view/screens/ProfileFeed.tsx:604 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{likeCount, plural, one {Li ha agradat a # user} other {Li ha agradat a # users}}" #: src/view/screens/Search/Search.tsx:87 #~ msgid "{message}" -#~ msgstr "{message}" +#~ msgstr "{missatge}" #: src/view/shell/Drawer.tsx:464 msgid "{numUnreadNotifications} unread" @@ -133,7 +133,7 @@ msgstr "{numUnreadNotifications} no llegides" #: src/view/screens/PreferencesFollowingFeed.tsx:66 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" -msgstr "" +msgstr "{value, plural, =0 {Mostra totes les respostes} one {Mostra les respostes amb almenys # m'agrada} other {Mostra les respostes amb almenys # m'agrades}}" #: src/view/com/threadgate/WhoCanReply.tsx:159 msgid "<0/> members" @@ -141,11 +141,11 @@ msgstr "<0/> membres" #: src/view/shell/Drawer.tsx:92 msgid "<0>{0} {1, plural, one {follower} other {followers}}" -msgstr "" +msgstr "<0>{0} {1, plural, one {seguidor} other {seguidors}}" #: src/view/shell/Drawer.tsx:103 msgid "<0>{0} {1, plural, one {following} other {following}}" -msgstr "" +msgstr "<0>{0} {1, plural, one {seguint} other {seguint}}" #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" @@ -170,7 +170,7 @@ msgstr "" #: src/view/com/modals/SelfLabel.tsx:134 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>No aplicable. Aquesta advertència només està disponible per publicacions amb contingut adjunt." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 #~ msgid "<0>Welcome to<1>Bluesky" @@ -298,7 +298,7 @@ msgstr "Afegeix text alternatiu" #: src/view/com/composer/GifAltText.tsx:175 msgid "Add ALT text" -msgstr "" +msgstr "Afegeix text alternatiu" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -407,7 +407,7 @@ msgstr "Text alternatiu" #: src/view/com/util/post-embeds/GifEmbed.tsx:179 msgid "Alt Text" -msgstr "" +msgstr "Text alternatiu" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." @@ -428,7 +428,7 @@ msgstr "Hi ha hagut un error" #: src/components/dms/MessageMenu.tsx:132 msgid "An error occurred while trying to delete the message. Please try again." -msgstr "" +msgstr "Hi ha hagut un error intentant esborrar el missatge. Torna-ho a provar." #: src/lib/moderation/useReportOptions.ts:26 msgid "An issue not included in these options" @@ -445,7 +445,7 @@ msgstr "Hi ha hagut un problema, prova-ho de nou." #: src/screens/Onboarding/StepInterests/index.tsx:194 msgid "an unknown error occurred" -msgstr "" +msgstr "hi ha hagut un problema desconegut" #: src/view/com/notifications/FeedItem.tsx:236 #: src/view/com/threadgate/WhoCanReply.tsx:180 @@ -517,7 +517,7 @@ msgstr "Apel·la \"{0}\" etiqueta" #: src/components/moderation/LabelsOnMeDialog.tsx:193 msgid "Appeal submitted" -msgstr "" +msgstr "Apel·lació enviada" #: src/components/moderation/LabelsOnMeDialog.tsx:193 #~ msgid "Appeal submitted." @@ -541,11 +541,11 @@ msgstr "Confirmes que vols eliminar la contrasenya de l'aplicació \"{name}\"?" #: src/components/dms/MessageMenu.tsx:121 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." -msgstr "" +msgstr "Estàs segur que vols esborrar aquest missatge? El missatge s'esborrarà per a tu, però no per als altres participants." #: src/components/dms/ConvoMenu.tsx:173 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." -msgstr "" +msgstr "Estàs segur que vols abandonar aquesta conversa? El missatge s'esborrarà per a tu, però no per als altres participants." #: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Are you sure you want to remove {0} from your feeds?" @@ -625,7 +625,7 @@ msgstr "Bloqueja" #: src/components/dms/ConvoMenu.tsx:135 #: src/components/dms/ConvoMenu.tsx:139 msgid "Block account" -msgstr "" +msgstr "Bloqueja el compte" #: src/view/com/profile/ProfileMenu.tsx:300 #: src/view/com/profile/ProfileMenu.tsx:307 @@ -768,7 +768,7 @@ msgstr "Per {0}" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 msgid "by @{0}" -msgstr "" +msgstr "per @{0}" #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" @@ -911,16 +911,16 @@ msgstr "Xat" #: src/components/dms/ConvoMenu.tsx:55 msgid "Chat muted" -msgstr "" +msgstr "Xat silenciat" #: src/components/dms/ConvoMenu.tsx:87 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" -msgstr "" +msgstr "Configuració del xat" #: src/components/dms/ConvoMenu.tsx:65 msgid "Chat unmuted" -msgstr "" +msgstr "Xat no silenciat" #: src/screens/Messages/Conversation/index.tsx:26 #~ msgid "Chat with {chatId}" @@ -1323,7 +1323,7 @@ msgstr "Copia l'enllaç a la publicació" #: src/components/dms/MessageMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:91 msgid "Copy message text" -msgstr "" +msgstr "Copia el text del missatge" #: src/view/com/util/forms/PostDropdownBtn.tsx:256 #: src/view/com/util/forms/PostDropdownBtn.tsx:258 @@ -1337,27 +1337,27 @@ msgstr "Política de drets d'autor" #: src/components/dms/ConvoMenu.tsx:79 msgid "Could not leave chat" -msgstr "" +msgstr "No s'ha pogut sortir del xat" #: src/view/screens/ProfileFeed.tsx:103 msgid "Could not load feed" -msgstr "No es pot carregar el canal" +msgstr "No s'ha pogut carregar el canal" #: src/view/screens/ProfileList.tsx:903 msgid "Could not load list" -msgstr "No es pot carregar la llista" +msgstr "No s'ha pogut carregar la llista" #: src/components/dms/NewChat.tsx:241 msgid "Could not load profiles. Please try again later." -msgstr "" +msgstr "No es poden carregar el perfils. Prova-ho més tard." #: src/components/dms/ConvoMenu.tsx:58 msgid "Could not mute chat" -msgstr "" +msgstr "No s'ha pogut silenciar el xat" #: src/components/dms/ConvoMenu.tsx:68 msgid "Could not unmute chat" -msgstr "" +msgstr "No s'ha pogut deixar de silenciar el xat" #: src/view/com/auth/create/Step2.tsx:91 #~ msgid "Country" @@ -1478,7 +1478,7 @@ msgstr "Elimina el compte" #: src/view/com/modals/DeleteAccount.tsx:87 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "Elimina el compte <0>\"<1>{0}<2>\"" #: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" @@ -1490,7 +1490,7 @@ msgstr "Vols eliminar la contrasenya d'aplicació?" #: src/components/dms/MessageMenu.tsx:101 msgid "Delete for me" -msgstr "" +msgstr "Elimina-ho per mi" #: src/view/screens/ProfileList.tsx:417 msgid "Delete List" @@ -1498,11 +1498,11 @@ msgstr "Elimina la llista" #: src/components/dms/MessageMenu.tsx:119 msgid "Delete message" -msgstr "" +msgstr "Elimina el missatge" #: src/components/dms/MessageMenu.tsx:99 msgid "Delete message for me" -msgstr "" +msgstr "Elimina el missatge per mi" #: src/view/com/modals/DeleteAccount.tsx:223 msgid "Delete my account" @@ -1546,7 +1546,7 @@ msgstr "Descripció" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "Text alternatiu descriptiu" #: src/view/com/auth/create/Step1.tsx:96 #~ msgid "Dev Server" @@ -2063,7 +2063,7 @@ msgstr "No s'ha pogut crear la llista. Comprova la teva connexió a internet i t #: src/components/dms/MessageMenu.tsx:130 msgid "Failed to delete message" -msgstr "" +msgstr "No s'ha pogut esborrar el missatge" #: src/view/com/util/forms/PostDropdownBtn.tsx:139 msgid "Failed to delete post, please try again" @@ -2075,7 +2075,7 @@ msgstr "No s'han pogut carregar els GIF" #: src/screens/Messages/Conversation/MessageListError.tsx:21 msgid "Failed to load past messages." -msgstr "" +msgstr "No s'han pogut carregar els missatges anteriors." #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:110 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:143 @@ -2399,11 +2399,11 @@ msgstr "Ves al següent" #: src/components/dms/ConvoMenu.tsx:114 msgid "Go to profile" -msgstr "" +msgstr "Ves al perfil" #: src/components/dms/ConvoMenu.tsx:111 msgid "Go to user's profile" -msgstr "" +msgstr "Ves al perfil de l'usuari" #: src/lib/moderation/useGlobalLabelStrings.ts:46 msgid "Graphic Media" @@ -2836,13 +2836,13 @@ msgstr "Més informació." #: src/components/dms/ConvoMenu.tsx:175 msgid "Leave" -msgstr "" +msgstr "Surt" #: src/components/dms/ConvoMenu.tsx:158 #: src/components/dms/ConvoMenu.tsx:161 #: src/components/dms/ConvoMenu.tsx:171 msgid "Leave conversation" -msgstr "" +msgstr "Surt de la conversa" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." @@ -3069,7 +3069,7 @@ msgstr "Menú" #: src/components/dms/MessageMenu.tsx:56 #: src/screens/Messages/List/index.tsx:245 msgid "Message deleted" -msgstr "" +msgstr "Missatge esborrat" #: src/view/com/posts/FeedErrorMessage.tsx:194 #~ msgid "Message from server" @@ -3081,7 +3081,7 @@ msgstr "Missatge del servidor: {0}" #: src/screens/Messages/Conversation/MessageInput.tsx:79 msgid "Message input field" -msgstr "" +msgstr "Camp d'entrada del missatge" #: src/screens/Messages/List/index.tsx:62 #: src/screens/Messages/List/index.tsx:374 @@ -3228,7 +3228,7 @@ msgstr "Silencia la llista" #: src/components/dms/ConvoMenu.tsx:119 #: src/components/dms/ConvoMenu.tsx:125 msgid "Mute notifications" -msgstr "" +msgstr "Silencia les notificacions" #: src/view/screens/ProfileList.tsx:615 msgid "Mute these accounts?" @@ -3378,7 +3378,7 @@ msgstr "Nova" #: src/screens/Messages/List/index.tsx:384 #: src/screens/Messages/List/index.tsx:392 msgid "New chat" -msgstr "" +msgstr "Xat nou" #: src/view/com/modals/CreateOrEditList.tsx:255 msgid "New Moderation List" @@ -3482,7 +3482,7 @@ msgstr "No pot tenir més de 253 caràcters" #: src/screens/Messages/List/index.tsx:174 #: src/screens/Messages/List/index.tsx:234 msgid "No messages yet" -msgstr "" +msgstr "Encara no tens cap missatge" #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" @@ -3513,7 +3513,7 @@ msgstr "No s'han trobat resultats de cerca per a \"{search}\"." #: src/components/dms/NewChat.tsx:240 msgid "No search results found for \"{searchText}\"." -msgstr "" +msgstr "No s'han trobat resultats de cerca per a \"{searchText}\"." #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 @@ -3569,7 +3569,7 @@ msgstr "Notificacions" #: src/components/dms/MessageItem.tsx:139 msgid "Now" -msgstr "" +msgstr "Ara" #: src/view/com/modals/SelfLabel.tsx:103 msgid "Nudity" @@ -4017,7 +4017,7 @@ msgstr "Explica per què creieu que aquesta etiqueta ha estat aplicada incorrect #: src/lib/hooks/useAccountSwitcher.ts:48 msgid "Please sign in as @{0}" -msgstr "" +msgstr "Inicia sessió com a @{0}" #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 @@ -4139,7 +4139,7 @@ msgstr "Prem per a tornar-ho a provar" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 msgid "Press to Retry" -msgstr "" +msgstr "Prem per a tornar-ho a provar" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -4377,7 +4377,7 @@ msgstr "Resposta a <0><1/>" #: src/components/dms/MessageMenu.tsx:109 msgid "Report" -msgstr "" +msgstr "Informa" #: src/view/com/modals/report/Modal.tsx:166 #~ msgid "Report {collectionName}" @@ -4386,7 +4386,7 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 msgid "Report account" -msgstr "" +msgstr "Informa del compte" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 @@ -4408,7 +4408,7 @@ msgstr "Informa de la llista" #: src/components/dms/MessageMenu.tsx:107 msgid "Report message" -msgstr "" +msgstr "Informa del missatge" #: src/view/com/util/forms/PostDropdownBtn.tsx:363 #: src/view/com/util/forms/PostDropdownBtn.tsx:365 @@ -4643,7 +4643,7 @@ msgstr "Canals desats" #: src/view/com/lightbox/Lightbox.tsx:81 msgid "Saved to your camera roll" -msgstr "" +msgstr "S'ha desat a la teva galeria d'imatges" #: src/view/com/lightbox/Lightbox.tsx:81 #~ msgid "Saved to your camera roll." @@ -4717,7 +4717,7 @@ msgstr "Cerca totes les publicacions amb l'etiqueta {displayTag}" #: src/components/dms/NewChat.tsx:226 msgid "Search for someone to start a conversation with." -msgstr "" +msgstr "Cerca algú amb qui començar una conversa." #: src/view/com/auth/LoggedOut.tsx:105 #: src/view/com/auth/LoggedOut.tsx:106 @@ -4731,7 +4731,7 @@ msgstr "Cerca GIF" #: src/components/dms/NewChat.tsx:183 msgid "Search profiles" -msgstr "" +msgstr "Cerca perfils" #: src/components/dialogs/GifSelect.tsx:159 msgid "Search Tenor" @@ -4901,7 +4901,7 @@ msgstr "Envia comentari" #: src/screens/Messages/Conversation/MessageInput.tsx:96 #: src/screens/Messages/Conversation/MessageInput.web.tsx:80 msgid "Send message" -msgstr "" +msgstr "Envia el missatge" #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 @@ -5113,7 +5113,7 @@ msgstr "Mostra" #: src/view/com/util/post-embeds/GifEmbed.tsx:167 msgid "Show alt text" -msgstr "" +msgstr "Mostra el text alternatiu" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 @@ -5140,7 +5140,7 @@ msgstr "Mostra seguidors semblants a {0}" #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" -msgstr "" +msgstr "Mostra'n menys com aquest" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 @@ -5151,7 +5151,7 @@ msgstr "Mostra més" #: src/view/com/util/forms/PostDropdownBtn.tsx:297 #: src/view/com/util/forms/PostDropdownBtn.tsx:299 msgid "Show more like this" -msgstr "" +msgstr "Mostra'n més com aquest" #: src/view/screens/PreferencesFollowingFeed.tsx:256 msgid "Show Posts from My Feeds" @@ -5386,7 +5386,7 @@ msgstr "Quadrat" #: src/components/dms/NewChat.tsx:178 msgid "Start a new chat" -msgstr "" +msgstr "Comença un nou xat" #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" @@ -5394,7 +5394,7 @@ msgstr "" #: src/view/screens/Settings/index.tsx:896 msgid "Status Page" -msgstr "" +msgstr "Pàgina d'estat" #: src/screens/Signup/index.tsx:145 #~ msgid "Step" @@ -5402,7 +5402,7 @@ msgstr "" #: src/screens/Signup/index.tsx:154 msgid "Step {0} of {1}" -msgstr "" +msgstr "Pas {0} de {1}" #: src/view/com/auth/create/StepHeader.tsx:22 #~ msgid "Step {0} of {numSteps}" @@ -5625,7 +5625,7 @@ msgstr "Hi ha hagut un problema per connectar amb Tenor." #: src/screens/Messages/Conversation/MessageListError.tsx:23 msgid "There was an issue connecting to the chat." -msgstr "" +msgstr "Hi ha hagut un problema per connectar al xat." #: src/view/screens/ProfileFeed.tsx:247 #: src/view/screens/ProfileList.tsx:277 @@ -5724,7 +5724,7 @@ msgstr "Aquesta apel·lació s'enviarà a <0>{0}." #: src/screens/Messages/Conversation/MessageListError.tsx:26 msgid "This chat was disconnected due to a network error." -msgstr "" +msgstr "Aquest xat s'ha desconnectat degut a un problema de xarxa." #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." @@ -5787,11 +5787,11 @@ msgstr "Això és important si mai necessites canviar el teu correu o restablir #: src/components/moderation/ModerationDetailsDialog.tsx:127 msgid "This label was applied by <0>{0}." -msgstr "" +msgstr "Aquesta etiqueta ha estat aplicada per <0>{0}." #: src/components/moderation/ModerationDetailsDialog.tsx:125 msgid "This label was applied by the author." -msgstr "" +msgstr "Aquesta etiqueta ha estat aplicada per l'autor." #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." @@ -5955,7 +5955,7 @@ msgstr "Autenticació de dos factors" #: src/screens/Messages/Conversation/MessageInput.tsx:80 msgid "Type your message here" -msgstr "" +msgstr "Escriu aquí el teu missatge" #: src/view/com/modals/ChangeHandle.tsx:429 msgid "Type:" @@ -6061,7 +6061,7 @@ msgstr "Deixa de silenciar totes les publicacions amb {displayTag}" #: src/components/dms/ConvoMenu.tsx:123 msgid "Unmute notifications" -msgstr "" +msgstr "Deixa de silenciar les notificacions" #: src/view/com/util/forms/PostDropdownBtn.tsx:321 #: src/view/com/util/forms/PostDropdownBtn.tsx:326 @@ -6264,7 +6264,7 @@ msgstr "Valor:" #: src/view/com/modals/ChangeHandle.tsx:511 msgid "Verify DNS Record" -msgstr "" +msgstr "Verifica els registres de DNS" #: src/view/screens/Settings/index.tsx:915 msgid "Verify email" @@ -6285,7 +6285,7 @@ msgstr "Verifica el correu nou" #: src/view/com/modals/ChangeHandle.tsx:512 msgid "Verify Text File" -msgstr "" +msgstr "Verifica el fitxer de text" #: src/view/com/modals/VerifyEmail.tsx:112 msgid "Verify Your Email" @@ -6297,7 +6297,7 @@ msgstr "Verifica el teu correu" #: src/view/screens/Settings/index.tsx:868 msgid "Version {appVersion} {bundleInfo}" -msgstr "" +msgstr "Versió {appVersion} {bundleInfo}" #: src/screens/Onboarding/index.tsx:42 msgid "Video Games" @@ -6503,7 +6503,7 @@ msgstr "Amplada" #: src/screens/Messages/Conversation/MessageInput.tsx:81 #: src/screens/Messages/Conversation/MessageInput.web.tsx:70 msgid "Write a message" -msgstr "" +msgstr "Escriu un missatge" #: src/view/com/composer/Composer.tsx:505 msgid "Write post" @@ -6534,7 +6534,7 @@ msgstr "Sí" #: src/components/dms/MessageItem.tsx:152 msgid "Yesterday, {time}" -msgstr "" +msgstr "Ahir, {time}" #: src/screens/Deactivated.tsx:136 msgid "You are in line." @@ -6691,7 +6691,7 @@ msgstr "Rebràs un correu amb un \"codi de restabliment\". Introdueix aquí el c #: src/screens/Messages/List/index.tsx:238 msgid "You: {0}" -msgstr "" +msgstr "Tu: {0}" #: src/screens/Onboarding/StepModeration/index.tsx:60 msgid "You're in control" From f147256fdca45d6b460f53aacc777c7a0957e4c6 Mon Sep 17 00:00:00 2001 From: Minseo Lee Date: Wed, 15 May 2024 02:51:13 +0900 Subject: [PATCH 051/277] Update Korean localization (#3887) * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update src/locale/locales/ko/messages.po Co-authored-by: Frudrax Cheng * Update src/locale/locales/ko/messages.po Co-authored-by: Frudrax Cheng * Update src/locale/locales/ko/messages.po Co-authored-by: Frudrax Cheng * Update src/locale/locales/ko/messages.po Co-authored-by: Frudrax Cheng * Update messages.po * Update src/locale/locales/ko/messages.po Co-authored-by: Frudrax Cheng * Update messages.po * Update messages.po --------- Co-authored-by: Frudrax Cheng --- src/locale/locales/ko/messages.po | 1472 +++++++++++++++-------------- 1 file changed, 782 insertions(+), 690 deletions(-) diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index 4c897ce005..4817053a16 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -8,80 +8,84 @@ msgstr "" "Language: ko\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: \n" +"PO-Revision-Date: 2024-05-08 09:37+0900\n" "Last-Translator: quiple\n" "Language-Team: quiple, lens0021, HaruChanHeart, hazzzi, heartade\n" "Plural-Forms: \n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(이메일 없음)" #: src/view/com/notifications/FeedItem.tsx:239 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" -msgstr "" +msgstr "외 {0, plural, other {{formattedCount}}}명" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" -msgstr "" +msgstr "이 계정에 {0, plural, other {#}}개의 라벨이 지정됨" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" -msgstr "" +msgstr "이 콘텐츠에 {0, plural, other {#}}개의 라벨이 지정됨" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, other {#}}개" #: src/components/ProfileHoverCard/index.web.tsx:373 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" -msgstr "" +msgstr "팔로워" #: src/components/ProfileHoverCard/index.web.tsx:377 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" -msgstr "" +msgstr "팔로우 중" #: src/view/com/util/post-ctrls/PostCtrls.tsx:245 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" -msgstr "" +msgstr "좋아요 ({0, plural, other {#}}개)" #: src/view/com/post-thread/PostThreadItem.tsx:359 msgid "{0, plural, one {like} other {likes}}" -msgstr "" +msgstr "좋아요" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{0, plural, other {#}}명의 사용자가 좋아함" #: src/screens/Profile/Header/Metrics.tsx:59 msgid "{0, plural, one {post} other {posts}}" -msgstr "" +msgstr "게시물" #: src/view/com/util/post-ctrls/PostCtrls.tsx:204 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" -msgstr "" +msgstr "답글 ({0, plural, other {#}}개)" #: src/view/com/post-thread/PostThreadItem.tsx:339 msgid "{0, plural, one {repost} other {reposts}}" -msgstr "" +msgstr "재게시" #: src/view/com/util/post-ctrls/PostCtrls.tsx:241 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" +msgstr "좋아요 취소 ({0, plural, other {#}}개)" + +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{count, plural, other {#}}명의 사용자가 좋아함" #: src/screens/Deactivated.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" -msgstr "" +msgstr "시간" #: src/screens/Deactivated.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" -msgstr "" +msgstr "분" #: src/components/ProfileHoverCard/index.web.tsx:454 #: src/screens/Profile/Header/Metrics.tsx:50 @@ -90,46 +94,33 @@ msgstr "{following} 팔로우 중" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{likeCount, plural, other {#}}명의 사용자가 좋아함" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications}개 읽지 않음" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" -msgstr "" +msgstr "{value, plural, =0 {모든 답글 표시} other {좋아요가 #개 이상인 답글 표시}}" #: src/view/com/threadgate/WhoCanReply.tsx:159 msgid "<0/> members" msgstr "<0/>의 멤버" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" -msgstr "" +msgstr "<0>{0} 팔로워" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" -msgstr "" +msgstr "<0>{0} 팔로우 중" -#: src/view/shell/Drawer.tsx:97 -#~ msgid "<0>{0} following" -#~ msgstr "<0>{0} 팔로우 중" - -#: src/components/ProfileHoverCard/index.web.tsx:437 -#~ msgid "<0>{followers} <1>{pluralizedFollowers}" -#~ msgstr "<0>{followers} <1>팔로워" - -#: src/components/ProfileHoverCard/index.web.tsx:449 -#: src/screens/Profile/Header/Metrics.tsx:45 -#~ msgid "<0>{following} <1>following" -#~ msgstr "<0>{following} <1>팔로우 중" - -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>해당 없음. 이 경고는 미디어가 첨부된 게시물에만 사용할 수 있습니다." #: src/screens/Profile/Header/Handle.tsx:43 msgid "⚠Invalid Handle" @@ -162,10 +153,6 @@ msgstr "접근성 설정" msgid "Accessibility Settings" msgstr "접근성 설정" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "account" -#~ msgstr "계정" - #: src/screens/Login/LoginForm.tsx:161 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 @@ -217,15 +204,15 @@ msgstr "계정 언뮤트됨" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "추가" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "콘텐츠 경고 추가" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "이 리스트에 사용자 추가" @@ -237,15 +224,12 @@ msgstr "계정 추가" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 msgid "Add alt text" -msgstr "대체 텍스트 추가하기" - -#: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +msgstr "대체 텍스트 추가" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -261,7 +245,15 @@ msgstr "구성 설정에 뮤트 단어 추가" msgid "Add muted words and tags" msgstr "뮤트할 단어 및 태그 추가" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "추천 피드 추가" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "내가 팔로우하는 사람의 기본 피드만 추가하기" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "도메인에 다음 DNS 레코드를 추가하세요:" @@ -270,7 +262,7 @@ msgstr "도메인에 다음 DNS 레코드를 추가하세요:" msgid "Add to Lists" msgstr "리스트에 추가" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "내 피드에 추가" @@ -279,17 +271,17 @@ msgstr "내 피드에 추가" msgid "Added to list" msgstr "리스트에 추가됨" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "내 피드에 추가됨" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "답글이 피드에 표시되기 위해 필요한 좋아요 수를 조정합니다." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "성인 콘텐츠" @@ -302,7 +294,7 @@ msgstr "성인 콘텐츠가 비활성화되어 있습니다." msgid "Advanced" msgstr "고급" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "저장한 모든 피드를 한 곳에서 확인하세요." @@ -329,18 +321,18 @@ msgstr "대체 텍스트" #: src/view/com/util/post-embeds/GifEmbed.tsx:179 msgid "Alt Text" -msgstr "" +msgstr "대체 텍스트" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "대체 텍스트는 시각장애인과 저시력 사용자를 위해 이미지를 설명하며 모든 사용자의 이해를 돕습니다." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "{0}(으)로 이메일을 보냈습니다. 이 이메일에는 아래에 입력하는 인증 코드가 포함되어 있습니다." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "이전 주소인 {0}(으)로 이메일을 보냈습니다. 이 이메일에는 아래에 입력하는 인증 코드가 포함되어 있습니다." @@ -348,11 +340,11 @@ msgstr "이전 주소인 {0}(으)로 이메일을 보냈습니다. 이 이메일 msgid "An error occured" msgstr "오류 발생" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:138 msgid "An error occurred while trying to delete the message. Please try again." msgstr "메시지를 삭제하는 동안 오류가 발생했습니다. 다시 시도해 주세요." -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "어떤 옵션에도 포함되지 않는 문제" @@ -367,14 +359,14 @@ msgstr "문제가 발생했습니다. 다시 시도해 주세요." #: src/screens/Onboarding/StepInterests/index.tsx:194 msgid "an unknown error occurred" -msgstr "" +msgstr "알 수 없는 오류가 발생했습니다" #: src/view/com/notifications/FeedItem.tsx:236 #: src/view/com/threadgate/WhoCanReply.tsx:180 msgid "and" msgstr "및" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "동물" @@ -382,7 +374,7 @@ msgstr "동물" msgid "Animated GIF" msgstr "움직이는 GIF" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "반사회적 행위" @@ -412,40 +404,41 @@ msgstr "앱 비밀번호 설정" msgid "App Passwords" msgstr "앱 비밀번호" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "이의신청" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "\"{0}\" 라벨 이의신청" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" -msgstr "" - -#: src/components/moderation/LabelsOnMeDialog.tsx:193 -#~ msgid "Appeal submitted." -#~ msgstr "이의신청 제출함" +msgstr "이의신청 제출함" #: src/view/screens/Settings/index.tsx:430 msgid "Appearance" msgstr "모양" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "기본 추천 피드 적용하기" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "앱 비밀번호 \"{name}\"을(를) 삭제하시겠습니까?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:127 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "정말 이 메시지를 삭제하시겠습니까? 나에게 보이는 메시지는 삭제되지만 상대방에게는 삭제되지 않습니다." -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "정말 이 대화를 종료하시겠습니까? 나에게 보이는 메시지는 삭제되지만 상대방에게는 삭제되지 않습니다." -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "피드에서 {0}을(를) 제거하시겠습니까?" @@ -461,11 +454,11 @@ msgstr "정말인가요?" msgid "Are you writing in <0>{0}?" msgstr "{0}(으)로 쓰고 있나요?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "예술" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "선정적이지 않거나 예술적인 노출." @@ -473,8 +466,8 @@ msgstr "선정적이지 않거나 예술적인 노출." msgid "At least 3 characters" msgstr "3자 이상" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 @@ -483,7 +476,7 @@ msgstr "3자 이상" #: src/screens/Login/LoginForm.tsx:275 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -511,8 +504,8 @@ msgstr "생년월일:" msgid "Block" msgstr "차단" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:154 +#: src/components/dms/ConvoMenu.tsx:158 msgid "Block account" msgstr "계정 차단" @@ -525,15 +518,15 @@ msgstr "계정 차단" msgid "Block Account?" msgstr "계정을 차단하시겠습니까?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "계정 차단" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "리스트 차단" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "이 계정들을 차단하시겠습니까?" @@ -567,7 +560,7 @@ msgstr "차단된 게시물." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "차단하더라도 이 라벨러가 내 계정에 라벨을 붙이는 것을 막지는 못합니다." -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "차단 목록은 공개됩니다. 차단한 계정은 내 스레드에 답글을 달거나 나를 멘션하거나 기타 다른 방식으로 나와 상호작용할 수 없습니다." @@ -600,10 +593,15 @@ msgstr "이미지 흐리게" msgid "Blur images and filter from feeds" msgstr "이미지 흐리게 및 피드에서 필터링" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "책" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "다른 피드 탐색하기" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "비즈니스" @@ -618,7 +616,7 @@ msgstr "{0} 님이 만듦" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 msgid "by @{0}" -msgstr "" +msgstr "@{0} 님이 만듦" #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" @@ -646,9 +644,9 @@ msgstr "글자, 숫자, 공백, 대시, 밑줄만 포함할 수 있습니다. #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -660,26 +658,26 @@ msgstr "글자, 숫자, 공백, 대시, 밑줄만 포함할 수 있습니다. #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "취소" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "취소" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "계정 삭제 취소" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "핸들 변경 취소" @@ -704,7 +702,7 @@ msgstr "검색 취소" msgid "Cancels opening the linked website" msgstr "연결된 웹사이트를 여는 것을 취소합니다" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "변경" @@ -717,12 +715,12 @@ msgstr "변경" msgid "Change handle" msgstr "핸들 변경" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "핸들 변경" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "내 이메일 변경하기" @@ -739,7 +737,7 @@ msgstr "비밀번호 변경" msgid "Change post language to {0}" msgstr "게시물 언어를 {0}(으)로 변경" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "이메일 변경" @@ -747,16 +745,16 @@ msgstr "이메일 변경" msgid "Chat" msgstr "대화" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:65 msgid "Chat muted" msgstr "대화 뮤트됨" -#: src/components/dms/ConvoMenu.tsx:87 -#: src/components/dms/MessageMenu.tsx:69 +#: src/components/dms/ConvoMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:73 msgid "Chat settings" msgstr "대화 설정" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/components/dms/ConvoMenu.tsx:67 msgid "Chat unmuted" msgstr "대화 언뮤트됨" @@ -769,7 +767,7 @@ msgstr "내 상태 확인" msgid "Check your email for a login code and enter it here." msgstr "이메일에서 로그인 코드를 확인한 후 여기에 입력하세요." -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "받은 편지함에서 아래에 입력하는 인증 코드가 포함된 이메일이 있는지 확인하세요:" @@ -781,10 +779,14 @@ msgstr "\"모두\" 또는 \"없음\"을 선택하세요." msgid "Choose Service" msgstr "서비스 선택" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:228 msgid "Choose the algorithms that power your custom feeds." msgstr "맞춤 피드를 구동할 알고리즘을 선택하세요." +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "이 색상을 아바타로 선택" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "기본 피드 선택" @@ -826,11 +828,15 @@ msgstr "모든 스토리지 데이터를 지웁니다" msgid "click here" msgstr "이곳을 클릭" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "이곳을 클릭해 하나 추가하세요." + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "이곳을 클릭하여 {tag}의 태그 메뉴 열기" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "기후" @@ -899,11 +905,11 @@ msgstr "헤더 이미지 뷰어를 닫습니다" msgid "Collapses list of users for a given notification" msgstr "이 알림에 대한 사용자 목록을 축소합니다" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "코미디" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "만화" @@ -912,7 +918,7 @@ msgstr "만화" msgid "Community Guidelines" msgstr "커뮤니티 가이드라인" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:241 msgid "Complete onboarding and start using your account" msgstr "온보딩 완료 후 계정 사용 시작" @@ -942,18 +948,18 @@ msgstr "<0>검토 설정에서 설정합니다." #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "확인" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "변경 확인" @@ -961,7 +967,7 @@ msgstr "변경 확인" msgid "Confirm content language settings" msgstr "콘텐츠 언어 설정 확인" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "계정 삭제 확인" @@ -974,12 +980,12 @@ msgid "Confirm your birthdate" msgstr "생년월일 확인" #: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "인증 코드" @@ -991,10 +997,6 @@ msgstr "연결 중…" msgid "Contact support" msgstr "지원에 연락하기" -#: src/components/moderation/LabelsOnMe.tsx:42 -#~ msgid "content" -#~ msgstr "콘텐츠" - #: src/lib/moderation/useGlobalLabelStrings.ts:18 msgid "Content Blocked" msgstr "콘텐츠 차단됨" @@ -1032,6 +1034,7 @@ msgstr "컨텍스트 메뉴 배경을 클릭하여 메뉴를 닫습니다." #: src/screens/Onboarding/StepFollowingFeed.tsx:154 #: src/screens/Onboarding/StepInterests/index.tsx:253 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:253 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "계속" @@ -1043,6 +1046,7 @@ msgstr "{0}(으)로 계속하기 (현재 로그인)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 #: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:250 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1056,7 +1060,7 @@ msgstr "다음 단계로 계속하기" msgid "Continue to the next step without following any accounts" msgstr "계정을 팔로우하지 않고 다음 단계로 계속하기" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "요리" @@ -1069,9 +1073,9 @@ msgstr "복사됨" msgid "Copied build version to clipboard" msgstr "빌드 버전 클립보드에 복사됨" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:55 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1089,7 +1093,7 @@ msgstr "앱 비밀번호를 복사합니다" msgid "Copy" msgstr "복사" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "{0} 복사" @@ -1098,7 +1102,7 @@ msgstr "{0} 복사" msgid "Copy code" msgstr "코드 복사" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "리스트 링크 복사" @@ -1107,8 +1111,8 @@ msgstr "리스트 링크 복사" msgid "Copy link to post" msgstr "게시물 링크 복사" -#: src/components/dms/MessageMenu.tsx:89 -#: src/components/dms/MessageMenu.tsx:91 +#: src/components/dms/MessageMenu.tsx:93 +#: src/components/dms/MessageMenu.tsx:95 msgid "Copy message text" msgstr "메시지 텍스트 복사" @@ -1122,15 +1126,15 @@ msgstr "게시물 텍스트 복사" msgid "Copyright Policy" msgstr "저작권 정책" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:82 msgid "Could not leave chat" msgstr "대화를 종료할 수 없습니다" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "피드를 불러올 수 없습니다" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "리스트를 불러올 수 없습니다" @@ -1138,13 +1142,13 @@ msgstr "리스트를 불러올 수 없습니다" msgid "Could not load profiles. Please try again later." msgstr "프로필을 불러올 수 없습니다. 나중에 다시 시도하세요." -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:71 msgid "Could not mute chat" msgstr "대화를 뮤트할 수 없습니다" -#: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "대화를 언뮤트할 수 없습니다" +#: src/components/dms/ConvoMenu.tsx:75 +#~ msgid "Could not unmute chat" +#~ msgstr "대화를 언뮤트할 수 없습니다" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1164,6 +1168,10 @@ msgstr "계정 만들기" msgid "Create an account" msgstr "계정 만들기" +#: src/screens/Onboarding/StepProfile/index.tsx:267 +msgid "Create an avatar instead" +msgstr "대신 아바타 만들기" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "앱 비밀번호 만들기" @@ -1173,7 +1181,7 @@ msgstr "앱 비밀번호 만들기" msgid "Create new account" msgstr "새 계정 만들기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "{0}에 대한 신고 작성하기" @@ -1181,7 +1189,7 @@ msgstr "{0}에 대한 신고 작성하기" msgid "Created {0}" msgstr "{0}에 생성됨" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "문화" @@ -1190,12 +1198,12 @@ msgstr "문화" msgid "Custom" msgstr "사용자 지정" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "사용자 지정 도메인" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "커뮤니티에서 구축한 맞춤 피드는 새로운 경험을 제공하고 좋아하는 콘텐츠를 찾을 수 있도록 도와줍니다." @@ -1228,10 +1236,10 @@ msgstr "검토 디버그" msgid "Debug panel" msgstr "디버그 패널" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:129 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "삭제" @@ -1239,13 +1247,9 @@ msgstr "삭제" msgid "Delete account" msgstr "계정 삭제" -#: src/view/com/modals/DeleteAccount.tsx:87 -#~ msgid "Delete Account" -#~ msgstr "계정 삭제" - -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "<0>\"<1>{0}<2>\" 계정 삭제" #: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" @@ -1255,23 +1259,23 @@ msgstr "앱 비밀번호 삭제" msgid "Delete app password?" msgstr "앱 비밀번호를 삭제하시겠습니까?" -#: src/components/dms/MessageMenu.tsx:101 +#: src/components/dms/MessageMenu.tsx:105 msgid "Delete for me" msgstr "내게서 삭제" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "리스트 삭제" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:125 msgid "Delete message" msgstr "메시지 삭제" -#: src/components/dms/MessageMenu.tsx:99 +#: src/components/dms/MessageMenu.tsx:103 msgid "Delete message for me" msgstr "내게 보이는 메시지 삭제" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "내 계정 삭제" @@ -1284,7 +1288,7 @@ msgstr "내 계정 삭제…" msgid "Delete post" msgstr "게시물 삭제" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "이 리스트를 삭제하시겠습니까?" @@ -1309,7 +1313,7 @@ msgstr "설명" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "설명이 포함된 대체 텍스트" #: src/view/com/composer/Composer.tsx:248 msgid "Did you want to say anything?" @@ -1323,7 +1327,7 @@ msgstr "어둑함" msgid "Disable autoplay for GIFs" msgstr "GIF 자동 재생 끄기" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "이메일 2단계 인증 끄기" @@ -1356,7 +1360,7 @@ msgstr "앱이 로그아웃한 사용자에게 내 계정을 표시하지 않도 msgid "Discover new custom feeds" msgstr "새로운 맞춤 피드 찾아보기" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "새 피드 발견하기" @@ -1368,7 +1372,7 @@ msgstr "표시 이름" msgid "Display Name" msgstr "표시 이름" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "DNS 패널" @@ -1380,11 +1384,11 @@ msgstr "노출을 포함하지 않습니다." msgid "Doesn't begin or end with a hyphen" msgstr "하이픈으로 시작하거나 끝나지 않음" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "도메인 값" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "도메인을 확인했습니다." @@ -1392,6 +1396,8 @@ msgstr "도메인을 확인했습니다." #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:306 +#: src/screens/Onboarding/StepProfile/index.tsx:309 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1400,15 +1406,13 @@ msgstr "도메인을 확인했습니다." #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "완료" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1422,8 +1426,8 @@ msgstr "완료" msgid "Done{extraText}" msgstr "완료{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "CAR 파일 다운로드" @@ -1435,7 +1439,7 @@ msgstr "드롭하여 이미지 추가" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Apple 정책으로 인해 성인 콘텐츠는 가입을 완료한 후에 웹에서만 사용 설정할 수 있습니다." -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "예: alice" @@ -1443,7 +1447,7 @@ msgstr "예: alice" msgid "e.g. Alice Roberts" msgstr "예: 앨리스 로버츠" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "예: alice.com" @@ -1490,7 +1494,7 @@ msgstr "아바타 편집" msgid "Edit image" msgstr "이미지 편집" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "리스트 세부 정보 편집" @@ -1499,8 +1503,8 @@ msgid "Edit Moderation List" msgstr "검토 리스트 편집" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "내 피드 편집" @@ -1519,9 +1523,9 @@ msgid "Edit Profile" msgstr "프로필 편집" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" -msgstr "저장된 피드 편집" +msgstr "저장한 피드 편집" #: src/view/com/modals/CreateOrEditList.tsx:248 msgid "Edit User List" @@ -1535,16 +1539,16 @@ msgstr "내 표시 이름 편집" msgid "Edit your profile description" msgstr "내 프로필 설명 편집" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "교육" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "이메일" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "이메일 2단계 인증을 비활성화했습니다" @@ -1552,16 +1556,16 @@ msgstr "이메일 2단계 인증을 비활성화했습니다" msgid "Email address" msgstr "이메일 주소" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "이메일 변경됨" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "이메일 변경됨" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "이메일 확인됨" @@ -1609,7 +1613,7 @@ msgstr "외부 미디어 사용" msgid "Enable media players for" msgstr "미디어 플레이어를 사용할 외부 사이트" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "내가 팔로우하는 사람들 간의 답글만 표시합니다." @@ -1638,7 +1642,7 @@ msgstr "비밀번호 입력" msgid "Enter a word or tag" msgstr "단어 또는 태그 입력" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "인증 코드 입력" @@ -1646,7 +1650,7 @@ msgstr "인증 코드 입력" msgid "Enter the code you received to change your password." msgstr "비밀번호를 변경하려면 받은 코드를 입력하세요." -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "사용할 도메인 입력" @@ -1663,11 +1667,11 @@ msgstr "생년월일을 입력하세요" msgid "Enter your email address" msgstr "이메일 주소를 입력하세요" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "새 이메일을 입력하세요" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "아래에 새 이메일 주소를 입력하세요." @@ -1675,6 +1679,10 @@ msgstr "아래에 새 이메일 주소를 입력하세요." msgid "Enter your username and password" msgstr "사용자 이름 및 비밀번호 입력" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "파일을 저장하는 동안 오류가 발생했습니다" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "캡차 응답을 수신하는 동안 오류가 발생했습니다." @@ -1688,15 +1696,19 @@ msgstr "오류:" msgid "Everybody" msgstr "모두" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "과도한 멘션 또는 답글" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "과도하거나 원치 않는 메시지" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "계정 삭제 프로세스를 종료합니다" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "핸들 변경 프로세스를 종료합니다" @@ -1734,7 +1746,7 @@ msgstr "노골적인 성적 이미지." msgid "Export my data" msgstr "내 데이터 내보내기" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "내 데이터 내보내기" @@ -1768,7 +1780,7 @@ msgstr "앱 비밀번호를 만들지 못했습니다." msgid "Failed to create the list. Check your internet connection and try again." msgstr "리스트를 만들지 못했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:136 msgid "Failed to delete message" msgstr "메시지를 삭제하지 못했습니다" @@ -1780,43 +1792,47 @@ msgstr "게시물을 삭제하지 못했습니다. 다시 시도해 주세요" msgid "Failed to load GIFs" msgstr "GIF 불러오기 실패" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "지난 메시지를 불러오지 못했습니다." -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "이미지를 저장하지 못함: {0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "메시지를 보내지 못했습니다." + #: src/Navigation.tsx:203 msgid "Feed" msgstr "피드" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "{0} 님의 피드" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "피드 오프라인" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "피드백" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "피드" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "피드는 사용자가 약간의 코딩 전문 지식만으로 구축할 수 있는 맞춤 알고리즘입니다. <0/>에서 자세한 내용을 확인하세요." @@ -1824,15 +1840,19 @@ msgstr "피드는 사용자가 약간의 코딩 전문 지식만으로 구축할 msgid "Feeds can be topical as well!" msgstr "주제 기반 피드도 있습니다!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "파일 콘텐츠" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "파일을 성공적으로 저장했습니다!" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "피드에서 필터링" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:244 msgid "Finalizing" msgstr "마무리 중" @@ -1846,7 +1866,7 @@ msgstr "팔로우할 계정 찾아보기" msgid "Find posts and users on Bluesky" msgstr "Bluesky에서 게시물 및 사용자 찾기" -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "팔로우 중 피드에 표시되는 콘텐츠를 미세 조정합니다." @@ -1854,11 +1874,11 @@ msgstr "팔로우 중 피드에 표시되는 콘텐츠를 미세 조정합니다 msgid "Fine-tune the discussion threads." msgstr "대화 스레드를 미세 조정합니다." -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "건강" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:224 msgid "Flexible" msgstr "유연성" @@ -1916,13 +1936,13 @@ msgstr "{0} 님이 팔로우함" msgid "Followed users" msgstr "팔로우한 사용자" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "팔로우한 사용자만" #: src/view/com/notifications/FeedItem.tsx:164 msgid "followed you" -msgstr "님이 나를 팔로우했습니다" +msgstr "이(가) 나를 팔로우했습니다" #: src/view/com/profile/ProfileFollowers.tsx:104 #: src/view/screens/ProfileFollowers.tsx:25 @@ -1934,7 +1954,9 @@ msgstr "팔로워" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:395 msgid "Following" msgstr "팔로우 중" @@ -1949,7 +1971,7 @@ msgstr "팔로우 중 피드 설정" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "팔로우 중 피드 설정" @@ -1962,11 +1984,11 @@ msgstr "나를 팔로우함" msgid "Follows You" msgstr "나를 팔로우함" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "음식" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "보안상의 이유로 이메일 주소로 인증 코드를 보내야 합니다." @@ -1987,7 +2009,7 @@ msgstr "비밀번호를 잊으셨나요?" msgid "Forgot?" msgstr "분실" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "잦은 원치 않는 콘텐츠 게시" @@ -2004,12 +2026,16 @@ msgstr "<0/>에서" msgid "Gallery" msgstr "갤러리" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "시작하기" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:209 +msgid "Give your profile a face" +msgstr "프로필에 얼굴 달기" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "명백한 법률 또는 서비스 이용약관 위반 행위" @@ -2018,9 +2044,9 @@ msgstr "명백한 법률 또는 서비스 이용약관 위반 행위" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "뒤로" @@ -2028,12 +2054,13 @@ msgstr "뒤로" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "뒤로" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2054,11 +2081,11 @@ msgstr "홈으로 이동" msgid "Go to next" msgstr "다음" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:133 msgid "Go to profile" msgstr "프로필로 가기" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:130 msgid "Go to user's profile" msgstr "사용자의 프로필로 가기" @@ -2066,7 +2093,7 @@ msgstr "사용자의 프로필로 가기" msgid "Graphic Media" msgstr "그래픽 미디어" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "핸들" @@ -2074,7 +2101,7 @@ msgstr "핸들" msgid "Haptics" msgstr "햅틱" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "괴롭힘, 분쟁 유발 또는 차별" @@ -2082,7 +2109,7 @@ msgstr "괴롭힘, 분쟁 유발 또는 차별" msgid "Hashtag" msgstr "해시태그" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "해시태그: #{tag}" @@ -2091,10 +2118,14 @@ msgid "Having trouble?" msgstr "문제가 있나요?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "도움말" +#: src/screens/Onboarding/StepProfile/index.tsx:212 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "사진을 업로드하거나 아바타를 만들어 사람들이 내가 봇이 아니라는 사실을 알 수 있도록 하세요." + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "팔로우할 만한 계정" @@ -2147,23 +2178,23 @@ msgstr "이 게시물을 숨기시겠습니까?" msgid "Hide user list" msgstr "사용자 리스트 숨기기" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "피드 서버에 연결하는 중 어떤 문제가 발생했습니다. 피드 소유자에게 이 문제에 대해 알려주세요." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "피드 서버가 잘못 구성된 것 같습니다. 피드 소유자에게 이 문제에 대해 알려주세요." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "피드 서버가 오프라인 상태인 것 같습니다. 피드 소유자에게 이 문제에 대해 알려주세요." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "피드 서버에서 잘못된 응답을 보냈습니다. 피드 소유자에게 이 문제에 대해 알려주세요." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "이 피드를 찾는 데 문제가 있습니다. 피드가 삭제되었을 수 있습니다." @@ -2176,21 +2207,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "검토 서비스를 불러올 수 없습니다." #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "홈" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "호스트:" #: src/screens/Login/ForgotPasswordForm.tsx:89 #: src/screens/Login/LoginForm.tsx:151 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "호스팅 제공자" @@ -2198,25 +2229,29 @@ msgstr "호스팅 제공자" msgid "How should we open this link?" msgstr "이 링크를 어떻게 여시겠습니까?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "코드가 있습니다" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "인증 코드가 있습니다" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "내 도메인을 가지고 있습니다" +#: src/components/dms/ConvoMenu.tsx:204 +msgid "I understand" +msgstr "확인" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "대체 텍스트가 긴 경우 대체 텍스트 확장 상태를 전환합니다" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "아무것도 선택하지 않으면 모든 연령대에 적합하다는 뜻입니다." @@ -2224,7 +2259,7 @@ msgstr "아무것도 선택하지 않으면 모든 연령대에 적합하다는 msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "해당 국가의 법률에 따라 아직 성인이 아닌 경우, 부모 또는 법적 보호자가 대신 이 약관을 읽어야 합니다." -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "이 리스트를 삭제하면 다시 복구할 수 없습니다." @@ -2236,7 +2271,7 @@ msgstr "이 게시물을 삭제하면 다시 복구할 수 없습니다." msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "비밀번호를 변경하고 싶다면 본인 계정임을 확인할 수 있는 코드를 보내드리겠습니다." -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "불법 및 긴급 사항" @@ -2248,7 +2283,7 @@ msgstr "이미지" msgid "Image alt text" msgstr "이미지 대체 텍스트" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "신원 또는 소속에 대한 사칭 또는 허위 주장" @@ -2256,7 +2291,7 @@ msgstr "신원 또는 소속에 대한 사칭 또는 허위 주장" msgid "Input code sent to your email for password reset" msgstr "비밀번호 재설정을 위해 이메일로 전송된 코드를 입력합니다" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "계정 삭제를 위한 인증 코드를 입력합니다" @@ -2268,7 +2303,7 @@ msgstr "앱 비밀번호의 이름을 입력합니다" msgid "Input new password" msgstr "새 비밀번호를 입력합니다" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "계정을 삭제하기 위해 비밀번호를 입력합니다" @@ -2288,7 +2323,7 @@ msgstr "가입 시 사용한 사용자 이름 또는 이메일 주소를 입력 msgid "Input your password" msgstr "비밀번호를 입력합니다" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "선호하는 호스팅 제공자를 입력합니다" @@ -2297,7 +2332,7 @@ msgid "Input your user handle" msgstr "사용자 핸들을 입력합니다" #: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "잘못된 2단계 인증 코드입니다." @@ -2317,7 +2352,7 @@ msgstr "친구 초대하기" msgid "Invite code" msgstr "초대 코드" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "초대 코드가 올바르지 않습니다. 코드를 올바르게 입력했는지 확인한 후 다시 시도하세요." @@ -2337,17 +2372,13 @@ msgstr "내가 팔로우하는 사람들의 게시물이 올라오는 대로 표 msgid "Jobs" msgstr "채용" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "저널리즘" -#: src/components/moderation/LabelsOnMe.tsx:59 -#~ msgid "label has been placed on this {labelTarget}" -#~ msgstr "이 {labelTarget}에 라벨이 지정되었습니다" - #: src/components/moderation/ContentHider.tsx:144 msgid "Labeled by {0}." -msgstr "{0} 님이 라벨 지정함." +msgstr "{0}이(가) 라벨 지정함." #: src/components/moderation/ContentHider.tsx:142 msgid "Labeled by the author." @@ -2361,15 +2392,11 @@ msgstr "라벨" msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "라벨은 사용자 및 콘텐츠에 대한 주석입니다. 네트워크를 숨기고, 경고하고, 분류하는 데 사용할 수 있습니다." -#: src/components/moderation/LabelsOnMe.tsx:61 -#~ msgid "labels have been placed on this {labelTarget}" -#~ msgstr "라벨이 {labelTarget}에 지정되었습니다" - -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "내 계정의 라벨" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "내 콘텐츠의 라벨" @@ -2417,13 +2444,13 @@ msgstr "Bluesky에서 공개되는 항목에 대해 자세히 알아보세요." msgid "Learn more." msgstr "더 알아보기" -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:193 msgid "Leave" msgstr "종료" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:176 +#: src/components/dms/ConvoMenu.tsx:179 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Leave conversation" msgstr "대화 종료" @@ -2448,7 +2475,7 @@ msgstr "레거시 스토리지가 지워졌으며 지금 앱을 다시 시작해 msgid "Let's get your password reset!" msgstr "비밀번호를 재설정해 봅시다!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:244 msgid "Let's go!" msgstr "출발!" @@ -2456,12 +2483,8 @@ msgstr "출발!" msgid "Light" msgstr "밝음" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 -#~ msgid "Like" -#~ msgstr "좋아요" - #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "이 피드에 좋아요 표시" @@ -2477,27 +2500,13 @@ msgstr "좋아요 표시한 사용자" msgid "Liked By" msgstr "좋아요 표시한 사용자" -#: src/view/com/feeds/FeedSourceCard.tsx:268 -#~ msgid "Liked by {0} {1}" -#~ msgstr "{0}명의 사용자가 좋아함" - -#: src/components/LabelingServiceCard/index.tsx:72 -#~ msgid "Liked by {count} {0}" -#~ msgstr "{count}명의 사용자가 좋아함" - -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:287 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:301 -#: src/view/screens/ProfileFeed.tsx:600 -#~ msgid "Liked by {likeCount} {0}" -#~ msgstr "{likeCount}명의 사용자가 좋아함" - #: src/view/com/notifications/FeedItem.tsx:168 msgid "liked your custom feed" -msgstr "님이 내 맞춤 피드를 좋아합니다" +msgstr "이(가) 내 맞춤 피드를 좋아합니다" #: src/view/com/notifications/FeedItem.tsx:153 msgid "liked your post" -msgstr "님이 내 게시물을 좋아합니다" +msgstr "이(가) 내 게시물을 좋아합니다" #: src/view/screens/Profile.tsx:196 msgid "Likes" @@ -2515,19 +2524,19 @@ msgstr "리스트" msgid "List Avatar" msgstr "리스트 아바타" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "리스트 차단됨" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "{0} 님의 리스트" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "리스트 삭제됨" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "리스트 뮤트됨" @@ -2535,20 +2544,20 @@ msgstr "리스트 뮤트됨" msgid "List Name" msgstr "리스트 이름" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "리스트 차단 해제됨" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "리스트 언뮤트됨" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "리스트" @@ -2557,9 +2566,9 @@ msgid "Load new notifications" msgstr "새 알림 불러오기" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "새 게시물 불러오기" @@ -2586,7 +2595,7 @@ msgstr "로그아웃 표시" msgid "Login to account that is not listed" msgstr "목록에 없는 계정으로 로그인" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "길게 눌러 #{tag}에 대한 태그 메뉴를 엽니다" @@ -2594,6 +2603,18 @@ msgstr "길게 눌러 #{tag}에 대한 태그 메뉴를 엽니다" msgid "Looks like XXXXX-XXXXX" msgstr "XXXXX-XXXXX 형식" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "저장한 피드가 없는 것 같습니다! 권장 사항을 사용하거나 아래에서 더 많은 피드를 찾아보세요." + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "모든 피드를 고정 해제했군요. 하지만 걱정하지 마세요. 아래에서 추가할 수 있습니다 😄" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "팔로우 중 피드가 누락된 것 같습니다." + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "이곳이 당신이 가고자 하는 곳인지 확인하세요!" @@ -2602,6 +2623,11 @@ msgstr "이곳이 당신이 가고자 하는 곳인지 확인하세요!" msgid "Manage your muted words and tags" msgstr "뮤트한 단어 및 태그 관리" +#: src/components/dms/ConvoMenu.tsx:117 +#: src/components/dms/ConvoMenu.tsx:124 +msgid "Mark as read" +msgstr "읽음으로 표시" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2620,12 +2646,12 @@ msgstr "멘션한 사용자" msgid "Menu" msgstr "메뉴" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:64 +#: src/screens/Messages/List/index.tsx:282 msgid "Message deleted" msgstr "메시지 삭제됨" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "서버에서 보낸 메시지: {0}" @@ -2633,17 +2659,17 @@ msgstr "서버에서 보낸 메시지: {0}" msgid "Message input field" msgstr "메시지 입력 필드" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/List/index.tsx:91 +#: src/screens/Messages/List/index.tsx:464 msgid "Message settings" msgstr "메시지 설정" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:193 +#: src/screens/Messages/List/index.tsx:220 +#: src/screens/Messages/List/index.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "메시지" @@ -2651,7 +2677,7 @@ msgstr "메시지" msgid "Messaging settings" msgstr "메시지 설정" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "오해의 소지가 있는 계정" @@ -2670,13 +2696,13 @@ msgstr "검토 세부 정보" msgid "Moderation list by {0}" msgstr "{0} 님의 검토 리스트" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "<0/> 님의 검토 리스트" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "내 검토 리스트" @@ -2718,11 +2744,11 @@ msgstr "검토자가 콘텐츠에 일반 경고를 설정했습니다." msgid "More" msgstr "더 보기" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "피드 더 보기" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "옵션 더 보기" @@ -2743,7 +2769,7 @@ msgstr "{truncatedTag} 뮤트" msgid "Mute Account" msgstr "계정 뮤트" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "계정 뮤트" @@ -2759,16 +2785,16 @@ msgstr "태그에서만 뮤트" msgid "Mute in text & tags" msgstr "글 및 태그에서 뮤트" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "리스트 뮤트" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:138 +#: src/components/dms/ConvoMenu.tsx:144 msgid "Mute notifications" msgstr "알림 뮤트" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "이 계정들을 뮤트하시겠습니까?" @@ -2815,7 +2841,7 @@ msgstr "\"{0}\" 님이 뮤트함" msgid "Muted words & tags" msgstr "뮤트한 단어 및 태그" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "뮤트 목록은 비공개입니다. 뮤트한 계정은 나와 상호작용할 수 있지만 해당 계정의 게시물을 보거나 해당 계정으로부터 알림을 받을 수 없습니다." @@ -2824,21 +2850,21 @@ msgstr "뮤트 목록은 비공개입니다. 뮤트한 계정은 나와 상호 msgid "My Birthday" msgstr "내 생년월일" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "내 피드" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "내 프로필" #: src/view/screens/Settings/index.tsx:607 msgid "My saved feeds" -msgstr "내 저장된 피드" +msgstr "내 저장한 피드" #: src/view/screens/Settings/index.tsx:613 msgid "My Saved Feeds" -msgstr "내 저장된 피드" +msgstr "내 저장한 피드" #: src/view/com/modals/AddAppPasswords.tsx:180 #: src/view/com/modals/CreateOrEditList.tsx:293 @@ -2849,13 +2875,13 @@ msgstr "이름" msgid "Name is required" msgstr "이름을 입력하세요" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "이름 또는 설명이 커뮤니티 기준을 위반함" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "자연" @@ -2865,19 +2891,19 @@ msgstr "자연" msgid "Navigates to the next screen" msgstr "다음 화면으로 이동합니다" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "내 프로필로 이동합니다" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "저작권 위반을 신고해야 하나요?" -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:212 msgid "Never lose access to your followers or data." msgstr "팔로워 또는 데이터에 대한 접근 권한을 잃지 마세요." -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "취소하고 내 핸들 만들기" @@ -2891,8 +2917,8 @@ msgid "New" msgstr "새로 만들기" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:474 +#: src/screens/Messages/List/index.tsx:482 msgid "New chat" msgstr "새 대화" @@ -2908,22 +2934,22 @@ msgstr "새 비밀번호" msgid "New Password" msgstr "새 비밀번호" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "새 게시물" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "새 게시물" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "새 게시물" @@ -2936,7 +2962,7 @@ msgstr "새 사용자 리스트" msgid "Newest replies first" msgstr "새로운 순" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "뉴스" @@ -2956,21 +2982,21 @@ msgstr "다음" msgid "Next image" msgstr "다음 이미지" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "아니요" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "설명 없음" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "DNS 패널 없음" @@ -2986,8 +3012,8 @@ msgstr "더 이상 {0} 님을 팔로우하지 않음" msgid "No longer than 253 characters" msgstr "253자를 초과하지 않음" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:271 msgid "No messages yet" msgstr "아직 메시지가 없습니다" @@ -3004,7 +3030,7 @@ msgstr "결과 없음" msgid "No results found" msgstr "결과를 찾을 수 없음" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "\"{query}\"에 대한 결과를 찾을 수 없습니다" @@ -3040,17 +3066,13 @@ msgstr "아직 아무도 좋아요를 누르지 않았습니다. 첫 번째가 msgid "Non-sexual Nudity" msgstr "선정적이지 않은 노출" -#: src/view/com/modals/SelfLabel.tsx:135 -#~ msgid "Not Applicable." -#~ msgstr "해당 없음." - #: src/Navigation.tsx:116 #: src/view/screens/Profile.tsx:100 msgid "Not Found" msgstr "찾을 수 없음" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "나중에 하기" @@ -3067,29 +3089,25 @@ msgstr "참고: Bluesky는 개방형 공개 네트워크입니다. 이 설정은 #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "알림" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:146 msgid "Now" msgstr "지금" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "노출" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "누드 또는 성인 콘텐츠로 설정되지 않은 콘텐츠" -#: src/screens/Signup/index.tsx:154 -#~ msgid "of" -#~ msgstr "" - #: src/lib/moderation/useLabelBehaviorDescription.ts:11 msgid "Off" msgstr "끄기" @@ -3124,6 +3142,10 @@ msgstr "온보딩 재설정" msgid "One or more images is missing alt text." msgstr "하나 이상의 이미지에 대체 텍스트가 누락되었습니다." +#: src/screens/Onboarding/StepProfile/index.tsx:107 +msgid "Only .jpg and .png files are supported" +msgstr ".jpg 및 .png 파일만 지원합니다" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "{0}만 답글을 달 수 있습니다." @@ -3142,16 +3164,20 @@ msgstr "이런, 뭔가 잘못되었습니다!" msgid "Oops!" msgstr "이런!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Open" msgstr "공개성" +#: src/screens/Onboarding/StepProfile/index.tsx:261 +msgid "Open avatar creator" +msgstr "아바타 생성기 열기" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "이모티콘 선택기 열기" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "피드 옵션 메뉴 열기" @@ -3254,7 +3280,7 @@ msgstr "Bluesky 계정 데이터(저장소)를 다운로드하기 위한 대화 msgid "Opens modal for email verification" msgstr "이메일 인증을 위한 대화 상자를 엽니다" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "사용자 지정 도메인을 사용하기 위한 대화 상자를 엽니다" @@ -3267,13 +3293,13 @@ msgid "Opens password reset form" msgstr "비밀번호 재설정 양식을 엽니다" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" -msgstr "저장된 피드를 편집할 수 있는 화면을 엽니다" +msgstr "저장한 피드를 편집할 수 있는 화면을 엽니다" #: src/view/screens/Settings/index.tsx:608 msgid "Opens screen with all saved feeds" -msgstr "모든 저장된 피드 화면을 엽니다" +msgstr "모든 저장한 피드 화면을 엽니다" #: src/view/screens/Settings/index.tsx:664 msgid "Opens the app password settings" @@ -3287,7 +3313,7 @@ msgstr "팔로우 중 피드 설정을 엽니다" msgid "Opens the linked website" msgstr "연결된 웹사이트를 엽니다" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:92 msgid "Opens the message settings page" msgstr "메시지 설정 페이지를 엽니다" @@ -3308,6 +3334,7 @@ msgstr "스레드 설정을 엽니다" msgid "Option {0} of {numItems}" msgstr "{numItems}개 중 {0}번째 옵션" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "선택 사항으로 아래에 추가 정보를 입력하세요:" @@ -3316,7 +3343,7 @@ msgstr "선택 사항으로 아래에 추가 정보를 입력하세요:" msgid "Or combine these options:" msgstr "또는 다음 옵션을 결합하세요:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "기타" @@ -3339,8 +3366,8 @@ msgstr "페이지를 찾을 수 없음" #: src/screens/Login/LoginForm.tsx:195 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "비밀번호" @@ -3372,34 +3399,34 @@ msgstr "@{0} 님이 팔로우한 사람들" msgid "People following @{0}" msgstr "@{0} 님을 팔로우하는 사람들" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "앨범에 접근할 수 있는 권한이 필요합니다." -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "앨범에 접근할 수 있는 권한이 거부되었습니다. 시스템 설정에서 활성화하세요." -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "반려동물" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "성인용 사진." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "홈에 고정" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "홈에 고정" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" -msgstr "고정된 피드" +msgstr "고정한 피드" #: src/view/com/util/post-embeds/GifEmbed.tsx:36 msgid "Play" @@ -3422,19 +3449,19 @@ msgstr "동영상 재생" msgid "Plays the GIF" msgstr "GIF를 재생합니다" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "핸들을 입력하세요." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "비밀번호를 입력하세요." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "인증 캡차를 완료해 주세요." -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "이메일을 변경하기 전에 이메일을 확인해 주세요. 이는 이메일 변경 도구가 추가되는 동안 일시적으로 요구되는 사항이며 곧 제거될 예정입니다." @@ -3450,15 +3477,15 @@ msgstr "이 앱 비밀번호에 대해 고유한 이름을 입력하거나 무 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "뮤트할 단어나 태그 또는 문구를 입력하세요" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "이메일을 입력하세요." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "비밀번호도 입력해 주세요:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "{0} 님이 이 라벨을 잘못 적용했다고 생각하는 이유를 설명해 주세요" @@ -3466,7 +3493,7 @@ msgstr "{0} 님이 이 라벨을 잘못 적용했다고 생각하는 이유를 msgid "Please sign in as @{0}" msgstr "@{0}(으)로 로그인하세요" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "이메일 인증하기" @@ -3474,11 +3501,11 @@ msgstr "이메일 인증하기" msgid "Please wait for your link card to finish loading" msgstr "링크 카드를 완전히 불러올 때까지 기다려주세요" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "정치" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "음란물" @@ -3546,7 +3573,7 @@ msgstr "게시물" msgid "Posts can be muted based on their text, their tags, or both." msgstr "게시물의 글 및 태그에 따라 게시물을 뮤트할 수 있습니다." -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "게시물 숨겨짐" @@ -3560,15 +3587,15 @@ msgstr "호스팅 제공자를 변경하려면 누릅니다" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "다시 시도하려면 누르기" -#: src/screens/Messages/Conversation/MessagesList.tsx:47 -#: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "다시 시도하려면 누르기" +#: src/screens/Messages/Conversation/MessagesList.tsx:50 +#: src/screens/Messages/Conversation/MessagesList.tsx:56 +#~ msgid "Press to Retry" +#~ msgstr "다시 시도하려면 누르기" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3591,7 +3618,7 @@ msgstr "개인정보" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "개인정보 처리방침" @@ -3604,11 +3631,11 @@ msgstr "처리 중…" msgid "profile" msgstr "프로필" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "프로필" @@ -3620,7 +3647,7 @@ msgstr "프로필 업데이트됨" msgid "Protect your account by verifying your email." msgstr "이메일을 인증하여 계정을 보호하세요." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:194 msgid "Public" msgstr "공공성" @@ -3662,16 +3689,20 @@ msgstr "무작위" msgid "Ratios" msgstr "비율" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "이유: {0}" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "최근 검색" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "제거" @@ -3687,22 +3718,25 @@ msgstr "아바타 제거" msgid "Remove Banner" msgstr "배너 제거" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "피드 제거" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "피드를 제거하시겠습니까?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "내 피드에서 제거" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "내 피드에서 제거하시겠습니까?" @@ -3726,20 +3760,22 @@ msgstr "인용 제거" msgid "Remove repost" msgstr "재게시를 취소합니다" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" -msgstr "저장된 피드에서 이 피드를 제거합니다" +msgstr "저장한 피드에서 이 피드를 제거합니다" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 msgid "Removed from list" msgstr "리스트에서 제거됨" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "내 피드에서 제거됨" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "내 피드에서 제거됨" @@ -3751,6 +3787,11 @@ msgstr "{0}에서 기본 미리보기 이미지를 제거합니다" msgid "Removes quoted post" msgstr "인용된 게시물을 제거합니다" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "Discover로 교체" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "답글" @@ -3764,7 +3805,7 @@ msgctxt "action" msgid "Reply" msgstr "답글" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "답글 필터" @@ -3774,34 +3815,40 @@ msgctxt "description" msgid "Reply to <0><1/>" msgstr "<0><1/> 님에게 보내는 답글" -#: src/components/dms/MessageMenu.tsx:109 +#: src/components/dms/MessageMenu.tsx:113 msgid "Report" msgstr "신고" -#: src/components/dms/ConvoMenu.tsx:146 -#: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "계정 신고" +#: src/components/dms/ConvoMenu.tsx:169 +#: src/components/dms/ConvoMenu.tsx:173 +#~ msgid "Report account" +#~ msgstr "계정 신고" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "계정 신고" +#: src/components/dms/ConvoMenu.tsx:165 +#: src/components/dms/ConvoMenu.tsx:168 +#: src/components/dms/ConvoMenu.tsx:200 +msgid "Report conversation" +msgstr "대화 신고" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "신고 대화 상자" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "피드 신고" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "리스트 신고" -#: src/components/dms/MessageMenu.tsx:107 +#: src/components/dms/MessageMenu.tsx:111 msgid "Report message" msgstr "메시지 신고" @@ -3810,30 +3857,36 @@ msgstr "메시지 신고" msgid "Report post" msgstr "게시물 신고" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "이 콘텐츠 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "이 피드 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "이 리스트 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "이 메시지 신고" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "이 게시물 신고하기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "이 사용자 신고하기" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "재게시" @@ -3861,14 +3914,14 @@ msgstr "<0><1/> 님이 재게시함" #: src/view/com/notifications/FeedItem.tsx:160 msgid "reposted your post" -msgstr "님이 내 게시물을 재게시했습니다" +msgstr "이(가) 내 게시물을 재게시했습니다" #: src/view/com/post-thread/PostThreadItem.tsx:188 msgid "Reposts of this post" msgstr "이 게시물의 재게시" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "변경 요청" @@ -3881,7 +3934,7 @@ msgstr "코드 요청" msgid "Require alt text before posting" msgstr "게시하기 전 대체 텍스트 필수" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "계정에 로그인할 때 이메일 코드 필수" @@ -3889,8 +3942,8 @@ msgstr "계정에 로그인할 때 이메일 코드 필수" msgid "Required for this provider" msgstr "이 제공자에서 필수" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "이메일 다시 보내기" @@ -3933,11 +3986,12 @@ msgstr "로그인을 다시 시도합니다" msgid "Retries the last action, which errored out" msgstr "오류가 발생한 마지막 작업을 다시 시도합니다" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:140 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 #: src/screens/Login/LoginForm.tsx:282 #: src/screens/Login/LoginForm.tsx:289 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 #: src/screens/Onboarding/StepInterests/index.tsx:226 #: src/screens/Onboarding/StepInterests/index.tsx:229 #: src/screens/Signup/index.tsx:207 @@ -3947,11 +4001,11 @@ msgid "Retry" msgstr "다시 시도" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "다시 시도" +#~ msgid "Retry." +#~ msgstr "다시 시도" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "이전 페이지로 돌아갑니다" @@ -3960,20 +4014,20 @@ msgid "Returns to home page" msgstr "홈 페이지로 돌아갑니다" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "이전 페이지로 돌아갑니다" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "저장" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -3991,7 +4045,7 @@ msgstr "생년월일 저장" msgid "Save Changes" msgstr "변경 사항 저장" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "핸들 변경 저장" @@ -3999,24 +4053,21 @@ msgstr "핸들 변경 저장" msgid "Save image crop" msgstr "이미지 자르기 저장" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "내 피드에 저장" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" -msgstr "저장된 피드" +msgstr "저장한 피드" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" -msgstr "" +msgstr "내 앨범에 저장됨" -#: src/view/com/lightbox/Lightbox.tsx:81 -#~ msgid "Saved to your camera roll." -#~ msgstr "내 앨범에 저장됨" - -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "내 피드에 저장됨" @@ -4024,7 +4075,7 @@ msgstr "내 피드에 저장됨" msgid "Saves any changes to your profile" msgstr "프로필에 대한 모든 변경 사항을 저장합니다" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "핸들을 {handle}(으)로 변경합니다" @@ -4032,11 +4083,11 @@ msgstr "핸들을 {handle}(으)로 변경합니다" msgid "Saves image crop settings" msgstr "이미지 자르기 설정을 저장합니다" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "과학" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "맨 위로 스크롤" @@ -4049,12 +4100,12 @@ msgstr "맨 위로 스크롤" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "검색" @@ -4096,7 +4147,7 @@ msgstr "프로필 검색" msgid "Search Tenor" msgstr "Tenor 검색" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "보안 단계 필요" @@ -4121,7 +4172,7 @@ msgstr "이 사용자의 <0>{displayTag} 게시물 보기" msgid "See profile" msgstr "프로필 보기" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "이 가이드" @@ -4129,10 +4180,22 @@ msgstr "이 가이드" msgid "Select {item}" msgstr "{item} 선택" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "색상 선택" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "계정 선택" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "아바타 선택" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "이모티콘 선택" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "기존 계정에서 선택" @@ -4161,6 +4224,10 @@ msgstr "{numItems}개 중 {i}번째 옵션을 선택합니다" msgid "Select some accounts below to follow" msgstr "아래에서 팔로우할 계정을 선택하세요" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "{emojiName} 이모티콘을 아바타로 선택하기" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "신고할 검토 서비스를 선택하세요." @@ -4205,22 +4272,22 @@ msgstr "기본 알고리즘 피드를 선택하세요" msgid "Select your secondary algorithmic feeds" msgstr "보조 알고리즘 피드를 선택하세요" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "인증 이메일 보내기" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "이메일 보내기" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "이메일 보내기" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "피드백 보내기" @@ -4229,6 +4296,8 @@ msgstr "피드백 보내기" msgid "Send message" msgstr "메시지 보내기" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4238,12 +4307,12 @@ msgstr "신고 보내기" msgid "Send report to {0}" msgstr "{0} 님에게 신고 보내기" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "인증 메일 보내기" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "계정 삭제를 위한 확인 코드가 포함된 이메일을 전송합니다" @@ -4259,15 +4328,15 @@ msgstr "생년월일 설정" msgid "Set new password" msgstr "새 비밀번호 설정" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "피드에서 모든 인용 게시물을 숨기려면 이 설정을 \"아니요\"로 설정합니다. 재게시는 계속 표시됩니다." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "피드에서 모든 답글을 숨기려면 이 설정을 \"아니요\"로 설정합니다." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "피드에서 모든 재게시를 숨기려면 이 설정을 \"아니요\"로 설정합니다." @@ -4275,15 +4344,15 @@ msgstr "피드에서 모든 재게시를 숨기려면 이 설정을 \"아니요\ msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "스레드 보기에 답글을 표시하려면 이 설정을 \"예\"로 설정합니다. 이는 실험적인 기능입니다." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." -msgstr "팔로우 중 피드에 저장된 피드 샘플을 표시하려면 이 설정을 \"예\"로 설정합니다. 이는 실험적인 기능입니다." +msgstr "팔로우 중 피드에 저장한 피드 샘플을 표시하려면 이 설정을 \"예\"로 설정합니다. 이는 실험적인 기능입니다." #: src/screens/Onboarding/Layout.tsx:48 msgid "Set up your account" msgstr "계정 설정하기" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Bluesky 사용자 이름을 설정합니다" @@ -4326,13 +4395,13 @@ msgstr "이미지 비율을 가로로 길게 설정합니다" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "설정" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "성행위 또는 선정적인 노출." @@ -4340,7 +4409,7 @@ msgstr "성행위 또는 선정적인 노출." msgid "Sexually Suggestive" msgstr "외설적" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "공유" @@ -4350,7 +4419,7 @@ msgstr "공유" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "공유" @@ -4360,8 +4429,8 @@ msgstr "공유" msgid "Share anyway" msgstr "무시하고 공유" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "피드 공유" @@ -4382,13 +4451,9 @@ msgstr "연결된 웹사이트를 공유합니다" msgid "Show" msgstr "표시" -#: src/view/screens/PreferencesFollowingFeed.tsx:68 -#~ msgid "Show all replies" -#~ msgstr "모든 답글 표시" - #: src/view/com/util/post-embeds/GifEmbed.tsx:167 msgid "Show alt text" -msgstr "" +msgstr "대체 텍스트 표시" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 @@ -4411,7 +4476,7 @@ msgstr "{0} 님과 비슷한 팔로우 표시" #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" -msgstr "" +msgstr "이런 항목 덜 보기" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 @@ -4422,13 +4487,13 @@ msgstr "더 보기" #: src/view/com/util/forms/PostDropdownBtn.tsx:297 #: src/view/com/util/forms/PostDropdownBtn.tsx:299 msgid "Show more like this" -msgstr "" +msgstr "이런 항목 더 보기" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "내 피드에서 게시물 표시" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "인용 게시물 표시" @@ -4444,7 +4509,7 @@ msgstr "팔로우 중 피드에 인용 표시" msgid "Show re-posts in Following feed" msgstr "팔로우 중 피드에 재게시 표시" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "답글 표시" @@ -4460,11 +4525,7 @@ msgstr "팔로우 중 피드에 답글 표시" msgid "Show replies in Following feed" msgstr "팔로우 중 피드에 답글 표시" -#: src/view/screens/PreferencesFollowingFeed.tsx:70 -#~ msgid "Show replies with at least {value} {0}" -#~ msgstr "좋아요가 {value}개 이상인 답글 표시" - -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "재게시 표시" @@ -4502,12 +4563,12 @@ msgstr "피드에 {0} 님의 게시물을 표시합니다" #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4535,12 +4596,12 @@ msgstr "Bluesky에 로그인하거나 새 계정 만들기" msgid "Sign out" msgstr "로그아웃" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4574,22 +4635,22 @@ msgstr "건너뛰기" msgid "Skip this flow" msgstr "이 단계 건너뛰기" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "소프트웨어 개발" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "알 수 없는 오류가 발생했습니다" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." -msgstr "뭔가 잘못되었습니다. 다시 시도해 주세요." +msgstr "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." -#: src/lib/hooks/useAccountSwitcher.ts:60 -#~ msgid "Sorry! We need you to enter your password." -#~ msgstr "죄송합니다. 비밀번호를 입력해 주세요." - -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "죄송합니다. 세션이 만료되었습니다. 다시 로그인해 주세요." @@ -4601,19 +4662,20 @@ msgstr "답글 정렬" msgid "Sort replies to the same post by:" msgstr "동일한 게시물에 대한 답글을 정렬하는 기준입니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "출처:" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "스팸" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "스팸, 과도한 멘션 또는 답글" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "스포츠" @@ -4629,13 +4691,9 @@ msgstr "새 대화 시작하기" msgid "Status Page" msgstr "상태 페이지" -#: src/screens/Signup/index.tsx:154 -#~ msgid "Step" -#~ msgstr "" - #: src/screens/Signup/index.tsx:154 msgid "Step {0} of {1}" -msgstr "" +msgstr "{1}단계 중 {0}단계" #: src/view/screens/Settings/index.tsx:301 msgid "Storage cleared, you need to restart the app now." @@ -4646,18 +4704,18 @@ msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니 msgid "Storybook" msgstr "스토리북" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "확인" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "구독" #: src/screens/Profile/Sections/Labels.tsx:194 msgid "Subscribe to @{0} to use these labels:" -msgstr "이 라벨을 사용하려면 @{0} 님을 구독하세요:" +msgstr "이 라벨을 사용하려면 @{0}을(를) 구독하세요." #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 msgid "Subscribe to Labeler" @@ -4672,7 +4730,7 @@ msgstr "{0} 피드 구독하기" msgid "Subscribe to this labeler" msgstr "이 라벨러 구독하기" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "이 리스트 구독하기" @@ -4684,7 +4742,7 @@ msgstr "팔로우 추천" msgid "Suggested for you" msgstr "나를 위한 추천" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "외설적" @@ -4731,7 +4789,7 @@ msgstr "세로" msgid "Tap to view fully" msgstr "탭하여 전체 크기로 봅니다" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "기술" @@ -4743,13 +4801,13 @@ msgstr "이용약관" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "서비스 이용약관" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "커뮤니티 기준을 위반하는 용어 사용" @@ -4757,15 +4815,16 @@ msgstr "커뮤니티 기준을 위반하는 용어 사용" msgid "text" msgstr "글" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "텍스트 입력 필드" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "감사합니다. 신고를 전송했습니다." -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "텍스트 파일 내용:" @@ -4778,10 +4837,6 @@ msgstr "이 핸들은 이미 사용 중입니다." msgid "The account will be able to interact with you after unblocking." msgstr "차단을 해제하면 이 계정이 나와 상호작용할 수 있게 됩니다." -#: src/components/moderation/ModerationDetailsDialog.tsx:127 -#~ msgid "the author" -#~ msgstr "작성자" - #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" msgstr "커뮤니티 가이드라인을 <0/>(으)로 이동했습니다" @@ -4790,11 +4845,15 @@ msgstr "커뮤니티 가이드라인을 <0/>(으)로 이동했습니다" msgid "The Copyright Policy has been moved to <0/>" msgstr "저작권 정책을 <0/>(으)로 이동했습니다" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "피드를 Discover로 교체했습니다." + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "내 계정에 다음 라벨이 적용되었습니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "내 콘텐츠에 다음 라벨이 적용되었습니다." @@ -4824,15 +4883,17 @@ msgid "There are many feeds to try:" msgstr "시도해 볼 만한 피드:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "서버에 연결하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "이 피드를 삭제하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "피드를 업데이트하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." @@ -4842,18 +4903,19 @@ msgstr "Tenor에 연결하는 동안 문제가 발생했습니다." #: src/screens/Messages/Conversation/MessageListError.tsx:23 msgid "There was an issue connecting to the chat." -msgstr "" +msgstr "채팅에 연결하는 동안 문제가 발생했습니다." -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "서버에 연결하는 동안 문제가 발생했습니다" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "서버에 연결하는 동안 문제가 발생했습니다" @@ -4861,7 +4923,7 @@ msgstr "서버에 연결하는 동안 문제가 발생했습니다" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "알림을 가져오는 동안 문제가 발생했습니다. 이곳을 탭하여 다시 시도하세요." -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "게시물을 가져오는 동안 문제가 발생했습니다. 이곳을 탭하여 다시 시도하세요." @@ -4874,6 +4936,7 @@ msgstr "리스트를 가져오는 동안 문제가 발생했습니다. 이곳을 msgid "There was an issue fetching your lists. Tap here to try again." msgstr "리스트를 가져오는 동안 문제가 발생했습니다. 이곳을 탭하여 다시 시도하세요." +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "신고를 전송하는 동안 문제가 발생했습니다. 인터넷 연결을 확인해 주세요." @@ -4900,10 +4963,10 @@ msgstr "앱 비밀번호를 가져오는 동안 문제가 발생했습니다" msgid "There was an issue! {0}" msgstr "문제가 발생했습니다! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." @@ -4928,13 +4991,13 @@ msgstr "이 {screenDescription}에 다음 플래그가 지정되었습니다:" msgid "This account has requested that users sign in to view their profile." msgstr "이 계정의 프로필을 보려면 로그인해야 합니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "이 이의신청은 <0>{0}에게 보내집니다." #: src/screens/Messages/Conversation/MessageListError.tsx:26 msgid "This chat was disconnected due to a network error." -msgstr "" +msgstr "네트워크 오류로 인해 채팅 연결이 끊어졌습니다." #: src/lib/moderation/useGlobalLabelStrings.ts:19 msgid "This content has been hidden by the moderators." @@ -4953,21 +5016,21 @@ msgstr "이 콘텐츠는 {0}에서 호스팅됩니다. 외부 미디어를 사 msgid "This content is not available because one of the users involved has blocked the other." msgstr "관련 사용자 중 한 명이 다른 사용자를 차단했기 때문에 이 콘텐츠를 사용할 수 없습니다." -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "이 콘텐츠는 Bluesky 계정이 없으면 볼 수 없습니다." -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "이 기능은 베타 버전입니다. 저장소 내보내기에 대한 자세한 내용은 <0>이 블로그 글에서 확인할 수 있습니다." -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "이 피드는 현재 트래픽이 많아 일시적으로 사용할 수 없습니다. 나중에 다시 시도해 주세요." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "이 피드는 비어 있습니다." @@ -4975,25 +5038,29 @@ msgstr "이 피드는 비어 있습니다." msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "이 피드는 비어 있습니다. 더 많은 사용자를 팔로우하거나 언어 설정을 조정해 보세요." +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "이 피드는 더 이상 온라인 상태가 아닙니다. 대신 <0>Discover를 표시합니다." + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "이 정보는 다른 사용자와 공유되지 않습니다." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "이는 이메일을 변경하거나 비밀번호를 재설정해야 할 때 중요한 정보입니다." -#: src/components/moderation/ModerationDetailsDialog.tsx:124 -#~ msgid "This label was applied by {0}." -#~ msgstr "이 라벨은 {0}이(가) 적용했습니다." - #: src/components/moderation/ModerationDetailsDialog.tsx:127 msgid "This label was applied by <0>{0}." -msgstr "" +msgstr "이 라벨은 {0}이(가) 적용했습니다." #: src/components/moderation/ModerationDetailsDialog.tsx:125 msgid "This label was applied by the author." -msgstr "" +msgstr "이 라벨은 작성자가 적용했습니다." + +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "이 라벨은 내가 적용했습니다." #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." @@ -5003,7 +5070,7 @@ msgstr "이 라벨러는 라벨을 게시하지 않았으며 활성화되어 있 msgid "This link is taking you to the following website:" msgstr "이 링크를 클릭하면 다음 웹사이트로 이동합니다:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "이 리스트는 비어 있습니다." @@ -5036,7 +5103,7 @@ msgstr "이 프로필은 로그인한 사용자에게만 표시됩니다. 로그 msgid "This service has not provided terms of service or a privacy policy." msgstr "이 서비스는 서비스 이용약관이나 개인정보 처리방침을 제공하지 않습니다." -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "이 도메인에 레코드가 추가됩니다:" @@ -5065,10 +5132,6 @@ msgstr "이 사용자는 내가 뮤트한 <0>{0} 리스트에 포함되어 msgid "This user isn't following anyone." msgstr "이 사용자는 아무도 팔로우하지 않았습니다." -#: src/view/com/modals/SelfLabel.tsx:137 -#~ msgid "This warning is only available for posts with media attached." -#~ msgstr "이 경고는 미디어가 첨부된 게시물에만 사용할 수 있습니다." - #: src/components/dialogs/MutedWords.tsx:283 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "뮤트한 단어에서 {0}이(가) 삭제됩니다. 나중에 언제든지 다시 추가할 수 있습니다." @@ -5090,10 +5153,14 @@ msgstr "스레드 모드" msgid "Threads Preferences" msgstr "스레드 설정" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "이메일 2단계 인증을 비활성화하려면 이메일 주소에 대한 접근 권한을 인증하세요." +#: src/components/dms/ConvoMenu.tsx:202 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "대화를 신고하려면 대화 화면에서 해당 메시지 중 하나를 신고하세요. 이렇게 하면 운영진이 문제의 맥락을 파악할 수 있습니다." + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "이 신고를 누구에게 보내시겠습니까?" @@ -5139,15 +5206,15 @@ msgstr "2단계 인증" msgid "Type your message here" msgstr "메시지를 입력하세요" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "유형:" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "리스트 차단 해제" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "리스트 언뮤트" @@ -5163,7 +5230,7 @@ msgstr "서비스에 연결할 수 없습니다. 인터넷 연결을 확인하 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "차단 해제" @@ -5184,7 +5251,7 @@ msgstr "계정을 차단 해제하시겠습니까?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "재게시 취소" @@ -5207,16 +5274,12 @@ msgstr "{0} 님을 언팔로우" msgid "Unfollow Account" msgstr "계정 언팔로우" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:197 -#~ msgid "Unlike" -#~ msgstr "좋아요 취소" - -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "이 피드 좋아요 취소" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "언뮤트" @@ -5233,7 +5296,7 @@ msgstr "계정 언뮤트" msgid "Unmute all {displayTag} posts" msgstr "모든 {tag} 게시물 언뮤트" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Unmute notifications" msgstr "알림 언뮤트" @@ -5242,16 +5305,16 @@ msgstr "알림 언뮤트" msgid "Unmute thread" msgstr "스레드 언뮤트" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "고정 해제" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "홈에서 고정 해제" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "검토 리스트 고정 해제" @@ -5263,7 +5326,12 @@ msgstr "구독 취소" msgid "Unsubscribe from this labeler" msgstr "이 라벨러 구독 취소하기" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "원치 않는 성적 콘텐츠" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "원치 않는 성적 콘텐츠" @@ -5271,7 +5339,7 @@ msgstr "원치 않는 성적 콘텐츠" msgid "Update {displayName} in Lists" msgstr "리스트에서 {displayName} 업데이트" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "{handle}로 변경" @@ -5279,7 +5347,11 @@ msgstr "{handle}로 변경" msgid "Updating..." msgstr "업데이트 중…" -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:265 +msgid "Upload a photo instead" +msgstr "대신 사진 업로드하기" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "텍스트 파일 업로드 경로:" @@ -5302,7 +5374,7 @@ msgstr "파일에서 업로드" msgid "Upload from Library" msgstr "라이브러리에서 업로드" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "서버에 있는 파일을 사용합니다" @@ -5310,11 +5382,11 @@ msgstr "서버에 있는 파일을 사용합니다" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "앱 비밀번호를 사용하면 계정이나 비밀번호에 대한 전체 접근 권한을 제공하지 않고도 다른 Bluesky 클라이언트에 로그인할 수 있습니다." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "호스팅 제공자로 bsky.social을 사용합니다" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "기본 제공자 사용" @@ -5328,7 +5400,11 @@ msgstr "인앱 브라우저 사용" msgid "Use my default browser" msgstr "내 기본 브라우저 사용" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "추천 사용" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "DNS 패널을 사용합니다" @@ -5366,13 +5442,13 @@ msgstr "나를 차단한 사용자" msgid "User list by {0}" msgstr "{0} 님의 사용자 리스트" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "<0/> 님의 사용자 리스트" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "내 사용자 리스트" @@ -5392,7 +5468,7 @@ msgstr "사용자 리스트" msgid "Username or email address" msgstr "사용자 이름 또는 이메일 주소" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "사용자" @@ -5408,17 +5484,13 @@ msgstr "\"{0}\"에 있는 사용자" msgid "Users that have liked this content or profile" msgstr "이 콘텐츠 또는 프로필을 좋아하는 사용자" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "값:" -#: src/view/com/modals/ChangeHandle.tsx:510 -#~ msgid "Verify {0}" -#~ msgstr "{0} 확인" - -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" -msgstr "" +msgstr "DNS 레코드 인증" #: src/view/screens/Settings/index.tsx:915 msgid "Verify email" @@ -5432,16 +5504,16 @@ msgstr "내 이메일 인증하기" msgid "Verify My Email" msgstr "내 이메일 인증하기" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "새 이메일 인증" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" -msgstr "" +msgstr "텍스트 파일 인증" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "이메일 인증하기" @@ -5449,7 +5521,7 @@ msgstr "이메일 인증하기" msgid "Version {appVersion} {bundleInfo}" msgstr "버전 {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "비디오 게임" @@ -5461,11 +5533,11 @@ msgstr "{0} 님의 아바타를 봅니다" msgid "View debug entry" msgstr "디버그 항목 보기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "세부 정보 보기" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "저작권 위반 신고에 대한 세부 정보 보기" @@ -5473,13 +5545,13 @@ msgstr "저작권 위반 신고에 대한 세부 정보 보기" msgid "View full thread" msgstr "전체 스레드 보기" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "이 라벨에 대한 정보 보기" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "프로필 보기" @@ -5491,7 +5563,7 @@ msgstr "아바타 보기" msgid "View the labeling service provided by @{0}" msgstr "{0} 님이 제공하는 라벨링 서비스 보기" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "이 피드를 좋아하는 사용자 보기" @@ -5519,11 +5591,15 @@ msgstr "콘텐츠 경고 및 피드에서 필터링" msgid "We couldn't find any results for that hashtag." msgstr "해당 해시태그에 대한 결과를 찾을 수 없습니다." +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "이 대화를 불러올 수 없습니다" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "계정이 준비될 때까지 {estimatedTime}이(가) 걸릴 것으로 예상됩니다." -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:186 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "즐거운 시간 되시기 바랍니다. Bluesky의 다음 특징을 기억하세요:" @@ -5607,23 +5683,31 @@ msgstr "알고리즘 피드에 어떤 언어를 표시하시겠습니까?" msgid "Who can reply" msgstr "답글을 달 수 있는 사람" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "이런!" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "이 콘텐츠를 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "이 피드를 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "이 리스트를 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "이 메시지를 검토해야 하는 이유는 무엇인가요?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "이 게시물을 검토해야 하는 이유는 무엇인가요?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "이 사용자를 검토해야 하는 이유는 무엇인가요?" @@ -5645,21 +5729,21 @@ msgstr "게시물 작성" msgid "Write your reply" msgstr "답글 작성하기" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "작가" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "예" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:159 msgid "Yesterday, {time}" msgstr "어제 {time}" @@ -5693,17 +5777,17 @@ msgstr "팔로워가 없습니다." msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "아직 초대 코드가 없습니다! Bluesky를 좀 더 오래 사용하신 후에 보내드리겠습니다." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." -msgstr "고정된 피드가 없습니다." +msgstr "고정한 피드가 없습니다." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "저장된 피드가 없습니다!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "저장한 피드가 없습니다!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." -msgstr "저장된 피드가 없습니다." +msgstr "저장한 피드가 없습니다." #: src/view/com/post-thread/PostThread.tsx:159 msgid "You have blocked the author or you have been blocked by the author." @@ -5748,7 +5832,7 @@ msgstr "피드가 없습니다." msgid "You have no lists." msgstr "리스트가 없습니다." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:206 msgid "You have no messages yet. Start a conversation with someone!" msgstr "아직 메시지가 없습니다. 사람들과 대화를 시작해 보세요!" @@ -5768,7 +5852,11 @@ msgstr "아직 어떤 계정도 뮤트하지 않았습니다. 계정을 뮤트 msgid "You haven't muted any words or tags yet" msgstr "아직 어떤 단어나 태그도 뮤트하지 않았습니다" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "비셀프 라벨이 잘못 지정되었다고 생각되면 이의신청할 수 있습니다." + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "이 라벨이 잘못 지정되었다고 생각되면 이의신청할 수 있습니다." @@ -5796,7 +5884,7 @@ msgstr "이제 이 스레드에 대한 알림을 받습니다" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "\"재설정 코드\"가 포함된 이메일을 받게 되면 여기에 해당 코드를 입력한 다음 새 비밀번호를 입력합니다." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/index.tsx:275 msgid "You: {0}" msgstr "나: {0}" @@ -5810,7 +5898,7 @@ msgstr "직접 제어하세요" msgid "You're in line" msgstr "대기 중입니다" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:183 msgid "You're ready to go!" msgstr "준비가 끝났습니다!" @@ -5831,7 +5919,7 @@ msgstr "내 계정" msgid "Your account has been deleted" msgstr "계정을 삭제했습니다" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "모든 공개 데이터 레코드가 포함된 계정 저장소를 \"CAR\" 파일로 다운로드할 수 있습니다. 이 파일에는 이미지와 같은 미디어 임베드나 별도로 가져와야 하는 비공개 데이터는 포함되지 않습니다." @@ -5848,16 +5936,16 @@ msgid "Your default feed is \"Following\"" msgstr "기본 피드는 \"팔로우 중\"입니다" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "이메일이 잘못된 것 같습니다." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "이메일이 변경되었지만 인증되지 않았습니다. 다음 단계로 새 이메일을 인증해 주세요." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "이메일이 아직 인증되지 않았습니다. 이는 중요한 보안 단계이므로 권장하는 사항입니다." @@ -5869,7 +5957,7 @@ msgstr "팔로우 중 피드가 비어 있습니다! 더 많은 사용자를 팔 msgid "Your full handle will be" msgstr "내 전체 핸들:" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "내 전체 핸들: <0>@{0}" @@ -5885,7 +5973,7 @@ msgstr "비밀번호를 성공적으로 변경했습니다." msgid "Your post has been published" msgstr "게시물을 게시했습니다" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:198 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "게시물, 좋아요, 차단 목록은 공개됩니다. 뮤트 목록은 공개되지 않습니다." @@ -5897,6 +5985,10 @@ msgstr "내 프로필" msgid "Your reply has been published" msgstr "내 답글을 게시했습니다" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "신고가 Bluesky Moderation Service로 전송됩니다." + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "내 사용자 핸들" From 9861494e341b482a522d0ecc6a2194bb12a769fb Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 14 May 2024 18:55:43 +0100 Subject: [PATCH 052/277] =?UTF-8?q?[=F0=9F=90=B4]=20Message=20drafts=20(#3?= =?UTF-8?q?993)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * drafts * don't throw if no convo ID * Remove labs package --------- Co-authored-by: Eric Bailey --- .../Messages/Conversation/MessageInput.tsx | 12 ++- .../Conversation/MessageInput.web.tsx | 12 ++- src/state/messages/index.tsx | 5 +- src/state/messages/message-drafts.tsx | 83 +++++++++++++++++++ 4 files changed, 107 insertions(+), 5 deletions(-) create mode 100644 src/state/messages/message-drafts.tsx diff --git a/src/screens/Messages/Conversation/MessageInput.tsx b/src/screens/Messages/Conversation/MessageInput.tsx index 926d66e7d3..d05d6109e8 100644 --- a/src/screens/Messages/Conversation/MessageInput.tsx +++ b/src/screens/Messages/Conversation/MessageInput.tsx @@ -15,6 +15,10 @@ import Graphemer from 'graphemer' import {HITSLOP_10, MAX_DM_GRAPHEME_LENGTH} from '#/lib/constants' import {useHaptics} from '#/lib/haptics' +import { + useMessageDraft, + useSaveMessageDraft, +} from '#/state/messages/message-drafts' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {PaperPlane_Stroke2_Corner0_Rounded as PaperPlane} from '#/components/icons/PaperPlane' @@ -29,7 +33,8 @@ export function MessageInput({ const {_} = useLingui() const t = useTheme() const playHaptic = useHaptics() - const [message, setMessage] = React.useState('') + const {getDraft, clearDraft} = useMessageDraft() + const [message, setMessage] = React.useState(getDraft) const [maxHeight, setMaxHeight] = React.useState() const [isInputScrollable, setIsInputScrollable] = React.useState(false) @@ -45,13 +50,14 @@ export function MessageInput({ Toast.show(_(msg`Message is too long`)) return } + clearDraft() onSendMessage(message.trimEnd()) playHaptic() setMessage('') setTimeout(() => { inputRef.current?.focus() }, 100) - }, [message, onSendMessage, playHaptic, _]) + }, [message, onSendMessage, playHaptic, _, clearDraft]) const onInputLayout = React.useCallback( (e: NativeSyntheticEvent) => { @@ -69,6 +75,8 @@ export function MessageInput({ [scrollToEnd, topInset], ) + useSaveMessageDraft(message) + return ( { if (message.trim() === '') { @@ -28,9 +33,10 @@ export function MessageInput({ Toast.show(_(msg`Message is too long`)) return } + clearDraft() onSendMessage(message.trimEnd()) setMessage('') - }, [message, onSendMessage, _]) + }, [message, onSendMessage, _, clearDraft]) const onKeyDown = React.useCallback( (e: React.KeyboardEvent) => { @@ -50,6 +56,8 @@ export function MessageInput({ [], ) + useSaveMessageDraft(message) + return ( - {children} + + {children} + ) } diff --git a/src/state/messages/message-drafts.tsx b/src/state/messages/message-drafts.tsx new file mode 100644 index 0000000000..132e85967c --- /dev/null +++ b/src/state/messages/message-drafts.tsx @@ -0,0 +1,83 @@ +import React, {useEffect, useMemo, useReducer, useRef} from 'react' + +import {useCurrentConvoId} from './current-convo-id' + +const MessageDraftsContext = React.createContext<{ + state: State + dispatch: React.Dispatch +} | null>(null) + +function useMessageDraftsContext() { + const ctx = React.useContext(MessageDraftsContext) + if (!ctx) { + throw new Error( + 'useMessageDrafts must be used within a MessageDraftsContext', + ) + } + return ctx +} + +export function useMessageDraft() { + const {currentConvoId} = useCurrentConvoId() + const {state, dispatch} = useMessageDraftsContext() + return useMemo( + () => ({ + getDraft: () => (currentConvoId && state[currentConvoId]) || '', + clearDraft: () => { + if (currentConvoId) { + dispatch({type: 'clear', convoId: currentConvoId}) + } + }, + }), + [state, dispatch, currentConvoId], + ) +} + +export function useSaveMessageDraft(message: string) { + const {currentConvoId} = useCurrentConvoId() + const {dispatch} = useMessageDraftsContext() + const messageRef = useRef(message) + messageRef.current = message + + useEffect(() => { + return () => { + if (currentConvoId) { + dispatch({ + type: 'set', + convoId: currentConvoId, + draft: messageRef.current, + }) + } + } + }, [currentConvoId, dispatch]) +} + +type State = {[convoId: string]: string} +type Actions = + | {type: 'set'; convoId: string; draft: string} + | {type: 'clear'; convoId: string} + +function reducer(state: State, action: Actions): State { + switch (action.type) { + case 'set': + return {...state, [action.convoId]: action.draft} + case 'clear': + return {...state, [action.convoId]: ''} + default: + return state + } +} + +export function MessageDraftsProvider({children}: {children: React.ReactNode}) { + const [state, dispatch] = useReducer(reducer, {}) + + const ctx = useMemo(() => { + return {state, dispatch} + }, [state]) + + return ( + + {children} + + ) +} From 5af61ca4e48f5b4e8b2663cf179cb4973dcfddf4 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 14 May 2024 18:57:16 +0100 Subject: [PATCH 053/277] =?UTF-8?q?[=F0=9F=90=B4]=20Settings=20screen=20(#?= =?UTF-8?q?3830)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * create settings screen + api * update api package * use putrecord API with validate false * create new RadioGroup component --- src/components/RadioGroup.tsx | 76 +++++++++++++++++++ src/screens/Messages/Settings.tsx | 70 +++++++++++++++++ src/screens/Messages/Settings/index.tsx | 24 ------ .../queries/messages/actor-declaration.ts | 64 ++++++++++++++++ src/view/com/util/forms/RadioButton.tsx | 5 +- src/view/com/util/forms/RadioGroup.tsx | 5 +- 6 files changed, 216 insertions(+), 28 deletions(-) create mode 100644 src/components/RadioGroup.tsx create mode 100644 src/screens/Messages/Settings.tsx delete mode 100644 src/screens/Messages/Settings/index.tsx create mode 100644 src/state/queries/messages/actor-declaration.ts diff --git a/src/components/RadioGroup.tsx b/src/components/RadioGroup.tsx new file mode 100644 index 0000000000..010f65bc31 --- /dev/null +++ b/src/components/RadioGroup.tsx @@ -0,0 +1,76 @@ +import React from 'react' +import {View, ViewProps} from 'react-native' + +import {atoms as a, useTheme} from '#/alf' +import {Button} from './Button' +import {Text} from './Typography' + +export function RadioGroup({ + value, + onSelect, + items, + ...props +}: ViewProps & { + value: T + onSelect: (value: T) => void + items: Array<{label: string; value: T}> +}) { + return ( + + {items.map(item => ( + + ))} + + ) +} + +function RadioIcon({selected}: {selected: boolean}) { + const t = useTheme() + return ( + + {selected && ( + + )} + + ) +} diff --git a/src/screens/Messages/Settings.tsx b/src/screens/Messages/Settings.tsx new file mode 100644 index 0000000000..9faab41302 --- /dev/null +++ b/src/screens/Messages/Settings.tsx @@ -0,0 +1,70 @@ +import React, {useCallback} from 'react' +import {View} from 'react-native' +import {AppBskyActorDefs} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {UseQueryResult} from '@tanstack/react-query' + +import {CommonNavigatorParams} from '#/lib/routes/types' +import {useGate} from '#/lib/statsig/statsig' +import {useUpdateActorDeclaration} from '#/state/queries/messages/actor-declaration' +import {useProfileQuery} from '#/state/queries/profile' +import {useSession} from '#/state/session' +import * as Toast from '#/view/com/util/Toast' +import {ViewHeader} from '#/view/com/util/ViewHeader' +import {CenteredView} from '#/view/com/util/Views' +import {atoms as a} from '#/alf' +import {RadioGroup} from '#/components/RadioGroup' +import {Text} from '#/components/Typography' +import {ClipClopGate} from './gate' + +type AllowIncoming = 'all' | 'none' | 'following' + +type Props = NativeStackScreenProps +export function MessagesSettingsScreen({}: Props) { + const {_} = useLingui() + const {currentAccount} = useSession() + const {data: profile} = useProfileQuery({ + did: currentAccount!.did, + }) as UseQueryResult + + const {mutate: updateDeclaration} = useUpdateActorDeclaration({ + onError: () => { + Toast.show(_(msg`Failed to update settings`)) + }, + }) + + const onSelectItem = useCallback( + (key: string) => { + updateDeclaration(key as AllowIncoming) + }, + [updateDeclaration], + ) + + const gate = useGate() + if (!gate('dms')) return + + return ( + + + + + Allow messages from + + + value={ + (profile?.associated?.chat?.allowIncoming as AllowIncoming) ?? + 'following' + } + items={[ + {label: _(msg`Everyone`), value: 'all'}, + {label: _(msg`Follows only`), value: 'following'}, + {label: _(msg`No one`), value: 'none'}, + ]} + onSelect={onSelectItem} + /> + + + ) +} diff --git a/src/screens/Messages/Settings/index.tsx b/src/screens/Messages/Settings/index.tsx deleted file mode 100644 index bd093c7927..0000000000 --- a/src/screens/Messages/Settings/index.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {NativeStackScreenProps} from '@react-navigation/native-stack' - -import {CommonNavigatorParams} from '#/lib/routes/types' -import {useGate} from '#/lib/statsig/statsig' -import {ViewHeader} from '#/view/com/util/ViewHeader' -import {ClipClopGate} from '../gate' - -type Props = NativeStackScreenProps -export function MessagesSettingsScreen({}: Props) { - const {_} = useLingui() - - const gate = useGate() - if (!gate('dms')) return - - return ( - - - - ) -} diff --git a/src/state/queries/messages/actor-declaration.ts b/src/state/queries/messages/actor-declaration.ts new file mode 100644 index 0000000000..c8cc4acbdc --- /dev/null +++ b/src/state/queries/messages/actor-declaration.ts @@ -0,0 +1,64 @@ +import {AppBskyActorDefs} from '@atproto/api' +import {useMutation, useQueryClient} from '@tanstack/react-query' + +import {logger} from '#/logger' +import {useAgent, useSession} from '#/state/session' +import {RQKEY as PROFILE_RKEY} from '../profile' + +export function useUpdateActorDeclaration({ + onSuccess, + onError, +}: { + onSuccess?: () => void + onError?: (error: Error) => void +}) { + const queryClient = useQueryClient() + const {currentAccount} = useSession() + const {getAgent} = useAgent() + + return useMutation({ + mutationFn: async (allowIncoming: 'all' | 'none' | 'following') => { + if (!currentAccount) throw new Error('Not logged in') + // TODO(sam): remove validate: false once PDSes have the new lexicon + const result = await getAgent().api.com.atproto.repo.putRecord({ + collection: 'chat.bsky.actor.declaration', + rkey: 'self', + repo: currentAccount.did, + validate: false, + record: { + $type: 'chat.bsky.actor.declaration', + allowIncoming, + }, + }) + return result + }, + onMutate: allowIncoming => { + if (!currentAccount) return + queryClient.setQueryData( + PROFILE_RKEY(currentAccount?.did), + (old?: AppBskyActorDefs.ProfileViewDetailed) => { + if (!old) return old + return { + ...old, + associated: { + ...old.associated, + chat: { + allowIncoming, + }, + }, + } satisfies AppBskyActorDefs.ProfileViewDetailed + }, + ) + }, + onSuccess, + onError: error => { + logger.error(error) + if (currentAccount) { + queryClient.invalidateQueries({ + queryKey: PROFILE_RKEY(currentAccount.did), + }) + } + onError?.(error) + }, + }) +} diff --git a/src/view/com/util/forms/RadioButton.tsx b/src/view/com/util/forms/RadioButton.tsx index 9d1cb47497..6cecd318e7 100644 --- a/src/view/com/util/forms/RadioButton.tsx +++ b/src/view/com/util/forms/RadioButton.tsx @@ -1,9 +1,10 @@ import React from 'react' import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' + +import {choose} from 'lib/functions' +import {useTheme} from 'lib/ThemeContext' import {Text} from '../text/Text' import {Button, ButtonType} from './Button' -import {useTheme} from 'lib/ThemeContext' -import {choose} from 'lib/functions' export function RadioButton({ testID, diff --git a/src/view/com/util/forms/RadioGroup.tsx b/src/view/com/util/forms/RadioGroup.tsx index 14599e6490..493c36a9d8 100644 --- a/src/view/com/util/forms/RadioGroup.tsx +++ b/src/view/com/util/forms/RadioGroup.tsx @@ -1,8 +1,9 @@ import React, {useState} from 'react' import {View} from 'react-native' -import {RadioButton} from './RadioButton' -import {ButtonType} from './Button' + import {s} from 'lib/styles' +import {ButtonType} from './Button' +import {RadioButton} from './RadioButton' export interface RadioGroupItem { label: string | JSX.Element From 03da056513b5640c3c6881097c8db46ebe354dd7 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 14 May 2024 11:15:27 -0700 Subject: [PATCH 054/277] Run intl extract (#4016) --- src/locale/locales/ca/messages.po | 1326 +++++++++++++++----------- src/locale/locales/de/messages.po | 1326 +++++++++++++++----------- src/locale/locales/en/messages.po | 1326 +++++++++++++++----------- src/locale/locales/es/messages.po | 1326 +++++++++++++++----------- src/locale/locales/fi/messages.po | 1326 +++++++++++++++----------- src/locale/locales/fr/messages.po | 1326 +++++++++++++++----------- src/locale/locales/ga/messages.po | 1326 +++++++++++++++----------- src/locale/locales/hi/messages.po | 1326 +++++++++++++++----------- src/locale/locales/id/messages.po | 1326 +++++++++++++++----------- src/locale/locales/it/messages.po | 1326 +++++++++++++++----------- src/locale/locales/ja/messages.po | 1326 +++++++++++++++----------- src/locale/locales/ko/messages.po | 249 ++--- src/locale/locales/pt-BR/messages.po | 1326 +++++++++++++++----------- src/locale/locales/tr/messages.po | 1326 +++++++++++++++----------- src/locale/locales/uk/messages.po | 1326 +++++++++++++++----------- src/locale/locales/zh-CN/messages.po | 1326 +++++++++++++++----------- src/locale/locales/zh-TW/messages.po | 1326 +++++++++++++++----------- 17 files changed, 12367 insertions(+), 9098 deletions(-) diff --git a/src/locale/locales/ca/messages.po b/src/locale/locales/ca/messages.po index f67d106683..d581876f58 100644 --- a/src/locale/locales/ca/messages.po +++ b/src/locale/locales/ca/messages.po @@ -16,7 +16,7 @@ msgstr "" "X-Poedit-SourceCharset: utf-8\n" "Plural-Forms: \n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(sense correu)" @@ -28,15 +28,15 @@ msgstr "{0, plural, one {{formattedCount} other} other {{formattedCount} others} #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "{0, plural, one {# codi d'invitació disponible} other {# codis d'invitació disponibles}}" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "{0, plural, one {# etiqueta s'ha aplicat a aquest compte} other {# etiquetes s'han aplicat a aquest compte}}" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "{0, plural, one {# etiqueta s'ha aplicat a aquest contingut} other {# etiquetes s'han aplicat a aquest contingut}}" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "{0, plural, one {# republicació} other {# republicacions}}" @@ -58,7 +58,7 @@ msgstr "{0, plural, one {Like (# m'agrada)} other {Like (# m'agrades)}}" msgid "{0, plural, one {like} other {likes}}" msgstr "{0, plural, one {m'agrada} other {m'agrades}}" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{0, plural, one {Li ha agradat a # user} other {Li ha agradat a # users}}" @@ -86,6 +86,10 @@ msgstr "{0, plural, one {Desmarca m'agrada (# like)} other {Desmarca m'agrada (# #~ msgid "{0} {purposeLabel} List" #~ msgstr "Llista {purposeLabel} {0}" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{count, plural, one {Li ha agradat a # user} other {Li ha agradat a # users}}" @@ -119,7 +123,7 @@ msgstr "{following} seguint" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{likeCount, plural, one {Li ha agradat a # user} other {Li ha agradat a # users}}" @@ -127,11 +131,11 @@ msgstr "{likeCount, plural, one {Li ha agradat a # user} other {Li ha agradat a #~ msgid "{message}" #~ msgstr "{missatge}" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} no llegides" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "{value, plural, =0 {Mostra totes les respostes} one {Mostra les respostes amb almenys # m'agrada} other {Mostra les respostes amb almenys # m'agrades}}" @@ -139,11 +143,11 @@ msgstr "{value, plural, =0 {Mostra totes les respostes} one {Mostra les resposte msgid "<0/> members" msgstr "<0/> membres" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "<0>{0} {1, plural, one {seguidor} other {seguidors}}" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "<0>{0} {1, plural, one {seguint} other {seguint}}" @@ -168,7 +172,7 @@ msgstr "<0>{0} {1, plural, one {seguint} other {seguint}}" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>Segueix alguns<1>usuaris<2>recomanats" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "<0>No aplicable. Aquesta advertència només està disponible per publicacions amb contingut adjunt." @@ -180,7 +184,7 @@ msgstr "<0>No aplicable. Aquesta advertència només està disponible per pu msgid "⚠Invalid Handle" msgstr "⚠Identificador invàlid" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "Confirmació 2FA" @@ -219,7 +223,7 @@ msgstr "Configuració d'accessibilitat" #~ msgid "account" #~ msgstr "compte" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -270,15 +274,15 @@ msgstr "Compte no silenciat" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "Afegeix" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Afegeix una advertència de contingut" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "Afegeix un usuari a aquesta llista" @@ -290,6 +294,7 @@ msgstr "Afegeix un compte" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -297,8 +302,8 @@ msgid "Add alt text" msgstr "Afegeix text alternatiu" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "Afegeix text alternatiu" +#~ msgid "Add ALT text" +#~ msgstr "Afegeix text alternatiu" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -331,7 +336,15 @@ msgstr "Afegeix paraula silenciada a la configuració" msgid "Add muted words and tags" msgstr "Afegeix les paraules i etiquetes silenciades" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Afegeix el següent registre DNS al teu domini:" @@ -340,7 +353,7 @@ msgstr "Afegeix el següent registre DNS al teu domini:" msgid "Add to Lists" msgstr "Afegeix a les llistes" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "Afegeix als meus canals" @@ -353,17 +366,17 @@ msgstr "Afegeix als meus canals" msgid "Added to list" msgstr "Afegit a la llista" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "Afegit als meus canals" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Ajusta el nombre de m'agrades que hagi de tenir una resposta per a aparèixer al teu canal." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Contingut per a adults" @@ -380,7 +393,7 @@ msgstr "El contingut per adults està deshabilitat." msgid "Advanced" msgstr "Avançat" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "Tots els canals que has desat, en un sol lloc." @@ -413,12 +426,12 @@ msgstr "Text alternatiu" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "El text alternatiu descriu les imatges per a les persones cegues o amb problemes de visió, i ajuda a donar context a tothom." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "S'ha enviat un correu a {0}. Inclou un codi de confirmació que has d'entrar aquí sota." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "S'ha enviat un correu a la teva adreça prèvia, {0}. Inclou un codi de confirmació que has d'entrar aquí sota." @@ -426,11 +439,11 @@ msgstr "S'ha enviat un correu a la teva adreça prèvia, {0}. Inclou un codi de msgid "An error occured" msgstr "Hi ha hagut un error" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "Hi ha hagut un error intentant esborrar el missatge. Torna-ho a provar." -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "Un problema que no està inclòs en aquestes opcions" @@ -443,7 +456,7 @@ msgstr "Un problema que no està inclòs en aquestes opcions" msgid "An issue occurred, please try again." msgstr "Hi ha hagut un problema, prova-ho de nou." -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "hi ha hagut un problema desconegut" @@ -452,7 +465,7 @@ msgstr "hi ha hagut un problema desconegut" msgid "and" msgstr "i" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "Animals" @@ -460,7 +473,7 @@ msgstr "Animals" msgid "Animated GIF" msgstr "GIF animat" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "Comportament antisocial" @@ -494,12 +507,12 @@ msgstr "Configuració de la contrasenya d'aplicació" msgid "App Passwords" msgstr "Contrasenyes de l'aplicació" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "Apel·la" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "Apel·la \"{0}\" etiqueta" @@ -515,7 +528,7 @@ msgstr "Apel·la \"{0}\" etiqueta" #~ msgid "Appeal Decision" #~ msgstr "Decisión de apelación" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "Apel·lació enviada" @@ -535,19 +548,24 @@ msgstr "Apel·lació enviada" msgid "Appearance" msgstr "Aparença" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Confirmes que vols eliminar la contrasenya de l'aplicació \"{name}\"?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "Estàs segur que vols esborrar aquest missatge? El missatge s'esborrarà per a tu, però no per als altres participants." -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "Estàs segur que vols abandonar aquesta conversa? El missatge s'esborrarà per a tu, però no per als altres participants." -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Confirmes que vols eliminar {0} dels teus canals?" @@ -567,11 +585,11 @@ msgstr "Ho confirmes?" msgid "Are you writing in <0>{0}?" msgstr "Estàs escrivint en <0>{0}?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "Art" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Nuesa artística o no eròtica." @@ -579,17 +597,17 @@ msgstr "Nuesa artística o no eròtica." msgid "At least 3 characters" msgstr "Almenys 3 caràcters" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -622,8 +640,8 @@ msgstr "Aniversari:" msgid "Block" msgstr "Bloqueja" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "Bloqueja el compte" @@ -636,15 +654,15 @@ msgstr "Bloqueja el compte" msgid "Block Account?" msgstr "Vols bloquejar el compte?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "Bloqueja comptes" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "Bloqueja una llista" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "Vols bloquejar aquests comptes?" @@ -682,7 +700,7 @@ msgstr "Publicació bloquejada." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "El bloqueig no evita que aquest etiquetador apliqui etiquetes al teu compte." -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "El bloqueig és públic. Els comptes bloquejats no poden respondre els teus fils, ni mencionar-te ni interactuar amb tu de cap manera." @@ -738,10 +756,15 @@ msgstr "Difumina les imatges" msgid "Blur images and filter from feeds" msgstr "Difumina les imatges i filtra-ho dels canals" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "Llibres" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/screens/Settings/index.tsx:893 #~ msgid "Build version {0} {1}" #~ msgstr "Versió {0} {1}" @@ -796,9 +819,9 @@ msgstr "Només pot tenir lletres, números, espais, guions i guions baixos. Ha d #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -810,22 +833,22 @@ msgstr "Només pot tenir lletres, números, espais, guions i guions baixos. Ha d #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "Cancel·la" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "Cancel·la" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "Cancel·la la supressió del compte" @@ -833,7 +856,7 @@ msgstr "Cancel·la la supressió del compte" #~ msgid "Cancel add image alt text" #~ msgstr "Cancel·la afegir text a la imatge" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "Cancel·la el canvi d'identificador" @@ -862,7 +885,7 @@ msgstr "Cancel·la la cerca" msgid "Cancels opening the linked website" msgstr "Cancel·la obrir la web enllaçada" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "Canvia" @@ -875,12 +898,12 @@ msgstr "Canvia" msgid "Change handle" msgstr "Canvia l'identificador" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "Canvia l'identificador" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Canvia el meu correu" @@ -901,7 +924,7 @@ msgstr "Canvia l'idioma de la publicació a {0}" #~ msgid "Change your Bluesky password" #~ msgstr "Canvia la teva contrasenya de Bluesky" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "Canvia el teu correu" @@ -909,11 +932,11 @@ msgstr "Canvia el teu correu" msgid "Chat" msgstr "Xat" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "Xat silenciat" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "Configuració del xat" @@ -939,11 +962,11 @@ msgstr "Comprova el meu estat" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Mira alguns usuaris recomanats. Segueix-los per a veure altres usuaris similars." -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "Comprova el teu correu electrònic per obtenir un codi d'inici de sessió i introdueix-lo aquí." -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Comprova el teu correu per a rebre el codi de confirmació i entra'l aquí sota:" @@ -959,7 +982,7 @@ msgstr "Tria \"Tothom\" or \"Ningú\"" msgid "Choose Service" msgstr "Tria un servei" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "Tria els algoritmes que alimentaran els teus canals personalitzats." @@ -968,6 +991,10 @@ msgstr "Tria els algoritmes que alimentaran els teus canals personalitzats." #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "Tria els algoritmes que potenciaran la teva experiència amb els canals personalitzats." +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "Tria els teus canals principals" @@ -1009,6 +1036,10 @@ msgstr "Esborra totes les dades emmagatzemades" msgid "click here" msgstr "clica aquí" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Clica aquí per obrir el menú d'etiquetes per {tag}" @@ -1017,7 +1048,7 @@ msgstr "Clica aquí per obrir el menú d'etiquetes per {tag}" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "Clica aquí per obrir el menú d'etiquetes per #{tag}" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "Clima" @@ -1086,11 +1117,11 @@ msgstr "Tanca la visualització de la imatge de la capçalera" msgid "Collapses list of users for a given notification" msgstr "Plega la llista d'usuaris per una notificació concreta" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "Comèdia" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "Còmics" @@ -1099,7 +1130,7 @@ msgstr "Còmics" msgid "Community Guidelines" msgstr "Directrius de la comunitat" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "Finalitza el registre i comença a utilitzar el teu compte" @@ -1129,13 +1160,13 @@ msgstr "Configurat a <0>configuració de moderació." #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Confirma" @@ -1145,8 +1176,8 @@ msgstr "Confirma" #~ msgid "Confirm" #~ msgstr "Confirma" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "Confirma el canvi" @@ -1154,7 +1185,7 @@ msgstr "Confirma el canvi" msgid "Confirm content language settings" msgstr "Confirma la configuració de l'idioma del contingut" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "Confirma l'eliminació del compte" @@ -1170,13 +1201,13 @@ msgstr "Confirma la teva edat:" msgid "Confirm your birthdate" msgstr "Confirma la teva data de naixement" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Codi de confirmació" @@ -1184,7 +1215,7 @@ msgstr "Codi de confirmació" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "Confirma afegir {email} a la llista d'espera" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "Connectant…" @@ -1239,8 +1270,9 @@ msgstr "Teló de fons del menú contextual, fes clic per tancar-lo." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "Continua" @@ -1250,8 +1282,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "Continua com a {0} (sessió actual)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1265,7 +1298,7 @@ msgstr "Continua" msgid "Continue to the next step without following any accounts" msgstr "Continua sense seguir cap compte" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "Cuina" @@ -1278,9 +1311,9 @@ msgstr "Copiat" msgid "Copied build version to clipboard" msgstr "Número de versió copiat en memòria" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1298,7 +1331,7 @@ msgstr "Copia la contrasenya d'aplicació" msgid "Copy" msgstr "Copia" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "Copia {0}" @@ -1307,7 +1340,7 @@ msgstr "Copia {0}" msgid "Copy code" msgstr "Copia el codi" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "Copia l'enllaç a la llista" @@ -1335,15 +1368,15 @@ msgstr "Copia el text de la publicació" msgid "Copyright Policy" msgstr "Política de drets d'autor" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "No s'ha pogut sortir del xat" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "No s'ha pogut carregar el canal" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "No s'ha pogut carregar la llista" @@ -1351,13 +1384,13 @@ msgstr "No s'ha pogut carregar la llista" msgid "Could not load profiles. Please try again later." msgstr "No es poden carregar el perfils. Prova-ho més tard." -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "No s'ha pogut silenciar el xat" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "No s'ha pogut deixar de silenciar el xat" +#~ msgid "Could not unmute chat" +#~ msgstr "No s'ha pogut deixar de silenciar el xat" #: src/view/com/auth/create/Step2.tsx:91 #~ msgid "Country" @@ -1381,6 +1414,10 @@ msgstr "Crea un compte" msgid "Create an account" msgstr "Crea un compte" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "Crea una contrasenya d'aplicació" @@ -1390,7 +1427,7 @@ msgstr "Crea una contrasenya d'aplicació" msgid "Create new account" msgstr "Crea un nou compte" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "Crea un informe per a {0}" @@ -1410,7 +1447,7 @@ msgstr "Creat {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Crea una targeta amb una miniatura. La targeta enllaça a {url}" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "Cultura" @@ -1419,12 +1456,12 @@ msgstr "Cultura" msgid "Custom" msgstr "Personalitzat" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "Domini personalitzat" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Els canals personalitzats fets per la comunitat et porten noves experiències i t'ajuden a trobar contingut que t'agradarà." @@ -1461,10 +1498,10 @@ msgstr "Moderació de depuració" msgid "Debug panel" msgstr "Panell de depuració" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "Elimina" @@ -1476,7 +1513,7 @@ msgstr "Elimina el compte" #~ msgid "Delete Account" #~ msgstr "Elimina el compte" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "Elimina el compte <0>\"<1>{0}<2>\"" @@ -1492,11 +1529,11 @@ msgstr "Vols eliminar la contrasenya d'aplicació?" msgid "Delete for me" msgstr "Elimina-ho per mi" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "Elimina la llista" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "Elimina el missatge" @@ -1504,7 +1541,7 @@ msgstr "Elimina el missatge" msgid "Delete message for me" msgstr "Elimina el missatge per mi" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "Elimina el meu compte" @@ -1521,7 +1558,7 @@ msgstr "Elimina el meu compte…" msgid "Delete post" msgstr "Elimina la publicació" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "Vols eliminar aquesta llista?" @@ -1568,7 +1605,7 @@ msgstr "Tènue" msgid "Disable autoplay for GIFs" msgstr "Desactiva la reproducció automàtica dels GIF" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "Desactiva el correu 2FA" @@ -1617,7 +1654,7 @@ msgstr "Descobreix nous canals personalitzats" #~ msgid "Discover new feeds" #~ msgstr "Descobreix nous canals" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "Descobreix nous canals" @@ -1629,7 +1666,7 @@ msgstr "Nom mostrat" msgid "Display Name" msgstr "Nom mostrat" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "Panell de DNS" @@ -1641,11 +1678,11 @@ msgstr "No inclou nuesa." msgid "Doesn't begin or end with a hyphen" msgstr "No comença ni acaba amb un guionet" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "valor del domini" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "Domini verificat!" @@ -1657,6 +1694,8 @@ msgstr "Domini verificat!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1665,15 +1704,13 @@ msgstr "Domini verificat!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "Fet" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1695,8 +1732,8 @@ msgstr "Fet{extraText}" #~ msgid "Download Bluesky account data (repository)" #~ msgstr "Descarrega les dades del compte de Bluesky (repositori)" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "Descarrega el fitxer CAR" @@ -1708,7 +1745,7 @@ msgstr "Deixa anar a afegir imatges" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "A causa de les polítiques d'Apple, el contingut a adults només es pot habilitar a la web després de registrar-se." -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "p. ex.jordi" @@ -1716,7 +1753,7 @@ msgstr "p. ex.jordi" msgid "e.g. Alice Roberts" msgstr "p. ex.Jordi Guix" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "p. ex.jordi.com" @@ -1763,7 +1800,7 @@ msgstr "Edita l'avatar" msgid "Edit image" msgstr "Edita la imatge" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "Edita els detalls de la llista" @@ -1772,8 +1809,8 @@ msgid "Edit Moderation List" msgstr "Edita la llista de moderació" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "Edita els meus canals" @@ -1792,7 +1829,7 @@ msgid "Edit Profile" msgstr "Edita el perfil" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "Edita els meus canals guardats" @@ -1808,16 +1845,16 @@ msgstr "Edita el teu nom mostrat" msgid "Edit your profile description" msgstr "Edita la descripció del teu perfil" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "Ensenyament" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Correu" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "Correu 2FA desactivat" @@ -1825,16 +1862,16 @@ msgstr "Correu 2FA desactivat" msgid "Email address" msgstr "Adreça de correu" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "Correu actualitzat" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "Correu actualitzat" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "Correu verificat" @@ -1886,7 +1923,7 @@ msgstr "Habilita els continguts externs" msgid "Enable media players for" msgstr "Habilita reproductors de contingut per" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "Activa aquesta opció per a veure només les respostes entre els comptes que segueixes." @@ -1915,7 +1952,7 @@ msgstr "Introdueix una contrasenya" msgid "Enter a word or tag" msgstr "Introdueix una lletra o etiqueta" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "Entra el codi de confirmació" @@ -1927,7 +1964,7 @@ msgstr "Entra el codi de confirmació" msgid "Enter the code you received to change your password." msgstr "Introdueix el codi que has rebut per a canviar la teva contrasenya." -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "Introdueix el domini que vols utilitzar" @@ -1948,11 +1985,11 @@ msgstr "Introdueix la teva data de naixement" msgid "Enter your email address" msgstr "Introdueix el teu correu" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "Introdueix el teu correu a sobre" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "Introdueix el teu nou correu a continuació." @@ -1964,11 +2001,15 @@ msgstr "Introdueix el teu nou correu a continuació." msgid "Enter your username and password" msgstr "Introdueix el teu usuari i contrasenya" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Erro en rebre la resposta al captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "Error:" @@ -1977,15 +2018,19 @@ msgstr "Error:" msgid "Everybody" msgstr "Tothom" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "Mencions o respostes excessives" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "Surt del procés d'eliminació del compte" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "Surt del procés de canvi d'identificador" @@ -2027,7 +2072,7 @@ msgstr "Imatges sexuals explícites." msgid "Export my data" msgstr "Exporta les meves dades" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "Exporta les meves dades" @@ -2061,7 +2106,7 @@ msgstr "No s'ha pogut crear la contrasenya d'aplicació." msgid "Failed to create the list. Check your internet connection and try again." msgstr "No s'ha pogut crear la llista. Comprova la teva connexió a internet i torna-ho a provar." -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "No s'ha pogut esborrar el missatge" @@ -2073,7 +2118,7 @@ msgstr "No s'ha pogut esborrar la publicació, torna-ho a provar" msgid "Failed to load GIFs" msgstr "No s'han pogut carregar els GIF" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "No s'han pogut carregar els missatges anteriors." @@ -2082,19 +2127,23 @@ msgstr "No s'han pogut carregar els missatges anteriors." #~ msgid "Failed to load recommended feeds" #~ msgstr "Error en carregar els canals recomanats" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "Error en desar la imatge: {0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "Canal" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "Canal per {0}" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "Canal fora de línia" @@ -2103,18 +2152,18 @@ msgstr "Canal fora de línia" #~ msgstr "Preferències del canal" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "Comentaris" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "Canals" @@ -2122,7 +2171,7 @@ msgstr "Canals" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Els canals són creats pels usuaris per a curar contingut. Tria els canals que trobis interessants." -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Els canals són algoritmes personalitzats creats per usuaris que coneixen una mica de codi. <0/> per a més informació." @@ -2130,15 +2179,19 @@ msgstr "Els canals són algoritmes personalitzats creats per usuaris que coneixe msgid "Feeds can be topical as well!" msgstr "Els canals també poden ser d'actualitat!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Continguts del fitxer" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Filtra-ho dels canals" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "Finalitzant" @@ -2164,7 +2217,7 @@ msgstr "Troba publicacions i usuaris a Bluesky" #~ msgid "Finding similar accounts..." #~ msgstr "Troba comptes similars…" -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "Ajusta el contingut que veus al teu canal Seguint." @@ -2176,11 +2229,11 @@ msgstr "Ajusta el contingut que veus al teu canal Seguint." msgid "Fine-tune the discussion threads." msgstr "Ajusta els fils de debat." -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "Exercici" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "Flexible" @@ -2242,7 +2295,7 @@ msgstr "Seguit per {0}" msgid "Followed users" msgstr "Usuaris seguits" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "Només els usuaris seguits" @@ -2264,7 +2317,9 @@ msgstr "Seguidors" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "Seguint" @@ -2279,7 +2334,7 @@ msgstr "Preferències del canal Seguint" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "Preferències del canal Seguint" @@ -2292,11 +2347,11 @@ msgstr "Et segueix" msgid "Follows You" msgstr "Et segueix" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "Menjar" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Per motius de seguretat necessitem enviar-te un codi de confirmació al teu correu." @@ -2317,15 +2372,15 @@ msgstr "Per motius de seguretat no podràs tornar-la a veure. Si perds aquesta c msgid "Forgot Password" msgstr "He oblidat la contrasenya" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "Has oblidat la contrasenya?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "Oblidada?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "Publica contingut no dessitjat freqüentment" @@ -2342,12 +2397,16 @@ msgstr "De <0/>" msgid "Gallery" msgstr "Galeria" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Comença" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "Infraccions flagrants de la llei o les condicions del servei" @@ -2356,9 +2415,9 @@ msgstr "Infraccions flagrants de la llei o les condicions del servei" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "Ves enrere" @@ -2366,12 +2425,13 @@ msgstr "Ves enrere" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "Ves enrere" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2397,11 +2457,11 @@ msgstr "Ves a l'inici" msgid "Go to next" msgstr "Ves al següent" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "Ves al perfil" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "Ves al perfil de l'usuari" @@ -2409,7 +2469,7 @@ msgstr "Ves al perfil de l'usuari" msgid "Graphic Media" msgstr "Mitjans gràfics" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Identificador" @@ -2417,7 +2477,7 @@ msgstr "Identificador" msgid "Haptics" msgstr "Hàptics" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "Assetjament, troleig o intolerància" @@ -2429,7 +2489,7 @@ msgstr "Etiqueta" #~ msgid "Hashtag: {tag}" #~ msgstr "Etiqueta: {tag}" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "Etiqueta: #{tag}" @@ -2438,10 +2498,14 @@ msgid "Having trouble?" msgstr "Tens problemes?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "Ajuda" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "Aquí tens uns quants comptes que pots seguir" @@ -2498,23 +2562,23 @@ msgstr "Amaga la llista d'usuaris" #~ msgid "Hides posts from {0} in your feed" #~ msgstr "Amaga les publicacions de {0} al teu canal" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "S'ha produït algun error quan s'intentava connectar amb el servidor del canal. Avisa al propietari del canal d'aquest problema." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Sembla que el servidor del canal està mal configurat. Avisa al propietari del canal d'aquest problema." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Sembla que el servidor del canal està sense connexió. Avisa al propietari del canal d'aquest problema." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "El servidor del canal ha donat una resposta incorrecta. Avisa al propietari del canal d'aquest problema." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Tenim problemes per a trobar aquest canal. Potser ha estat eliminat." @@ -2527,10 +2591,10 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "No podem carregar el servei de moderació." #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "Inici" @@ -2541,14 +2605,14 @@ msgstr "Inici" #~ msgid "Home Feed Preferences" #~ msgstr "Preferències dels canals a l'inici" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "Allotjament:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Proveïdor d'allotjament" @@ -2561,25 +2625,29 @@ msgstr "Proveïdor d'allotjament" msgid "How should we open this link?" msgstr "Com hem d'obrir aquest enllaç?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "Tinc un codi" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "Tinc un codi de confirmació" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "Tinc el meu propi domini" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Si el text alternatiu és llarg, canvia l'estat expandit del text alternatiu" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "Si no en selecciones cap, és apropiat per a totes les edats." @@ -2587,7 +2655,7 @@ msgstr "Si no en selecciones cap, és apropiat per a totes les edats." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Si encara no ets un adult segons les lleis del teu país, el teu tutor legal haurà de llegir aquests Termes en el teu lloc." -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "Si esborres aquesta llista no la podràs recuperar." @@ -2599,7 +2667,7 @@ msgstr "Si esborres aquesta publicació no la podràs recuperar." msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Si vols canviar la contrasenya t'enviarem un codi per a verificar que aquest compte és teu." -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "Il·legal i urgent" @@ -2616,7 +2684,7 @@ msgstr "Text alternatiu de la imatge" #~ msgid "Image options" #~ msgstr "Opcions de la imatge" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "Suplantació d'identitat o afirmacions falses sobre identitat o afiliació" @@ -2624,7 +2692,7 @@ msgstr "Suplantació d'identitat o afirmacions falses sobre identitat o afiliaci msgid "Input code sent to your email for password reset" msgstr "Introdueix el codi que s'ha enviat al teu correu per a restablir la contrasenya" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "Introdueix el codi de confirmació per a eliminar el compte" @@ -2644,7 +2712,7 @@ msgstr "Introdueix un nom per la contrasenya d'aplicació" msgid "Input new password" msgstr "Introdueix una nova contrasenya" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "Introdueix la contrasenya per a eliminar el compte" @@ -2652,15 +2720,15 @@ msgstr "Introdueix la contrasenya per a eliminar el compte" #~ msgid "Input phone number for SMS verification" #~ msgstr "Introdueix el telèfon per la verificació per SMS" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "Introdueix el codi que has rebut per correu" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "Introdueix la contrasenya lligada a {identifier}" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Introdueix el nom d'usuari o correu que vas utilitzar per a registrar-te" @@ -2672,11 +2740,11 @@ msgstr "Introdueix el nom d'usuari o correu que vas utilitzar per a registrar-te #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Introdueix el teu correu per a afegir-te a la llista d'espera de Bluesky" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "Introdueix la teva contrasenya" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "Introdeix el teu proveïdor d'allotjament preferit" @@ -2684,8 +2752,8 @@ msgstr "Introdeix el teu proveïdor d'allotjament preferit" msgid "Input your user handle" msgstr "Introdueix el teu identificador d'usuari" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "El codi de confirmació 2FA no és vàlid." @@ -2693,7 +2761,7 @@ msgstr "El codi de confirmació 2FA no és vàlid." msgid "Invalid or unsupported post record" msgstr "Registre de publicació no vàlid o no admès" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "Nom d'usuari o contrasenya incorrectes" @@ -2709,7 +2777,7 @@ msgstr "Convida un amic" msgid "Invite code" msgstr "Codi d'invitació" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Codi d'invitació rebutjat. Comprova que l'has entrat correctament i torna-ho a provar." @@ -2746,7 +2814,7 @@ msgstr "Feines" #~ msgid "Join Waitlist" #~ msgstr "Uneix-te a la llista d'espera" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "Periodisme" @@ -2774,11 +2842,11 @@ msgstr "Les etiquetes son anotacions sobre els usuaris i el contingut. Poden ser #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "S'han posat etiquetes a aquest {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "Etiquetes al teu compte" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "Etiquetes al teu contingut" @@ -2834,13 +2902,13 @@ msgstr "Més informació sobre què és públic a Bluesky." msgid "Learn more." msgstr "Més informació." -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "Surt" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "Surt de la conversa" @@ -2865,7 +2933,7 @@ msgstr "L'emmagatzematge heretat s'ha esborrat, cal que reinicieu l'aplicació a msgid "Let's get your password reset!" msgstr "Restablirem la teva contrasenya!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "Som-hi!" @@ -2883,7 +2951,7 @@ msgstr "Clar" #~ msgstr "M'agrada" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Fes m'agrada a aquest canal" @@ -2941,19 +3009,19 @@ msgstr "Llista" msgid "List Avatar" msgstr "Avatar de la llista" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "Llista bloquejada" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "Llista per {0}" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "Llista eliminada" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "Llista silenciada" @@ -2961,20 +3029,20 @@ msgstr "Llista silenciada" msgid "List Name" msgstr "Nom de la llista" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "Llista desbloquejada" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "Llista no silenciada" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "Llistes" @@ -2988,9 +3056,9 @@ msgid "Load new notifications" msgstr "Carrega noves notificacions" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "Carrega noves publicacions" @@ -3021,7 +3089,7 @@ msgstr "Visibilitat pels usuaris no connectats" msgid "Login to account that is not listed" msgstr "Accedeix a un compte que no està llistat" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "Prem llargament per obrir el menú d'etiquetes per a #{tag}" @@ -3032,6 +3100,18 @@ msgstr "Prem llargament per obrir el menú d'etiquetes per a #{tag}" msgid "Looks like XXXXX-XXXXX" msgstr "Té l'aspecte XXXXX-XXXXX" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "Assegura't que és aquí on vols anar!" @@ -3040,6 +3120,11 @@ msgstr "Assegura't que és aquí on vols anar!" msgid "Manage your muted words and tags" msgstr "Gestiona les teves etiquetes i paraules silenciades" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:118 #~ msgid "May not be longer than 253 characters" #~ msgstr "No pot ser més llarg de 253 caràcters" @@ -3066,8 +3151,8 @@ msgstr "Usuaris mencionats" msgid "Menu" msgstr "Menú" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "Missatge esborrat" @@ -3075,25 +3160,30 @@ msgstr "Missatge esborrat" #~ msgid "Message from server" #~ msgstr "Missatge del servidor" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Missatge del servidor: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "Camp d'entrada del missatge" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "Configuració dels missatges" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "Missatges" @@ -3101,7 +3191,7 @@ msgstr "Missatges" msgid "Messaging settings" msgstr "Configuració dels missatges" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "Compte enganyòs" @@ -3120,13 +3210,13 @@ msgstr "Detalls de la moderació" msgid "Moderation list by {0}" msgstr "Llista de moderació per {0}" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "Llista de moderació per <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "Llista de moderació teva" @@ -3168,11 +3258,11 @@ msgstr "El moderador ha decidit establir un advertiment general sobre el conting msgid "More" msgstr "Més" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Més canals" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "Més opcions" @@ -3201,7 +3291,7 @@ msgstr "Silencia {truncatedTag}" msgid "Mute Account" msgstr "Silenciar el compte" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "Silencia els comptes" @@ -3221,16 +3311,16 @@ msgstr "Silencia només a les etiquetes" msgid "Mute in text & tags" msgstr "Silencia a les etiquetes i al text" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "Silencia la llista" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "Silencia les notificacions" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "Vols silenciar aquests comptes?" @@ -3281,7 +3371,7 @@ msgstr "Silenciat per \"{0}\"" msgid "Muted words & tags" msgstr "Paraules i etiquetes silenciades" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Silenciar és privat. Els comptes silenciats poden interactuar amb tu, però tu no veuràs les seves publicacions ni rebràs notificacions seves." @@ -3290,11 +3380,11 @@ msgstr "Silenciar és privat. Els comptes silenciats poden interactuar amb tu, p msgid "My Birthday" msgstr "El meu aniversari" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "Els meus canals" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "El meu perfil" @@ -3319,27 +3409,27 @@ msgstr "Nom" msgid "Name is required" msgstr "Es requereix un nom" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "El nom o la descripció infringeixen els estàndards comunitaris" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "Natura" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Navega a la pantalla següent" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "Navega al teu perfil" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "Necessites informar d'una infracció dels drets d'autor?" @@ -3353,7 +3443,7 @@ msgstr "Necessites informar d'una infracció dels drets d'autor?" #~ msgid "Never lose access to your followers and data." #~ msgstr "No perdis mai accés als teus seguidors ni a les teves dades." -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "No perdis mai accés als teus seguidors i les teves dades." @@ -3361,7 +3451,7 @@ msgstr "No perdis mai accés als teus seguidors i les teves dades." #~ msgid "Nevermind" #~ msgstr "Tant hi fa" -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "Tant hi fa, crea'm un identificador" @@ -3375,8 +3465,8 @@ msgid "New" msgstr "Nova" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "Xat nou" @@ -3392,22 +3482,22 @@ msgstr "Nova contrasenya" msgid "New Password" msgstr "Nova contrasenya" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "Nova publicació" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "Nova publicació" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "Nova publicació" @@ -3424,14 +3514,14 @@ msgstr "Nova llista d'usuaris" msgid "Newest replies first" msgstr "Les respostes més noves primer" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "Notícies" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3449,21 +3539,21 @@ msgstr "Següent" msgid "Next image" msgstr "Següent imatge" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "No" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "Cap descripció" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "No hi ha panell de DNS" @@ -3479,8 +3569,8 @@ msgstr "Ja no segueixes a {0}" msgid "No longer than 253 characters" msgstr "No pot tenir més de 253 caràcters" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "Encara no tens cap missatge" @@ -3497,7 +3587,7 @@ msgstr "Cap resultat" msgid "No results found" msgstr "No s'han trobat resultats" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "No s'han trobat resultats per \"{query}\"" @@ -3542,8 +3632,8 @@ msgstr "Nuesa no sexual" msgid "Not Found" msgstr "No s'ha trobat" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "Ara mateix no" @@ -3560,22 +3650,22 @@ msgstr "Nota: Bluesky és una xarxa oberta i pública. Aquesta configuració tan #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "Notificacions" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "Ara" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Nuesa" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "Nuesa o contingut per adults no etiquetat com a tal" @@ -3596,7 +3686,7 @@ msgstr "Apagat" msgid "Oh no!" msgstr "Ostres!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "Ostres! Alguna cosa ha fallat." @@ -3621,6 +3711,10 @@ msgstr "Restableix la incorporació" msgid "One or more images is missing alt text." msgstr "Falta el text alternatiu a una o més imatges." +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "Només {0} poden respondre." @@ -3639,10 +3733,14 @@ msgstr "Ostres, alguna cosa ha anat malament!" msgid "Oops!" msgstr "Ostres!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "Obre" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/screens/Moderation.tsx:75 #~ msgid "Open content filtering settings" #~ msgstr "Obre la configuració del filtre de contingut" @@ -3652,7 +3750,7 @@ msgstr "Obre" msgid "Open emoji picker" msgstr "Obre el selector d'emojis" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "Obre el menú de les opcions del canal" @@ -3779,7 +3877,7 @@ msgstr "Obre el modal per a baixar les dades del vostre compte Bluesky (reposito msgid "Opens modal for email verification" msgstr "Obre el modal per a verificar el correu" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "Obre el modal per a utilitzar un domini personalitzat" @@ -3787,12 +3885,12 @@ msgstr "Obre el modal per a utilitzar un domini personalitzat" msgid "Opens moderation settings" msgstr "Obre la configuració de la moderació" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "Obre el formulari de restabliment de la contrasenya" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "Obre pantalla per a editar els canals desats" @@ -3820,7 +3918,7 @@ msgstr "Obre les preferències del canal de Seguint" msgid "Opens the linked website" msgstr "Obre la web enllaçada" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "Obre la pàgina de configuració dels missatges" @@ -3841,6 +3939,7 @@ msgstr "Obre les preferències dels fils de debat" msgid "Option {0} of {numItems}" msgstr "Opció {0} de {numItems}" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "Opcionalment, proporciona informació addicional a continuació:" @@ -3849,7 +3948,7 @@ msgstr "Opcionalment, proporciona informació addicional a continuació:" msgid "Or combine these options:" msgstr "O combina aquestes opcions:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "Un altre" @@ -3874,10 +3973,10 @@ msgstr "Pàgina no trobada" msgid "Page Not Found" msgstr "Pàgina no trobada" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "Contrasenya" @@ -3909,15 +4008,15 @@ msgstr "Persones seguides per @{0}" msgid "People following @{0}" msgstr "Persones seguint a @{0}" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "Cal permís per a accedir al carret de la càmera." -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "S'ha denegat el permís per a accedir a la càmera. Activa'l a la configuració del teu sistema." -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "Mascotes" @@ -3925,20 +4024,20 @@ msgstr "Mascotes" #~ msgid "Phone number" #~ msgstr "Telèfon" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Imatges destinades a adults." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "Fixa a l'inici" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "Fixa a l'Inici" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "Canals de notícies fixats" @@ -3963,19 +4062,19 @@ msgstr "Reprodueix el vídeo" msgid "Plays the GIF" msgstr "Reprodueix el GIF" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "Tria el teu identificador." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "Tria la teva contrasenya." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "Completa el captcha de verificació." -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Confirma el teu correu abans de canviar-lo. Aquest és un requisit temporal mentre no s'afegeixin eines per a actualitzar el correu. Aviat no serà necessari." @@ -4003,15 +4102,15 @@ msgstr "Introdueix una paraula, una etiqueta o una frase vàlida per a silenciar #~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." #~ msgstr "Introdueix el codi de verificació enviat a {phoneNumberFormatted}" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "Introdueix el teu correu." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "Introdueix la teva contrasenya també:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Explica per què creieu que aquesta etiqueta ha estat aplicada incorrectament per {0}" @@ -4027,7 +4126,7 @@ msgstr "Inicia sessió com a @{0}" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "Por favor, dinos por qué crees que esta decisión fue incorrecta." -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Verifica el teu correu" @@ -4035,11 +4134,11 @@ msgstr "Verifica el teu correu" msgid "Please wait for your link card to finish loading" msgstr "Espera que es generi la targeta de l'enllaç" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "Política" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "Pornografia" @@ -4117,7 +4216,7 @@ msgstr "Publicacions" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Les publicacions es poder silenciar segons el seu text, etiquetes o ambdues." -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "Publicacions amagades" @@ -4131,15 +4230,15 @@ msgstr "Prem per canviar el proveïdor d'allotjament" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "Prem per a tornar-ho a provar" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "Prem per a tornar-ho a provar" +#~ msgid "Press to Retry" +#~ msgstr "Prem per a tornar-ho a provar" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -4162,7 +4261,7 @@ msgstr "Privacitat" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de privacitat" @@ -4175,11 +4274,11 @@ msgstr "Processant…" msgid "profile" msgstr "perfil" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "Perfil" @@ -4191,7 +4290,7 @@ msgstr "Perfil actualitzat" msgid "Protect your account by verifying your email." msgstr "Protegeix el teu compte verificant el teu correu." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "Públic" @@ -4237,6 +4336,10 @@ msgstr "Aleatori (també conegut com a \"Poster's Roulette\")" msgid "Ratios" msgstr "Proporcions" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "Cerques recents" @@ -4250,11 +4353,11 @@ msgstr "Cerques recents" #~ msgstr "Usuaris recomanats" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Elimina" @@ -4274,22 +4377,25 @@ msgstr "Elimina l'avatar" msgid "Remove Banner" msgstr "Elimina el bàner" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "Elimina el canal" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "Vols eliminar el canal?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "Elimina dels meus canals" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "Vols eliminar-lo dels teus canals?" @@ -4317,7 +4423,7 @@ msgstr "Elimina la republicació" #~ msgid "Remove this feed from my feeds?" #~ msgstr "Vols eliminar aquest canal dels teus canals?" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "Elimina aquest canal dels meus canals" @@ -4330,11 +4436,13 @@ msgstr "Elimina aquest canal dels meus canals" msgid "Removed from list" msgstr "Elimina de la llista" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "Eliminat dels meus canals" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "Eliminat dels teus canals" @@ -4346,6 +4454,11 @@ msgstr "Elimina la miniatura per defecte de {0}" msgid "Removes quoted post" msgstr "Elimina la publicació amb la citació" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "Respostes" @@ -4359,7 +4472,7 @@ msgctxt "action" msgid "Reply" msgstr "Respon" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "Filtres de resposta" @@ -4385,24 +4498,30 @@ msgstr "Informa" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "Informa del compte" +#~ msgid "Report account" +#~ msgstr "Informa del compte" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Informa del compte" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Diàleg de l'informe" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "Informa del canal" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "Informa de la llista" @@ -4415,30 +4534,36 @@ msgstr "Informa del missatge" msgid "Report post" msgstr "Informa de la publicació" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "Informa d'aquest contingut" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "Informa d'aquest canal" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "Informa d'aquesta llista" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "Informa d'aquesta publicació" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "Informa d'aquest usuari" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "Republica" @@ -4484,8 +4609,8 @@ msgstr "ha republicat la teva publicació" msgid "Reposts of this post" msgstr "Republicacions d'aquesta publicació" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "Demana un canvi" @@ -4502,7 +4627,7 @@ msgstr "Demana un codi" msgid "Require alt text before posting" msgstr "Requereix un text alternatiu abans de publicar" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "Sol·licita el codi de correu per iniciar sessió al teu compte" @@ -4510,8 +4635,8 @@ msgstr "Sol·licita el codi de correu per iniciar sessió al teu compte" msgid "Required for this provider" msgstr "Requerit per aquest proveïdor" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "Torna a enviar el correu" @@ -4553,7 +4678,7 @@ msgstr "Restableix l'estat de la incorporació" msgid "Resets the preferences state" msgstr "Restableix l'estat de les preferències" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "Torna a intentar iniciar sessió" @@ -4562,13 +4687,14 @@ msgstr "Torna a intentar iniciar sessió" msgid "Retries the last action, which errored out" msgstr "Torna a intentar l'última acció, que ha donat error" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4576,11 +4702,11 @@ msgid "Retry" msgstr "Torna-ho a provar" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "Torna-ho a provar" +#~ msgid "Retry." +#~ msgstr "Torna-ho a provar" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "Torna a la pàgina anterior" @@ -4589,7 +4715,7 @@ msgid "Returns to home page" msgstr "Torna a la pàgina d'inici" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "Torna a la pàgina anterior" @@ -4600,13 +4726,13 @@ msgstr "Torna a la pàgina anterior" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Desa" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4624,7 +4750,7 @@ msgstr "Desa la data de naixement" msgid "Save Changes" msgstr "Desa els canvis" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "Desa el canvi d'identificador" @@ -4632,16 +4758,16 @@ msgstr "Desa el canvi d'identificador" msgid "Save image crop" msgstr "Desa la imatge retallada" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "Desa-ho als meus canals" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "Canals desats" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "S'ha desat a la teva galeria d'imatges" @@ -4649,7 +4775,8 @@ msgstr "S'ha desat a la teva galeria d'imatges" #~ msgid "Saved to your camera roll." #~ msgstr "S'ha desat a la teva galeria d'imatges." -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "S'ha desat als teus canals." @@ -4657,7 +4784,7 @@ msgstr "S'ha desat als teus canals." msgid "Saves any changes to your profile" msgstr "Desa qualsevol canvi al teu perfil" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "Desa el canvi d'identificador a {handle}" @@ -4665,11 +4792,11 @@ msgstr "Desa el canvi d'identificador a {handle}" msgid "Saves image crop settings" msgstr "Desa la configuració de retall d'imatges" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "Ciència" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "Desplaça't cap a dalt" @@ -4682,12 +4809,12 @@ msgstr "Desplaça't cap a dalt" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "Cerca" @@ -4737,7 +4864,7 @@ msgstr "Cerca perfils" msgid "Search Tenor" msgstr "Cerca Tenor" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "Es requereix un pas de seguretat" @@ -4770,7 +4897,7 @@ msgstr "Mostra les publicacions amb <0>{displayTag} d'aquest usuari" msgid "See profile" msgstr "Mostra el perfil" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "Consulta aquesta guia" @@ -4782,10 +4909,22 @@ msgstr "Consulta aquesta guia" msgid "Select {item}" msgstr "Selecciona {item}" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "Selecciona el compte" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/view/com/modals/ServerInput.tsx:75 #~ msgid "Select Bluesky Social" #~ msgstr "Selecciona Bluesky Social" @@ -4823,6 +4962,10 @@ msgstr "Selecciona l'opció {i} de {numItems}" msgid "Select some accounts below to follow" msgstr "Selecciona alguns d'aquests comptes per a seguir-los" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "Selecciona els serveis de moderació als quals voleu informar" @@ -4855,7 +4998,7 @@ msgstr "Selecciona l'idioma de l'aplicació perquè el text predeterminat es mos msgid "Select your date of birth" msgstr "Selecciona la teva data de naixement" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "Selecciona els teus interessos d'entre aquestes opcions" @@ -4875,16 +5018,16 @@ msgstr "Selecciona els teus canals algorítmics primaris" msgid "Select your secondary algorithmic feeds" msgstr "Selecciona els teus canals algorítmics secundaris" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Envia correu de confirmació" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "Envia correu" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "Envia correu" @@ -4893,16 +5036,18 @@ msgstr "Envia correu" #~ msgid "Send Email" #~ msgstr "Envia correu" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "Envia comentari" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "Envia el missatge" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4916,12 +5061,12 @@ msgstr "Envia informe" msgid "Send report to {0}" msgstr "Envia informe a {0}" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "Envia un correu de verificació" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "Envia un correu amb el codi de confirmació per l'eliminació del compte" @@ -4971,15 +5116,15 @@ msgstr "Estableix una nova contrasenya" #~ msgid "Set password" #~ msgstr "Estableix una contrasenya" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Posa \"No\" a aquesta opció per a amagar totes les publicacions citades del teu canal. Les republicacions encara seran visibles." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Posa \"No\" a aquesta opció per a amagar totes les respostes del teu canal." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Posa \"No\" a aquesta opció per a amagar totes les republicacions del teu canal." @@ -4991,7 +5136,7 @@ msgstr "Posa \"Sí\" a aquesta opció per a mostrar les respostes en vista de fi #~ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." #~ msgstr "Posa \"Sí\" a aquesta opció per a mostrar algunes publicacions dels teus canals en el teu canal de seguits. Aquesta és una opció experimental." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Estableix aquesta configuració a \"Sí\" per a mostrar mostres dels teus canals desats al teu canal Seguint. Aquesta és una característica experimental." @@ -4999,7 +5144,7 @@ msgstr "Estableix aquesta configuració a \"Sí\" per a mostrar mostres dels teu msgid "Set up your account" msgstr "Configura el teu compte" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Estableix un nom d'usuari de Bluesky" @@ -5051,13 +5196,13 @@ msgstr "Estableix la relació d'aspecte de la imatge com a ampla" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "Configuració" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "Activitat sexual o nu eròtic." @@ -5065,7 +5210,7 @@ msgstr "Activitat sexual o nu eròtic." msgid "Sexually Suggestive" msgstr "Suggerent sexualment" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "Comparteix" @@ -5075,7 +5220,7 @@ msgstr "Comparteix" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "Comparteix" @@ -5085,8 +5230,8 @@ msgstr "Comparteix" msgid "Share anyway" msgstr "Comparteix de totes maneres" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "Comparteix el canal" @@ -5153,11 +5298,11 @@ msgstr "Mostra més" msgid "Show more like this" msgstr "Mostra'n més com aquest" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Mostra les publicacions dels meus canals" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "Mostra les publicacions citades" @@ -5173,7 +5318,7 @@ msgstr "Mostra els citats a Seguint" msgid "Show re-posts in Following feed" msgstr "Mostra les republicacions al canal Seguint" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "Mostra les respostes" @@ -5193,7 +5338,7 @@ msgstr "Mostra les respostes al canal Seguint" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Mostra respostes amb almenys {value} {0}" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "Mostra republicacions" @@ -5230,17 +5375,17 @@ msgstr "Mostra les publicacions de {0} al teu canal" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -5278,12 +5423,12 @@ msgstr "Inicia sessió o crea el teu compte per unir-te a la conversa" msgid "Sign out" msgstr "Tanca sessió" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -5312,12 +5457,12 @@ msgstr "S'ha iniciat sessió com a @{0}" #~ msgid "Signs {0} out of Bluesky" #~ msgstr "Tanca la sessió de Bluesky de {0}" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "Salta aquest pas" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "Salta aquest flux" @@ -5325,10 +5470,14 @@ msgstr "Salta aquest flux" #~ msgid "SMS verification" #~ msgstr "Verificació per SMS" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "Desenvolupament de programari" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/view/com/modals/ProfilePreview.tsx:62 #~ msgid "Something went wrong and we're not sure what." #~ msgstr "Alguna cosa ha fallat i no estem segurs de què." @@ -5347,8 +5496,8 @@ msgstr "Alguna cosa ha fallat, torna-ho a provar." #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "Alguna cosa ha fallat. Comprova el teu correu i torna-ho a provar." -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "La teva sessió ha caducat. Torna a iniciar-la." @@ -5360,19 +5509,20 @@ msgstr "Ordena les respostes" msgid "Sort replies to the same post by:" msgstr "Ordena les respostes a la mateixa publicació per:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "Font:" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "Brossa" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "Brossa; excessives mencions o respostes" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "Esports" @@ -5417,12 +5567,12 @@ msgstr "L'emmagatzematge s'ha esborrat, cal que reinicieu l'aplicació ara." msgid "Storybook" msgstr "Historial" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Envia" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "Subscriure's" @@ -5443,7 +5593,7 @@ msgstr "Subscriu-te al canal {0}" msgid "Subscribe to this labeler" msgstr "Subscriu-te a aquest etiquetador" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "Subscriure's a la llista" @@ -5455,7 +5605,7 @@ msgstr "Usuaris suggerits per a seguir" msgid "Suggested for you" msgstr "Suggeriments per tu" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "Suggerent" @@ -5510,7 +5660,7 @@ msgstr "Alt" msgid "Tap to view fully" msgstr "Toca per a veure-ho completament" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "Tecnologia" @@ -5522,13 +5672,13 @@ msgstr "Condicions" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Condicions del servei" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "Els termes utilitzats infringeixen els estàndards de la comunitat" @@ -5536,15 +5686,16 @@ msgstr "Els termes utilitzats infringeixen els estàndards de la comunitat" msgid "text" msgstr "text" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "Camp d'introducció de text" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "Gràcies. El teu informe s'ha enviat." -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "Això conté els següents:" @@ -5569,11 +5720,15 @@ msgstr "Les directrius de la comunitat han estat traslladades a <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "La política de drets d'autoria ha estat traslladada a <0/>" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "Les següents etiquetes s'han aplicat al teu compte." -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "Les següents etiquetes s'han aplicat als teus continguts." @@ -5607,15 +5762,17 @@ msgid "There are many feeds to try:" msgstr "Hi ha molts canals per a provar:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Hi ha hagut un problema per a contactar amb el servidor, comprova la teva connexió a internet i torna-ho a provar." -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Hi ha hagut un problema per a eliminar aquest canal, comprova la teva connexió a internet i torna-ho a provar." -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Hi ha hagut un problema per a actualitzar els teus canals, comprova la teva connexió a internet i torna-ho a provar." @@ -5627,16 +5784,17 @@ msgstr "Hi ha hagut un problema per connectar amb Tenor." msgid "There was an issue connecting to the chat." msgstr "Hi ha hagut un problema per connectar al xat." -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "Hi ha hagut un problema per a contactar amb el servidor" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "Hi ha hagut un problema per a contactar amb el teu servidor" @@ -5644,7 +5802,7 @@ msgstr "Hi ha hagut un problema per a contactar amb el teu servidor" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Hi ha hagut un problema en obtenir les notificacions. Toca aquí per a tornar-ho a provar." -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Hi ha hagut un problema en obtenir les notificacions. Toca aquí per a tornar-ho a provar." @@ -5657,6 +5815,7 @@ msgstr "Hi ha hagut un problema en obtenir la llista. Toca aquí per a tornar-ho msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Hi ha hagut un problema en obtenir les teves llistes. Toca aquí per a tornar-ho a provar." +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "S'ha produït un problema en enviar el teu informe. Comprova la teva connexió a Internet." @@ -5683,10 +5842,10 @@ msgstr "Hi ha hagut un problema en obtenir les teves contrasenyes d'aplicació" msgid "There was an issue! {0}" msgstr "Hi ha hagut un problema! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "Hi ha hagut un problema. Comprova la teva connexió a internet i torna-ho a provar." @@ -5718,7 +5877,7 @@ msgstr "Aquesta {screenDescription} ha estat etiquetada:" msgid "This account has requested that users sign in to view their profile." msgstr "Aquest compte ha sol·licitat que els usuaris estiguin registrats per a veure el seu perfil." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "Aquesta apel·lació s'enviarà a <0>{0}." @@ -5743,7 +5902,7 @@ msgstr "Aquest contingut està allotjat a {0}. Vols habilitat els continguts ext msgid "This content is not available because one of the users involved has blocked the other." msgstr "Aquest contingut no està disponible degut a que un dels usuaris involucrats ha bloquejat a l'altre." -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "Aquest contingut no es pot veure sense un compte de Bluesky." @@ -5751,17 +5910,17 @@ msgstr "Aquest contingut no es pot veure sense un compte de Bluesky." #~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." #~ msgstr "Aquesta funcionalitat està en beta. En <0>aquesta entrada al blog tens més informació." -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Aquesta funció està en versió beta. Podeu obtenir més informació sobre les exportacions de repositoris en <0>aquesta entrada de bloc." -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Aquest canal està rebent moltes visites actualment i està temporalment inactiu. Prova-ho més tard." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "Aquest canal està buit!" @@ -5769,11 +5928,15 @@ msgstr "Aquest canal està buit!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Aquest canal està buit! Necessites seguir més usuaris o modificar la teva configuració d'idiomes." +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Aquesta informació no es comparteix amb altres usuaris." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "Això és important si mai necessites canviar el teu correu o restablir la contrasenya." @@ -5793,6 +5956,10 @@ msgstr "Aquesta etiqueta ha estat aplicada per <0>{0}." msgid "This label was applied by the author." msgstr "Aquesta etiqueta ha estat aplicada per l'autor." +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Aquest etiquetador no ha declarat quines etiquetes publica i pot ser que no estigui actiu." @@ -5801,7 +5968,7 @@ msgstr "Aquest etiquetador no ha declarat quines etiquetes publica i pot ser que msgid "This link is taking you to the following website:" msgstr "Aquest enllaç et porta a la web:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "Aquesta llista està buida!" @@ -5834,7 +6001,7 @@ msgstr "Aquest perfil només és visible per als usuaris que han iniciat sessió msgid "This service has not provided terms of service or a privacy policy." msgstr "Aquest servei no ha proporcionat termes de servei ni una política de privadesa." -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "Això hauria de crear un registre de domini a:" @@ -5904,10 +6071,14 @@ msgstr "Mode fils de debat" msgid "Threads Preferences" msgstr "Preferències dels fils de debat" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "Per desactivar el mètode 2FA de correu, verifica el teu accés a l'adreça de correu." +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "A qui vols enviar aquest informe?" @@ -5953,25 +6124,25 @@ msgstr "Torna-ho a provar" msgid "Two-factor authentication" msgstr "Autenticació de dos factors" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "Escriu aquí el teu missatge" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Tipus:" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "Desbloqueja la llista" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "Deixa de silenciar la llista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5981,7 +6152,7 @@ msgstr "No es pot contactar amb el teu servei. Comprova la teva connexió a inte #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "Desbloqueja" @@ -6002,7 +6173,7 @@ msgstr "Vols desbloquejar el compte?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Desfés la republicació" @@ -6033,12 +6204,12 @@ msgstr "Deixa de seguir el compte" #~ msgid "Unlike" #~ msgstr "Desfés el m'agrada" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "Desfés el m'agrada a aquest canal" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "Deixa de silenciar" @@ -6059,7 +6230,7 @@ msgstr "Deixa de silenciar totes les publicacions amb {displayTag}" #~ msgid "Unmute all {tag} posts" #~ msgstr "Deixa de silenciar totes les publicacions amb {tag}" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "Deixa de silenciar les notificacions" @@ -6068,16 +6239,16 @@ msgstr "Deixa de silenciar les notificacions" msgid "Unmute thread" msgstr "Deixa de silenciar el fil de debat" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "Deixa de fixar" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "Deixa de fixar a l'inici" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "Desancora la llista de moderació" @@ -6093,7 +6264,12 @@ msgstr "Dona't de baixa" msgid "Unsubscribe from this labeler" msgstr "Dona't de baixa d'aquest etiquetador" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "Contingut sexual no dessitjat" @@ -6105,7 +6281,7 @@ msgstr "Actualitza {displayName} a les Llistes" #~ msgid "Update Available" #~ msgstr "Actualització disponible" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "Actualitza a {handle}" @@ -6113,7 +6289,11 @@ msgstr "Actualitza a {handle}" msgid "Updating..." msgstr "Actualitzant…" -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Puja un fitxer de text a:" @@ -6136,7 +6316,7 @@ msgstr "Puja dels Arxius" msgid "Upload from Library" msgstr "Puja de la biblioteca" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "Utilitza un fitxer del teu servidor" @@ -6144,11 +6324,11 @@ msgstr "Utilitza un fitxer del teu servidor" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilitza les contrasenyes d'aplicació per a iniciar sessió en altres clients de Bluesky, sense haver de donar accés total al teu compte o contrasenya." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "Utilitza bsky.social com a proveïdor d'allotjament" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "Utilitza el proveïdor predeterminat" @@ -6162,7 +6342,11 @@ msgstr "Utilitza el navegador de l'aplicació" msgid "Use my default browser" msgstr "Utilitza el meu navegador predeterminat" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Utilitza el panell de DNS" @@ -6208,13 +6392,13 @@ msgstr "L'usuari t'ha bloquejat" msgid "User list by {0}" msgstr "Llista d'usuaris per {0}" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "Llista d'usuaris feta per <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "Llista d'usuaris feta per tu" @@ -6230,11 +6414,11 @@ msgstr "Llista d'usuaris actualitzada" msgid "User Lists" msgstr "Llistes d'usuaris" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "Nom d'usuari o correu" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "Usuaris" @@ -6250,7 +6434,7 @@ msgstr "Usuaris a \"{0}\"" msgid "Users that have liked this content or profile" msgstr "Usuaris a qui els ha agradat aquest contingut o perfil" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "Valor:" @@ -6262,7 +6446,7 @@ msgstr "Valor:" #~ msgid "Verify {0}" #~ msgstr "Verifica {0}" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "Verifica els registres de DNS" @@ -6278,16 +6462,16 @@ msgstr "Verifica el meu correu" msgid "Verify My Email" msgstr "Verifica el meu correu" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "Verifica el correu nou" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "Verifica el fitxer de text" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "Verifica el teu correu" @@ -6299,7 +6483,7 @@ msgstr "Verifica el teu correu" msgid "Version {appVersion} {bundleInfo}" msgstr "Versió {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "Videojocs" @@ -6311,11 +6495,11 @@ msgstr "Veure l'avatar de {0}" msgid "View debug entry" msgstr "Veure el registre de depuració" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "Veure els detalls" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "Veure els detalls per a informar d'una infracció dels drets d'autor" @@ -6323,13 +6507,13 @@ msgstr "Veure els detalls per a informar d'una infracció dels drets d'autor" msgid "View full thread" msgstr "Veure el fil de debat complet" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "Mostra informació sobre aquestes etiquetes" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Veure el perfil" @@ -6341,7 +6525,7 @@ msgstr "Veure l'avatar" msgid "View the labeling service provided by @{0}" msgstr "Veure el servei d'etiquetatge proporcionat per @{0}" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "Veure els usuaris a qui els agrada aquest canal" @@ -6373,11 +6557,15 @@ msgstr "Adverteix del contingut i filtra-ho dels canals" msgid "We couldn't find any results for that hashtag." msgstr "No hem trobat cap resultat per a aquest hashtag." +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Calculem {estimatedTime} fins que el teu compte estigui llest." -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Esperem que t'ho passis pipa. Recorda que Bluesky és:" @@ -6401,7 +6589,7 @@ msgstr "No hem pogut carregar les teves preferències de data de naixement. Torn msgid "We were unable to load your configured labelers at this time." msgstr "En aquest moment no hem pogut carregar els teus etiquetadors configurats." -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "No ens hem pogut connectar. Torna-ho a provar per a continuar configurant el teu compte. Si continua fallant, pots ometre aquest flux." @@ -6413,7 +6601,7 @@ msgstr "T'informarem quan el teu compte estigui llest." #~ msgid "We'll look into your appeal promptly." #~ msgstr "Analitzarem la teva apel·lació ràpidament." -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "Ho farem servir per a personalitzar la teva experiència." @@ -6446,7 +6634,7 @@ msgstr "Ho sentim! Només et pots subscriure a deu etiquetadors i has arribat al #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Us donem la benvinguda a <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "Quins són els teus interesos?" @@ -6476,23 +6664,31 @@ msgstr "Quins idiomes t'agradaria veure en els teus canals algorítmics?" msgid "Who can reply" msgstr "Qui hi pot respondre" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "Per què s'hauria de revisar aquest contingut?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "Per què s'hauria de revisar aquest canal?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "Per què s'hauria de revisar aquesta llista?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "Per què s'hauria de revisar aquesta publicació?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "Per què s'hauria de revisar aquest usuari?" @@ -6500,8 +6696,8 @@ msgstr "Per què s'hauria de revisar aquest usuari?" msgid "Wide" msgstr "Amplada" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "Escriu un missatge" @@ -6514,7 +6710,7 @@ msgstr "Escriu una publicació" msgid "Write your reply" msgstr "Escriu la teva resposta" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "Escriptors" @@ -6523,16 +6719,16 @@ msgstr "Escriptors" #~ msgstr "XXXXXX" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Sí" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "Ahir, {time}" @@ -6570,15 +6766,15 @@ msgstr "No tens cap seguidor." msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Encara no tens codis d'invitació! Te n'enviarem quan portis una mica més de temps a Bluesky." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "No tens cap canal fixat." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "No tens cap canal desat!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "No tens cap canal desat!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "No tens cap canal desat." @@ -6629,7 +6825,7 @@ msgstr "No tens canals." msgid "You have no lists." msgstr "No tens llistes." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "Encara no tens missatges. Comença una conversa amb algú!" @@ -6657,7 +6853,11 @@ msgstr "Encara no has silenciat cap compte. per a silenciar un compte, ves al se msgid "You haven't muted any words or tags yet" msgstr "Encara no has silenciat cap paraula ni etiqueta" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Pots apel·lar aquestes etiquetes si creus que s'han col·locat per error." @@ -6689,7 +6889,7 @@ msgstr "Ara rebràs notificacions d'aquest debat" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Rebràs un correu amb un \"codi de restabliment\". Introdueix aquí el codi i després la teva contrasenya nova." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "Tu: {0}" @@ -6703,7 +6903,7 @@ msgstr "Tu tens el control" msgid "You're in line" msgstr "Estàs a la cua" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "Ja està tot llest!" @@ -6724,7 +6924,7 @@ msgstr "El teu compte" msgid "Your account has been deleted" msgstr "El teu compte s'ha eliminat" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "El repositori del teu compte, que conté tots els registres de dades públiques, es pot baixar com a fitxer \"CAR\". Aquest fitxer no inclou incrustacions multimèdia, com ara imatges, ni les teves dades privades, que s'han d'obtenir per separat." @@ -6741,7 +6941,7 @@ msgid "Your default feed is \"Following\"" msgstr "El teu canal per defecte és \"Seguint\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "El teu correu no sembla vàlid." @@ -6750,11 +6950,11 @@ msgstr "El teu correu no sembla vàlid." #~ msgid "Your email has been saved! We'll be in touch soon." #~ msgstr "Hem desat el teu correu! Aviat ens posarem en contacte amb tu." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "El teu correu s'ha actualitzat, però no ha estat verificat. En el pas següent cal que verifiquis el teu correu." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "El teu correu encara no s'ha verificat. Et recomanem fer-ho per seguretat." @@ -6766,7 +6966,7 @@ msgstr "El teu canal de seguint està buit! Segueix a més usuaris per a saber q msgid "Your full handle will be" msgstr "El teu identificador complet serà" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "El teu identificador complet serà <0>@{0}" @@ -6792,7 +6992,7 @@ msgstr "S'ha canviat la teva contrasenya!" msgid "Your post has been published" msgstr "S'ha publicat" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Les teves publicacions, m'agrades i bloquejos són públics. Els comptes silenciats són privats." @@ -6804,6 +7004,10 @@ msgstr "El teu perfil" msgid "Your reply has been published" msgstr "S'ha publicat la teva resposta" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "El teu identificador d'usuari" diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 8ab1738a55..3033e6d425 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: Translators in PR 2319, PythooonUser, cdfzo\n" "Plural-Forms: \n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(keine E-Mail)" @@ -21,15 +21,15 @@ msgstr "(keine E-Mail)" msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -51,7 +51,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -71,6 +71,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -90,15 +94,15 @@ msgstr "{following} folge ich" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} ungelesen" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -106,11 +110,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> Mitglieder" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -135,7 +139,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>Folge einigen<1>empfohlenen<2>Nutzern" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Ungültiger Handle" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "" @@ -186,7 +190,7 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -237,15 +241,15 @@ msgstr "Stummschaltung für Konto aufgehoben" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "Hinzufügen" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Eine Inhaltswarnung hinzufügen" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "Einen Nutzer zu dieser Liste hinzufügen" @@ -257,6 +261,7 @@ msgstr "Konto hinzufügen" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -264,8 +269,8 @@ msgid "Add alt text" msgstr "Alt-Text hinzufügen" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -298,7 +303,15 @@ msgstr "Stummgeschaltetes Wort für konfigurierte Einstellungen hinzufügen" msgid "Add muted words and tags" msgstr "Füge stummgeschaltete Wörter und Tags hinzu" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Füge den folgenden DNS-Eintrag zu deiner Domain hinzu:" @@ -307,7 +320,7 @@ msgstr "Füge den folgenden DNS-Eintrag zu deiner Domain hinzu:" msgid "Add to Lists" msgstr "Zu Listen hinzufügen" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "Zu meinen Feeds hinzufügen" @@ -320,17 +333,17 @@ msgstr "Zu meinen Feeds hinzufügen" msgid "Added to list" msgstr "Zur Liste hinzugefügt" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "Zu meinen Feeds hinzugefügt" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Passe die Anzahl der Likes an, die eine Antwort haben muss, um in deinem Feed angezeigt zu werden." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Inhalt für Erwachsene" @@ -347,7 +360,7 @@ msgstr "" msgid "Advanced" msgstr "Erweitert" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "All deine gespeicherten Feeds an einem Ort." @@ -380,12 +393,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "Alt-Text beschreibt Bilder für blinde und sehbehinderte Nutzer und hilft, den Kontext für alle zu vermitteln." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "Eine E-Mail wurde an {0} gesendet. Sie enthält einen Bestätigungscode, den du unten eingeben kannst." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Eine E-Mail wurde an deine vorherige Adresse {0} gesendet. Sie enthält einen Bestätigungscode, den du unten eingeben kannst." @@ -393,11 +406,11 @@ msgstr "Eine E-Mail wurde an deine vorherige Adresse {0} gesendet. Sie enthält msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "Ein Problem, das hier nicht aufgelistet ist" @@ -410,7 +423,7 @@ msgstr "Ein Problem, das hier nicht aufgelistet ist" msgid "An issue occurred, please try again." msgstr "Es ist ein Problem aufgetreten, bitte versuche es erneut." -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -419,7 +432,7 @@ msgstr "" msgid "and" msgstr "und" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "Tiere" @@ -427,7 +440,7 @@ msgstr "Tiere" msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "Asoziales Verhalten" @@ -457,12 +470,12 @@ msgstr "App-Passwort-Einstellungen" msgid "App Passwords" msgstr "App-Passwörter" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "Kennzeichnung \"{0}\" anfechten" @@ -475,7 +488,7 @@ msgstr "Kennzeichnung \"{0}\" anfechten" #~ msgid "Appeal Content Warning" #~ msgstr "Inhaltswarnungseinspruch" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -495,19 +508,24 @@ msgstr "" msgid "Appearance" msgstr "Erscheinungsbild" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Bist du sicher, dass du das App-Passwort \"{name}\" löschen möchtest?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Bist du sicher, dass du {0} von deinen Feeds entfernen möchtest?" @@ -527,11 +545,11 @@ msgstr "Bist du sicher?" msgid "Are you writing in <0>{0}?" msgstr "Schreibst du auf <0>{0}?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "Kunst" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Künstlerische oder nicht-erotische Nacktheit." @@ -539,17 +557,17 @@ msgstr "Künstlerische oder nicht-erotische Nacktheit." msgid "At least 3 characters" msgstr "Mindestens 3 Zeichen" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -582,8 +600,8 @@ msgstr "Geburtstag:" msgid "Block" msgstr "Blockieren" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -596,15 +614,15 @@ msgstr "Konto blockieren" msgid "Block Account?" msgstr "Konto blockieren?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "Konten blockieren" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "Blockliste" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "Diese Konten blockieren?" @@ -642,7 +660,7 @@ msgstr "Blockierter Beitrag." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Blockieren hindert diesen Kennzeichnungsdienst nicht daran, Kennzeichnungen zu deinem Konto hinzuzufügen." -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Die Blockierung ist öffentlich. Blockierte Konten können nicht in deinen Threads antworten, dich erwähnen oder anderweitig mit dir interagieren." @@ -690,10 +708,15 @@ msgstr "Bilder verwischen" msgid "Blur images and filter from feeds" msgstr "Bilder verwischen und aus Feeds herausfiltern" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "Bücher" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/screens/Settings/index.tsx:893 #~ msgid "Build version {0} {1}" #~ msgstr "Build-Version {0} {1}" @@ -744,9 +767,9 @@ msgstr "Darf nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -758,26 +781,26 @@ msgstr "Darf nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "Abbrechen" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "Abbrechen" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "Konto-Löschung abbrechen" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "Handle ändern abbrechen" @@ -802,7 +825,7 @@ msgstr "Suche abbrechen" msgid "Cancels opening the linked website" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "" @@ -815,12 +838,12 @@ msgstr "Ändern" msgid "Change handle" msgstr "Handle ändern" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "Handle ändern" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Meine E-Mail ändern" @@ -841,7 +864,7 @@ msgstr "Beitragssprache in {0} ändern" #~ msgid "Change your Bluesky password" #~ msgstr "Ändere dein Bluesky-Passwort" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "Deine E-Mail ändern" @@ -849,11 +872,11 @@ msgstr "Deine E-Mail ändern" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -879,11 +902,11 @@ msgstr "Meinen Status prüfen" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Schau dir einige empfohlene Nutzer an. Folge ihnen, um ähnliche Nutzer zu sehen." -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Überprüfe deinen Posteingang auf eine E-Mail mit dem Bestätigungscode, den du unten eingeben musst:" @@ -899,7 +922,7 @@ msgstr "Wähle \"Alle\" oder \"Niemand\"" msgid "Choose Service" msgstr "Service wählen" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "Wähle die Algorithmen aus, welche deine benutzerdefinierten Feeds generieren." @@ -908,6 +931,10 @@ msgstr "Wähle die Algorithmen aus, welche deine benutzerdefinierten Feeds gener #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "Wähle die Algorithmen aus, welche dein Erlebnis mit benutzerdefinierten Feeds unterstützen." +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "Wähle deine Haupt-Feeds" @@ -949,6 +976,10 @@ msgstr "" msgid "click here" msgstr "hier klicken" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Klicke hier, um das Tag-Menü für {tag} zu öffnen" @@ -957,7 +988,7 @@ msgstr "Klicke hier, um das Tag-Menü für {tag} zu öffnen" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "Klicke hier, um das Tag-Menü für #{tag} zu öffnen" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "Klima" @@ -1026,11 +1057,11 @@ msgstr "Schließt den Betrachter für das Banner" msgid "Collapses list of users for a given notification" msgstr "Klappt die Liste der Benutzer für eine bestimmte Meldung zusammen" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "Komödie" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "Comics" @@ -1039,7 +1070,7 @@ msgstr "Comics" msgid "Community Guidelines" msgstr "Community-Richtlinien" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "Schließe das Onboarding ab und nutze dein Konto" @@ -1069,13 +1100,13 @@ msgstr "Konfiguriert in <0>Moderationseinstellungen" #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Bestätigen" @@ -1085,8 +1116,8 @@ msgstr "Bestätigen" #~ msgid "Confirm" #~ msgstr "Bestätigen" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "Änderung bestätigen" @@ -1094,7 +1125,7 @@ msgstr "Änderung bestätigen" msgid "Confirm content language settings" msgstr "Bestätige die Spracheinstellungen für den Inhalt" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "Bestätige das Löschen des Kontos" @@ -1110,17 +1141,17 @@ msgstr "Bestätige dein Alter:" msgid "Confirm your birthdate" msgstr "Bestätige dein Geburtsdatum" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Bestätigungscode" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "Verbinden..." @@ -1175,8 +1206,9 @@ msgstr "Hintergrund des Kontextmenüs, klicken, um das Menü zu schließen" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "Fortfahren" @@ -1186,8 +1218,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "Fortfahren mit {0} (aktuell angemeldet)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1201,7 +1234,7 @@ msgstr "Weiter zum nächsten Schritt" msgid "Continue to the next step without following any accounts" msgstr "Fahre mit dem nächsten Schritt fort, ohne Konten zu folgen" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "Kochen" @@ -1214,9 +1247,9 @@ msgstr "Kopiert" msgid "Copied build version to clipboard" msgstr "Die Build-Version wurde in die Zwischenablage kopiert" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1234,7 +1267,7 @@ msgstr "Kopiert das App-Passwort" msgid "Copy" msgstr "Kopieren" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "{} kopieren" @@ -1243,7 +1276,7 @@ msgstr "{} kopieren" msgid "Copy code" msgstr "" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "Link zur Liste kopieren" @@ -1271,15 +1304,15 @@ msgstr "Beitragstext kopieren" msgid "Copyright Policy" msgstr "Urheberrechtsbestimmungen" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Feed konnte nicht geladen werden" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "Liste konnte nicht geladen werden" @@ -1287,13 +1320,13 @@ msgstr "Liste konnte nicht geladen werden" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1313,6 +1346,10 @@ msgstr "Konto erstellen" msgid "Create an account" msgstr "" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "App-Passwort erstellen" @@ -1322,7 +1359,7 @@ msgstr "App-Passwort erstellen" msgid "Create new account" msgstr "Neues Konto erstellen" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "Meldung für {0} erstellen" @@ -1342,7 +1379,7 @@ msgstr "Erstellt {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Erzeugt eine Karte mit Vorschaubild und verlinkt auf {url}" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "Kultur" @@ -1351,12 +1388,12 @@ msgstr "Kultur" msgid "Custom" msgstr "Benutzerdefiniert" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "Benutzerdefinierte Domain" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Benutzerdefinierte Feeds, die von der Community erstellt wurden, bringen dir neue Erfahrungen und helfen dir, die Inhalte zu finden, die du liebst." @@ -1389,10 +1426,10 @@ msgstr "" msgid "Debug panel" msgstr "Debug-Panel" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "Löschen" @@ -1404,7 +1441,7 @@ msgstr "Konto löschen" #~ msgid "Delete Account" #~ msgstr "Konto löschen" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1420,11 +1457,11 @@ msgstr "App-Passwort löschen?" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "Liste löschen" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1432,7 +1469,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "Mein Konto löschen" @@ -1445,7 +1482,7 @@ msgstr "Mein Konto Löschen…" msgid "Delete post" msgstr "Beitrag löschen" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "Diese Liste löschen?" @@ -1484,7 +1521,7 @@ msgstr "Dimmen" msgid "Disable autoplay for GIFs" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "" @@ -1529,7 +1566,7 @@ msgstr "Apps daran hindern, abgemeldeten Nutzern mein Konto zu zeigen" msgid "Discover new custom feeds" msgstr "Entdecke neue benutzerdefinierte Feeds" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "Entdecke neue Feeds" @@ -1541,7 +1578,7 @@ msgstr "Anzeigename" msgid "Display Name" msgstr "Anzeigename" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "" @@ -1553,11 +1590,11 @@ msgstr "Beinhaltet keine Nacktheit." msgid "Doesn't begin or end with a hyphen" msgstr "Beginnt oder endet nicht mit einem Bindestrich" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "Domain verifiziert!" @@ -1565,6 +1602,8 @@ msgstr "Domain verifiziert!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1573,15 +1612,13 @@ msgstr "Domain verifiziert!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "Erledigt" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1603,8 +1640,8 @@ msgstr "Erledigt{extraText}" #~ msgid "Download Bluesky account data (repository)" #~ msgstr "Öffnet ein Modal zum Herunterladen deiner Bluesky-Kontodaten (Kontodepot)" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "CAR-Datei herunterladen" @@ -1616,7 +1653,7 @@ msgstr "Ablegen zum Hinzufügen von Bildern" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Aufgrund der Apple-Richtlinien können Inhalte für Erwachsene erst nach Abschluss der Registrierung auf der Website aktiviert werden." -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "z.B. alice" @@ -1624,7 +1661,7 @@ msgstr "z.B. alice" msgid "e.g. Alice Roberts" msgstr "z.B. Alice Roberts" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "z.B. alice.com" @@ -1671,7 +1708,7 @@ msgstr "Avatar bearbeiten" msgid "Edit image" msgstr "Bild bearbeiten" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "Details der Liste bearbeiten" @@ -1680,8 +1717,8 @@ msgid "Edit Moderation List" msgstr "Moderationsliste bearbeiten" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "Meine Feeds bearbeiten" @@ -1700,7 +1737,7 @@ msgid "Edit Profile" msgstr "Profil bearbeiten" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "Gespeicherte Feeds bearbeiten" @@ -1716,16 +1753,16 @@ msgstr "Bearbeite deinen Anzeigenamen" msgid "Edit your profile description" msgstr "Bearbeite deine Profilbeschreibung" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "Bildung" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "E-Mail" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "" @@ -1733,16 +1770,16 @@ msgstr "" msgid "Email address" msgstr "E-Mail-Adresse" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "E-Mail aktualisiert" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "E-Mail aktualisiert" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "E-Mail verifiziert" @@ -1794,7 +1831,7 @@ msgstr "Externe Medien aktivieren" msgid "Enable media players for" msgstr "Aktiviere Medienplayer für" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "Aktiviere diese Einstellung, um nur Antworten von Personen zu sehen, denen du folgst." @@ -1823,7 +1860,7 @@ msgstr "Gib ein Passwort ein" msgid "Enter a word or tag" msgstr "Gib ein Wort oder einen Tag ein" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "Bestätigungscode eingeben" @@ -1831,7 +1868,7 @@ msgstr "Bestätigungscode eingeben" msgid "Enter the code you received to change your password." msgstr "Gib den Code ein, welchen du erhalten hast, um dein Passwort zu ändern." -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "Gib die Domain ein, die du verwenden möchtest" @@ -1848,11 +1885,11 @@ msgstr "Gib dein Geburtsdatum ein" msgid "Enter your email address" msgstr "Gib deine E-Mail-Adresse ein" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "Gib oben deine neue E-Mail-Adresse ein" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "Gib unten deine neue E-Mail-Adresse ein." @@ -1860,11 +1897,15 @@ msgstr "Gib unten deine neue E-Mail-Adresse ein." msgid "Enter your username and password" msgstr "Gib deinen Benutzernamen und dein Passwort ein" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Fehler beim Empfang der Captcha-Antwort." -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "Fehler:" @@ -1873,15 +1914,19 @@ msgstr "Fehler:" msgid "Everybody" msgstr "Alle" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "Übermäßig viele Erwähnungen oder Antworten" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "Verlässt den Vorgang der Accountlöschung" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "Verlässt den Vorgang des Handle-Wechsels" @@ -1919,7 +1964,7 @@ msgstr "" msgid "Export my data" msgstr "Exportiere meine Daten" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "Exportiere meine Daten" @@ -1953,7 +1998,7 @@ msgstr "Das App-Passwort konnte nicht erstellt werden." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Die Liste konnte nicht erstellt werden. Überprüfe deine Internetverbindung und versuche es erneut." -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -1965,7 +2010,7 @@ msgstr "Beitrag konnte nicht gelöscht werden, bitte versuche es erneut" msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -1974,35 +2019,39 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "Empfohlene Feeds konnten nicht geladen werden" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "Das Speichern des Bildes ist fehlgeschlagen: {0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "Feed von {0}" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "Feed offline" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "Feedback" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "Feeds" @@ -2010,7 +2059,7 @@ msgstr "Feeds" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Feeds werden von Nutzern erstellt, um Inhalte zu kuratieren. Wähle einige Feeds aus, die du interessant findest." -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Feeds sind benutzerdefinierte Algorithmen, die Nutzer mit ein wenig Programmierkenntnisse erstellen. <0/> für mehr Informationen." @@ -2018,15 +2067,19 @@ msgstr "Feeds sind benutzerdefinierte Algorithmen, die Nutzer mit ein wenig Prog msgid "Feeds can be topical as well!" msgstr "Die Feeds können auch auf einem Thema basieren!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Dateiinhalt" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Aus Feeds filtern" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "Abschließen" @@ -2052,7 +2105,7 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "Suche nach ähnlichen Konten..." -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "Passe die Inhalte auf Deinem Following-Feed an." @@ -2060,11 +2113,11 @@ msgstr "Passe die Inhalte auf Deinem Following-Feed an." msgid "Fine-tune the discussion threads." msgstr "Passe die Diskussionsstränge an." -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "Fitness" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "Flexibel" @@ -2126,7 +2179,7 @@ msgstr "Gefolgt von {0}" msgid "Followed users" msgstr "Benutzer, denen ich folge" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "Nur Benutzer, denen ich folge" @@ -2144,7 +2197,9 @@ msgstr "Follower" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "Folge ich" @@ -2159,7 +2214,7 @@ msgstr "" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "Following-Feed-Einstellungen" @@ -2172,11 +2227,11 @@ msgstr "Folgt dir" msgid "Follows You" msgstr "Folgt dir" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "Essen" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Aus Sicherheitsgründen müssen wir dir einen Bestätigungscode an deine E-Mail-Adresse schicken." @@ -2197,15 +2252,15 @@ msgstr "Aus Sicherheitsgründen kannst du dies nicht erneut ansehen. Wenn du die msgid "Forgot Password" msgstr "Passwort vergessen" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "Passwort vergessen?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "Vergessen?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "Postet oft unerwünschte Inhalte" @@ -2222,12 +2277,16 @@ msgstr "Aus <0/>" msgid "Gallery" msgstr "Galerie" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Los geht's" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "Eklatante Verstöße gegen Gesetze oder Nutzungsbedingungen" @@ -2236,9 +2295,9 @@ msgstr "Eklatante Verstöße gegen Gesetze oder Nutzungsbedingungen" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "Gehe zurück" @@ -2246,12 +2305,13 @@ msgstr "Gehe zurück" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "Gehe zurück" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2277,11 +2337,11 @@ msgstr "" msgid "Go to next" msgstr "Gehe zum nächsten" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2289,7 +2349,7 @@ msgstr "" msgid "Graphic Media" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Handle" @@ -2297,7 +2357,7 @@ msgstr "Handle" msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "" @@ -2305,7 +2365,7 @@ msgstr "" msgid "Hashtag" msgstr "Hashtag" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "Hashtag: #{tag}" @@ -2314,10 +2374,14 @@ msgid "Having trouble?" msgstr "Hast du Probleme?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "Hilfe" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "Hier sind einige Konten, denen du folgen könntest" @@ -2374,23 +2438,23 @@ msgstr "Benutzerliste ausblenden" #~ msgid "Hides posts from {0} in your feed" #~ msgstr "Blendet Beiträge von {0} in Deinem Feed aus" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm, beim Kontakt mit dem Feed-Server ist ein Problem aufgetreten. Bitte informiere den Eigentümer des Feeds über dieses Problem." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, der Feed-Server scheint falsch konfiguriert zu sein. Bitte informiere den Eigentümer des Feeds über dieses Problem." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, der Feed-Server scheint offline zu sein. Bitte informiere den Eigentümer des Feeds über dieses Problem." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, der Feed-Server hat eine schlechte Antwort gegeben. Bitte informiere den Eigentümer des Feeds über dieses Problem." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, wir haben Probleme, diesen Feed zu finden. Möglicherweise wurde er gelöscht." @@ -2403,21 +2467,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "" #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "Home" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Hosting-Anbieter" @@ -2425,25 +2489,29 @@ msgstr "Hosting-Anbieter" msgid "How should we open this link?" msgstr "Wie sollen wir diesen Link öffnen?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "Ich habe einen Code" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "Ich habe einen Bestätigungscode" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "Ich habe meine eigene Domain" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Schaltet den erweiterten Status des Alt-Textes um, wenn dieser lang ist" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "Wenn keine ausgewählt werden, sind sie für alle Altersgruppen geeignet." @@ -2451,7 +2519,7 @@ msgstr "Wenn keine ausgewählt werden, sind sie für alle Altersgruppen geeignet msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "" -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "Wenn du diese Liste löschst, kannst du sie nicht wiederherstellen." @@ -2463,7 +2531,7 @@ msgstr "Wenn du diesen Post löschst, kannst du ihn nicht wiederherstellen." msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Wenn du dein Passwort ändern möchtest, senden wir dir einen Code, um zu bestätigen, dass es sich um dein Konto handelt." -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "Illegal und dringend" @@ -2480,7 +2548,7 @@ msgstr "Bild-Alt-Text" #~ msgid "Image options" #~ msgstr "Bild-Optionen" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "" @@ -2488,7 +2556,7 @@ msgstr "" msgid "Input code sent to your email for password reset" msgstr "Gib den Code ein, den du per E-Mail erhalten hast, um dein Passwort zurückzusetzen." -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "Bestätigungscode für die Kontolöschung eingeben" @@ -2508,27 +2576,27 @@ msgstr "Namen für das App-Passwort eingeben" msgid "Input new password" msgstr "Neues Passwort eingeben" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "Passwort für die Kontolöschung eingeben" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "Passwort, das an {identifier} gebunden ist, eingeben" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Benutzernamen oder E-Mail-Adresse eingeben, die du bei der Anmeldung verwendet hast" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "Gib dein Passwort ein" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "" @@ -2536,8 +2604,8 @@ msgstr "" msgid "Input your user handle" msgstr "Gib deinen Handle ein" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" @@ -2545,7 +2613,7 @@ msgstr "" msgid "Invalid or unsupported post record" msgstr "Ungültiger oder nicht unterstützter Beitragrekord" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "Ungültiger Benutzername oder Passwort" @@ -2557,7 +2625,7 @@ msgstr "Einen Freund einladen" msgid "Invite code" msgstr "Einladungscode" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Einladungscode nicht akzeptiert. Überprüfe, ob du ihn richtig eingegeben hast und versuche es erneut." @@ -2577,7 +2645,7 @@ msgstr "Es zeigt die Beiträge der Personen an, denen du folgst, sobald sie ersc msgid "Jobs" msgstr "Jobs" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "Journalismus" @@ -2605,11 +2673,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "" @@ -2665,13 +2733,13 @@ msgstr "Erfahre mehr darüber, was auf Bluesky öffentlich ist." msgid "Learn more." msgstr "" -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2696,7 +2764,7 @@ msgstr "Der Legacy-Speicher wurde gelöscht, du musst die App jetzt neu starten. msgid "Let's get your password reset!" msgstr "Lass uns dein Passwort zurücksetzen!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "Los geht's!" @@ -2714,7 +2782,7 @@ msgstr "Licht" #~ msgstr "Liken" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Diesen Feed liken" @@ -2768,19 +2836,19 @@ msgstr "Liste" msgid "List Avatar" msgstr "Listenbild" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "Liste blockiert" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "Liste von {0}" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "Liste gelöscht" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "Liste stummgeschaltet" @@ -2788,20 +2856,20 @@ msgstr "Liste stummgeschaltet" msgid "List Name" msgstr "Name der Liste" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "Liste entblockiert" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "Listenstummschaltung aufgehoben" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "Listen" @@ -2815,9 +2883,9 @@ msgid "Load new notifications" msgstr "Neue Mitteilungen laden" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "Neue Beiträge laden" @@ -2844,7 +2912,7 @@ msgstr "Sichtbarkeit für abgemeldete Benutzer" msgid "Login to account that is not listed" msgstr "Anmeldung bei einem Konto, das nicht aufgelistet ist" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -2852,6 +2920,18 @@ msgstr "" msgid "Looks like XXXXX-XXXXX" msgstr "Im Format XXXXX-XXXXX" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "Vergewissere dich, dass du auch wirklich dorthin gehen willst!" @@ -2860,6 +2940,11 @@ msgstr "Vergewissere dich, dass du auch wirklich dorthin gehen willst!" msgid "Manage your muted words and tags" msgstr "Verwalte deine stummgeschalteten Wörter und Tags" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:118 #~ msgid "May not be longer than 253 characters" #~ msgstr "Darf nicht länger als 253 Zeichen sein" @@ -2886,30 +2971,35 @@ msgstr "Erwähnte Benutzer" msgid "Menu" msgstr "Menü" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Nachricht vom Server: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -2917,7 +3007,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "Irreführender Account" @@ -2936,13 +3026,13 @@ msgstr "" msgid "Moderation list by {0}" msgstr "Moderationsliste von {0}" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "Moderationsliste von <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "Moderationsliste von dir" @@ -2984,11 +3074,11 @@ msgstr "Der Moderator hat beschlossen, eine allgemeine Warnung vor dem Inhalt au msgid "More" msgstr "Mehr" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Mehr Feeds" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "Mehr Optionen" @@ -3013,7 +3103,7 @@ msgstr "{truncatedTag} stummschalten" msgid "Mute Account" msgstr "Konto stummschalten" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "Konten stummschalten" @@ -3029,16 +3119,16 @@ msgstr "Nur in Tags stummschalten" msgid "Mute in text & tags" msgstr "In Text und Tags stummschalten" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "Liste stummschalten" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "Diese Konten stummschalten?" @@ -3089,7 +3179,7 @@ msgstr "Stummgeschaltet über \"{0}\"" msgid "Muted words & tags" msgstr "Stummgeschaltete Wörter und Tags" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Stummschaltung ist privat. Stummgeschaltete Konten können mit dir interagieren, aber du siehst ihre Beiträge nicht und erhältst keine Mitteilungen von ihnen." @@ -3098,11 +3188,11 @@ msgstr "Stummschaltung ist privat. Stummgeschaltete Konten können mit dir inter msgid "My Birthday" msgstr "Mein Geburtstag" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "Meine Feeds" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "Mein Profil" @@ -3127,27 +3217,27 @@ msgstr "Name" msgid "Name is required" msgstr "Name ist erforderlich" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "Natur" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Navigiert zum nächsten Bildschirm" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "Navigiert zu Deinem Profil" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "" @@ -3161,7 +3251,7 @@ msgstr "" #~ msgid "Never lose access to your followers and data." #~ msgstr "Verliere nie den Zugriff auf deine Follower und Daten." -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "Verliere nie den Zugriff auf deine Follower oder Daten." @@ -3169,7 +3259,7 @@ msgstr "Verliere nie den Zugriff auf deine Follower oder Daten." #~ msgid "Nevermind" #~ msgstr "Egal" -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "" @@ -3183,8 +3273,8 @@ msgid "New" msgstr "Neu" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -3200,22 +3290,22 @@ msgstr "Neues Passwort" msgid "New Password" msgstr "Neues Passwort" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "Neuer Beitrag" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "Neuer Beitrag" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "Neuer Beitrag" @@ -3228,14 +3318,14 @@ msgstr "Neue Benutzerliste" msgid "Newest replies first" msgstr "Neueste Antworten zuerst" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "Aktuelles" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3253,21 +3343,21 @@ msgstr "Nächste" msgid "Next image" msgstr "Nächstes Bild" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "Nein" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "Keine Beschreibung" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "" @@ -3283,8 +3373,8 @@ msgstr "{0} wird nicht mehr gefolgt" msgid "No longer than 253 characters" msgstr "Nicht länger als 253 Zeichen" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3301,7 +3391,7 @@ msgstr "Kein Ergebnis" msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "Keine Ergebnisse für \"{query}\" gefunden" @@ -3346,8 +3436,8 @@ msgstr "Nicht-sexuelle Nacktheit" msgid "Not Found" msgstr "Nicht gefunden" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "Im Moment nicht" @@ -3364,22 +3454,22 @@ msgstr "Hinweis: Bluesky ist ein offenes und öffentliches Netzwerk. Diese Einst #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "Mitteilungen" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Nacktheit" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "" @@ -3400,7 +3490,7 @@ msgstr "Aus" msgid "Oh no!" msgstr "Oh nein!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "Oh nein, da ist etwas schief gelaufen." @@ -3425,6 +3515,10 @@ msgstr "Onboarding zurücksetzen" msgid "One or more images is missing alt text." msgstr "Bei einem oder mehreren Bildern fehlt der Alt-Text." +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "Nur {0} kann antworten." @@ -3443,10 +3537,14 @@ msgstr "Ups, da ist etwas schief gelaufen!" msgid "Oops!" msgstr "Huch!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "Öffnen" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/screens/Moderation.tsx:75 #~ msgid "Open content filtering settings" #~ msgstr "Inhaltsfiltereinstellungen öffnen" @@ -3456,7 +3554,7 @@ msgstr "Öffnen" msgid "Open emoji picker" msgstr "Emoji-Picker öffnen" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "" @@ -3579,7 +3677,7 @@ msgstr "" msgid "Opens modal for email verification" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "Öffnet das Modal für die Verwendung einer benutzerdefinierten Domain" @@ -3587,12 +3685,12 @@ msgstr "Öffnet das Modal für die Verwendung einer benutzerdefinierten Domain" msgid "Opens moderation settings" msgstr "Öffnet die Moderationseinstellungen" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "Öffnet das Formular zum Zurücksetzen des Passworts" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "Öffnet den Bildschirm zum Bearbeiten gespeicherten Feeds" @@ -3620,7 +3718,7 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3641,6 +3739,7 @@ msgstr "Öffnet die Thread-Einstellungen" msgid "Option {0} of {numItems}" msgstr "Option {0} von {numItems}" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "" @@ -3649,7 +3748,7 @@ msgstr "" msgid "Or combine these options:" msgstr "Oder kombiniere diese Optionen:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "" @@ -3670,10 +3769,10 @@ msgstr "Seite nicht gefunden" msgid "Page Not Found" msgstr "Seite nicht gefunden" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "Passwort" @@ -3705,32 +3804,32 @@ msgstr "Personen gefolgt von @{0}" msgid "People following @{0}" msgstr "Personen, die @{0} folgen" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "Die Erlaubnis zum Zugriff auf die Kamerarolle ist erforderlich." -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Die Berechtigung zum Zugriff auf die Kamerarolle wurde verweigert. Bitte aktiviere sie in deinen Systemeinstellungen." -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "Haustiere" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Bilder, die für Erwachsene bestimmt sind." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "An die Startseite anheften" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "Angeheftete Feeds" @@ -3755,19 +3854,19 @@ msgstr "Video abspielen" msgid "Plays the GIF" msgstr "Spielt das GIF ab" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "Bitte wähle deinen Handle." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "Bitte wähle dein Passwort." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "Bitte fülle das Verifizierungs-Captcha aus." -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Bitte bestätige deine E-Mail, bevor du sie änderst. Dies ist eine vorübergehende Anforderung, während E-Mail-Aktualisierungstools hinzugefügt werden, und wird bald wieder entfernt." @@ -3783,15 +3882,15 @@ msgstr "Bitte gib einen eindeutigen Namen für dieses App-Passwort ein oder verw msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Bitte gib ein gültiges Wort, einen Tag oder eine Phrase zum Stummschalten ein" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "Bitte gib deine E-Mail ein." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "Bitte gib auch dein Passwort ein:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -3804,7 +3903,7 @@ msgstr "" #~ msgid "Please tell us why you think this content warning was incorrectly applied!" #~ msgstr "Bitte teile uns mit, warum du denkst, dass diese Inhaltswarnung falsch angewendet wurde!" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Bitte verifiziere deine E-Mail" @@ -3812,11 +3911,11 @@ msgstr "Bitte verifiziere deine E-Mail" msgid "Please wait for your link card to finish loading" msgstr "Bitte warte, bis deine Link-karte vollständig geladen ist" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "Politik" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "Porno" @@ -3888,7 +3987,7 @@ msgstr "Beiträge" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Beiträge können basierend auf ihrem Text, ihren Tags oder beidem stummgeschaltet werden." -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "Ausgeblendete Beiträge" @@ -3902,15 +4001,15 @@ msgstr "" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3933,7 +4032,7 @@ msgstr "Privatsphäre" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Datenschutzerklärung" @@ -3946,11 +4045,11 @@ msgstr "Wird bearbeitet..." msgid "profile" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "Profil" @@ -3962,7 +4061,7 @@ msgstr "Profil aktualisiert" msgid "Protect your account by verifying your email." msgstr "Schütze dein Konto, indem du deine E-Mail bestätigst." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "Öffentlich" @@ -4004,6 +4103,10 @@ msgstr "Zufällig (alias \"Poster's Roulette\")" msgid "Ratios" msgstr "Verhältnisse" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "" @@ -4017,11 +4120,11 @@ msgstr "" #~ msgstr "Empfohlene Nutzer" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Entfernen" @@ -4041,22 +4144,25 @@ msgstr "" msgid "Remove Banner" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "Feed entfernen" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "Aus meinen Feeds entfernen" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "" @@ -4084,7 +4190,7 @@ msgstr "Repost entfernen" #~ msgid "Remove this feed from my feeds?" #~ msgstr "Diesen Feed aus meinen Feeds entfernen?" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "" @@ -4097,11 +4203,13 @@ msgstr "" msgid "Removed from list" msgstr "Aus der Liste entfernt" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "Aus meinen Feeds entfernt" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "" @@ -4113,6 +4221,11 @@ msgstr "Entfernt Standard-Miniaturansicht von {0}" msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "Antworten" @@ -4126,7 +4239,7 @@ msgctxt "action" msgid "Reply" msgstr "Antworten" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "Antwortfilter" @@ -4152,24 +4265,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Konto melden" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "Feed melden" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "Liste melden" @@ -4182,30 +4301,36 @@ msgstr "" msgid "Report post" msgstr "Beitrag melden" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "Repost" @@ -4243,8 +4368,8 @@ msgstr "hat deinen Beitrag repostet" msgid "Reposts of this post" msgstr "Reposts von diesem Beitrag" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "Änderung anfordern" @@ -4257,7 +4382,7 @@ msgstr "Einen Code anfordern" msgid "Require alt text before posting" msgstr "Alt-Text vor der Veröffentlichung erforderlich machen" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "" @@ -4265,8 +4390,8 @@ msgstr "" msgid "Required for this provider" msgstr "Für diesen Anbieter erforderlich" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "" @@ -4308,7 +4433,7 @@ msgstr "Setzt den Onboarding-Status zurück" msgid "Resets the preferences state" msgstr "Einstellungen zurücksetzen" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "Versucht die Anmeldung erneut" @@ -4317,13 +4442,14 @@ msgstr "Versucht die Anmeldung erneut" msgid "Retries the last action, which errored out" msgstr "Wiederholung der letzten Aktion, bei der ein Fehler aufgetreten ist" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4331,11 +4457,11 @@ msgid "Retry" msgstr "Wiederholen" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "Zurück zur vorherigen Seite" @@ -4344,20 +4470,20 @@ msgid "Returns to home page" msgstr "" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Speichern" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4375,7 +4501,7 @@ msgstr "" msgid "Save Changes" msgstr "Änderungen speichern" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "Handle-Änderung speichern" @@ -4383,16 +4509,16 @@ msgstr "Handle-Änderung speichern" msgid "Save image crop" msgstr "Bildausschnitt speichern" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "Gespeicherte Feeds" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4400,7 +4526,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "" @@ -4408,7 +4535,7 @@ msgstr "" msgid "Saves any changes to your profile" msgstr "Speichert alle Änderungen an Deinem Profil" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "Speichert Handle-Änderung in {handle}" @@ -4416,11 +4543,11 @@ msgstr "Speichert Handle-Änderung in {handle}" msgid "Saves image crop settings" msgstr "" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "Wissenschaft" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "Zum Anfang blättern" @@ -4433,12 +4560,12 @@ msgstr "Zum Anfang blättern" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "Suche" @@ -4480,7 +4607,7 @@ msgstr "" msgid "Search Tenor" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "Sicherheitsschritt erforderlich" @@ -4505,7 +4632,7 @@ msgstr "Siehe <0>{displayTag}-Beiträge von diesem Benutzer" msgid "See profile" msgstr "" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "Siehe diesen Leitfaden" @@ -4517,10 +4644,22 @@ msgstr "Siehe diesen Leitfaden" msgid "Select {item}" msgstr "Wähle {item}" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Von einem bestehenden Konto auswählen" @@ -4554,6 +4693,10 @@ msgstr "Wähle Option {i} von {numItems}" msgid "Select some accounts below to follow" msgstr "Wähle unten einige Konten aus, denen du folgen möchtest" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4586,7 +4729,7 @@ msgstr "" msgid "Select your date of birth" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "Wähle aus den folgenden Optionen deine Interessen aus" @@ -4602,30 +4745,32 @@ msgstr "Wähle deine primären algorithmischen Feeds" msgid "Select your secondary algorithmic feeds" msgstr "Wähle deine sekundären algorithmischen Feeds" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Bestätigungs-E-Mail senden" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "E-Mail senden" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "E-Mail senden" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "Feedback senden" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4639,12 +4784,12 @@ msgstr "" msgid "Send report to {0}" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "Sendet eine E-Mail mit Bestätigungscode für die Kontolöschung" @@ -4694,15 +4839,15 @@ msgstr "Neues Passwort festlegen" #~ msgid "Set password" #~ msgstr "Passwort festlegen" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Setze diese Einstellung auf \"Nein\", um alle Zitatbeiträge aus deinem Feed auszublenden. Reposts sind weiterhin sichtbar." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Setze diese Einstellung auf \"Nein\", um alle Antworten aus deinem Feed auszublenden." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Setze diese Einstellung auf \"Nein\", um alle Reposts aus deinem Feed auszublenden." @@ -4710,7 +4855,7 @@ msgstr "Setze diese Einstellung auf \"Nein\", um alle Reposts aus deinem Feed au msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Setze diese Einstellung auf \"Ja\", um Antworten in einer Thread-Ansicht anzuzeigen. Dies ist eine experimentelle Funktion." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Setze diese Einstellung auf \"Ja\", um Beispiele für deine gespeicherten Feeds in deinem Following-Feed anzuzeigen. Dies ist eine experimentelle Funktion." @@ -4718,7 +4863,7 @@ msgstr "Setze diese Einstellung auf \"Ja\", um Beispiele für deine gespeicherte msgid "Set up your account" msgstr "Dein Konto einrichten" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Legt deinen Bluesky-Benutzernamen fest" @@ -4770,13 +4915,13 @@ msgstr "" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "Einstellungen" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "Sexuelle Aktivitäten oder erotische Nacktheit." @@ -4784,7 +4929,7 @@ msgstr "Sexuelle Aktivitäten oder erotische Nacktheit." msgid "Sexually Suggestive" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "Teilen" @@ -4794,7 +4939,7 @@ msgstr "Teilen" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "Teilen" @@ -4804,8 +4949,8 @@ msgstr "Teilen" msgid "Share anyway" msgstr "" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "Feed teilen" @@ -4872,11 +5017,11 @@ msgstr "Mehr anzeigen" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Beiträge aus meinen Feeds anzeigen" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "Zitierte Beiträge anzeigen" @@ -4892,7 +5037,7 @@ msgstr "Zitierte Beiträge im Following Feed anzeigen" msgid "Show re-posts in Following feed" msgstr "Reposts im Following-Feed anzeigen" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "Antworten anzeigen" @@ -4912,7 +5057,7 @@ msgstr "Antworten in folgendem Feed anzeigen" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Antworten mit mindestens {value} {0} anzeigen" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "Reposts anzeigen" @@ -4949,17 +5094,17 @@ msgstr "Zeigt Beiträge von {0} in deinem Feed" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4997,12 +5142,12 @@ msgstr "" msgid "Sign out" msgstr "Abmelden" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -5031,19 +5176,23 @@ msgstr "Angemeldet als @{0}" #~ msgid "Signs {0} out of Bluesky" #~ msgstr "Meldet {0} von Bluesky ab" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "Überspringen" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "Diesen Schritt überspringen" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "Software-Entwicklung" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 @@ -5054,8 +5203,8 @@ msgstr "" #~ msgid "Something went wrong!" #~ msgstr "Es ist ein Fehler aufgetreten." -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "Entschuldigung! Deine Sitzung ist abgelaufen. Bitte logge dich erneut ein." @@ -5067,19 +5216,20 @@ msgstr "Antworten sortieren" msgid "Sort replies to the same post by:" msgstr "Antworten auf denselben Beitrag sortieren nach:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "Sport" @@ -5120,12 +5270,12 @@ msgstr "Der Speicher wurde gelöscht, du musst die App jetzt neu starten." msgid "Storybook" msgstr "Geschichtenbuch" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Einreichen" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "Abonnieren" @@ -5146,7 +5296,7 @@ msgstr "Abonniere den {0} Feed" msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "Abonniere diese Liste" @@ -5158,7 +5308,7 @@ msgstr "Vorgeschlagene Follower" msgid "Suggested for you" msgstr "Vorgeschlagen für dich" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "Suggestiv" @@ -5205,7 +5355,7 @@ msgstr "Groß" msgid "Tap to view fully" msgstr "Tippe, um die vollständige Ansicht anzuzeigen" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "Technik" @@ -5217,13 +5367,13 @@ msgstr "Bedingungen" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Nutzungsbedingungen" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "" @@ -5231,15 +5381,16 @@ msgstr "" msgid "text" msgstr "Text" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "Text-Eingabefeld" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "" @@ -5264,11 +5415,15 @@ msgstr "Die Community-Richtlinien wurden nach <0/> verschoben" msgid "The Copyright Policy has been moved to <0/>" msgstr "Die Copyright-Richtlinie wurde nach <0/> verschoben" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "" @@ -5298,15 +5453,17 @@ msgid "There are many feeds to try:" msgstr "Es gibt viele Feeds zum Ausprobieren:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Es gab ein Problem bei der Kontaktaufnahme mit dem Server. Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Es gab ein Problem beim Entfernen dieses Feeds. Bitte überprüfe deine Internetverbindung und versuche es erneut." -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Es gab ein Problem bei der Aktualisierung deines Feeds. Bitte überprüfe deine Internetverbindung und versuche es erneut." @@ -5318,16 +5475,17 @@ msgstr "" msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "Es gab ein Problem bei der Kontaktaufnahme mit dem Server" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "Es gab ein Problem bei der Kontaktaufnahme mit deinem Server" @@ -5335,7 +5493,7 @@ msgstr "Es gab ein Problem bei der Kontaktaufnahme mit deinem Server" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Es gab ein Problem beim Abrufen von Mitteilungen. Tippe hier, um es erneut zu versuchen." -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Es gab ein Problem beim Abrufen der Beiträge. Tippe hier, um es erneut zu versuchen." @@ -5348,6 +5506,7 @@ msgstr "Es gab ein Problem beim Abrufen der Liste. Tippe hier, um es erneut zu v msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Es gab ein Problem beim Abrufen deiner Listen. Tippe hier, um es erneut zu versuchen." +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" @@ -5374,10 +5533,10 @@ msgstr "Es gab ein Problem beim Abrufen deiner App-Passwörter" msgid "There was an issue! {0}" msgstr "Es gab ein Problem! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "Es ist ein Problem aufgetreten. Bitte überprüfe deine Internetverbindung und versuche es erneut." @@ -5402,7 +5561,7 @@ msgstr "Diese {screenDescription} wurde gekennzeichnet:" msgid "This account has requested that users sign in to view their profile." msgstr "Dieses Konto hat die Benutzer aufgefordert, sich anzumelden, um dein Profil zu sehen." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -5427,7 +5586,7 @@ msgstr "Dieser Inhalt wird von {0} gehostet. Möchtest du externe Medien aktivie msgid "This content is not available because one of the users involved has blocked the other." msgstr "Dieser Inhalt ist nicht verfügbar, weil einer der beteiligten Nutzer den anderen blockiert hat." -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "Dieser Inhalt ist ohne ein Bluesky-Konto nicht sichtbar." @@ -5435,17 +5594,17 @@ msgstr "Dieser Inhalt ist ohne ein Bluesky-Konto nicht sichtbar." #~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." #~ msgstr "Diese Funktion befindet sich in der Beta-Phase. Du kannst mehr über Kontodepot-Exporte in <0>diesem Blogpost lesen." -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Dieser Feed wird derzeit stark frequentiert und ist vorübergehend nicht verfügbar. Bitte versuche es später erneut." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "Dieser Feed ist leer!" @@ -5453,11 +5612,15 @@ msgstr "Dieser Feed ist leer!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Dieser Feed ist leer! Möglicherweise musst du mehr Benutzern folgen oder deine Spracheinstellungen anpassen." +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Diese Informationen werden nicht an andere Nutzer weitergegeben." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "Das ist wichtig für den Fall, dass du mal deine E-Mail ändern oder dein Passwort zurücksetzen musst." @@ -5473,6 +5636,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5481,7 +5648,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "Dieser Link führt dich auf die folgende Website:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "Diese Liste ist leer!" @@ -5514,7 +5681,7 @@ msgstr "" msgid "This service has not provided terms of service or a privacy policy." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "" @@ -5580,10 +5747,14 @@ msgstr "Gewindemodus" msgid "Threads Preferences" msgstr "Thread-Einstellungen" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "" @@ -5625,25 +5796,25 @@ msgstr "Erneut versuchen" msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "Liste entblocken" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "Stummschaltung von Liste aufheben" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5653,7 +5824,7 @@ msgstr "Es ist uns nicht gelungen, deinen Dienst zu kontaktieren. Bitte überpr #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "Entblocken" @@ -5674,7 +5845,7 @@ msgstr "" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Repost rückgängig machen" @@ -5705,12 +5876,12 @@ msgstr "" #~ msgid "Unlike" #~ msgstr "Like aufheben" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "Stummschaltung aufheben" @@ -5727,7 +5898,7 @@ msgstr "Stummschaltung von Konto aufheben" msgid "Unmute all {displayTag} posts" msgstr "Stummschaltung aller {displayTag}-Beiträge aufheben" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5736,16 +5907,16 @@ msgstr "" msgid "Unmute thread" msgstr "Stummschaltung von Thread aufheben" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "Anheften aufheben" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "Anheften der Moderationsliste aufheben" @@ -5761,7 +5932,12 @@ msgstr "" msgid "Unsubscribe from this labeler" msgstr "" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "" @@ -5773,7 +5949,7 @@ msgstr "{displayName} in Listen aktualisieren" #~ msgid "Update Available" #~ msgstr "Update verfügbar" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "" @@ -5781,7 +5957,11 @@ msgstr "" msgid "Updating..." msgstr "Aktualisieren..." -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Hochladen einer Textdatei auf:" @@ -5804,7 +5984,7 @@ msgstr "" msgid "Upload from Library" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "" @@ -5812,11 +5992,11 @@ msgstr "" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Verwende App-Passwörter, um dich bei anderen Bluesky-Clients anzumelden, ohne dass du vollen Zugriff auf deinen Account oder Passwort hast." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "Standardanbieter verwenden" @@ -5830,7 +6010,11 @@ msgstr "In-App-Browser verwenden" msgid "Use my default browser" msgstr "Meinen Standardbrowser verwenden" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "" @@ -5872,13 +6056,13 @@ msgstr "Benutzer blockiert dich" msgid "User list by {0}" msgstr "Benutzerliste von {0}" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "Benutzerliste von <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "Benutzerliste von dir" @@ -5894,11 +6078,11 @@ msgstr "Benutzerliste aktualisiert" msgid "User Lists" msgstr "Benutzerlisten" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "Benutzername oder E-Mail-Adresse" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "Benutzer" @@ -5914,7 +6098,7 @@ msgstr "Benutzer in \"{0}\"" msgid "Users that have liked this content or profile" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "" @@ -5922,7 +6106,7 @@ msgstr "" #~ msgid "Verify {0}" #~ msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -5938,16 +6122,16 @@ msgstr "Meine E-Mail bestätigen" msgid "Verify My Email" msgstr "Meine E-Mail bestätigen" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "Neue E-Mail bestätigen" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "Überprüfe deine E-Mail" @@ -5959,7 +6143,7 @@ msgstr "Überprüfe deine E-Mail" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "Videospiele" @@ -5971,11 +6155,11 @@ msgstr "Avatar von {0} ansehen" msgid "View debug entry" msgstr "Debug-Eintrag anzeigen" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "" @@ -5983,13 +6167,13 @@ msgstr "" msgid "View full thread" msgstr "Vollständigen Thread ansehen" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Profil ansehen" @@ -6001,7 +6185,7 @@ msgstr "Avatar ansehen" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "" @@ -6033,11 +6217,15 @@ msgstr "" msgid "We couldn't find any results for that hashtag." msgstr "Wir konnten keine Ergebnisse für diesen Hashtag finden." +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Wir schätzen {estimatedTime} bis dein Konto bereit ist." -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Wir hoffen, dass du eine schöne Zeit hast. Denke daran, Bluesky ist:" @@ -6061,7 +6249,7 @@ msgstr "" msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Die Verbindung konnte nicht hergestellt werden. Bitte versuche es erneut, um mit der Einrichtung deines Kontos fortzufahren. Wenn der Versuch weiterhin fehlschlägt, kannst du diesen Schritt überspringen." @@ -6073,7 +6261,7 @@ msgstr "Wir werden dich benachrichtigen, wenn dein Konto bereit ist." #~ msgid "We'll look into your appeal promptly." #~ msgstr "Wir werden deinen Widerspruch unverzüglich prüfen." -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "Wir verwenden diese Informationen, um dein Erlebnis individuell zu gestalten." @@ -6106,7 +6294,7 @@ msgstr "" #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Willkommen bei <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "Was sind deine Interessen?" @@ -6133,23 +6321,31 @@ msgstr "Welche Sprachen würdest du gerne in deinen algorithmischen Feeds sehen? msgid "Who can reply" msgstr "Wer antworten kann" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "" @@ -6157,8 +6353,8 @@ msgstr "" msgid "Wide" msgstr "Breit" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -6171,21 +6367,21 @@ msgstr "Beitrag verfassen" msgid "Write your reply" msgstr "Schreibe deine Antwort" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "Schriftsteller" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Ja" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -6219,15 +6415,15 @@ msgstr "" msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Du hast noch keine Einladungscodes! Wir schicken dir welche, wenn du schon etwas länger bei Bluesky bist." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "Du hast keine angehefteten Feeds." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "Du hast keine gespeicherten Feeds!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "Du hast keine gespeicherten Feeds!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "Du hast keine gespeicherten Feeds." @@ -6278,7 +6474,7 @@ msgstr "Du hast keine Feeds." msgid "You have no lists." msgstr "Du hast keine Listen." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -6306,7 +6502,11 @@ msgstr "" msgid "You haven't muted any words or tags yet" msgstr "Du hast noch keine Wörter oder Tags stummgeschaltet" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" @@ -6338,7 +6538,7 @@ msgstr "Du erhälst nun Mitteilungen für dieses Thread" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Du erhältst eine E-Mail mit einem \"Reset-Code\". Gib diesen Code hier ein und gib dann dein neues Passwort ein." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -6352,7 +6552,7 @@ msgstr "Du hast die Kontrolle" msgid "You're in line" msgstr "Du bist in der Warteschlange" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "Du kannst loslegen!" @@ -6373,7 +6573,7 @@ msgstr "Dein Konto" msgid "Your account has been deleted" msgstr "Dein Konto wurde gelöscht" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Dein Kontodepot, das alle öffentlichen Datensätze enthält, kann als \"CAR\"-Datei heruntergeladen werden. Diese Datei enthält keine Medieneinbettungen, wie z. B. Bilder, oder deine privaten Daten, welche separat abgerufen werden müssen." @@ -6390,16 +6590,16 @@ msgid "Your default feed is \"Following\"" msgstr "Dein Standard-Feed ist \"Following\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "Deine E-Mail scheint ungültig zu sein." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "Deine E-Mail wurde aktualisiert, aber nicht bestätigt. Als nächsten Schritt bestätige bitte deine neue E-Mail." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Deine E-Mail wurde noch nicht bestätigt. Dies ist ein wichtiger Sicherheitsschritt, den wir empfehlen." @@ -6411,7 +6611,7 @@ msgstr "Dein Following-Feed ist leer! Folge mehr Benutzern, um auf dem Laufenden msgid "Your full handle will be" msgstr "Dein vollständiger Handle lautet" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "Dein vollständiger Handle lautet <0>@{0}" @@ -6427,7 +6627,7 @@ msgstr "Dein Passwort wurde erfolgreich geändert!" msgid "Your post has been published" msgstr "Dein Beitrag wurde veröffentlicht" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Deine Beiträge, Likes und Blockierungen sind öffentlich. Stummschaltungen sind privat." @@ -6439,6 +6639,10 @@ msgstr "Dein Profil" msgid "Your reply has been published" msgstr "Deine Antwort wurde veröffentlicht" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Dein Benutzerhandle" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index e11cb8ca6a..d3bc4014be 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "" @@ -21,15 +21,15 @@ msgstr "" msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -51,7 +51,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -71,6 +71,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -90,15 +94,15 @@ msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -106,11 +110,11 @@ msgstr "" msgid "<0/> members" msgstr "" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -135,7 +139,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "" @@ -178,7 +182,7 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -229,15 +233,15 @@ msgstr "" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "" @@ -249,6 +253,7 @@ msgstr "" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -256,8 +261,8 @@ msgid "Add alt text" msgstr "" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -281,7 +286,15 @@ msgstr "" msgid "Add muted words and tags" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "" @@ -290,7 +303,7 @@ msgstr "" msgid "Add to Lists" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "" @@ -303,17 +316,17 @@ msgstr "" msgid "Added to list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "" #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "" @@ -326,7 +339,7 @@ msgstr "" msgid "Advanced" msgstr "" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "" @@ -359,12 +372,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "" @@ -372,11 +385,11 @@ msgstr "" msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "" @@ -389,7 +402,7 @@ msgstr "" msgid "An issue occurred, please try again." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -398,7 +411,7 @@ msgstr "" msgid "and" msgstr "" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "" @@ -406,7 +419,7 @@ msgstr "" msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "" @@ -436,16 +449,16 @@ msgstr "" msgid "App Passwords" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -457,19 +470,24 @@ msgstr "" msgid "Appearance" msgstr "" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "" @@ -485,11 +503,11 @@ msgstr "" msgid "Are you writing in <0>{0}?" msgstr "" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "" @@ -497,17 +515,17 @@ msgstr "" msgid "At least 3 characters" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -535,8 +553,8 @@ msgstr "" msgid "Block" msgstr "" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -549,15 +567,15 @@ msgstr "" msgid "Block Account?" msgstr "" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "" @@ -591,7 +609,7 @@ msgstr "" msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "" -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "" @@ -639,10 +657,15 @@ msgstr "" msgid "Blur images and filter from feeds" msgstr "" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "" @@ -689,9 +712,9 @@ msgstr "" #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -703,26 +726,26 @@ msgstr "" #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "" @@ -747,7 +770,7 @@ msgstr "" msgid "Cancels opening the linked website" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "" @@ -760,12 +783,12 @@ msgstr "" msgid "Change handle" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "" @@ -782,7 +805,7 @@ msgstr "" msgid "Change post language to {0}" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "" @@ -790,11 +813,11 @@ msgstr "" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -820,11 +843,11 @@ msgstr "" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "" @@ -836,7 +859,7 @@ msgstr "" msgid "Choose Service" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "" @@ -845,6 +868,10 @@ msgstr "" #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "" @@ -886,6 +913,10 @@ msgstr "" msgid "click here" msgstr "" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "" @@ -894,7 +925,7 @@ msgstr "" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "" @@ -963,11 +994,11 @@ msgstr "" msgid "Collapses list of users for a given notification" msgstr "" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "" @@ -976,7 +1007,7 @@ msgstr "" msgid "Community Guidelines" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "" @@ -1006,18 +1037,18 @@ msgstr "" #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "" @@ -1025,7 +1056,7 @@ msgstr "" msgid "Confirm content language settings" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "" @@ -1037,17 +1068,17 @@ msgstr "" msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "" @@ -1094,8 +1125,9 @@ msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "" @@ -1105,8 +1137,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1120,7 +1153,7 @@ msgstr "" msgid "Continue to the next step without following any accounts" msgstr "" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "" @@ -1133,9 +1166,9 @@ msgstr "" msgid "Copied build version to clipboard" msgstr "" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1153,7 +1186,7 @@ msgstr "" msgid "Copy" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "" @@ -1162,7 +1195,7 @@ msgstr "" msgid "Copy code" msgstr "" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "" @@ -1186,15 +1219,15 @@ msgstr "" msgid "Copyright Policy" msgstr "" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "" @@ -1202,13 +1235,13 @@ msgstr "" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1228,6 +1261,10 @@ msgstr "" msgid "Create an account" msgstr "" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "" @@ -1237,7 +1274,7 @@ msgstr "" msgid "Create new account" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "" @@ -1249,7 +1286,7 @@ msgstr "" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "" @@ -1258,12 +1295,12 @@ msgstr "" msgid "Custom" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "" @@ -1296,10 +1333,10 @@ msgstr "" msgid "Debug panel" msgstr "" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "" @@ -1311,7 +1348,7 @@ msgstr "" #~ msgid "Delete Account" #~ msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1327,11 +1364,11 @@ msgstr "" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1339,7 +1376,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "" @@ -1352,7 +1389,7 @@ msgstr "" msgid "Delete post" msgstr "" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "" @@ -1391,7 +1428,7 @@ msgstr "" msgid "Disable autoplay for GIFs" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "" @@ -1432,7 +1469,7 @@ msgstr "" msgid "Discover new custom feeds" msgstr "" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "" @@ -1444,7 +1481,7 @@ msgstr "" msgid "Display Name" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "" @@ -1456,11 +1493,11 @@ msgstr "" msgid "Doesn't begin or end with a hyphen" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "" @@ -1468,6 +1505,8 @@ msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1476,15 +1515,13 @@ msgstr "" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1498,8 +1535,8 @@ msgstr "" msgid "Done{extraText}" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "" @@ -1511,7 +1548,7 @@ msgstr "" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "" @@ -1519,7 +1556,7 @@ msgstr "" msgid "e.g. Alice Roberts" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "" @@ -1566,7 +1603,7 @@ msgstr "" msgid "Edit image" msgstr "" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "" @@ -1575,8 +1612,8 @@ msgid "Edit Moderation List" msgstr "" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "" @@ -1595,7 +1632,7 @@ msgid "Edit Profile" msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "" @@ -1611,16 +1648,16 @@ msgstr "" msgid "Edit your profile description" msgstr "" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "" @@ -1628,16 +1665,16 @@ msgstr "" msgid "Email address" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "" @@ -1685,7 +1722,7 @@ msgstr "" msgid "Enable media players for" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "" @@ -1714,7 +1751,7 @@ msgstr "" msgid "Enter a word or tag" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "" @@ -1722,7 +1759,7 @@ msgstr "" msgid "Enter the code you received to change your password." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "" @@ -1739,11 +1776,11 @@ msgstr "" msgid "Enter your email address" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "" @@ -1751,11 +1788,15 @@ msgstr "" msgid "Enter your username and password" msgstr "" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "" @@ -1764,15 +1805,19 @@ msgstr "" msgid "Everybody" msgstr "" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "" @@ -1810,7 +1855,7 @@ msgstr "" msgid "Export my data" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "" @@ -1844,7 +1889,7 @@ msgstr "" msgid "Failed to create the list. Check your internet connection and try again." msgstr "" -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -1856,7 +1901,7 @@ msgstr "" msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -1865,35 +1910,39 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "" @@ -1901,7 +1950,7 @@ msgstr "" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "" @@ -1909,15 +1958,19 @@ msgstr "" msgid "Feeds can be topical as well!" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "" @@ -1943,7 +1996,7 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "" @@ -1951,11 +2004,11 @@ msgstr "" msgid "Fine-tune the discussion threads." msgstr "" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "" @@ -2017,7 +2070,7 @@ msgstr "" msgid "Followed users" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "" @@ -2035,7 +2088,9 @@ msgstr "" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "" @@ -2050,7 +2105,7 @@ msgstr "" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "" @@ -2063,11 +2118,11 @@ msgstr "" msgid "Follows You" msgstr "" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "" @@ -2080,15 +2135,15 @@ msgstr "" msgid "Forgot Password" msgstr "" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "" @@ -2105,12 +2160,16 @@ msgstr "" msgid "Gallery" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "" @@ -2119,9 +2178,9 @@ msgstr "" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "" @@ -2129,12 +2188,13 @@ msgstr "" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2160,11 +2220,11 @@ msgstr "" msgid "Go to next" msgstr "" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2172,7 +2232,7 @@ msgstr "" msgid "Graphic Media" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "" @@ -2180,7 +2240,7 @@ msgstr "" msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "" @@ -2188,7 +2248,7 @@ msgstr "" msgid "Hashtag" msgstr "" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "" @@ -2197,10 +2257,14 @@ msgid "Having trouble?" msgstr "" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "" @@ -2253,23 +2317,23 @@ msgstr "" msgid "Hide user list" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "" @@ -2282,21 +2346,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "" #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "" @@ -2304,25 +2368,29 @@ msgstr "" msgid "How should we open this link?" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "" @@ -2330,7 +2398,7 @@ msgstr "" msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "" -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "" @@ -2342,7 +2410,7 @@ msgstr "" msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "" -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "" @@ -2354,7 +2422,7 @@ msgstr "" msgid "Image alt text" msgstr "" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "" @@ -2362,7 +2430,7 @@ msgstr "" msgid "Input code sent to your email for password reset" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "" @@ -2374,27 +2442,27 @@ msgstr "" msgid "Input new password" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "" @@ -2402,8 +2470,8 @@ msgstr "" msgid "Input your user handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" @@ -2411,7 +2479,7 @@ msgstr "" msgid "Invalid or unsupported post record" msgstr "" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "" @@ -2423,7 +2491,7 @@ msgstr "" msgid "Invite code" msgstr "" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "" @@ -2443,7 +2511,7 @@ msgstr "" msgid "Jobs" msgstr "" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "" @@ -2471,11 +2539,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "" @@ -2523,13 +2591,13 @@ msgstr "" msgid "Learn more." msgstr "" -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2554,7 +2622,7 @@ msgstr "" msgid "Let's get your password reset!" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "" @@ -2567,7 +2635,7 @@ msgstr "" #~ msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "" @@ -2621,19 +2689,19 @@ msgstr "" msgid "List Avatar" msgstr "" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "" @@ -2641,20 +2709,20 @@ msgstr "" msgid "List Name" msgstr "" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "" @@ -2663,9 +2731,9 @@ msgid "Load new notifications" msgstr "" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "" @@ -2692,7 +2760,7 @@ msgstr "" msgid "Login to account that is not listed" msgstr "" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -2700,6 +2768,18 @@ msgstr "" msgid "Looks like XXXXX-XXXXX" msgstr "" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "" @@ -2708,6 +2788,11 @@ msgstr "" msgid "Manage your muted words and tags" msgstr "" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2726,30 +2811,35 @@ msgstr "" msgid "Menu" msgstr "" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -2757,7 +2847,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "" @@ -2776,13 +2866,13 @@ msgstr "" msgid "Moderation list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "" @@ -2824,11 +2914,11 @@ msgstr "" msgid "More" msgstr "" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "" @@ -2849,7 +2939,7 @@ msgstr "" msgid "Mute Account" msgstr "" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "" @@ -2865,16 +2955,16 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "" @@ -2921,7 +3011,7 @@ msgstr "" msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "" @@ -2930,11 +3020,11 @@ msgstr "" msgid "My Birthday" msgstr "" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "" @@ -2955,27 +3045,27 @@ msgstr "" msgid "Name is required" msgstr "" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "" @@ -2984,11 +3074,11 @@ msgstr "" #~ msgid "Never lose access to your followers and data." #~ msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "" @@ -3002,8 +3092,8 @@ msgid "New" msgstr "" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -3019,22 +3109,22 @@ msgstr "" msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "" @@ -3047,14 +3137,14 @@ msgstr "" msgid "Newest replies first" msgstr "" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3072,21 +3162,21 @@ msgstr "" msgid "Next image" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "" @@ -3102,8 +3192,8 @@ msgstr "" msgid "No longer than 253 characters" msgstr "" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3120,7 +3210,7 @@ msgstr "" msgid "No results found" msgstr "" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "" @@ -3165,8 +3255,8 @@ msgstr "" msgid "Not Found" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "" @@ -3183,22 +3273,22 @@ msgstr "" #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "" @@ -3215,7 +3305,7 @@ msgstr "" msgid "Oh no!" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "" @@ -3240,6 +3330,10 @@ msgstr "" msgid "One or more images is missing alt text." msgstr "" +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "" @@ -3258,16 +3352,20 @@ msgstr "" msgid "Oops!" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "" @@ -3370,7 +3468,7 @@ msgstr "" msgid "Opens modal for email verification" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "" @@ -3378,12 +3476,12 @@ msgstr "" msgid "Opens moderation settings" msgstr "" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "" @@ -3403,7 +3501,7 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3424,6 +3522,7 @@ msgstr "" msgid "Option {0} of {numItems}" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "" @@ -3432,7 +3531,7 @@ msgstr "" msgid "Or combine these options:" msgstr "" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "" @@ -3453,10 +3552,10 @@ msgstr "" msgid "Page Not Found" msgstr "" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "" @@ -3488,32 +3587,32 @@ msgstr "" msgid "People following @{0}" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "" -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "" -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "" @@ -3538,19 +3637,19 @@ msgstr "" msgid "Plays the GIF" msgstr "" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "" -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "" @@ -3566,15 +3665,15 @@ msgstr "" msgid "Please enter a valid word, tag, or phrase to mute" msgstr "" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -3582,7 +3681,7 @@ msgstr "" msgid "Please sign in as @{0}" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "" @@ -3590,11 +3689,11 @@ msgstr "" msgid "Please wait for your link card to finish loading" msgstr "" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "" @@ -3662,7 +3761,7 @@ msgstr "" msgid "Posts can be muted based on their text, their tags, or both." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "" @@ -3676,15 +3775,15 @@ msgstr "" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3707,7 +3806,7 @@ msgstr "" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "" @@ -3720,11 +3819,11 @@ msgstr "" msgid "profile" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "" @@ -3736,7 +3835,7 @@ msgstr "" msgid "Protect your account by verifying your email." msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "" @@ -3778,6 +3877,10 @@ msgstr "" msgid "Ratios" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "" @@ -3791,11 +3894,11 @@ msgstr "" #~ msgstr "" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "" @@ -3811,22 +3914,25 @@ msgstr "" msgid "Remove Banner" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "" @@ -3850,7 +3956,7 @@ msgstr "" msgid "Remove repost" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "" @@ -3859,11 +3965,13 @@ msgstr "" msgid "Removed from list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "" @@ -3875,6 +3983,11 @@ msgstr "" msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "" @@ -3888,7 +4001,7 @@ msgctxt "action" msgid "Reply" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "" @@ -3910,24 +4023,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "" @@ -3940,30 +4059,36 @@ msgstr "" msgid "Report post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "" @@ -4001,8 +4126,8 @@ msgstr "" msgid "Reposts of this post" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "" @@ -4015,7 +4140,7 @@ msgstr "" msgid "Require alt text before posting" msgstr "" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "" @@ -4023,8 +4148,8 @@ msgstr "" msgid "Required for this provider" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "" @@ -4058,7 +4183,7 @@ msgstr "" msgid "Resets the preferences state" msgstr "" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "" @@ -4067,13 +4192,14 @@ msgstr "" msgid "Retries the last action, which errored out" msgstr "" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4081,11 +4207,11 @@ msgid "Retry" msgstr "" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "" @@ -4094,20 +4220,20 @@ msgid "Returns to home page" msgstr "" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4125,7 +4251,7 @@ msgstr "" msgid "Save Changes" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "" @@ -4133,16 +4259,16 @@ msgstr "" msgid "Save image crop" msgstr "" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4150,7 +4276,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "" @@ -4158,7 +4285,7 @@ msgstr "" msgid "Saves any changes to your profile" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "" @@ -4166,11 +4293,11 @@ msgstr "" msgid "Saves image crop settings" msgstr "" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "" @@ -4183,12 +4310,12 @@ msgstr "" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "" @@ -4230,7 +4357,7 @@ msgstr "" msgid "Search Tenor" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "" @@ -4255,7 +4382,7 @@ msgstr "" msgid "See profile" msgstr "" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "" @@ -4267,10 +4394,22 @@ msgstr "" msgid "Select {item}" msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "" @@ -4299,6 +4438,10 @@ msgstr "" msgid "Select some accounts below to follow" msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4327,7 +4470,7 @@ msgstr "" msgid "Select your date of birth" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "" @@ -4343,30 +4486,32 @@ msgstr "" msgid "Select your secondary algorithmic feeds" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4376,12 +4521,12 @@ msgstr "" msgid "Send report to {0}" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "" @@ -4397,15 +4542,15 @@ msgstr "" msgid "Set new password" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "" @@ -4413,7 +4558,7 @@ msgstr "" msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "" @@ -4421,7 +4566,7 @@ msgstr "" msgid "Set up your account" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "" @@ -4464,13 +4609,13 @@ msgstr "" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "" @@ -4478,7 +4623,7 @@ msgstr "" msgid "Sexually Suggestive" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "" @@ -4488,7 +4633,7 @@ msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "" @@ -4498,8 +4643,8 @@ msgstr "" msgid "Share anyway" msgstr "" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "" @@ -4562,11 +4707,11 @@ msgstr "" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "" @@ -4582,7 +4727,7 @@ msgstr "" msgid "Show re-posts in Following feed" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "" @@ -4602,7 +4747,7 @@ msgstr "" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "" @@ -4635,17 +4780,17 @@ msgstr "" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4673,12 +4818,12 @@ msgstr "" msgid "Sign out" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4703,27 +4848,31 @@ msgstr "" msgid "Signed in as @{0}" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "" -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "" @@ -4735,19 +4884,20 @@ msgstr "" msgid "Sort replies to the same post by:" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "" @@ -4784,12 +4934,12 @@ msgstr "" msgid "Storybook" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Submit" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "" @@ -4810,7 +4960,7 @@ msgstr "" msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "" @@ -4822,7 +4972,7 @@ msgstr "" msgid "Suggested for you" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "" @@ -4869,7 +5019,7 @@ msgstr "" msgid "Tap to view fully" msgstr "" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "" @@ -4881,13 +5031,13 @@ msgstr "" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "" @@ -4895,15 +5045,16 @@ msgstr "" msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "" @@ -4928,11 +5079,15 @@ msgstr "" msgid "The Copyright Policy has been moved to <0/>" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "" @@ -4962,15 +5117,17 @@ msgid "There are many feeds to try:" msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "" -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "" @@ -4982,16 +5139,17 @@ msgstr "" msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "" @@ -4999,7 +5157,7 @@ msgstr "" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "" -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "" @@ -5012,6 +5170,7 @@ msgstr "" msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" @@ -5038,10 +5197,10 @@ msgstr "" msgid "There was an issue! {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "" @@ -5066,7 +5225,7 @@ msgstr "" msgid "This account has requested that users sign in to view their profile." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -5091,21 +5250,21 @@ msgstr "" msgid "This content is not available because one of the users involved has blocked the other." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "" #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "" @@ -5113,11 +5272,15 @@ msgstr "" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "" @@ -5133,6 +5296,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5141,7 +5308,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "" @@ -5174,7 +5341,7 @@ msgstr "" msgid "This service has not provided terms of service or a privacy policy." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "" @@ -5228,10 +5395,14 @@ msgstr "" msgid "Threads Preferences" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "" @@ -5273,25 +5444,25 @@ msgstr "" msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5301,7 +5472,7 @@ msgstr "" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "" @@ -5322,7 +5493,7 @@ msgstr "" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "" @@ -5349,12 +5520,12 @@ msgstr "" #~ msgid "Unlike" #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "" @@ -5371,7 +5542,7 @@ msgstr "" msgid "Unmute all {displayTag} posts" msgstr "" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5380,16 +5551,16 @@ msgstr "" msgid "Unmute thread" msgstr "" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "" @@ -5401,7 +5572,12 @@ msgstr "" msgid "Unsubscribe from this labeler" msgstr "" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "" @@ -5409,7 +5585,7 @@ msgstr "" msgid "Update {displayName} in Lists" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "" @@ -5417,7 +5593,11 @@ msgstr "" msgid "Updating..." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "" @@ -5440,7 +5620,7 @@ msgstr "" msgid "Upload from Library" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "" @@ -5448,11 +5628,11 @@ msgstr "" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "" @@ -5466,7 +5646,11 @@ msgstr "" msgid "Use my default browser" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "" @@ -5504,13 +5688,13 @@ msgstr "" msgid "User list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "" @@ -5526,11 +5710,11 @@ msgstr "" msgid "User Lists" msgstr "" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "" @@ -5546,7 +5730,7 @@ msgstr "" msgid "Users that have liked this content or profile" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "" @@ -5554,7 +5738,7 @@ msgstr "" #~ msgid "Verify {0}" #~ msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -5570,16 +5754,16 @@ msgstr "" msgid "Verify My Email" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "" @@ -5591,7 +5775,7 @@ msgstr "" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "" @@ -5603,11 +5787,11 @@ msgstr "" msgid "View debug entry" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "" @@ -5615,13 +5799,13 @@ msgstr "" msgid "View full thread" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "" @@ -5633,7 +5817,7 @@ msgstr "" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "" @@ -5661,11 +5845,15 @@ msgstr "" msgid "We couldn't find any results for that hashtag." msgstr "" +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "" @@ -5689,7 +5877,7 @@ msgstr "" msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "" @@ -5697,7 +5885,7 @@ msgstr "" msgid "We will let you know when your account is ready." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "" @@ -5730,7 +5918,7 @@ msgstr "" #~ msgid "Welcome to <0>Bluesky" #~ msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "" @@ -5753,23 +5941,31 @@ msgstr "" msgid "Who can reply" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "" @@ -5777,8 +5973,8 @@ msgstr "" msgid "Wide" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -5791,21 +5987,21 @@ msgstr "" msgid "Write your reply" msgstr "" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -5839,15 +6035,15 @@ msgstr "" msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "" -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "" #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "" @@ -5894,7 +6090,7 @@ msgstr "" msgid "You have no lists." msgstr "" -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -5914,7 +6110,11 @@ msgstr "" msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" @@ -5942,7 +6142,7 @@ msgstr "" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "" -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -5956,7 +6156,7 @@ msgstr "" msgid "You're in line" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "" @@ -5977,7 +6177,7 @@ msgstr "" msgid "Your account has been deleted" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "" @@ -5994,16 +6194,16 @@ msgid "Your default feed is \"Following\"" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "" @@ -6015,7 +6215,7 @@ msgstr "" msgid "Your full handle will be" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "" @@ -6031,7 +6231,7 @@ msgstr "" msgid "Your post has been published" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "" @@ -6043,6 +6243,10 @@ msgstr "" msgid "Your reply has been published" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index 0e1e7efb6b..c7d7c41008 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "" @@ -25,15 +25,15 @@ msgstr "" #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "{0, plural, one {# invite code available} other {# invite codes available}}" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -55,7 +55,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -75,6 +75,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -108,15 +112,15 @@ msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -124,11 +128,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> miembros" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -153,7 +157,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>Sigue a algunos<1>usuarios<2>recomendados" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -165,7 +169,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "" @@ -204,7 +208,7 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -255,15 +259,15 @@ msgstr "" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "Agregar" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Agregar una advertencia de cuenta" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "Agregar un usuario a esta lista" @@ -275,6 +279,7 @@ msgstr "Agregar una cuenta" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -282,8 +287,8 @@ msgid "Add alt text" msgstr "Agregar texto alt" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -316,7 +321,15 @@ msgstr "" msgid "Add muted words and tags" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Añade el siguiente registro DNS a tu dominio:" @@ -325,7 +338,7 @@ msgstr "Añade el siguiente registro DNS a tu dominio:" msgid "Add to Lists" msgstr "Agregar a listas" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "Agregar a mis noticias" @@ -338,17 +351,17 @@ msgstr "Agregar a mis noticias" msgid "Added to list" msgstr "Agregar a una lista" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Ajusta el número de Me gusta que debe tener una respuesta para que se muestre en tus noticias." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Contenido para adultos" @@ -369,7 +382,7 @@ msgstr "" msgid "Advanced" msgstr "Avanzado" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "" @@ -402,12 +415,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "El texto alternativo describe las imágenes para los usuarios ciegos y con baja visión, y ayuda a dar contexto a todos." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "Se ha enviado un correo electrónico a {0}. Incluye un código de confirmación que puedes introducir a continuación." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Se ha enviado un correo electrónico a tu dirección previa, {0}. Incluye un código de confirmación que puedes introducir a continuación." @@ -415,11 +428,11 @@ msgstr "Se ha enviado un correo electrónico a tu dirección previa, {0}. Incluy msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "" @@ -432,7 +445,7 @@ msgstr "" msgid "An issue occurred, please try again." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -441,7 +454,7 @@ msgstr "" msgid "and" msgstr "y" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "" @@ -449,7 +462,7 @@ msgstr "" msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "" @@ -483,12 +496,12 @@ msgstr "" msgid "App Passwords" msgstr "Contraseñas de la app" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "" @@ -501,7 +514,7 @@ msgstr "" #~ msgid "Appeal Content Warning" #~ msgstr "Aviso sobre el Contenido del Recurso" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -521,19 +534,24 @@ msgstr "" msgid "Appearance" msgstr "Aspecto exterior" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "¿Estás seguro de que quieres eliminar la contraseña de la app \"{name}\"?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "" @@ -553,11 +571,11 @@ msgstr "¿Estás seguro?" msgid "Are you writing in <0>{0}?" msgstr "" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Desnudez artística o no erótica." @@ -565,17 +583,17 @@ msgstr "Desnudez artística o no erótica." msgid "At least 3 characters" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -608,8 +626,8 @@ msgstr "Cumpleaños:" msgid "Block" msgstr "" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -622,15 +640,15 @@ msgstr "Bloquear una cuenta" msgid "Block Account?" msgstr "" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "Bloquear cuentas" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "Bloquear una lista" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "¿Bloquear estas cuentas?" @@ -668,7 +686,7 @@ msgstr "Publicación bloqueada." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "" -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "El bloque es público. Las cuentas bloqueadas no pueden responder en tus hilos, mencionarte ni interactuar contigo de ninguna otra forma." @@ -724,10 +742,15 @@ msgstr "" msgid "Blur images and filter from feeds" msgstr "" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/screens/Settings/index.tsx:893 #~ msgid "Build version {0} {1}" #~ msgstr "Versión {0} {1}" @@ -782,9 +805,9 @@ msgstr "Sólo puede contener letras, números, espacios, guiones y guiones bajos #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -796,26 +819,26 @@ msgstr "Sólo puede contener letras, números, espacios, guiones y guiones bajos #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "Cancelar" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "Cancelar la eliminación de la cuenta" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "Cancelar identificador de cambio" @@ -844,7 +867,7 @@ msgstr "Cancelar búsqueda" msgid "Cancels opening the linked website" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "" @@ -857,12 +880,12 @@ msgstr "Cambiar" msgid "Change handle" msgstr "Cambiar el identificador" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "Cambiar el identificador" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Cambiar mi correo electrónico" @@ -883,7 +906,7 @@ msgstr "" #~ msgid "Change your Bluesky password" #~ msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "Cambiar tu correo electrónico" @@ -891,11 +914,11 @@ msgstr "Cambiar tu correo electrónico" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -921,11 +944,11 @@ msgstr "" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Echa un vistazo a algunos usuarios recomendados. Síguelos para ver usuarios similares." -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Consulta tu bandeja de entrada para recibir un correo electrónico con el código de confirmación que debes introducir a continuación:" @@ -941,7 +964,7 @@ msgstr "" msgid "Choose Service" msgstr "Elige un Servicio" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "" @@ -950,6 +973,10 @@ msgstr "" #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "Elige los algoritmos que potencian tu experiencia con publicaciones personalizadas." +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:103 #~ msgid "Choose your algorithmic feeds" #~ msgstr "" @@ -995,6 +1022,10 @@ msgstr "" msgid "click here" msgstr "" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "" @@ -1003,7 +1034,7 @@ msgstr "" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "" @@ -1072,11 +1103,11 @@ msgstr "" msgid "Collapses list of users for a given notification" msgstr "" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "" @@ -1085,7 +1116,7 @@ msgstr "" msgid "Community Guidelines" msgstr "Directrices de la comunidad" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "" @@ -1115,13 +1146,13 @@ msgstr "" #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Confirmar" @@ -1131,8 +1162,8 @@ msgstr "Confirmar" #~ msgid "Confirm" #~ msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "Confirmar el cambio" @@ -1140,7 +1171,7 @@ msgstr "Confirmar el cambio" msgid "Confirm content language settings" msgstr "Confirmar la configuración del idioma del contenido" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "Confirmar eliminación de cuenta" @@ -1156,13 +1187,13 @@ msgstr "" msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Código de confirmación" @@ -1170,7 +1201,7 @@ msgstr "Código de confirmación" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "Conectando..." @@ -1225,8 +1256,9 @@ msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "Continuar" @@ -1236,8 +1268,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1251,7 +1284,7 @@ msgstr "" msgid "Continue to the next step without following any accounts" msgstr "" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "" @@ -1264,9 +1297,9 @@ msgstr "Copiado" msgid "Copied build version to clipboard" msgstr "" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1284,7 +1317,7 @@ msgstr "" msgid "Copy" msgstr "Copiar" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "" @@ -1293,7 +1326,7 @@ msgstr "" msgid "Copy code" msgstr "" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "Copia el enlace a la lista" @@ -1321,15 +1354,15 @@ msgstr "Copiar el texto de la publicación" msgid "Copyright Policy" msgstr "Política de derechos de autor" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "No se ha podido cargar las publicaciones" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "No se ha podido cargar la lista" @@ -1337,13 +1370,13 @@ msgstr "No se ha podido cargar la lista" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/create/Step2.tsx:91 #~ msgid "Country" @@ -1367,6 +1400,10 @@ msgstr "Crear una cuenta" msgid "Create an account" msgstr "" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "" @@ -1376,7 +1413,7 @@ msgstr "" msgid "Create new account" msgstr "Crear una cuenta nueva" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "" @@ -1396,7 +1433,7 @@ msgstr "Creado {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "" @@ -1405,12 +1442,12 @@ msgstr "" msgid "Custom" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "Dominio personalizado" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "" @@ -1447,10 +1484,10 @@ msgstr "" msgid "Debug panel" msgstr "" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "" @@ -1462,7 +1499,7 @@ msgstr "Borrar la cuenta" #~ msgid "Delete Account" #~ msgstr "Borrar la cuenta" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1478,11 +1515,11 @@ msgstr "" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "Borrar la lista" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1490,7 +1527,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "Borrar mi cuenta" @@ -1507,7 +1544,7 @@ msgstr "" msgid "Delete post" msgstr "Borrar una publicación" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "" @@ -1550,7 +1587,7 @@ msgstr "" msgid "Disable autoplay for GIFs" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "" @@ -1599,7 +1636,7 @@ msgstr "" #~ msgid "Discover new feeds" #~ msgstr "Descubrir nuevas publicaciones" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "" @@ -1611,7 +1648,7 @@ msgstr "Mostrar el nombre" msgid "Display Name" msgstr "Mostrar el nombre" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "" @@ -1623,11 +1660,11 @@ msgstr "" msgid "Doesn't begin or end with a hyphen" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "¡Dominio verificado!" @@ -1639,6 +1676,8 @@ msgstr "¡Dominio verificado!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1647,15 +1686,13 @@ msgstr "¡Dominio verificado!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "Listo" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1677,8 +1714,8 @@ msgstr "Listo{extraText}" #~ msgid "Download Bluesky account data (repository)" #~ msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "" @@ -1690,7 +1727,7 @@ msgstr "" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "" @@ -1698,7 +1735,7 @@ msgstr "" msgid "e.g. Alice Roberts" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "" @@ -1745,7 +1782,7 @@ msgstr "" msgid "Edit image" msgstr "Editar la imagen" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "Editar los detalles de la lista" @@ -1754,8 +1791,8 @@ msgid "Edit Moderation List" msgstr "" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "Editar mis noticias" @@ -1774,7 +1811,7 @@ msgid "Edit Profile" msgstr "Editar el perfil" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "Editar mis noticias guardadas" @@ -1790,16 +1827,16 @@ msgstr "" msgid "Edit your profile description" msgstr "" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Correo electrónico" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "" @@ -1807,16 +1844,16 @@ msgstr "" msgid "Email address" msgstr "Dirección de correo electrónico" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "Correo electrónico actualizado" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "" @@ -1868,7 +1905,7 @@ msgstr "" msgid "Enable media players for" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "Activa esta opción para ver sólo las respuestas de las personas a las que sigues." @@ -1897,7 +1934,7 @@ msgstr "" msgid "Enter a word or tag" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "" @@ -1905,7 +1942,7 @@ msgstr "" msgid "Enter the code you received to change your password." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "Introduce el dominio que quieres utilizar" @@ -1926,11 +1963,11 @@ msgstr "" msgid "Enter your email address" msgstr "Introduce la dirección de correo electrónico" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "Introduce tu nueva dirección de correo electrónico a continuación." @@ -1942,11 +1979,15 @@ msgstr "Introduce tu nueva dirección de correo electrónico a continuación." msgid "Enter your username and password" msgstr "Introduce tu nombre de usuario y contraseña" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "Error:" @@ -1955,15 +1996,19 @@ msgstr "Error:" msgid "Everybody" msgstr "Todos" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "" @@ -2005,7 +2050,7 @@ msgstr "" msgid "Export my data" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "" @@ -2039,7 +2084,7 @@ msgstr "" msgid "Failed to create the list. Check your internet connection and try again." msgstr "" -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -2051,7 +2096,7 @@ msgstr "" msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -2060,19 +2105,23 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "Error al cargar las noticias recomendadas" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "Noticias fuera de línea" @@ -2081,18 +2130,18 @@ msgstr "Noticias fuera de línea" #~ msgstr "Preferencias de noticias" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "Comentarios" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "Noticias" @@ -2108,7 +2157,7 @@ msgstr "Noticias" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Se crean las noticias por los usuarios para crear colecciones de contenidos. Elige algunas noticias que te parezcan interesantes." -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Las noticias son algoritmos personalizados que los usuarios construyen con un poco de experiencia en codificación. <0/> para más información." @@ -2116,15 +2165,19 @@ msgstr "Las noticias son algoritmos personalizados que los usuarios construyen c msgid "Feeds can be topical as well!" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "" @@ -2150,7 +2203,7 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "Encontrar cuentas similares..." -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "" @@ -2162,11 +2215,11 @@ msgstr "" msgid "Fine-tune the discussion threads." msgstr "Ajusta los hilos de discusión." -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "" @@ -2228,7 +2281,7 @@ msgstr "" msgid "Followed users" msgstr "Usuarios seguidos" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "Solo usuarios seguidos" @@ -2246,7 +2299,9 @@ msgstr "Seguidores" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "Siguiendo" @@ -2261,7 +2316,7 @@ msgstr "" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "" @@ -2274,11 +2329,11 @@ msgstr "Te siguen" msgid "Follows You" msgstr "" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Por razones de seguridad, tendremos que enviarte un código de confirmación a tu dirección de correo electrónico." @@ -2299,15 +2354,15 @@ msgstr "Por razones de seguridad, no podrás volver a verla. Si pierdes esta con msgid "Forgot Password" msgstr "Olvidé mi contraseña" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "" @@ -2324,12 +2379,16 @@ msgstr "" msgid "Gallery" msgstr "Galería" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Comenzar" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "" @@ -2338,9 +2397,9 @@ msgstr "" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "Regresar" @@ -2348,12 +2407,13 @@ msgstr "Regresar" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "Regresar" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2379,11 +2439,11 @@ msgstr "" msgid "Go to next" msgstr "Ir al siguiente" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2391,7 +2451,7 @@ msgstr "" msgid "Graphic Media" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Identificador" @@ -2399,7 +2459,7 @@ msgstr "Identificador" msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "" @@ -2411,7 +2471,7 @@ msgstr "" #~ msgid "Hashtag: {tag}" #~ msgstr "" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "" @@ -2420,10 +2480,14 @@ msgid "Having trouble?" msgstr "" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "Ayuda" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "" @@ -2480,23 +2544,23 @@ msgstr "Ocultar la lista de usuarios" #~ msgid "Hides posts from {0} in your feed" #~ msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Se ha producido algún problema al contactar con el servidor de noticias. Por favor, informa al propietario de la noticia sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Parece que el servidor de noticias está mal configurado. Por favor, informa al propietario de la noticia sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Parece que el servidor de noticias está fuera de línea. Por favor, informa al propietario de la noticia sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "El servidor de noticias ha respondido de forma incorrecta. Por favor, informa al propietario de la noticia sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Tenemos problemas para encontrar esta noticia. Puede que la hayan borrado." @@ -2509,10 +2573,10 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "" #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "Página inicial" @@ -2523,14 +2587,14 @@ msgstr "Página inicial" #~ msgid "Home Feed Preferences" #~ msgstr "Preferencias de noticias de la página inicial" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Proveedor de alojamiento" @@ -2538,25 +2602,29 @@ msgstr "Proveedor de alojamiento" msgid "How should we open this link?" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "Tengo un código" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "Tengo mi propio dominio" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "Si no se selecciona ninguno, es apto para todas las edades." @@ -2564,7 +2632,7 @@ msgstr "Si no se selecciona ninguno, es apto para todas las edades." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "" -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "" @@ -2576,7 +2644,7 @@ msgstr "" msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "" -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "" @@ -2593,7 +2661,7 @@ msgstr "Texto alt de la imagen" #~ msgid "Image options" #~ msgstr "Opciones de la imagen" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "" @@ -2601,7 +2669,7 @@ msgstr "" msgid "Input code sent to your email for password reset" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "" @@ -2621,7 +2689,7 @@ msgstr "" msgid "Input new password" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "" @@ -2629,15 +2697,15 @@ msgstr "" #~ msgid "Input phone number for SMS verification" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "" @@ -2649,11 +2717,11 @@ msgstr "" #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "" @@ -2661,8 +2729,8 @@ msgstr "" msgid "Input your user handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" @@ -2670,7 +2738,7 @@ msgstr "" msgid "Invalid or unsupported post record" msgstr "" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "Nombre de usuario o contraseña no válidos" @@ -2686,7 +2754,7 @@ msgstr "Invitar a un amigo" msgid "Invite code" msgstr "Código de invitación" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "No se acepta el código de invitación. Comprueba que lo has introducido correctamente e inténtalo de nuevo." @@ -2723,7 +2791,7 @@ msgstr "Tareas" #~ msgid "Join Waitlist" #~ msgstr "Únete a la lista de espera" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "" @@ -2751,11 +2819,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "" @@ -2811,13 +2879,13 @@ msgstr "Más información sobre lo que es público en Bluesky." msgid "Learn more." msgstr "" -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2842,7 +2910,7 @@ msgstr "" msgid "Let's get your password reset!" msgstr "¡Vamos a restablecer tu contraseña!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "" @@ -2860,7 +2928,7 @@ msgstr "" #~ msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Dar «me gusta» a esta noticia" @@ -2914,19 +2982,19 @@ msgstr "" msgid "List Avatar" msgstr "Avatar de la lista" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "" @@ -2934,20 +3002,20 @@ msgstr "" msgid "List Name" msgstr "Nombre de la lista" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "Listas" @@ -2961,9 +3029,9 @@ msgid "Load new notifications" msgstr "Cargar notificaciones nuevas" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "Cargar publicaciones nuevas" @@ -2994,7 +3062,7 @@ msgstr "Visibilidad de desconexión" msgid "Login to account that is not listed" msgstr "Acceder a una cuenta que no está en la lista" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -3002,6 +3070,18 @@ msgstr "" msgid "Looks like XXXXX-XXXXX" msgstr "" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "¡Asegúrate de que es aquí a donde pretendes ir!" @@ -3010,6 +3090,11 @@ msgstr "¡Asegúrate de que es aquí a donde pretendes ir!" msgid "Manage your muted words and tags" msgstr "" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:118 #~ msgid "May not be longer than 253 characters" #~ msgstr "" @@ -3036,30 +3121,35 @@ msgstr "Usuarios mencionados" msgid "Menu" msgstr "Menú" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Mensaje del servidor: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -3067,7 +3157,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "" @@ -3086,13 +3176,13 @@ msgstr "" msgid "Moderation list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "" @@ -3134,11 +3224,11 @@ msgstr "" msgid "More" msgstr "" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Más canales de noticias" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "Más opciones" @@ -3167,7 +3257,7 @@ msgstr "" msgid "Mute Account" msgstr "Silenciar la cuenta" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "Silenciar las cuentas" @@ -3187,16 +3277,16 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "Silenciar la lista" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "¿Silenciar estas cuentas?" @@ -3247,7 +3337,7 @@ msgstr "" msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Silenciar es privado. Las cuentas silenciadas pueden interactuar contigo, pero no verás sus publicaciones ni recibirás notificaciones suyas." @@ -3256,11 +3346,11 @@ msgstr "Silenciar es privado. Las cuentas silenciadas pueden interactuar contigo msgid "My Birthday" msgstr "Mi cumpleaños" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "Mis canales de noticias" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "Mi perfil" @@ -3285,27 +3375,27 @@ msgstr "Nombre" msgid "Name is required" msgstr "" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "" @@ -3319,7 +3409,7 @@ msgstr "" #~ msgid "Never lose access to your followers and data." #~ msgstr "No pierdas nunca el acceso a tus seguidores y datos." -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "" @@ -3327,7 +3417,7 @@ msgstr "" #~ msgid "Nevermind" #~ msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "" @@ -3341,8 +3431,8 @@ msgid "New" msgstr "Nuevo" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -3358,22 +3448,22 @@ msgstr "" msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "Publicación nueva" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "Publicación nueva" @@ -3386,14 +3476,14 @@ msgstr "" msgid "Newest replies first" msgstr "" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3411,21 +3501,21 @@ msgstr "Siguiente" msgid "Next image" msgstr "Imagen nueva" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "No" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "Sin descripción" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "" @@ -3441,8 +3531,8 @@ msgstr "" msgid "No longer than 253 characters" msgstr "" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3459,7 +3549,7 @@ msgstr "Sin resultados" msgid "No results found" msgstr "" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "No se han encontrado resultados para \"{query}\"" @@ -3504,8 +3594,8 @@ msgstr "" msgid "Not Found" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "" @@ -3522,22 +3612,22 @@ msgstr "Nota: Bluesky es una red abierta y pública. Esta configuración sólo l #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "Notificaciones" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "" @@ -3558,7 +3648,7 @@ msgstr "" msgid "Oh no!" msgstr "¡Qué problema!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "" @@ -3583,6 +3673,10 @@ msgstr "" msgid "One or more images is missing alt text." msgstr "Falta el texto alternativo en una o varias imágenes." +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "Solo {0} puede responder." @@ -3601,10 +3695,14 @@ msgstr "" msgid "Oops!" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/screens/Moderation.tsx:75 #~ msgid "Open content filtering settings" #~ msgstr "" @@ -3614,7 +3712,7 @@ msgstr "" msgid "Open emoji picker" msgstr "" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "" @@ -3741,7 +3839,7 @@ msgstr "" msgid "Opens modal for email verification" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "Abre el modal para usar el dominio personalizado" @@ -3749,12 +3847,12 @@ msgstr "Abre el modal para usar el dominio personalizado" msgid "Opens moderation settings" msgstr "Abre la configuración de moderación" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "" @@ -3782,7 +3880,7 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3803,6 +3901,7 @@ msgstr "Abre las preferencias de hilos" msgid "Option {0} of {numItems}" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "" @@ -3811,7 +3910,7 @@ msgstr "" msgid "Or combine these options:" msgstr "" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "" @@ -3836,10 +3935,10 @@ msgstr "Página no encontrada" msgid "Page Not Found" msgstr "" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "Contraseña" @@ -3871,15 +3970,15 @@ msgstr "" msgid "People following @{0}" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "" -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "" @@ -3887,20 +3986,20 @@ msgstr "" #~ msgid "Phone number" #~ msgstr "" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Imágenes destinadas a adultos." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "Canales de noticias anclados" @@ -3925,19 +4024,19 @@ msgstr "" msgid "Plays the GIF" msgstr "" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "Por favor, elige tu identificador." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "Por favor, elige tu contraseña." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Por favor, confirma tu correo electrónico antes de cambiarlo. Se trata de un requisito temporal mientras se añaden herramientas de actualización de correo electrónico, y pronto se eliminará." @@ -3965,15 +4064,15 @@ msgstr "" #~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." #~ msgstr "" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "Introduce tu correo electrónico." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "Introduce tu contraseña, también:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -3986,7 +4085,7 @@ msgstr "" #~ msgid "Please tell us why you think this content warning was incorrectly applied!" #~ msgstr "Por favor, dinos por qué crees que esta advertencia de contenido se ha aplicado incorrectamente!" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "" @@ -3994,11 +4093,11 @@ msgstr "" msgid "Please wait for your link card to finish loading" msgstr "Por favor, espera a que tu tarjeta de enlace termine de cargarse" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "" @@ -4070,7 +4169,7 @@ msgstr "Publicaciones" msgid "Posts can be muted based on their text, their tags, or both." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "" @@ -4084,15 +4183,15 @@ msgstr "" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -4115,7 +4214,7 @@ msgstr "Privacidad" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de privacidad" @@ -4128,11 +4227,11 @@ msgstr "Procesando..." msgid "profile" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "Perfil" @@ -4144,7 +4243,7 @@ msgstr "" msgid "Protect your account by verifying your email." msgstr "Protege tu cuenta verificando tu correo electrónico." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "" @@ -4186,6 +4285,10 @@ msgstr "" msgid "Ratios" msgstr "Proporciones" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "" @@ -4199,11 +4302,11 @@ msgstr "" #~ msgstr "Usuarios recomendados" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Eliminar" @@ -4223,22 +4326,25 @@ msgstr "" msgid "Remove Banner" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "Eliminar el canal de noticias" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "Eliminar de mis canales de noticias" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "" @@ -4266,7 +4372,7 @@ msgstr "" #~ msgid "Remove this feed from my feeds?" #~ msgstr "¿Eliminar este canal de mis canales de noticias?" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "" @@ -4279,11 +4385,13 @@ msgstr "" msgid "Removed from list" msgstr "Eliminar de la lista" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "" @@ -4295,6 +4403,11 @@ msgstr "" msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "Respuestas" @@ -4308,7 +4421,7 @@ msgctxt "action" msgid "Reply" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "Filtros de respuestas" @@ -4334,24 +4447,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Informe de la cuenta" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "Informe del canal de noticias" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "Informe de la lista" @@ -4364,30 +4483,36 @@ msgstr "" msgid "Report post" msgstr "Informe de la publicación" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "" @@ -4425,8 +4550,8 @@ msgstr "" msgid "Reposts of this post" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "Solicitar un cambio" @@ -4443,7 +4568,7 @@ msgstr "" msgid "Require alt text before posting" msgstr "" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "" @@ -4451,8 +4576,8 @@ msgstr "" msgid "Required for this provider" msgstr "Requerido para este proveedor" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "" @@ -4494,7 +4619,7 @@ msgstr "Restablece el estado de incorporación" msgid "Resets the preferences state" msgstr "Restablecer el estado de preferencias" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "" @@ -4503,13 +4628,14 @@ msgstr "" msgid "Retries the last action, which errored out" msgstr "" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4517,11 +4643,11 @@ msgid "Retry" msgstr "Volver a intentar" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "" @@ -4530,7 +4656,7 @@ msgid "Returns to home page" msgstr "" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "" @@ -4541,13 +4667,13 @@ msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Guardar" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4565,7 +4691,7 @@ msgstr "" msgid "Save Changes" msgstr "Guardar cambios" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "Guardar el cambio de identificador" @@ -4573,16 +4699,16 @@ msgstr "Guardar el cambio de identificador" msgid "Save image crop" msgstr "Guardar el recorte de imagen" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "Guardar canales de noticias" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4590,7 +4716,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "" @@ -4598,7 +4725,7 @@ msgstr "" msgid "Saves any changes to your profile" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "" @@ -4606,11 +4733,11 @@ msgstr "" msgid "Saves image crop settings" msgstr "" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "" @@ -4623,12 +4750,12 @@ msgstr "" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "Buscar" @@ -4678,7 +4805,7 @@ msgstr "" msgid "Search Tenor" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "Se requiere un paso de seguridad" @@ -4711,7 +4838,7 @@ msgstr "" msgid "See profile" msgstr "" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "" @@ -4723,10 +4850,22 @@ msgstr "" msgid "Select {item}" msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/view/com/modals/ServerInput.tsx:75 #~ msgid "Select Bluesky Social" #~ msgstr "Seleccionar Bluesky Social" @@ -4764,6 +4903,10 @@ msgstr "" msgid "Select some accounts below to follow" msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4800,7 +4943,7 @@ msgstr "" msgid "Select your date of birth" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "" @@ -4820,30 +4963,32 @@ msgstr "" msgid "Select your secondary algorithmic feeds" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Enviar el mensaje de confirmación" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "Enviar el mensaje" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "Enviar el mensaje" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "Enviar comentarios" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4857,12 +5002,12 @@ msgstr "" msgid "Send report to {0}" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "" @@ -4912,15 +5057,15 @@ msgstr "Establecer la contraseña nueva" #~ msgid "Set password" #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Establece este ajuste en \"No\" para ocultar todas las publicaciones de citas de tus noticias. Las repeticiones seguirán siendo visibles." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Establece este ajuste en \"No\" para ocultar todas las respuestas de tus noticias." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Establece este ajuste en \"No\" para ocultar todas las veces que se han vuelto a publicar desde tus noticias." @@ -4932,7 +5077,7 @@ msgstr "Establece este ajuste en \"Sí\" para mostrar las respuestas en una vist #~ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." #~ msgstr "Establece este ajuste en \"Sí\" para mostrar muestras de tus noticias guardadas en tu siguiente canal de noticias. Se trata de una función experimental." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "" @@ -4940,7 +5085,7 @@ msgstr "" msgid "Set up your account" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "" @@ -4992,13 +5137,13 @@ msgstr "" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "Configuraciones" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "Actividad sexual o desnudez erótica." @@ -5006,7 +5151,7 @@ msgstr "Actividad sexual o desnudez erótica." msgid "Sexually Suggestive" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "" @@ -5016,7 +5161,7 @@ msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "Compartir" @@ -5026,8 +5171,8 @@ msgstr "Compartir" msgid "Share anyway" msgstr "" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "Compartir las noticias" @@ -5094,11 +5239,11 @@ msgstr "" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Mostrar publicaciones de mis noticias" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "Mostrar publicaciones de citas" @@ -5114,7 +5259,7 @@ msgstr "" msgid "Show re-posts in Following feed" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "Mostrar respuestas" @@ -5134,7 +5279,7 @@ msgstr "" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "Mostrar publicaciones que se han publicado nuevamente" @@ -5171,17 +5316,17 @@ msgstr "" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -5219,12 +5364,12 @@ msgstr "" msgid "Sign out" msgstr "Cerrar sesión" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -5253,12 +5398,12 @@ msgstr "" #~ msgid "Signs {0} out of Bluesky" #~ msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "Saltarse este paso" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "" @@ -5266,10 +5411,14 @@ msgstr "" #~ msgid "SMS verification" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/view/com/modals/ProfilePreview.tsx:62 #~ msgid "Something went wrong and we're not sure what." #~ msgstr "" @@ -5288,8 +5437,8 @@ msgstr "" #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "" -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "" @@ -5301,19 +5450,20 @@ msgstr "Clasificar respuestas" msgid "Sort replies to the same post by:" msgstr "Ordenar las respuestas a un mismo mensaje por:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "" @@ -5358,12 +5508,12 @@ msgstr "" msgid "Storybook" msgstr "Libro de cuentos" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Enviar" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "Suscribirse" @@ -5384,7 +5534,7 @@ msgstr "" msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "Suscribirse a esta lista" @@ -5396,7 +5546,7 @@ msgstr "Usuarios sugeridos a seguir" msgid "Suggested for you" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "" @@ -5451,7 +5601,7 @@ msgstr "Alto" msgid "Tap to view fully" msgstr "" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "" @@ -5463,13 +5613,13 @@ msgstr "Condiciones" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Condiciones de servicio" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "" @@ -5477,15 +5627,16 @@ msgstr "" msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "Campo de introducción de texto" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "" @@ -5510,11 +5661,15 @@ msgstr "Las Directrices Comunitarias se ha trasladado a <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "La Política de derechos de autor se han trasladado a <0/>" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "" @@ -5544,15 +5699,17 @@ msgid "There are many feeds to try:" msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "" -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "" @@ -5564,16 +5721,17 @@ msgstr "" msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "" @@ -5581,7 +5739,7 @@ msgstr "" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "" -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "" @@ -5594,6 +5752,7 @@ msgstr "" msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" @@ -5620,10 +5779,10 @@ msgstr "" msgid "There was an issue! {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "" @@ -5652,7 +5811,7 @@ msgstr "Esta {screenDescription} ha sido marcada:" msgid "This account has requested that users sign in to view their profile." msgstr "Esta cuenta ha solicitado que los usuarios inicien sesión para ver su perfil." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -5677,7 +5836,7 @@ msgstr "" msgid "This content is not available because one of the users involved has blocked the other." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "Este contenido no se puede ver sin una cuenta Bluesky." @@ -5685,17 +5844,17 @@ msgstr "Este contenido no se puede ver sin una cuenta Bluesky." #~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." #~ msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Este canal de noticias está recibiendo mucho tráfico y no está disponible temporalmente. Vuelve a intentarlo más tarde." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "" @@ -5703,11 +5862,15 @@ msgstr "" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Esta información no se comparte con otros usuarios." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "Esto es importante por si alguna vez necesitas cambiar tu correo electrónico o restablecer tu contraseña." @@ -5723,6 +5886,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5731,7 +5898,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "Este enlace te lleva al siguiente sitio web:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "" @@ -5764,7 +5931,7 @@ msgstr "" msgid "This service has not provided terms of service or a privacy policy." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "" @@ -5834,10 +6001,14 @@ msgstr "Modo con hilos" msgid "Threads Preferences" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "" @@ -5879,25 +6050,25 @@ msgstr "Intentar nuevamente" msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "Desbloquear una lista" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "Desactivar la opción de silenciar la lista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5907,7 +6078,7 @@ msgstr "No se puede contactar con tu servicio. Comprueba tu conexión a Internet #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "Desbloquear" @@ -5928,7 +6099,7 @@ msgstr "" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Deshacer esta publicación" @@ -5959,12 +6130,12 @@ msgstr "" #~ msgid "Unlike" #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "" @@ -5985,7 +6156,7 @@ msgstr "" #~ msgid "Unmute all {tag} posts" #~ msgstr "" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5994,16 +6165,16 @@ msgstr "" msgid "Unmute thread" msgstr "Desactivar la opción de silenciar el hilo" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "Desanclar la lista de moderación" @@ -6019,7 +6190,12 @@ msgstr "" msgid "Unsubscribe from this labeler" msgstr "" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "" @@ -6031,7 +6207,7 @@ msgstr "Actualizar {displayName} en Listas" #~ msgid "Update Available" #~ msgstr "Actualización disponible" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "" @@ -6039,7 +6215,11 @@ msgstr "" msgid "Updating..." msgstr "Actualizando..." -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Carga un archivo de texto en:" @@ -6062,7 +6242,7 @@ msgstr "" msgid "Upload from Library" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "" @@ -6070,11 +6250,11 @@ msgstr "" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utiliza las contraseñas de la app para iniciar sesión en otros clientes Bluesky sin dar acceso completo a tu cuenta o contraseña." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "Utiliza un proveedor predeterminado" @@ -6088,7 +6268,11 @@ msgstr "" msgid "Use my default browser" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "" @@ -6134,13 +6318,13 @@ msgstr "" msgid "User list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "" @@ -6156,11 +6340,11 @@ msgstr "" msgid "User Lists" msgstr "Listas de usuarios" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "Nombre de usuario o dirección de correo electrónico" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "Usuarios" @@ -6176,7 +6360,7 @@ msgstr "Usuarios en «{0}»" msgid "Users that have liked this content or profile" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "" @@ -6188,7 +6372,7 @@ msgstr "" #~ msgid "Verify {0}" #~ msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -6204,16 +6388,16 @@ msgstr "Verificar mi correo electrónico" msgid "Verify My Email" msgstr "Verificar mi correo electrónico" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "Verificar el correo electrónico nuevo" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "" @@ -6225,7 +6409,7 @@ msgstr "" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "" @@ -6237,11 +6421,11 @@ msgstr "" msgid "View debug entry" msgstr "Ver entrada de depuración" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "" @@ -6249,13 +6433,13 @@ msgstr "" msgid "View full thread" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "" @@ -6267,7 +6451,7 @@ msgstr "Ver el avatar" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "" @@ -6299,11 +6483,15 @@ msgstr "" msgid "We couldn't find any results for that hashtag." msgstr "" +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "" @@ -6331,7 +6519,7 @@ msgstr "" msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "" @@ -6343,7 +6531,7 @@ msgstr "" #~ msgid "We'll look into your appeal promptly." #~ msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "" @@ -6376,7 +6564,7 @@ msgstr "" #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Bienvenido a <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "" @@ -6403,23 +6591,31 @@ msgstr "¿Qué idiomas te gustaría ver en tus noticias algorítmicas?" msgid "Who can reply" msgstr "Quién puede responder" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "" @@ -6427,8 +6623,8 @@ msgstr "" msgid "Wide" msgstr "Ancho" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -6441,7 +6637,7 @@ msgstr "Redactar una publicación" msgid "Write your reply" msgstr "Redactar tu respuesta" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "" @@ -6450,16 +6646,16 @@ msgstr "" #~ msgstr "" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Sí" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -6501,15 +6697,15 @@ msgstr "" msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "¡Aún no tienes códigos de invitación! Te enviaremos algunos cuando lleves un poco más de tiempo en Bluesky." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "No tienes ninguna noticia anclada." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "¡No tienes ninguna noticia guardada!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "¡No tienes ninguna noticia guardada!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "No tienes ninguna noticia guardada." @@ -6560,7 +6756,7 @@ msgstr "No tienes noticias." msgid "You have no lists." msgstr "No tienes listas." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -6588,7 +6784,11 @@ msgstr "" msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" @@ -6620,7 +6820,7 @@ msgstr "" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Recibirás un correo electrónico con un \"código de restablecimiento\". Introduce ese código aquí y, a continuación, introduce tu nueva contraseña." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -6634,7 +6834,7 @@ msgstr "" msgid "You're in line" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "" @@ -6655,7 +6855,7 @@ msgstr "Tu cuenta" msgid "Your account has been deleted" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "" @@ -6672,7 +6872,7 @@ msgid "Your default feed is \"Following\"" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "Tu correo electrónico parece no ser válido." @@ -6681,11 +6881,11 @@ msgstr "Tu correo electrónico parece no ser válido." #~ msgid "Your email has been saved! We'll be in touch soon." #~ msgstr "¡Hemos guardado tu correo electrónico! Pronto nos pondremos en contacto contigo." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "Tu correo electrónico ha sido actualizado pero no verificado. Como siguiente paso, verifica tu nuevo correo electrónico." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Tu correo electrónico aún no ha sido verificado. Este es un paso de seguridad importante que te recomendamos." @@ -6697,7 +6897,7 @@ msgstr "" msgid "Your full handle will be" msgstr "Tu identificador completo será" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "" @@ -6719,7 +6919,7 @@ msgstr "" msgid "Your post has been published" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Tus publicaciones, Me gustas y bloqueos son públicos. Las cuentas silenciadas son privadas." @@ -6731,6 +6931,10 @@ msgstr "Tu perfil" msgid "Your reply has been published" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Tu identificador del usuario" diff --git a/src/locale/locales/fi/messages.po b/src/locale/locales/fi/messages.po index f6508e9b98..b1b8e6f623 100644 --- a/src/locale/locales/fi/messages.po +++ b/src/locale/locales/fi/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: @pekka.bsky.social,@jaoler.fi,@rahi.bsky.social\n" "Plural-Forms: \n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(ei sähköpostiosoitetta)" @@ -21,15 +21,15 @@ msgstr "(ei sähköpostiosoitetta)" msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -51,7 +51,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -71,6 +71,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -90,15 +94,15 @@ msgstr "{following} seurattua" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} lukematonta" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -106,11 +110,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> jäsentä" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -135,7 +139,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>Seuraa joitakin<1>suositeltuja<2>käyttäjiä" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Virheellinen käyttäjätunnus" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "Kaksivaiheisen tunnistautumisen vahvistus" @@ -178,7 +182,7 @@ msgstr "Esteettömyysasetukset\"" #~ msgid "account" #~ msgstr "käyttäjätili" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -229,15 +233,15 @@ msgstr "Käyttäjätilin hiljennys poistettu" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "Lisää" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Lisää sisältövaroitus" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "Lisää käyttäjä tähän listaan" @@ -249,6 +253,7 @@ msgstr "Lisää käyttäjätili" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -256,8 +261,8 @@ msgid "Add alt text" msgstr "Lisää ALT-teksti" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -273,7 +278,15 @@ msgstr "Lisää hiljennetty sana määritettyihin asetuksiin" msgid "Add muted words and tags" msgstr "Lisää hiljennetyt sanat ja aihetunnisteet" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Lisää seuraava DNS-merkintä verkkotunnukseesi:" @@ -282,7 +295,7 @@ msgstr "Lisää seuraava DNS-merkintä verkkotunnukseesi:" msgid "Add to Lists" msgstr "Lisää listoihin" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "Lisää syötteisiini" @@ -295,17 +308,17 @@ msgstr "Lisää syötteisiini" msgid "Added to list" msgstr "Lisätty listaan" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "Lisätty syötteisiini" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Säädä, kuinka monta tykkäystä vastauksen on saatava näkyäkseen syötteessäsi." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Aikuissisältöä" @@ -318,7 +331,7 @@ msgstr "Aikuissisältö on estetty" msgid "Advanced" msgstr "Edistyneemmät" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "Kaikki tallentamasi syötteet yhdessä paikassa." @@ -351,12 +364,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "ALT-teksti kuvailee kuvia sokeille ja heikkonäköisille käyttäjille sekä lisää kontekstia kaikille." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "Sähköposti on lähetetty osoitteeseen {0}. Siinä on vahvistuskoodi, jonka voit syöttää alla." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Sähköposti on lähetetty aiempaan osoitteeseesi, {0}. Siinä on vahvistuskoodi, jonka voit syöttää alla." @@ -364,11 +377,11 @@ msgstr "Sähköposti on lähetetty aiempaan osoitteeseesi, {0}. Siinä on vahvis msgid "An error occured" msgstr "Tapahtui virhe" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "Ongelma, jota ei ole sisällytetty näihin vaihtoehtoihin" @@ -381,7 +394,7 @@ msgstr "Ongelma, jota ei ole sisällytetty näihin vaihtoehtoihin" msgid "An issue occurred, please try again." msgstr "Tapahtui virhe, yritä uudelleen." -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -390,7 +403,7 @@ msgstr "" msgid "and" msgstr "ja" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "Eläimet" @@ -398,7 +411,7 @@ msgstr "Eläimet" msgid "Animated GIF" msgstr "Animoitu GIF" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "Epäsosiaalinen käytös" @@ -428,16 +441,16 @@ msgstr "Sovelluksen salasanan asetukset" msgid "App Passwords" msgstr "Sovellussalasanat" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "Valita" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "Valita \"{0}\" -merkinnästä" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -449,19 +462,24 @@ msgstr "" msgid "Appearance" msgstr "Ulkonäkö" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Haluatko varmasti poistaa sovellussalasanan \"{name}\"?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Haluatko varmasti poistaa {0} syötteistäsi?" @@ -477,11 +495,11 @@ msgstr "Oletko varma?" msgid "Are you writing in <0>{0}?" msgstr "Onko viestisi kieli <0>{0}?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "Taide" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Taiteellinen tai ei-eroottinen alastomuus." @@ -489,17 +507,17 @@ msgstr "Taiteellinen tai ei-eroottinen alastomuus." msgid "At least 3 characters" msgstr "Vähintään kolme merkkiä" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -527,8 +545,8 @@ msgstr "Syntymäpäivä:" msgid "Block" msgstr "Estä" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -541,15 +559,15 @@ msgstr "Estä käyttäjä" msgid "Block Account?" msgstr "Estä käyttäjätili?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "Estä käyttäjätilit" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "Estä lista" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "Estetäänkö nämä käyttäjät?" @@ -583,7 +601,7 @@ msgstr "Estetty viesti." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Estäminen ei estä tätä merkitsijää asettamasta merkintöjä tilillesi." -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Estäminen on julkista. Estetyt käyttäjät eivät voi vastata viesteihisi, mainita sinua tai muuten olla vuorovaikutuksessa kanssasi." @@ -631,10 +649,15 @@ msgstr "Sumenna kuvat" msgid "Blur images and filter from feeds" msgstr "Sumenna kuvat ja suodata syötteistä" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "Kirjat" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Yritys" @@ -681,9 +704,9 @@ msgstr "Voi sisältää vain kirjaimia, numeroita, välilyöntejä, viivoja ja a #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -695,26 +718,26 @@ msgstr "Voi sisältää vain kirjaimia, numeroita, välilyöntejä, viivoja ja a #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "Peruuta" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "Peruuta" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "Peruuta käyttäjätilin poisto" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "Peruuta käyttäjätunnuksen vaihto" @@ -739,7 +762,7 @@ msgstr "Peruuta haku" msgid "Cancels opening the linked website" msgstr "Peruuttaa linkitetyn verkkosivuston avaamisen" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "Vaihda" @@ -752,12 +775,12 @@ msgstr "Vaihda" msgid "Change handle" msgstr "Vaihda käyttäjätunnus" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "Vaihda käyttäjätunnus" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Vaihda sähköpostiosoitteeni" @@ -774,7 +797,7 @@ msgstr "Vaihda salasana" msgid "Change post language to {0}" msgstr "Vaihda julkaisun kieleksi {0}" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "Vaihda sähköpostiosoitteesi" @@ -782,11 +805,11 @@ msgstr "Vaihda sähköpostiosoitteesi" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -812,11 +835,11 @@ msgstr "Tarkista tilani" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Tutustu suositeltuihin käyttäjiin. Seuraa heitä löytääksesi samankaltaisia käyttäjiä." -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "Tarkista sähköpostistasi kirjautumiskoodi ja syötä se tähän." -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Tarkista sähköpostisi ja syötä saamasi vahvistuskoodi alle:" @@ -828,7 +851,7 @@ msgstr "Valitse \"Kaikki\" tai \"Ei kukaan\"" msgid "Choose Service" msgstr "Valitse palvelu" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "Valitse algoritmit, jotka ohjaavat mukautettuja syötteitäsi." @@ -837,6 +860,10 @@ msgstr "Valitse algoritmit, jotka ohjaavat mukautettuja syötteitäsi." #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "Valitse algoritmit, jotka ohjaavat kokemustasi mukautettujen syötteiden kanssa." +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "Valitse pääsyötteet" @@ -878,11 +905,15 @@ msgstr "Tyhjentää kaikki tallennustiedot" msgid "click here" msgstr "klikkaa tästä" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Avaa tästä valikko aihetunnisteelle {tag}" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "Ilmasto" @@ -951,11 +982,11 @@ msgstr "Sulkee kuvan katseluohjelman" msgid "Collapses list of users for a given notification" msgstr "Pienentää käyttäjäluettelon annetulle ilmoitukselle" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "Komedia" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "Sarjakuvat" @@ -964,7 +995,7 @@ msgstr "Sarjakuvat" msgid "Community Guidelines" msgstr "Yhteisöohjeet" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "Suorita käyttöönotto loppuun ja aloita käyttäjätilisi käyttö" @@ -994,18 +1025,18 @@ msgstr "" #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Vahvista" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "Vahvista muutos" @@ -1013,7 +1044,7 @@ msgstr "Vahvista muutos" msgid "Confirm content language settings" msgstr "Vahvista sisällön kieliasetukset" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "Vahvista käyttäjätilin poisto" @@ -1025,17 +1056,17 @@ msgstr "Vahvista ikäsi:" msgid "Confirm your birthdate" msgstr "Vahvista syntymäaikasi" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Vahvistuskoodi" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "Yhdistetään..." @@ -1082,8 +1113,9 @@ msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "Jatka" @@ -1093,8 +1125,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "Jatka käyttäjänä {0} (kirjautunut)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1108,7 +1141,7 @@ msgstr "Jatka seuraavaan vaiheeseen" msgid "Continue to the next step without following any accounts" msgstr "Jatka seuraavaan vaiheeseen seuraamatta yhtään tiliä" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "Ruoanlaitto" @@ -1121,9 +1154,9 @@ msgstr "Kopioitu" msgid "Copied build version to clipboard" msgstr "Ohjelmiston versio kopioitu leikepöydälle" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1141,7 +1174,7 @@ msgstr "Kopioi sovellussalasanan" msgid "Copy" msgstr "Kopioi" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "Kopioi {0}" @@ -1150,7 +1183,7 @@ msgstr "Kopioi {0}" msgid "Copy code" msgstr "Kopioi koodi" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "Kopioi listan linkki" @@ -1174,15 +1207,15 @@ msgstr "Kopioi viestin teksti" msgid "Copyright Policy" msgstr "Tekijänoikeuskäytäntö" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Syötettä ei voitu ladata" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "Listaa ei voitu ladata" @@ -1190,13 +1223,13 @@ msgstr "Listaa ei voitu ladata" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1216,6 +1249,10 @@ msgstr "Luo käyttäjätili" msgid "Create an account" msgstr "Luo käyttäjätili" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "Luo sovellussalasana" @@ -1225,7 +1262,7 @@ msgstr "Luo sovellussalasana" msgid "Create new account" msgstr "Luo uusi käyttäjätili" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "Luo raportti: {0}" @@ -1233,7 +1270,7 @@ msgstr "Luo raportti: {0}" msgid "Created {0}" msgstr "{0} luotu" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "Kulttuuri" @@ -1242,12 +1279,12 @@ msgstr "Kulttuuri" msgid "Custom" msgstr "Mukautettu" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "Mukautettu verkkotunnus" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Yhteisön rakentamat mukautetut syötteet tuovat sinulle uusia kokemuksia ja auttavat löytämään mieluisaa sisältöä." @@ -1280,10 +1317,10 @@ msgstr "" msgid "Debug panel" msgstr "Vianetsintäpaneeli" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "Poista" @@ -1295,7 +1332,7 @@ msgstr "Poista käyttäjätili" #~ msgid "Delete Account" #~ msgstr "Poista käyttäjätili" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1311,11 +1348,11 @@ msgstr "Poista sovellussalasana" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "Poista lista" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1323,7 +1360,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "Poista käyttäjätilini" @@ -1336,7 +1373,7 @@ msgstr "Poista käyttäjätilini…" msgid "Delete post" msgstr "Poista viesti" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "Poista tämä lista?" @@ -1375,7 +1412,7 @@ msgstr "Himmeä" msgid "Disable autoplay for GIFs" msgstr "Älä käynnistä giffejä automaattisesti" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "Poista sähköpostiin perustuva kaksivaiheinen tunnistautuminen käytöstä" @@ -1408,7 +1445,7 @@ msgstr "Estä sovelluksia näyttämästä tiliäni kirjautumattomille käyttäji msgid "Discover new custom feeds" msgstr "Löydä uusia mukautettuja syötteitä" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "Löydä uusia syötteitä" @@ -1420,7 +1457,7 @@ msgstr "Näyttönimi" msgid "Display Name" msgstr "Näyttönimi" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "DNS-paneeli" @@ -1432,11 +1469,11 @@ msgstr "Ei sisällä alastomuutta." msgid "Doesn't begin or end with a hyphen" msgstr "Ei ala eikä lopu väliviivaan" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "Verkkotunnus vahvistettu!" @@ -1444,6 +1481,8 @@ msgstr "Verkkotunnus vahvistettu!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1452,15 +1491,13 @@ msgstr "Verkkotunnus vahvistettu!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "Valmis" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1474,8 +1511,8 @@ msgstr "Valmis" msgid "Done{extraText}" msgstr "Valmis{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "Lataa CAR tiedosto" @@ -1487,7 +1524,7 @@ msgstr "Raahaa tähän lisätäksesi kuvia" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Applen sääntöjen vuoksi aikuisviihde voidaan ottaa käyttöön vasta rekisteröitymisen jälkeen." -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "esim. maija" @@ -1495,7 +1532,7 @@ msgstr "esim. maija" msgid "e.g. Alice Roberts" msgstr "esim. Maija Mallikas" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "esim. liisa.fi" @@ -1542,7 +1579,7 @@ msgstr "Muokkaa profiilikuvaa" msgid "Edit image" msgstr "Muokkaa kuvaa" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "Muokkaa listan tietoja" @@ -1551,8 +1588,8 @@ msgid "Edit Moderation List" msgstr "Muokkaa moderaatiolistaa" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "Muokkaa syötteitä" @@ -1571,7 +1608,7 @@ msgid "Edit Profile" msgstr "Muokkaa profiilia" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "Muokkaa tallennettuja syötteitä" @@ -1587,16 +1624,16 @@ msgstr "Muokkaa näyttönimeäsi" msgid "Edit your profile description" msgstr "Muokkaa profiilin kuvausta" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "Koulutus" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Sähköposti" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "Sähköpostiin perustuva kaksivaiheinen tunnistautuminen poistettu käytöstä" @@ -1604,16 +1641,16 @@ msgstr "Sähköpostiin perustuva kaksivaiheinen tunnistautuminen poistettu käyt msgid "Email address" msgstr "Sähköpostiosoite" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "Sähköpostiosoite päivitetty" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "Sähköpostiosoite päivitetty" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "Sähköpostiosoite vahvistettu" @@ -1661,7 +1698,7 @@ msgstr "Ota käyttöön ulkoinen media" msgid "Enable media players for" msgstr "Ota mediatoistimet käyttöön kohteille" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "Ota tämä asetus käyttöön nähdäksesi vastaukset vain seuraamiltasi ihmisiltä." @@ -1690,7 +1727,7 @@ msgstr "Anna salasana" msgid "Enter a word or tag" msgstr "Kirjoita sana tai aihetunniste" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "Syötä vahvistuskoodi" @@ -1698,7 +1735,7 @@ msgstr "Syötä vahvistuskoodi" msgid "Enter the code you received to change your password." msgstr "Anna saamasi koodi vaihtaaksesi salasanasi." -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "Anna verkkotunnus, jota haluat käyttää" @@ -1715,11 +1752,11 @@ msgstr "Syötä syntymäaikasi" msgid "Enter your email address" msgstr "Syötä sähköpostiosoitteesi" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "Syötä uusi sähköpostiosoitteesi yläpuolelle" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "Syötä uusi sähköpostiosoitteesi alle" @@ -1727,11 +1764,15 @@ msgstr "Syötä uusi sähköpostiosoitteesi alle" msgid "Enter your username and password" msgstr "Syötä käyttäjätunnuksesi ja salasanasi" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Virhe captcha-vastauksen vastaanottamisessa." -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "Virhe:" @@ -1740,15 +1781,19 @@ msgstr "Virhe:" msgid "Everybody" msgstr "Kaikki" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "Liialliset maininnat tai vastaukset" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "Keskeyttää tilin poistoprosessin" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "Peruuttaa käyttäjätunnuksen vaihtamisen" @@ -1786,7 +1831,7 @@ msgstr "Selvästi seksuaalista kuvamateriaalia." msgid "Export my data" msgstr "Vie tietoni" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "Vie tietoni" @@ -1820,7 +1865,7 @@ msgstr "Sovellussalasanan luominen epäonnistui." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Listan luominen epäonnistui. Tarkista internetyhteytesi ja yritä uudelleen." -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -1832,7 +1877,7 @@ msgstr "Viestin poistaminen epäonnistui, yritä uudelleen" msgid "Failed to load GIFs" msgstr "GIF-animaatioiden lataaminen epäonnistui" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -1841,35 +1886,39 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "Suositeltujen syötteiden lataaminen epäonnistui" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "Kuvan {0} tallennus epäonnistui" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "Syöte" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "Syöte käyttäjältä {0}" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "Syöte ei ole käytettävissä" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "Palaute" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "Syötteet" @@ -1877,7 +1926,7 @@ msgstr "Syötteet" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Käyttäjät luovat syötteitä sisällön kuratointiin. Valitse joitakin syötteitä, jotka koet mielenkiintoisiksi." -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Syötteet ovat käyttäjien rakentamia mukautettuja algoritmeja, jotka vaativat vain vähän koodaustaitoja. <0/> lisätietoa varten." @@ -1885,15 +1934,19 @@ msgstr "Syötteet ovat käyttäjien rakentamia mukautettuja algoritmeja, jotka v msgid "Feeds can be topical as well!" msgstr "Syötteet voivat olla myös aihepiirikohtaisia!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Tiedoston sisältö" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Suodata syötteistä" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "Viimeistely" @@ -1911,7 +1964,7 @@ msgstr "Etsi viestejä ja käyttäjiä Blueskysta" #~ msgid "Finding similar accounts..." #~ msgstr "Etsitään samankaltaisia käyttäjätilejä" -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "Hienosäädä näkemääsi sisältöä Seuratut-syötteessäsi." @@ -1919,11 +1972,11 @@ msgstr "Hienosäädä näkemääsi sisältöä Seuratut-syötteessäsi." msgid "Fine-tune the discussion threads." msgstr "Hienosäädä keskusteluketjuja." -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "Kuntoilu" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "Joustava" @@ -1985,7 +2038,7 @@ msgstr "Seuraajina {0}" msgid "Followed users" msgstr "Seuratut käyttäjät" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "Vain seuratut käyttäjät" @@ -2003,7 +2056,9 @@ msgstr "Seuraajat" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "Seurataan" @@ -2018,7 +2073,7 @@ msgstr "Seuratut -syötteen asetukset" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "Seuratut -syötteen asetukset" @@ -2031,11 +2086,11 @@ msgstr "Seuraa sinua" msgid "Follows You" msgstr "Seuraa sinua" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "Ruoka" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Turvallisuussyistä meidän on lähetettävä vahvistuskoodi sähköpostiosoitteeseesi." @@ -2048,15 +2103,15 @@ msgstr "Turvallisuussyistä et näe tätä uudelleen. Jos unohdat tämän salasa msgid "Forgot Password" msgstr "Unohtunut salasana" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "Unohtuiko salasana?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "Unohditko?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "Julkaisee usein ei-toivottua sisältöä" @@ -2073,12 +2128,16 @@ msgstr "Lähde: <0/>" msgid "Gallery" msgstr "Galleria" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Aloita tästä" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "Ilmeisiä lain tai käyttöehtojen rikkomuksia" @@ -2087,9 +2146,9 @@ msgstr "Ilmeisiä lain tai käyttöehtojen rikkomuksia" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "Palaa takaisin" @@ -2097,12 +2156,13 @@ msgstr "Palaa takaisin" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "Palaa takaisin" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2128,11 +2188,11 @@ msgstr "Palaa alkuun" msgid "Go to next" msgstr "Siirry seuraavaan" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2140,7 +2200,7 @@ msgstr "" msgid "Graphic Media" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Käyttäjätunnus" @@ -2148,7 +2208,7 @@ msgstr "Käyttäjätunnus" msgid "Haptics" msgstr "Haptiikka" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "Häirintä, trollaus tai suvaitsemattomuus" @@ -2156,7 +2216,7 @@ msgstr "Häirintä, trollaus tai suvaitsemattomuus" msgid "Hashtag" msgstr "Aihetunniste" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "Aihetunniste #{tag}" @@ -2165,10 +2225,14 @@ msgid "Having trouble?" msgstr "Ongelmia?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "Ohje" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "Tässä on joitakin tilejä seurattavaksi" @@ -2221,23 +2285,23 @@ msgstr "Piilota tämä viesti?" msgid "Hide user list" msgstr "Piilota käyttäjäluettelo" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm, jokin ongelma ilmeni ottaessa yhteyttä syötteen palvelimeen. Ilmoita asiasta syötteen omistajalle." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, syötteen palvelin vaikuttaa olevan väärin konfiguroitu. Ilmoita asiasta syötteen omistajalle." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, syötteen palvelin vaikuttaa olevan poissa käytöstä. Ilmoita asiasta syötteen omistajalle." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, syötteen palvelin antoi virheellisen vastauksen. Ilmoita asiasta syötteen omistajalle." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, meillä on vaikeuksia löytää tätä syötettä. Se saattaa olla poistettu." @@ -2250,21 +2314,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "Hmm, emme pystyneet avaamaan kyseistä moderaatiopalvelua." #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "Koti" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Hostingyritys" @@ -2272,25 +2336,29 @@ msgstr "Hostingyritys" msgid "How should we open this link?" msgstr "Kuinka haluat avata tämän linkin?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "Minulla on koodi" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "Minulla on vahvistuskoodi" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "Minulla on oma verkkotunnus" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Jos ALT-teksti on pitkä, vaihtaa ALT-tekstin laajennetun tilan" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "Jos mitään ei ole valittu, sopii kaikenikäisille." @@ -2298,7 +2366,7 @@ msgstr "Jos mitään ei ole valittu, sopii kaikenikäisille." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Jos et ole vielä täysi-ikäinen, huoltajasi tai laillisen edustajasi on luettava nämä ehdot puolestasi." -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "Jos poistat tämän listan, et voi palauttaa sitä." @@ -2310,7 +2378,7 @@ msgstr "Jos poistat tämän julkaisun, et voi palauttaa sitä." msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Jos haluat vaihtaa salasanasi, lähetämme sinulle koodin varmistaaksemme, että tämä on käyttäjätilisi." -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "Laiton ja kiireellinen" @@ -2322,7 +2390,7 @@ msgstr "Kuva" msgid "Image alt text" msgstr "Kuvan ALT-teksti" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "Henkilöllisyyden tai yhteyksien vääristely tai vääriä väitteitä niistä" @@ -2330,7 +2398,7 @@ msgstr "Henkilöllisyyden tai yhteyksien vääristely tai vääriä väitteitä msgid "Input code sent to your email for password reset" msgstr "Syötä sähköpostiisi lähetetty koodi salasanan nollaamista varten" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "Syötä vahvistuskoodi käyttäjätilin poistoa varten" @@ -2342,27 +2410,27 @@ msgstr "Syötä nimi sovellussalasanaa varten" msgid "Input new password" msgstr "Syötä uusi salasana" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "Syötä salasana käyttäjätilin poistoa varten" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "Syötä sinulle sähköpostitse lähetetty koodi" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "Syötä salasana, joka liittyy kohteeseen {identifier}" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Syötä käyttäjätunnus tai sähköpostiosoite, jonka käytit rekisteröityessäsi" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "Syötä salasanasi" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "Syötä haluamasi palveluntarjoaja" @@ -2370,8 +2438,8 @@ msgstr "Syötä haluamasi palveluntarjoaja" msgid "Input your user handle" msgstr "Syötä käyttäjätunnuksesi" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Virheellinen kaksivaiheisen tunnistautumisen vahvistuskoodi." @@ -2379,7 +2447,7 @@ msgstr "Virheellinen kaksivaiheisen tunnistautumisen vahvistuskoodi." msgid "Invalid or unsupported post record" msgstr "Virheellinen tai ei tuettu tietue" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "Virheellinen käyttäjätunnus tai salasana" @@ -2391,7 +2459,7 @@ msgstr "Kutsu ystävä" msgid "Invite code" msgstr "Kutsukoodi" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Kutsukoodia ei hyväksytty. Tarkista, että syötit sen oikein ja yritä uudelleen." @@ -2411,7 +2479,7 @@ msgstr "Se näyttää viestejä seuraamiltasi ihmisiltä reaaliajassa." msgid "Jobs" msgstr "Työpaikat" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "Journalismi" @@ -2439,11 +2507,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "" @@ -2491,13 +2559,13 @@ msgstr "Lue lisää siitä, mikä on julkista Blueskyssa." msgid "Learn more." msgstr "Lue lisää." -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2522,7 +2590,7 @@ msgstr "Legacy tietovarasto tyhjennetty, sinun on käynnistettävä sovellus uud msgid "Let's get your password reset!" msgstr "Aloitetaan salasanasi nollaus!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "Aloitetaan!" @@ -2535,7 +2603,7 @@ msgstr "Vaalea" #~ msgstr "Tykkää" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Tykkää tästä syötteestä" @@ -2589,19 +2657,19 @@ msgstr "Lista" msgid "List Avatar" msgstr "Listan kuvake" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "Lista estetty" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "Listan on luonut {0}" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "Lista poistettu" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "Lista hiljennetty" @@ -2609,20 +2677,20 @@ msgstr "Lista hiljennetty" msgid "List Name" msgstr "Listan nimi" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "Listaa estosta poistetut" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "Listaa hiljennyksestä poistetut" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "Listat" @@ -2631,9 +2699,9 @@ msgid "Load new notifications" msgstr "Lataa uusia ilmoituksia" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "Lataa uusia viestejä" @@ -2660,7 +2728,7 @@ msgstr "Näkyvyys kirjautumattomana" msgid "Login to account that is not listed" msgstr "Kirjaudu tiliin, joka ei ole luettelossa" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "Pidä alaspainettuna avataksesi tunnistevalikon tunnisteelle #{tag}" @@ -2668,6 +2736,18 @@ msgstr "Pidä alaspainettuna avataksesi tunnistevalikon tunnisteelle #{tag}" msgid "Looks like XXXXX-XXXXX" msgstr "Näkyy muodossa XXXXX-XXXXX" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "Varmista, että olet menossa oikeaan paikkaan!" @@ -2676,6 +2756,11 @@ msgstr "Varmista, että olet menossa oikeaan paikkaan!" msgid "Manage your muted words and tags" msgstr "Hallinnoi hiljennettyjä sanoja ja aihetunnisteita" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2694,30 +2779,35 @@ msgstr "Mainitut käyttäjät" msgid "Menu" msgstr "Valikko" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Viesti palvelimelta: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -2725,7 +2815,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "Harhaanjohtava käyttäjätili" @@ -2744,13 +2834,13 @@ msgstr "Moderaation yksityiskohdat" msgid "Moderation list by {0}" msgstr "Moderointilista käyttäjältä {0}" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "Moderointilista käyttäjältä <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "Sinun moderointilistasi" @@ -2792,11 +2882,11 @@ msgstr "Ylläpitäjä on asettanut yleisen varoituksen sisällölle." msgid "More" msgstr "Lisää" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Lisää syötteitä" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "Lisää asetuksia" @@ -2817,7 +2907,7 @@ msgstr "Hiljennä {truncatedTag}" msgid "Mute Account" msgstr "Hiljennä käyttäjä" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "Hiljennä käyttäjät" @@ -2833,16 +2923,16 @@ msgstr "Hiljennä vain aihetunnisteissa" msgid "Mute in text & tags" msgstr "Hiljennä tekstissä ja aihetunnisteissa" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "Hiljennä lista" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "Hiljennä nämä käyttäjät?" @@ -2889,7 +2979,7 @@ msgstr "Hiljentäjä: \"{0}\"" msgid "Muted words & tags" msgstr "Hiljennetyt sanat ja aihetunnisteet" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Hiljennys on yksityinen. Hiljennetyt käyttäjät voivat edelleen vuorovaikuttaa kanssasi, mutta et näe heidän viestejään tai saa ilmoituksia heiltä." @@ -2898,11 +2988,11 @@ msgstr "Hiljennys on yksityinen. Hiljennetyt käyttäjät voivat edelleen vuorov msgid "My Birthday" msgstr "Syntymäpäiväni" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "Omat syötteet" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "Profiilini" @@ -2923,27 +3013,27 @@ msgstr "Nimi" msgid "Name is required" msgstr "Nimi vaaditaan" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "Nimi tai kuvaus rikkoo yhteisön sääntöjä" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "Luonto" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Siirtyy seuraavalle näytölle" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "Siirtyy profiiliisi" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "Tarvitseeko ilmoittaa tekijänoikeusrikkomuksesta?" @@ -2952,11 +3042,11 @@ msgstr "Tarvitseeko ilmoittaa tekijänoikeusrikkomuksesta?" #~ msgid "Never lose access to your followers and data." #~ msgstr "Älä koskaan menetä pääsyä seuraajiisi ja tietoihisi." -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "Älä koskaan menetä pääsyä seuraajiisi tai tietoihisi." -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "" @@ -2970,8 +3060,8 @@ msgid "New" msgstr "Uusi" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -2987,22 +3077,22 @@ msgstr "Uusi salasana" msgid "New Password" msgstr "Uusi salasana" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "Uusi viesti" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "Uusi viesti" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "Uusi viesti" @@ -3015,14 +3105,14 @@ msgstr "Uusi käyttäjälista" msgid "Newest replies first" msgstr "Uusimmat vastaukset ensin" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "Uutiset" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3040,21 +3130,21 @@ msgstr "Seuraava" msgid "Next image" msgstr "Seuraava kuva" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "Ei" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "Ei kuvausta" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "" @@ -3070,8 +3160,8 @@ msgstr "Et enää seuraa käyttäjää {0}" msgid "No longer than 253 characters" msgstr "Ei pidempi kuin 253 merkkiä." -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3088,7 +3178,7 @@ msgstr "Ei tuloksia" msgid "No results found" msgstr "Tuloksia ei löydetty" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "Ei tuloksia haulle \"{query}\"" @@ -3133,8 +3223,8 @@ msgstr "Ei-seksuaalinen alastomuus" msgid "Not Found" msgstr "Ei löytynyt" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "Ei juuri nyt" @@ -3151,22 +3241,22 @@ msgstr "Huomio: Bluesky on avoin ja julkinen verkosto. Tämä asetus rajoittaa v #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "Ilmoitukset" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Alastomuus" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "" @@ -3183,7 +3273,7 @@ msgstr "Pois" msgid "Oh no!" msgstr "Voi ei!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "Voi ei! Jokin meni pieleen." @@ -3208,6 +3298,10 @@ msgstr "Käyttöönoton nollaus" msgid "One or more images is missing alt text." msgstr "Yksi tai useampi kuva on ilman vaihtoehtoista Alt-tekstiä." +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "Vain {0} voi vastata." @@ -3226,16 +3320,20 @@ msgstr "Hups, nyt meni jotain väärin!" msgid "Oops!" msgstr "Hups!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "Avaa" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "Avaa emoji-valitsin" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "Avaa syötteen asetusvalikko" @@ -3338,7 +3436,7 @@ msgstr "" msgid "Opens modal for email verification" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "Avaa asetukset oman verkkotunnuksen käyttöönottoon" @@ -3346,12 +3444,12 @@ msgstr "Avaa asetukset oman verkkotunnuksen käyttöönottoon" msgid "Opens moderation settings" msgstr "Avaa moderointiasetukset" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "Avaa salasanan palautuslomakkeen" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "Avaa näkymän tallennettujen syötteiden muokkaamiseen" @@ -3371,7 +3469,7 @@ msgstr "Avaa Seuratut-syötteen asetukset" msgid "Opens the linked website" msgstr "Avaa linkitetyn verkkosivun" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3392,6 +3490,7 @@ msgstr "Avaa keskusteluasetukset" msgid "Option {0} of {numItems}" msgstr "Asetus {0}/{numItems}" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "Voit tarvittaessa antaa lisätietoja alla:" @@ -3400,7 +3499,7 @@ msgstr "Voit tarvittaessa antaa lisätietoja alla:" msgid "Or combine these options:" msgstr "Tai yhdistä nämä asetukset:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "Joku toinen" @@ -3421,10 +3520,10 @@ msgstr "Sivua ei löytynyt" msgid "Page Not Found" msgstr "Sivua ei löytynyt" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "Salasana" @@ -3456,32 +3555,32 @@ msgstr "Henkilöt, joita @{0} seuraa" msgid "People following @{0}" msgstr "Henkilöt, jotka seuraavat käyttäjää @{0}" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "Käyttöoikeus valokuviin tarvitaan." -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Lupa valokuviin evättiin. Anna lupa järjestelmäasetuksissa." -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "Lemmikit" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Aikuisille tarkoitetut kuvat." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "Kiinnitä etusivulle" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "Kiinnitä etusivulle" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "Kiinnitetyt syötteet" @@ -3506,19 +3605,19 @@ msgstr "Toista video" msgid "Plays the GIF" msgstr "Toistaa GIFin" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "Valitse käyttäjätunnuksesi." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "Valitse salasanasi." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "Täydennä varmennus-captcha, ole hyvä." -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Vahvista sähköpostiosoitteesi ennen sen vaihtamista. Tämä on väliaikainen vaatimus, kunnes sähköpostin muokkaamisen liittyvät asetukset ovat lisätty ja se poistetaan piakkoin." @@ -3534,15 +3633,15 @@ msgstr "Anna uniikki nimi tälle sovellussalasanalle tai käytä satunnaisesti l msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Ole hyvä ja syötä oikea sana, aihetunniste tai lause hiljennettäväksi." -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "Anna sähköpostiosoitteesi." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "Anna myös salasanasi:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -3550,7 +3649,7 @@ msgstr "" msgid "Please sign in as @{0}" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Vahvista sähköpostiosoitteesi" @@ -3558,11 +3657,11 @@ msgstr "Vahvista sähköpostiosoitteesi" msgid "Please wait for your link card to finish loading" msgstr "Odota, että linkkikortti latautuu kokonaan" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "Politiikka" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "Porno" @@ -3630,7 +3729,7 @@ msgstr "Viestit" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Viestejä voidaan hiljentää sanojen, aihetunnisteiden tai molempien perusteella." -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "Piilotetut viestit" @@ -3644,15 +3743,15 @@ msgstr "Klikkaa vaihtaaksesi palveluntarjoajaa" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "Paina uudelleen jatkaaksesi" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3675,7 +3774,7 @@ msgstr "Yksityisyys" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Yksityisyydensuojakäytäntö" @@ -3688,11 +3787,11 @@ msgstr "Käsitellään..." msgid "profile" msgstr "profiili" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "Profiili" @@ -3704,7 +3803,7 @@ msgstr "Profiili päivitetty" msgid "Protect your account by verifying your email." msgstr "Suojaa käyttäjätilisi vahvistamalla sähköpostiosoitteesi." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "Julkinen" @@ -3746,6 +3845,10 @@ msgstr "Satunnainen (tunnetaan myös nimellä \"Lähettäjän ruletti\")" msgid "Ratios" msgstr "Suhdeluvut" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "Viimeaikaiset haut" @@ -3759,11 +3862,11 @@ msgstr "Viimeaikaiset haut" #~ msgstr "Suositellut käyttäjät" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Poista" @@ -3779,22 +3882,25 @@ msgstr "Poista avatar" msgid "Remove Banner" msgstr "Poista banneri" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "Poista syöte" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "Poista syöte?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "Poista syötteistäni" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "Poista syötteistäni?" @@ -3818,7 +3924,7 @@ msgstr "" msgid "Remove repost" msgstr "Poista uudelleenjulkaisu" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "Poista tämä syöte seurannasta" @@ -3827,11 +3933,13 @@ msgstr "Poista tämä syöte seurannasta" msgid "Removed from list" msgstr "Poistettu listalta" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "Poistettu syötteistäni" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "Poistettu syötteistäsi" @@ -3843,6 +3951,11 @@ msgstr "Poistaa {0} oletuskuvakkeen" msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "Vastaukset" @@ -3856,7 +3969,7 @@ msgctxt "action" msgid "Reply" msgstr "Vastaa" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "Vastaussuodattimet" @@ -3872,24 +3985,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Ilmianna käyttäjätili" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "Ilmianna syöte" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "Ilmianna luettelo" @@ -3902,30 +4021,36 @@ msgstr "" msgid "Report post" msgstr "Ilmianna viesti" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "Ilmianna tämä sisältö" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "Ilmianna tämä syöte" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "Ilmianna tämä lista" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "Ilmianna tämä viesti" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "Ilmianna tämä käyttäjä" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "Uudelleenjulkaise" @@ -3959,8 +4084,8 @@ msgstr "uudelleenjulkaisi viestisi" msgid "Reposts of this post" msgstr "Tämän viestin uudelleenjulkaisut" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "Pyydä muutosta" @@ -3973,7 +4098,7 @@ msgstr "Pyydä koodia" msgid "Require alt text before posting" msgstr "Edellytä ALT-tekstiä ennen viestin julkaisua" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "Edellytä sähköpostikoodia kirjautumisessa" @@ -3981,8 +4106,8 @@ msgstr "Edellytä sähköpostikoodia kirjautumisessa" msgid "Required for this provider" msgstr "Vaaditaan tälle instanssille" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "Lähetä sähköposti uudelleen" @@ -4016,7 +4141,7 @@ msgstr "Nollaa käyttöönoton tilan" msgid "Resets the preferences state" msgstr "Nollaa asetusten tilan" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "Yrittää uudelleen kirjautumista" @@ -4025,13 +4150,14 @@ msgstr "Yrittää uudelleen kirjautumista" msgid "Retries the last action, which errored out" msgstr "Yrittää uudelleen viimeisintä toimintoa, joka epäonnistui" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4039,11 +4165,11 @@ msgid "Retry" msgstr "Yritä uudelleen" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "Palaa edelliselle sivulle" @@ -4052,20 +4178,20 @@ msgid "Returns to home page" msgstr "Palaa etusivulle" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "Palaa edelliselle sivulle" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Tallenna" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4083,7 +4209,7 @@ msgstr "Tallenna syntymäpäivä" msgid "Save Changes" msgstr "Tallenna muutokset" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "Tallenna käyttäjätunnuksen muutos" @@ -4091,16 +4217,16 @@ msgstr "Tallenna käyttäjätunnuksen muutos" msgid "Save image crop" msgstr "Tallenna kuvan rajaus" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "Tallenna syötteisiini" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "Tallennetut syötteet" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4108,7 +4234,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "Tallennettu kuvagalleriaasi." -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "Tallennettu syötteisiisi" @@ -4116,7 +4243,7 @@ msgstr "Tallennettu syötteisiisi" msgid "Saves any changes to your profile" msgstr "Tallentaa kaikki muutokset profiiliisi" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "Tallentaa käyttäjätunnuksen muutoksen muotoon {handle}" @@ -4124,11 +4251,11 @@ msgstr "Tallentaa käyttäjätunnuksen muutoksen muotoon {handle}" msgid "Saves image crop settings" msgstr "Tallentaa kuvan rajausasetukset" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "Tiede" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "Vieritä alkuun" @@ -4141,12 +4268,12 @@ msgstr "Vieritä alkuun" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "Haku" @@ -4188,7 +4315,7 @@ msgstr "" msgid "Search Tenor" msgstr "Hae Tenorista" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "Turvatarkistus vaaditaan" @@ -4213,7 +4340,7 @@ msgstr "Näytä tämän käyttäjän <0>{displayTag} viestit" msgid "See profile" msgstr "Katso profiilia" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "Katso tämä opas" @@ -4221,10 +4348,22 @@ msgstr "Katso tämä opas" msgid "Select {item}" msgstr "Valitse {item}" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "Valitse käyttäjätili" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Valitse olemassa olevalta tililtä" @@ -4253,6 +4392,10 @@ msgstr "Valitse vaihtoehto {i} / {numItems}" msgid "Select some accounts below to follow" msgstr "Valitse alla olevista tileistä jotain seurattavaksi" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4281,7 +4424,7 @@ msgstr "Valitse sovelluksen käyttöliittymän kieli." msgid "Select your date of birth" msgstr "Aseta syntymäaikasi" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "Valitse kiinnostuksen kohteesi alla olevista vaihtoehdoista" @@ -4297,30 +4440,32 @@ msgstr "Valitse ensisijaiset algoritmisyötteet" msgid "Select your secondary algorithmic feeds" msgstr "Valitse toissijaiset algoritmisyötteet" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Lähetä vahvistussähköposti" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "Lähetä sähköposti" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "Lähetä sähköposti" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "Lähetä palautetta" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4330,12 +4475,12 @@ msgstr "Lähetä raportti" msgid "Send report to {0}" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "Lähetä vahvistussähköposti" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "Lähettää sähköpostin tilin poistamiseen tarvittavan vahvistuskoodin" @@ -4351,15 +4496,15 @@ msgstr "Aseta syntymäaika" msgid "Set new password" msgstr "Aseta uusi salasana" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Aseta tämä asetus \"Ei\"-tilaan piilottaaksesi kaikki lainaukset syötteestäsi. Uudelleenjulkaisut näkyvät silti." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Aseta tämä asetus \"Ei\"-tilaan piilottaaksesi kaikki vastaukset syötteestäsi." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Aseta tämä asetus \"Ei\"-tilaan piilottaaksesi kaikki uudelleenjulkaisut syötteestäsi." @@ -4367,7 +4512,7 @@ msgstr "Aseta tämä asetus \"Ei\"-tilaan piilottaaksesi kaikki uudelleenjulkais msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Aseta tämä asetus \"Kyllä\" tilaan näyttääksesi vastaukset ketjumaisessa näkymässä. Tämä on kokeellinen ominaisuus." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Aseta tämä asetus \"Kyllä\"-tilaan nähdäksesi esimerkkejä tallennetuista syötteistäsi seuraamissasi syötteessäsi. Tämä on kokeellinen ominaisuus." @@ -4375,7 +4520,7 @@ msgstr "Aseta tämä asetus \"Kyllä\"-tilaan nähdäksesi esimerkkejä tallenne msgid "Set up your account" msgstr "Luo käyttäjätili" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Asettaa Bluesky-käyttäjätunnuksen" @@ -4418,13 +4563,13 @@ msgstr "Asettaa kuvan kuvasuhteen leveäksi" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "Asetukset" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "Erotiikka tai muu aikuisviihde." @@ -4432,7 +4577,7 @@ msgstr "Erotiikka tai muu aikuisviihde." msgid "Sexually Suggestive" msgstr "Seksuaalisesti vihjaileva" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "Jaa" @@ -4442,7 +4587,7 @@ msgstr "Jaa" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "Jaa" @@ -4452,8 +4597,8 @@ msgstr "Jaa" msgid "Share anyway" msgstr "Jaa kuitenkin" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "Jaa syöte" @@ -4516,11 +4661,11 @@ msgstr "Näytä lisää" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Näytä viestit omista syötteistäni" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "Näytä lainatut viestit" @@ -4536,7 +4681,7 @@ msgstr "Näytä lainaukset seurattavissa" msgid "Show re-posts in Following feed" msgstr "Näytä uudelleenjulkaistut viestit seurattavissa" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "Näytä vastaukset" @@ -4556,7 +4701,7 @@ msgstr "Näytä vastaukset seurattavissa" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Näytä vastaukset, joissa on vähintään {value} {0}" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "Näytä uudelleenjulkaisut" @@ -4589,17 +4734,17 @@ msgstr "Näyttää viestit käyttäjältä {0} syötteessäsi" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4627,12 +4772,12 @@ msgstr "Kirjaudu Blueskyhin tai luo uusi käyttäjätili" msgid "Sign out" msgstr "Kirjaudu ulos" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4657,27 +4802,31 @@ msgstr "Kirjautunut sisään nimellä" msgid "Signed in as @{0}" msgstr "Kirjautunut sisään käyttäjätunnuksella @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "Ohita" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "Ohita tämä vaihe" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "Ohjelmistokehitys" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Jotain meni pieleen, yritä uudelleen" -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "Pahoittelut! Istuntosi on vanhentunut. Kirjaudu sisään uudelleen." @@ -4689,19 +4838,20 @@ msgstr "Lajittele vastaukset" msgid "Sort replies to the same post by:" msgstr "Lajittele saman viestin vastaukset seuraavasti:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "Lähde:" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "Roskapostia" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "Urheilu" @@ -4738,12 +4888,12 @@ msgstr "Tallennustila tyhjennetty, sinun on käynnistettävä sovellus uudelleen msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Lähetä" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "Tilaa" @@ -4764,7 +4914,7 @@ msgstr "Tilaa {0}-syöte" msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "Tilaa tämä lista" @@ -4776,7 +4926,7 @@ msgstr "Mahdollisia seurattavia" msgid "Suggested for you" msgstr "Suositeltua sinulle" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "Viittaava" @@ -4823,7 +4973,7 @@ msgstr "Pitkä" msgid "Tap to view fully" msgstr "Napauta nähdäksesi kokonaan" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "Teknologia" @@ -4835,13 +4985,13 @@ msgstr "Ehdot" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Käyttöehdot" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "" @@ -4849,15 +4999,16 @@ msgstr "" msgid "text" msgstr "teksti" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "Tekstikenttä" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "Kiitos. Raporttisi on lähetetty." -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "Se sisältää seuraavaa:" @@ -4882,11 +5033,15 @@ msgstr "Yhteisöohjeet on siirretty kohtaan <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Tekijänoikeuskäytäntö on siirretty kohtaan <0/>" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "" @@ -4916,15 +5071,17 @@ msgid "There are many feeds to try:" msgstr "On monia syötteitä kokeiltavaksi:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Emme saaneet yhteyttä palvelimeen, tarkista internetyhteytesi ja yritä uudelleen." -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Syötteen poistossa on ongelmia. Tarkista internetyhteytesi ja yritä uudelleen." -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Syötteiden päivittämisessä on ongelmia, tarkista internetyhteytesi ja yritä uudelleen." @@ -4936,16 +5093,17 @@ msgstr "Yhteyden muodostamisessa Tenoriin ilmeni ongelma." msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "Yhteydenotto palvelimeen epäonnistui" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "Yhteydenotto palvelimeen epäonnistui" @@ -4953,7 +5111,7 @@ msgstr "Yhteydenotto palvelimeen epäonnistui" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Ongelma ilmoitusten hakemisessa. Napauta tästä yrittääksesi uudelleen." -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Ongelma viestien hakemisessa. Napauta tästä yrittääksesi uudelleen." @@ -4966,6 +5124,7 @@ msgstr "Ongelma listan hakemisessa. Napauta tästä yrittääksesi uudelleen." msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Ongelma listojesi hakemisessa. Napauta tästä yrittääksesi uudelleen." +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Raportin lähettämisessä ilmeni ongelma. Tarkista internet-yhteytesi." @@ -4992,10 +5151,10 @@ msgstr "Sovellussalasanojen hakemisessa tapahtui virhe" msgid "There was an issue! {0}" msgstr "Ilmeni ongelma! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "Ilmeni joku ongelma. Tarkista internet-yhteys ja yritä uudelleen." @@ -5020,7 +5179,7 @@ msgstr "Tämä {screenDescription} on liputettu:" msgid "This account has requested that users sign in to view their profile." msgstr "Tämä käyttäjätili on pyytänyt, että käyttät kirjautuvat sisään nähdäkseen profiilinsa." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -5045,21 +5204,21 @@ msgstr "Tämä sisältö on hostattu palvelussa {0}. Haluatko sallia ulkoisen me msgid "This content is not available because one of the users involved has blocked the other." msgstr "Tämä sisältö ei ole saatavilla, koska toinen käyttäjistä on estänyt toisen." -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "Tätä sisältöä ei voi katsoa ilman Bluesky-tiliä." -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Tämä syöte saa tällä hetkellä paljon liikennettä ja on tilapäisesti pois käytöstä. Yritä uudelleen myöhemmin." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "Tämä syöte on tyhjä!" @@ -5067,11 +5226,15 @@ msgstr "Tämä syöte on tyhjä!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Tämä syöte on tyhjä! Sinun on ehkä seurattava useampia käyttäjiä tai säädettävä kieliasetuksiasi." +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Tätä tietoa ei jaeta muiden käyttäjien kanssa." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "Tämä on tärkeää, jos sinun tarvitsee vaihtaa sähköpostiosoitteesi tai palauttaa salasanasi." @@ -5087,6 +5250,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5095,7 +5262,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "Tämä linkki vie sinut tälle verkkosivustolle:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "Tämä lista on tyhjä!" @@ -5128,7 +5295,7 @@ msgstr "Tämä profiili on näkyvissä vain kirjautuneille käyttäjille. Sitä msgid "This service has not provided terms of service or a privacy policy." msgstr "Tämä palvelu ei ole toimittanut käyttöehtoja tai tietosuojakäytäntöä." -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "" @@ -5182,10 +5349,14 @@ msgstr "Ketjumainen näkymä" msgid "Threads Preferences" msgstr "Keskusteluketjujen asetukset" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "Jos haluat poistaa sähköpostiin perustuvan kaksivaiheisen tunnistautumisen käytöstä, vahvista pääsysi sähköpostiosoitteeseen." +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "Kenelle haluaisit lähettää tämän raportin?" @@ -5227,25 +5398,25 @@ msgstr "Yritä uudelleen" msgid "Two-factor authentication" msgstr "Kaksivaiheinen tunnistautuminen" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Tyyppi:" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "Poista listan esto" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "Poista listan hiljennys" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5255,7 +5426,7 @@ msgstr "Yhteys palveluusi ei onnistu. Tarkista internet-yhteytesi." #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "Poista esto" @@ -5276,7 +5447,7 @@ msgstr "Poista esto?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Kumoa uudelleenjulkaisu" @@ -5303,12 +5474,12 @@ msgstr "Lopeta käyttäjätilin seuraaminen" #~ msgid "Unlike" #~ msgstr "En tykkää" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "Poista tykkäys tästä syötteestä" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "Poista hiljennys" @@ -5325,7 +5496,7 @@ msgstr "Poista käyttäjätilin hiljennys" msgid "Unmute all {displayTag} posts" msgstr "Poista hiljennys kaikista {displayTag}-julkaisuista" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5334,16 +5505,16 @@ msgstr "" msgid "Unmute thread" msgstr "Poista keskusteluketjun hiljennys" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "Poista kiinnitys" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "Poista kiinnitys etusivulta" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "Poista moderointilistan kiinnitys" @@ -5355,7 +5526,12 @@ msgstr "Peruuta tilaus" msgid "Unsubscribe from this labeler" msgstr "" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "Ei-toivottu seksuaalinen sisältö" @@ -5363,7 +5539,7 @@ msgstr "Ei-toivottu seksuaalinen sisältö" msgid "Update {displayName} in Lists" msgstr "Päivitä {displayName} listoissa" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "Päivitä {handle}\"" @@ -5371,7 +5547,11 @@ msgstr "Päivitä {handle}\"" msgid "Updating..." msgstr "Päivitetään..." -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Lataa tekstitiedosto kohteeseen:" @@ -5394,7 +5574,7 @@ msgstr "Lataa tiedostoista" msgid "Upload from Library" msgstr "Lataa kirjastosta" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "Käytä palvelimellasi olevaa tiedostoa" @@ -5402,11 +5582,11 @@ msgstr "Käytä palvelimellasi olevaa tiedostoa" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Käytä sovellussalasanoja kirjautuaksesi muihin Bluesky-sovelluksiin antamatta niille täyttä hallintaa tilillesi tai salasanallesi." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "Käytä bsky.socialia palveluntarjoajana." -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "Käytä oletustoimittajaa" @@ -5420,7 +5600,11 @@ msgstr "Käytä sovelluksen sisäistä selainta" msgid "Use my default browser" msgstr "Käytä oletusselaintani" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "" @@ -5458,13 +5642,13 @@ msgstr "Käyttäjä on estänyt sinut" msgid "User list by {0}" msgstr "Käyttäjälistan on tehnyt {0}" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "Käyttäjälistan on tehnyt <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "Käyttäjälistasi" @@ -5480,11 +5664,11 @@ msgstr "Käyttäjälista päivitetty" msgid "User Lists" msgstr "Käyttäjälistat" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "Käyttäjätunnus tai sähköpostiosoite" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "Käyttäjät" @@ -5500,7 +5684,7 @@ msgstr "Käyttäjät listassa \"{0}\"" msgid "Users that have liked this content or profile" msgstr "Käyttäjät, jotka ovat pitäneet tästä sisällöstä tai profiilista" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "Arvo:" @@ -5508,7 +5692,7 @@ msgstr "Arvo:" #~ msgid "Verify {0}" #~ msgstr "Vahvista {0}" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -5524,16 +5708,16 @@ msgstr "Vahvista sähköpostini" msgid "Verify My Email" msgstr "Vahvista sähköpostini" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "Vahvista uusi sähköposti" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "Vahvista sähköpostisi" @@ -5545,7 +5729,7 @@ msgstr "Vahvista sähköpostisi" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "Videopelit" @@ -5557,11 +5741,11 @@ msgstr "Katso {0}:n avatar" msgid "View debug entry" msgstr "Katso vianmääritystietue" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "Näytä tiedot" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "Näytä tiedot tekijänoikeusrikkomuksen ilmoittamisesta" @@ -5569,13 +5753,13 @@ msgstr "Näytä tiedot tekijänoikeusrikkomuksen ilmoittamisesta" msgid "View full thread" msgstr "Katso koko keskusteluketju" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Katso profiilia" @@ -5587,7 +5771,7 @@ msgstr "Katso avatar" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "Katso, kuka tykkää tästä syötteestä" @@ -5615,11 +5799,15 @@ msgstr "" msgid "We couldn't find any results for that hashtag." msgstr "Emme löytäneet tuloksia tuolla aihetunnisteella." +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Arvioimme, että tilisi valmistumiseen on {estimatedTime} aikaa." -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Toivomme sinulle ihania hetkiä. Muista, että Bluesky on:" @@ -5643,7 +5831,7 @@ msgstr "" msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Yhteyden muodostaminen ei onnistunut. Yritä uudelleen jatkaaksesi tilisi määritystä. Jos ongelma jatkuu, voit ohittaa tämän vaiheen." @@ -5651,7 +5839,7 @@ msgstr "Yhteyden muodostaminen ei onnistunut. Yritä uudelleen jatkaaksesi tilis msgid "We will let you know when your account is ready." msgstr "Ilmoitamme sinulle, kun käyttäjätilisi on valmis." -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "Käytämme tätä mukauttaaksemme kokemustasi." @@ -5684,7 +5872,7 @@ msgstr "" #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Tervetuloa <0>Bluesky:iin" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "Mitkä ovat kiinnostuksenkohteesi?" @@ -5707,23 +5895,31 @@ msgstr "Mitä kieliä haluaisit nähdä algoritmisissä syötteissä?" msgid "Who can reply" msgstr "Kuka voi vastata" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "Miksi tämä sisältö tulisi arvioida?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "Miksi tämä syöte tulisi arvioida?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "Miksi tämä lista tulisi arvioida?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "Miksi tämä viesti tulisi arvioida?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "Miksi tämä käyttäjä tulisi arvioida?" @@ -5731,8 +5927,8 @@ msgstr "Miksi tämä käyttäjä tulisi arvioida?" msgid "Wide" msgstr "Leveä" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -5745,21 +5941,21 @@ msgstr "Kirjoita viesti" msgid "Write your reply" msgstr "Kirjoita vastauksesi" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "Kirjoittajat" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Kyllä" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -5793,15 +5989,15 @@ msgstr "Sinulla ei ole kyhtään seuraajaa." msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Sinulla ei ole vielä kutsukoodia! Lähetämme sinulle sellaisen, kun olet ollut Bluesky-palvelussa hieman pidempään." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "Sinulla ei ole kiinnitettyjä syötteitä." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "Sinulla ei ole tallennettuja syötteitä!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "Sinulla ei ole tallennettuja syötteitä!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "Sinulla ei ole tallennettuja syötteitä." @@ -5848,7 +6044,7 @@ msgstr "Sinulla ei ole syötteitä." msgid "You have no lists." msgstr "Sinulla ei ole listoja." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -5868,7 +6064,11 @@ msgstr "Et ole hiljentänyt vielä yhtään käyttäjää. Hiljentääksesi käy msgid "You haven't muted any words or tags yet" msgstr "Et ole vielä hiljentänyt yhtään sanaa tai aihetunnistetta" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Voit valittaa näistä merkinnöistä, jos ne ovat mielestäsi virheellisiä." @@ -5896,7 +6096,7 @@ msgstr "Saat nyt ilmoituksia tästä keskustelusta" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Saat sähköpostin \"nollauskoodin\". Syötä koodi tähän ja syötä sitten uusi salasanasi." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -5910,7 +6110,7 @@ msgstr "Sinulla on ohjat" msgid "You're in line" msgstr "Olet jonossa" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "Olet valmis aloittamaan!" @@ -5931,7 +6131,7 @@ msgstr "Käyttäjätilisi" msgid "Your account has been deleted" msgstr "Käyttäjätilisi on poistettu" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Käyttäjätilisi arkisto, joka sisältää kaikki julkiset tietueet, voidaan ladata \"CAR\"-tiedostona. Tämä tiedosto ei sisällä upotettuja mediaelementtejä, kuten kuvia, tai yksityisiä tietojasi, jotka on haettava erikseen." @@ -5948,16 +6148,16 @@ msgid "Your default feed is \"Following\"" msgstr "Oletussyötteesi on \"Following\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "Sähköpostiosoitteesi näyttää olevan virheellinen." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "Sähköpostiosoitteesi on päivitetty, mutta sitä ei ole vielä vahvistettu. Seuraavana vaiheena vahvista uusi sähköpostiosoitteesi." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Sähköpostiosoitettasi ei ole vielä vahvistettu. Tämä on tärkeä turvatoimi, jonka suosittelemme suorittamaan." @@ -5969,7 +6169,7 @@ msgstr "Seuraamiesi syöte on tyhjä! Seuraa lisää käyttäjiä nähdäksesi, msgid "Your full handle will be" msgstr "Käyttäjätunnuksesi tulee olemaan" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "Käyttäjätunnuksesi tulee olemaan <0>@{0}" @@ -5985,7 +6185,7 @@ msgstr "Salasanasi on vaihdettu onnistuneesti!" msgid "Your post has been published" msgstr "Viestisi on julkaistu" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Julkaisusi, tykkäyksesi ja estosi ovat julkisia. Hiljennykset ovat yksityisiä." @@ -5997,6 +6197,10 @@ msgstr "Profiilisi" msgid "Your reply has been published" msgstr "Vastauksesi on julkaistu" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Käyttäjätunnuksesi" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 8bbb80d8a3..777023e0f7 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: Stanislas Signoud (@signez.fr), surfdude29\n" "Plural-Forms: \n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(pas d’e-mail)" @@ -21,15 +21,15 @@ msgstr "(pas d’e-mail)" msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -51,7 +51,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -71,6 +71,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -90,15 +94,15 @@ msgstr "{following} abonnements" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} non lus" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -106,11 +110,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> membres" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -135,7 +139,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>Suivre certains<1>comptes<2>recommandés" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Pseudo invalide" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "" @@ -178,7 +182,7 @@ msgstr "" #~ msgid "account" #~ msgstr "compte" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -229,15 +233,15 @@ msgstr "Compte démasqué" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "Ajouter" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Ajouter un avertissement sur le contenu" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "Ajouter un compte à cette liste" @@ -249,6 +253,7 @@ msgstr "Ajouter un compte" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -256,8 +261,8 @@ msgid "Add alt text" msgstr "Ajouter un texte alt" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -281,7 +286,15 @@ msgstr "Ajouter un mot masqué pour les paramètres configurés" msgid "Add muted words and tags" msgstr "Ajouter des mots et des mots-clés masqués" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Ajoutez l’enregistrement DNS suivant à votre domaine :" @@ -290,7 +303,7 @@ msgstr "Ajoutez l’enregistrement DNS suivant à votre domaine :" msgid "Add to Lists" msgstr "Ajouter aux listes" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "Ajouter à mes fils d’actu" @@ -303,17 +316,17 @@ msgstr "Ajouter à mes fils d’actu" msgid "Added to list" msgstr "Ajouté à la liste" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "Ajouté à mes fils d’actu" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Définissez le nombre de likes qu’une réponse doit avoir pour être affichée dans votre fil d’actu." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Contenu pour adultes" @@ -326,7 +339,7 @@ msgstr "Le contenu pour adultes est désactivé." msgid "Advanced" msgstr "Avancé" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "Tous les fils d’actu que vous avez enregistrés, au même endroit." @@ -359,12 +372,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "Le texte Alt décrit les images pour les personnes aveugles et malvoyantes, et aide à donner un contexte à tout le monde." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "Un e-mail a été envoyé à {0}. Il comprend un code de confirmation que vous pouvez saisir ici." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Un e-mail a été envoyé à votre ancienne adresse, {0}. Il comprend un code de confirmation que vous pouvez saisir ici." @@ -372,11 +385,11 @@ msgstr "Un e-mail a été envoyé à votre ancienne adresse, {0}. Il comprend un msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "Un problème qui ne fait pas partie de ces options" @@ -389,7 +402,7 @@ msgstr "Un problème qui ne fait pas partie de ces options" msgid "An issue occurred, please try again." msgstr "Un problème est survenu, veuillez réessayer." -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -398,7 +411,7 @@ msgstr "" msgid "and" msgstr "et" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "Animaux" @@ -406,7 +419,7 @@ msgstr "Animaux" msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "Comportement antisocial" @@ -436,16 +449,16 @@ msgstr "Paramètres de mot de passe d’application" msgid "App Passwords" msgstr "Mots de passe d’application" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "Faire appel" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "Faire appel de l’étiquette « {0} »" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -457,19 +470,24 @@ msgstr "" msgid "Appearance" msgstr "Affichage" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Êtes-vous sûr de vouloir supprimer le mot de passe de l’application « {name} » ?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Êtes-vous sûr de vouloir supprimer {0} de vos fils d’actu ?" @@ -485,11 +503,11 @@ msgstr "Vous confirmez ?" msgid "Are you writing in <0>{0}?" msgstr "Écrivez-vous en <0>{0} ?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "Art" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Nudité artistique ou non érotique." @@ -497,17 +515,17 @@ msgstr "Nudité artistique ou non érotique." msgid "At least 3 characters" msgstr "Au moins 3 caractères" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -535,8 +553,8 @@ msgstr "Date de naissance :" msgid "Block" msgstr "Bloquer" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -549,15 +567,15 @@ msgstr "Bloquer ce compte" msgid "Block Account?" msgstr "Bloquer ce compte ?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "Bloquer ces comptes" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "Liste de blocage" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "Bloquer ces comptes ?" @@ -591,7 +609,7 @@ msgstr "Post bloqué." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Le blocage n’empêche pas cet étiqueteur de placer des étiquettes sur votre compte." -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Le blocage est public. Les comptes bloqués ne peuvent pas répondre à vos discussions, vous mentionner ou interagir avec vous." @@ -639,10 +657,15 @@ msgstr "Flouter les images" msgid "Blur images and filter from feeds" msgstr "Flouter les images et les filtrer des fils d’actu" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "Livres" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Affaires" @@ -689,9 +712,9 @@ msgstr "Ne peut contenir que des lettres, des chiffres, des espaces, des tirets #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -703,26 +726,26 @@ msgstr "Ne peut contenir que des lettres, des chiffres, des espaces, des tirets #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "Annuler" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "Annuler" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "Annuler la suppression de compte" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "Annuler le changement de pseudo" @@ -747,7 +770,7 @@ msgstr "Annuler la recherche" msgid "Cancels opening the linked website" msgstr "Annule l’ouverture du site web lié" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "Modifier" @@ -760,12 +783,12 @@ msgstr "Modifier" msgid "Change handle" msgstr "Modifier le pseudo" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "Modifier le pseudo" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Modifier mon e-mail" @@ -782,7 +805,7 @@ msgstr "Modifier le mot de passe" msgid "Change post language to {0}" msgstr "Modifier la langue de post en {0}" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "Modifier votre e-mail" @@ -790,11 +813,11 @@ msgstr "Modifier votre e-mail" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -820,11 +843,11 @@ msgstr "Vérifier mon statut" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Consultez quelques comptes recommandés. Suivez-les pour voir des personnes similaires." -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Consultez votre boîte de réception, vous avez du recevoir un e-mail contenant un code de confirmation à saisir ci-dessous :" @@ -836,7 +859,7 @@ msgstr "Choisir « Tout le monde » ou « Personne »" msgid "Choose Service" msgstr "Choisir un service" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "Choisissez les algorithmes qui alimentent vos fils d’actu personnalisés." @@ -845,6 +868,10 @@ msgstr "Choisissez les algorithmes qui alimentent vos fils d’actu personnalis #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "Choisissez les algorithmes qui alimentent votre expérience avec des fils d’actu personnalisés." +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "Choisissez vos principaux fils d’actu" @@ -886,6 +913,10 @@ msgstr "Efface toutes les données de stockage" msgid "click here" msgstr "cliquez ici" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Cliquez ici pour ouvrir le menu de mot-clé pour {tag}" @@ -894,7 +925,7 @@ msgstr "Cliquez ici pour ouvrir le menu de mot-clé pour {tag}" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "Cliquez ici pour ouvrir le menu de mot-clé pour #{tag}" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "Climat" @@ -963,11 +994,11 @@ msgstr "Ferme la visionneuse pour l’image d’en-tête" msgid "Collapses list of users for a given notification" msgstr "Réduit la liste des comptes pour une notification donnée" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "Comédie" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "Bandes dessinées" @@ -976,7 +1007,7 @@ msgstr "Bandes dessinées" msgid "Community Guidelines" msgstr "Directives communautaires" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "Terminez le didacticiel et commencez à utiliser votre compte" @@ -1006,18 +1037,18 @@ msgstr "Configuré dans <0>les paramètres de modération." #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Confirmer" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "Confirmer le changement" @@ -1025,7 +1056,7 @@ msgstr "Confirmer le changement" msgid "Confirm content language settings" msgstr "Confirmer les paramètres de langue" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "Confirmer la suppression du compte" @@ -1037,17 +1068,17 @@ msgstr "Confirmez votre âge :" msgid "Confirm your birthdate" msgstr "Confirme votre date de naissance" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Code de confirmation" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "Connexion…" @@ -1094,8 +1125,9 @@ msgstr "Menu contextuel en arrière-plan, cliquez pour fermer le menu." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "Continuer" @@ -1105,8 +1137,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "Continuer comme {0} (actuellement connecté)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1120,7 +1153,7 @@ msgstr "Passer à l’étape suivante" msgid "Continue to the next step without following any accounts" msgstr "Passer à l’étape suivante sans suivre aucun compte" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "Cuisine" @@ -1133,9 +1166,9 @@ msgstr "Copié" msgid "Copied build version to clipboard" msgstr "Version de build copiée dans le presse-papier" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1153,7 +1186,7 @@ msgstr "Copie le mot de passe d’application" msgid "Copy" msgstr "Copier" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "Copier {0}" @@ -1162,7 +1195,7 @@ msgstr "Copier {0}" msgid "Copy code" msgstr "Copier ce code" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "Copier le lien vers la liste" @@ -1186,15 +1219,15 @@ msgstr "Copier le texte du post" msgid "Copyright Policy" msgstr "Politique sur les droits d’auteur" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Impossible de charger le fil d’actu" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "Impossible de charger la liste" @@ -1202,13 +1235,13 @@ msgstr "Impossible de charger la liste" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1228,6 +1261,10 @@ msgstr "Créer un compte" msgid "Create an account" msgstr "Créer un compte" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "Créer un mot de passe d’application" @@ -1237,7 +1274,7 @@ msgstr "Créer un mot de passe d’application" msgid "Create new account" msgstr "Créer un nouveau compte" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "Créer un rapport pour {0}" @@ -1249,7 +1286,7 @@ msgstr "{0} créé" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Crée une carte avec une miniature. La carte pointe vers {url}" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "Culture" @@ -1258,12 +1295,12 @@ msgstr "Culture" msgid "Custom" msgstr "Personnalisé" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "Domaine personnalisé" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Les fils d’actu personnalisés élaborés par la communauté vous font vivre de nouvelles expériences et vous aident à trouver le contenu que vous aimez." @@ -1296,10 +1333,10 @@ msgstr "Déboguer la modération" msgid "Debug panel" msgstr "Panneau de débug" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "Supprimer" @@ -1311,7 +1348,7 @@ msgstr "Supprimer le compte" #~ msgid "Delete Account" #~ msgstr "Supprimer le compte" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1327,11 +1364,11 @@ msgstr "Supprimer le mot de passe de l’appli ?" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "Supprimer la liste" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1339,7 +1376,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "Supprimer mon compte" @@ -1352,7 +1389,7 @@ msgstr "Supprimer mon compte…" msgid "Delete post" msgstr "Supprimer le post" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "Supprimer cette liste ?" @@ -1391,7 +1428,7 @@ msgstr "Atténué" msgid "Disable autoplay for GIFs" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "" @@ -1432,7 +1469,7 @@ msgstr "Empêcher les applis de montrer mon compte aux personnes non connectées msgid "Discover new custom feeds" msgstr "Découvrir des fils d’actu personnalisés" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "Découvrir de nouveaux fils d’actu" @@ -1444,7 +1481,7 @@ msgstr "Afficher le nom" msgid "Display Name" msgstr "Afficher le nom" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "Panneau DNS" @@ -1456,11 +1493,11 @@ msgstr "Ne comprend pas de nudité." msgid "Doesn't begin or end with a hyphen" msgstr "Ne commence pas ou ne se termine pas par un trait d’union" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "Valeur du domaine" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "Domaine vérifié !" @@ -1468,6 +1505,8 @@ msgstr "Domaine vérifié !" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1476,15 +1515,13 @@ msgstr "Domaine vérifié !" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "Terminé" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1498,8 +1535,8 @@ msgstr "Terminer" msgid "Done{extraText}" msgstr "Terminé{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "Télécharger le fichier CAR" @@ -1511,7 +1548,7 @@ msgstr "Déposer pour ajouter des images" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "En raison des politiques d’Apple, le contenu pour adultes ne peut être activé que via le Web une fois l’inscription terminée." -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "ex. alice" @@ -1519,7 +1556,7 @@ msgstr "ex. alice" msgid "e.g. Alice Roberts" msgstr "ex. Alice Dupont" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "ex. alice.fr" @@ -1566,7 +1603,7 @@ msgstr "Modifier l’avatar" msgid "Edit image" msgstr "Modifier l’image" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "Modifier les infos de la liste" @@ -1575,8 +1612,8 @@ msgid "Edit Moderation List" msgstr "Modifier la liste de modération" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "Modifier mes fils d’actu" @@ -1595,7 +1632,7 @@ msgid "Edit Profile" msgstr "Modifier le profil" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "Modifier les fils d’actu enregistrés" @@ -1611,16 +1648,16 @@ msgstr "Modifier votre nom d’affichage" msgid "Edit your profile description" msgstr "Modifier votre description de profil" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "Éducation" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "E-mail" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "" @@ -1628,16 +1665,16 @@ msgstr "" msgid "Email address" msgstr "Adresse e-mail" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "Adresse e-mail mise à jour" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "E-mail mis à jour" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "Adresse e-mail vérifiée" @@ -1685,7 +1722,7 @@ msgstr "Activer les médias externes" msgid "Enable media players for" msgstr "Activer les lecteurs médias pour" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "Activez ce paramètre pour ne voir que les réponses des personnes que vous suivez." @@ -1714,7 +1751,7 @@ msgstr "Saisir un mot de passe" msgid "Enter a word or tag" msgstr "Saisir un mot ou un mot-clé" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "Entrer un code de confirmation" @@ -1722,7 +1759,7 @@ msgstr "Entrer un code de confirmation" msgid "Enter the code you received to change your password." msgstr "Saisissez le code que vous avez reçu pour modifier votre mot de passe." -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "Entrez le domaine que vous voulez utiliser" @@ -1739,11 +1776,11 @@ msgstr "Saisissez votre date de naissance" msgid "Enter your email address" msgstr "Entrez votre e-mail" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "Entrez votre nouvel e-mail ci-dessus" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "Entrez votre nouvelle e-mail ci-dessous." @@ -1751,11 +1788,15 @@ msgstr "Entrez votre nouvelle e-mail ci-dessous." msgid "Enter your username and password" msgstr "Entrez votre pseudo et votre mot de passe" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Erreur de réception de la réponse captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "Erreur :" @@ -1764,15 +1805,19 @@ msgstr "Erreur :" msgid "Everybody" msgstr "Tout le monde" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "Mentions ou réponses excessives" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "Sort du processus de suppression du compte" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "Sort du processus de changement de pseudo" @@ -1810,7 +1855,7 @@ msgstr "Images sexuelles explicites." msgid "Export my data" msgstr "Exporter mes données" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "Exporter mes données" @@ -1844,7 +1889,7 @@ msgstr "Échec de la création du mot de passe d’application." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Échec de la création de la liste. Vérifiez votre connexion Internet et réessayez." -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -1856,7 +1901,7 @@ msgstr "Échec de la suppression du post, veuillez réessayer" msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -1865,35 +1910,39 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "Échec du chargement des fils d’actu recommandés" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "Échec de l’enregistrement de l’image : {0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "Fil d’actu" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "Fil d’actu par {0}" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "Fil d’actu hors ligne" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "Feedback" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "Fils d’actu" @@ -1901,7 +1950,7 @@ msgstr "Fils d’actu" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Les fils d’actu sont créés par d’autres personnes pour rassembler du contenu. Choisissez des fils d’actu qui vous intéressent." -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Les fils d’actu sont des algorithmes personnalisés qui se construisent avec un peu d’expertise en programmation. <0/> pour plus d’informations." @@ -1909,15 +1958,19 @@ msgstr "Les fils d’actu sont des algorithmes personnalisés qui se construisen msgid "Feeds can be topical as well!" msgstr "Les fils d’actu peuvent également être thématiques !" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Contenu du fichier" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Filtrer des fils d’actu" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "Finalisation" @@ -1943,7 +1996,7 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "Recherche de comptes similaires…" -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "Affine le contenu affiché sur votre fil d’actu « Following »." @@ -1951,11 +2004,11 @@ msgstr "Affine le contenu affiché sur votre fil d’actu « Following »." msgid "Fine-tune the discussion threads." msgstr "Affine les fils de discussion." -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "Fitness" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "Flexible" @@ -2017,7 +2070,7 @@ msgstr "Suivi par {0}" msgid "Followed users" msgstr "Comptes suivis" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "Comptes suivis uniquement" @@ -2035,7 +2088,9 @@ msgstr "Abonné·e·s" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "Suivi" @@ -2050,7 +2105,7 @@ msgstr "Préférences du fil d’actu « Following »" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "Préférences en matière de fil d’actu « Following »" @@ -2063,11 +2118,11 @@ msgstr "Vous suit" msgid "Follows You" msgstr "Vous suit" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "Nourriture" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Pour des raisons de sécurité, nous devrons envoyer un code de confirmation à votre e-mail." @@ -2080,15 +2135,15 @@ msgstr "Pour des raisons de sécurité, vous ne pourrez plus afficher ceci. Si v msgid "Forgot Password" msgstr "Mot de passe oublié" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "Mot de passe oublié ?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "Oublié ?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "Publication fréquente de contenu indésirable" @@ -2105,12 +2160,16 @@ msgstr "Tiré de <0/>" msgid "Gallery" msgstr "Galerie" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "C’est parti" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "Violations flagrantes de la loi ou des conditions d’utilisation" @@ -2119,9 +2178,9 @@ msgstr "Violations flagrantes de la loi ou des conditions d’utilisation" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "Retour" @@ -2129,12 +2188,13 @@ msgstr "Retour" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "Retour" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2160,11 +2220,11 @@ msgstr "Accéder à l’accueil" msgid "Go to next" msgstr "Aller à la suite" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2172,7 +2232,7 @@ msgstr "" msgid "Graphic Media" msgstr "Médias crus" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Pseudo" @@ -2180,7 +2240,7 @@ msgstr "Pseudo" msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "Harcèlement, trolling ou intolérance" @@ -2188,7 +2248,7 @@ msgstr "Harcèlement, trolling ou intolérance" msgid "Hashtag" msgstr "Mot-clé" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "Mot-clé : #{tag}" @@ -2197,10 +2257,14 @@ msgid "Having trouble?" msgstr "Un souci ?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "Aide" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "Voici quelques comptes à suivre" @@ -2253,23 +2317,23 @@ msgstr "Cacher ce post ?" msgid "Hide user list" msgstr "Cacher la liste des comptes" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm, un problème s’est produit avec le serveur de fils d’actu. Veuillez informer la personne propriétaire du fil d’actu de ce problème." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, le serveur du fils d’actu semble être mal configuré. Veuillez informer la personne propriétaire du fil d’actu de ce problème." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, le serveur de fils d’actu semble être hors ligne. Veuillez informer la personne propriétaire du fil d’actu de ce problème." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, le serveur de fils d’actu ne répond pas. Veuillez informer la personne propriétaire du fil d’actu de ce problème." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, nous n’arrivons pas à trouver ce fil d’actu. Il a peut-être été supprimé." @@ -2282,21 +2346,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "Hmm, nous n’avons pas pu charger ce service de modération." #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "Accueil" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "Hébergeur :" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Hébergeur" @@ -2304,25 +2368,29 @@ msgstr "Hébergeur" msgid "How should we open this link?" msgstr "Comment ouvrir ce lien ?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "J’ai un code" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "J’ai un code de confirmation" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "J’ai mon propre domaine" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Si le texte alternatif est trop long, change son mode d’affichage" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "Si rien n’est sélectionné, il n’y a pas de restriction d’âge." @@ -2330,7 +2398,7 @@ msgstr "Si rien n’est sélectionné, il n’y a pas de restriction d’âge." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Si vous n’êtes pas encore un adulte selon les lois de votre pays, vos parents ou votre tuteur légal doivent lire ces conditions en votre nom." -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "Si vous supprimez cette liste, vous ne pourrez pas la récupérer." @@ -2342,7 +2410,7 @@ msgstr "Si vous supprimez ce post, vous ne pourrez pas le récupérer." msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Si vous souhaitez modifier votre mot de passe, nous vous enverrons un code pour vérifier qu’il s’agit bien de votre compte." -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "Illégal et urgent" @@ -2354,7 +2422,7 @@ msgstr "Image" msgid "Image alt text" msgstr "Texte alt de l’image" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "Usurpation d’identité ou fausses déclarations concernant l’identité ou l’affiliation" @@ -2362,7 +2430,7 @@ msgstr "Usurpation d’identité ou fausses déclarations concernant l’identit msgid "Input code sent to your email for password reset" msgstr "Entrez le code envoyé à votre e-mail pour réinitialiser le mot de passe" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "Entrez le code de confirmation pour supprimer le compte" @@ -2374,27 +2442,27 @@ msgstr "Entrez le nom du mot de passe de l’appli" msgid "Input new password" msgstr "Entrez le nouveau mot de passe" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "Entrez le mot de passe pour la suppression du compte" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "Entrez le mot de passe associé à {identifier}" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Entrez le pseudo ou l’adresse e-mail que vous avez utilisé lors de l’inscription" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "Entrez votre mot de passe" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "Entrez votre hébergeur préféré" @@ -2402,8 +2470,8 @@ msgstr "Entrez votre hébergeur préféré" msgid "Input your user handle" msgstr "Entrez votre pseudo" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" @@ -2411,7 +2479,7 @@ msgstr "" msgid "Invalid or unsupported post record" msgstr "Enregistrement de post invalide ou non pris en charge" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "Pseudo ou mot de passe incorrect" @@ -2423,7 +2491,7 @@ msgstr "Inviter un ami" msgid "Invite code" msgstr "Code d’invitation" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Code d’invitation refusé. Vérifiez que vous l’avez saisi correctement et réessayez." @@ -2443,7 +2511,7 @@ msgstr "Il affiche les posts des personnes que vous suivez au fur et à mesure q msgid "Jobs" msgstr "Emplois" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "Journalisme" @@ -2471,11 +2539,11 @@ msgstr "Les étiquettes sont des annotations sur les comptes et le contenu. Elle #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "étiquettes ont été placées sur ce {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "Étiquettes sur votre compte" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "Étiquettes sur votre contenu" @@ -2523,13 +2591,13 @@ msgstr "En savoir plus sur ce qui est public sur Bluesky." msgid "Learn more." msgstr "En savoir plus." -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2554,7 +2622,7 @@ msgstr "Stockage ancien effacé, vous devez redémarrer l’application maintena msgid "Let's get your password reset!" msgstr "Réinitialisez votre mot de passe !" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "Allons-y !" @@ -2567,7 +2635,7 @@ msgstr "Clair" #~ msgstr "Liker" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Liker ce fil d’actu" @@ -2621,19 +2689,19 @@ msgstr "Liste" msgid "List Avatar" msgstr "Liste des avatars" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "Liste bloquée" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "Liste par {0}" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "Liste supprimée" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "Liste masquée" @@ -2641,20 +2709,20 @@ msgstr "Liste masquée" msgid "List Name" msgstr "Nom de liste" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "Liste débloquée" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "Liste démasquée" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "Listes" @@ -2663,9 +2731,9 @@ msgid "Load new notifications" msgstr "Charger les nouvelles notifications" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "Charger les nouveaux posts" @@ -2692,7 +2760,7 @@ msgstr "Visibilité déconnectée" msgid "Login to account that is not listed" msgstr "Se connecter à un compte qui n’est pas listé" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -2700,6 +2768,18 @@ msgstr "" msgid "Looks like XXXXX-XXXXX" msgstr "De la forme XXXXX-XXXXX" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "Assurez-vous que c’est bien là que vous avez l’intention d’aller !" @@ -2708,6 +2788,11 @@ msgstr "Assurez-vous que c’est bien là que vous avez l’intention d’aller msgid "Manage your muted words and tags" msgstr "Gérer les mots et les mots-clés masqués" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2726,30 +2811,35 @@ msgstr "Comptes mentionnés" msgid "Menu" msgstr "Menu" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Message du serveur : {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -2757,7 +2847,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "Compte trompeur" @@ -2776,13 +2866,13 @@ msgstr "Détails de la modération" msgid "Moderation list by {0}" msgstr "Liste de modération par {0}" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "Liste de modération par <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "Liste de modération par vous" @@ -2824,11 +2914,11 @@ msgstr "La modération a choisi d’ajouter un avertissement général sur le co msgid "More" msgstr "Plus" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Plus de fils d’actu" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "Plus d’options" @@ -2849,7 +2939,7 @@ msgstr "Masquer {truncatedTag}" msgid "Mute Account" msgstr "Masquer le compte" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "Masquer les comptes" @@ -2865,16 +2955,16 @@ msgstr "Masquer dans les mots-clés uniquement" msgid "Mute in text & tags" msgstr "Masquer dans le texte et les mots-clés" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "Masquer la liste" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "Masquer ces comptes ?" @@ -2921,7 +3011,7 @@ msgstr "Masqué par « {0} »" msgid "Muted words & tags" msgstr "Les mots et les mots-clés masqués" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Ce que vous masquez reste privé. Les comptes masqués peuvent interagir avec vous, mais vous ne verrez pas leurs posts et ne recevrez pas de notifications de leur part." @@ -2930,11 +3020,11 @@ msgstr "Ce que vous masquez reste privé. Les comptes masqués peuvent interagir msgid "My Birthday" msgstr "Ma date de naissance" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "Mes fils d’actu" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "Mon profil" @@ -2955,27 +3045,27 @@ msgstr "Nom" msgid "Name is required" msgstr "Le nom est requis" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "Nom ou description qui viole les normes communautaires" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "Nature" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Navigue vers le prochain écran" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "Navigue vers votre profil" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "Besoin de signaler une violation des droits d’auteur ?" @@ -2984,11 +3074,11 @@ msgstr "Besoin de signaler une violation des droits d’auteur ?" #~ msgid "Never lose access to your followers and data." #~ msgstr "Ne perdez jamais l’accès à vos abonné·e·s et à vos données." -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "Ne perdez jamais l’accès à vos abonné·e·s ou à vos données." -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "Peu importe, créez un pseudo pour moi" @@ -3002,8 +3092,8 @@ msgid "New" msgstr "Nouveau" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -3019,22 +3109,22 @@ msgstr "Nouveau mot de passe" msgid "New Password" msgstr "Nouveau mot de passe" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "Nouveau post" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "Nouveau post" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "Nouveau post" @@ -3047,14 +3137,14 @@ msgstr "Nouvelle liste de comptes" msgid "Newest replies first" msgstr "Réponses les plus récentes en premier" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "Actualités" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3072,21 +3162,21 @@ msgstr "Suivant" msgid "Next image" msgstr "Image suivante" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "Non" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "Aucune description" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "Pas de panneau DNS" @@ -3102,8 +3192,8 @@ msgstr "Ne suit plus {0}" msgid "No longer than 253 characters" msgstr "Pas plus de 253 caractères" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3120,7 +3210,7 @@ msgstr "Aucun résultat" msgid "No results found" msgstr "Aucun résultat trouvé" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "Aucun résultat trouvé pour « {query} »" @@ -3165,8 +3255,8 @@ msgstr "Nudité non sexuelle" msgid "Not Found" msgstr "Introuvable" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "Pas maintenant" @@ -3183,22 +3273,22 @@ msgstr "Remarque : Bluesky est un réseau ouvert et public. Ce paramètre limit #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "Notifications" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Nudité" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "Nudité ou contenu adulte non identifié comme tel" @@ -3215,7 +3305,7 @@ msgstr "Éteint" msgid "Oh no!" msgstr "Oh non !" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "Oh non ! Il y a eu un problème." @@ -3240,6 +3330,10 @@ msgstr "Réinitialiser le didacticiel" msgid "One or more images is missing alt text." msgstr "Une ou plusieurs images n’ont pas de texte alt." +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "Seul {0} peut répondre." @@ -3258,16 +3352,20 @@ msgstr "Oups, quelque chose n’a pas marché !" msgid "Oops!" msgstr "Oups !" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "Ouvert" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "Ouvrir le sélecteur d’emoji" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "Ouvrir le menu des options de fil d’actu" @@ -3370,7 +3468,7 @@ msgstr "Ouvre une fenêtre modale pour télécharger les données du compte Blue msgid "Opens modal for email verification" msgstr "Ouvre une fenêtre modale pour la vérification de l’e-mail" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "Ouvre une fenêtre modale pour utiliser un domaine personnalisé" @@ -3378,12 +3476,12 @@ msgstr "Ouvre une fenêtre modale pour utiliser un domaine personnalisé" msgid "Opens moderation settings" msgstr "Ouvre les paramètres de modération" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "Ouvre le formulaire de réinitialisation du mot de passe" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "Ouvre l’écran pour modifier les fils d’actu enregistrés" @@ -3403,7 +3501,7 @@ msgstr "Ouvre les préférences du fil d’actu « Following »" msgid "Opens the linked website" msgstr "Ouvre le site web lié" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3424,6 +3522,7 @@ msgstr "Ouvre les préférences relatives aux fils de discussion" msgid "Option {0} of {numItems}" msgstr "Option {0} sur {numItems}" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "Ajoutez des informations supplémentaires ci-dessous (optionnel) :" @@ -3432,7 +3531,7 @@ msgstr "Ajoutez des informations supplémentaires ci-dessous (optionnel) :" msgid "Or combine these options:" msgstr "Ou une combinaison de ces options :" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "Autre" @@ -3453,10 +3552,10 @@ msgstr "Page introuvable" msgid "Page Not Found" msgstr "Page introuvable" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "Mot de passe" @@ -3488,32 +3587,32 @@ msgstr "Personnes suivies par @{0}" msgid "People following @{0}" msgstr "Personnes qui suivent @{0}" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "Permission d’accès à la pellicule requise." -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Permission d’accès à la pellicule refusée. Veuillez l’activer dans les paramètres de votre système." -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "Animaux domestiques" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Images destinées aux adultes." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "Ajouter à l’accueil" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "Ajouter à l’accueil" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "Fils épinglés" @@ -3538,19 +3637,19 @@ msgstr "Lire la vidéo" msgid "Plays the GIF" msgstr "Lit le GIF" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "Veuillez choisir votre pseudo." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "Veuillez choisir votre mot de passe." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "Veuillez compléter le captcha de vérification." -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Veuillez confirmer votre e-mail avant de le modifier. Ceci est temporairement requis pendant que des outils de mise à jour d’e-mail sont ajoutés, cette étape ne sera bientôt plus nécessaire." @@ -3566,15 +3665,15 @@ msgstr "Veuillez saisir un nom unique pour le mot de passe de l’application ou msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Veuillez entrer un mot, un mot-clé ou une phrase valide à masquer" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "Veuillez entrer votre e-mail." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "Veuillez également entrer votre mot de passe :" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Veuillez expliquer pourquoi vous pensez que cette étiquette a été appliquée à tort par {0}" @@ -3582,7 +3681,7 @@ msgstr "Veuillez expliquer pourquoi vous pensez que cette étiquette a été app msgid "Please sign in as @{0}" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Veuillez vérifier votre e-mail" @@ -3590,11 +3689,11 @@ msgstr "Veuillez vérifier votre e-mail" msgid "Please wait for your link card to finish loading" msgstr "Veuillez patienter le temps que votre carte de lien soit chargée" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "Politique" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "Porno" @@ -3662,7 +3761,7 @@ msgstr "Posts" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Les posts peuvent être masqués en fonction de leur texte, de leurs mots-clés ou des deux." -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "Posts cachés" @@ -3676,15 +3775,15 @@ msgstr "Appuyer pour changer d’hébergeur" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "Appuyer pour réessayer" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3707,7 +3806,7 @@ msgstr "Vie privée" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Charte de confidentialité" @@ -3720,11 +3819,11 @@ msgstr "Traitement…" msgid "profile" msgstr "profil" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "Profil" @@ -3736,7 +3835,7 @@ msgstr "Profil mis à jour" msgid "Protect your account by verifying your email." msgstr "Protégez votre compte en vérifiant votre e-mail." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "Public" @@ -3778,6 +3877,10 @@ msgstr "Aléatoire" msgid "Ratios" msgstr "Ratios" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "Recherches récentes" @@ -3791,11 +3894,11 @@ msgstr "Recherches récentes" #~ msgstr "Comptes recommandés" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Supprimer" @@ -3811,22 +3914,25 @@ msgstr "Supprimer l’avatar" msgid "Remove Banner" msgstr "Supprimer l’image d’en-tête" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "Supprimer le fil d’actu" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "Supprimer le fil d’actu ?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "Supprimer de mes fils d’actu" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "Supprimer de mes fils d’actu ?" @@ -3850,7 +3956,7 @@ msgstr "" msgid "Remove repost" msgstr "Supprimer le repost" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "Supprimer ce fil d’actu de vos fils d’actu enregistrés" @@ -3859,11 +3965,13 @@ msgstr "Supprimer ce fil d’actu de vos fils d’actu enregistrés" msgid "Removed from list" msgstr "Supprimé de la liste" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "Supprimé de mes fils d’actu" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "Supprimé de vos fils d’actu" @@ -3875,6 +3983,11 @@ msgstr "Supprime la miniature par défaut de {0}" msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "Réponses" @@ -3888,7 +4001,7 @@ msgctxt "action" msgid "Reply" msgstr "Répondre" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "Filtres de réponse" @@ -3910,24 +4023,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Signaler le compte" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Fenêtre de dialogue de signalement" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "Signaler le fil d’actu" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "Signaler la liste" @@ -3940,30 +4059,36 @@ msgstr "" msgid "Report post" msgstr "Signaler le post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "Signaler ce contenu" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "Signaler ce fil d’actu" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "Signaler cette liste" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "Signaler ce post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "Signaler ce compte" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "Republier" @@ -3997,8 +4122,8 @@ msgstr "a republié votre post" msgid "Reposts of this post" msgstr "Reposts de ce post" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "Demande de modification" @@ -4011,7 +4136,7 @@ msgstr "Demander un code" msgid "Require alt text before posting" msgstr "Nécessiter un texte alt avant de publier" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "" @@ -4019,8 +4144,8 @@ msgstr "" msgid "Required for this provider" msgstr "Obligatoire pour cet hébergeur" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "" @@ -4054,7 +4179,7 @@ msgstr "Réinitialise l’état d’accueil" msgid "Resets the preferences state" msgstr "Réinitialise l’état des préférences" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "Réessaye la connection" @@ -4063,13 +4188,14 @@ msgstr "Réessaye la connection" msgid "Retries the last action, which errored out" msgstr "Réessaye la dernière action, qui a échoué" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4077,11 +4203,11 @@ msgid "Retry" msgstr "Réessayer" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "Retourne à la page précédente" @@ -4090,20 +4216,20 @@ msgid "Returns to home page" msgstr "Retour à la page d’accueil" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "Retour à la page précédente" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Enregistrer" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4121,7 +4247,7 @@ msgstr "Enregistrer la date de naissance" msgid "Save Changes" msgstr "Enregistrer les modifications" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "Enregistrer le changement de pseudo" @@ -4129,16 +4255,16 @@ msgstr "Enregistrer le changement de pseudo" msgid "Save image crop" msgstr "Enregistrer le recadrage de l’image" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "Enregistrer dans mes fils d’actu" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "Fils d’actu enregistrés" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4146,7 +4272,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "Enregistré dans votre photothèque" -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "Enregistré à mes fils d’actu" @@ -4154,7 +4281,7 @@ msgstr "Enregistré à mes fils d’actu" msgid "Saves any changes to your profile" msgstr "Enregistre toutes les modifications apportées à votre profil" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "Enregistre le changement de pseudo en {handle}" @@ -4162,11 +4289,11 @@ msgstr "Enregistre le changement de pseudo en {handle}" msgid "Saves image crop settings" msgstr "Enregistre les paramètres de recadrage de l’image" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "Science" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "Remonter en haut" @@ -4179,12 +4306,12 @@ msgstr "Remonter en haut" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "Recherche" @@ -4226,7 +4353,7 @@ msgstr "" msgid "Search Tenor" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "Étape de sécurité requise" @@ -4251,7 +4378,7 @@ msgstr "Voir les posts <0>{displayTag} de ce compte" msgid "See profile" msgstr "Voir le profil" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "Voir ce guide" @@ -4259,10 +4386,22 @@ msgstr "Voir ce guide" msgid "Select {item}" msgstr "Sélectionner {item}" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "Sélectionner un compte" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Sélectionner un compte existant" @@ -4291,6 +4430,10 @@ msgstr "Sélectionne l’option {i} sur {numItems}" msgid "Select some accounts below to follow" msgstr "Sélectionnez quelques comptes à suivre ci-dessous" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "Sélectionnez le(s) service(s) de modération destinataires du signalement" @@ -4319,7 +4462,7 @@ msgstr "Sélectionnez votre langue par défaut pour les textes de l’applicatio msgid "Select your date of birth" msgstr "Sélectionnez votre date de naissance" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "Sélectionnez vos centres d’intérêt parmi les options ci-dessous" @@ -4335,30 +4478,32 @@ msgstr "Sélectionnez vos principaux fils d’actu algorithmiques" msgid "Select your secondary algorithmic feeds" msgstr "Sélectionnez vos fils d’actu algorithmiques secondaires" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Envoyer un e-mail de confirmation" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "Envoyer e-mail" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "Envoyer l’e-mail" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "Envoyer des commentaires" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4368,12 +4513,12 @@ msgstr "Envoyer le rapport" msgid "Send report to {0}" msgstr "Envoyer le rapport à {0}" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "Envoie un e-mail avec le code de confirmation pour la suppression du compte" @@ -4389,15 +4534,15 @@ msgstr "Entrez votre date de naissance" msgid "Set new password" msgstr "Définir un nouveau mot de passe" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Choisissez « Non » pour cacher toutes les citations sur votre fils d’actu. Les reposts seront toujours visibles." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Choisissez « Non » pour cacher toutes les réponses dans votre fils d’actu." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Choisissez « Non » pour cacher toutes les reposts de votre fils d’actu." @@ -4405,7 +4550,7 @@ msgstr "Choisissez « Non » pour cacher toutes les reposts de votre fils d’ msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Choisissez « Oui » pour afficher les réponses dans un fil de discussion. C’est une fonctionnalité expérimentale." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Choisissez « Oui » pour afficher des échantillons de vos fils d’actu enregistrés dans votre fil d’actu « Following ». C’est une fonctionnalité expérimentale." @@ -4413,7 +4558,7 @@ msgstr "Choisissez « Oui » pour afficher des échantillons de vos fils d’a msgid "Set up your account" msgstr "Créez votre compte" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Définit le pseudo Bluesky" @@ -4456,13 +4601,13 @@ msgstr "Définit le rapport d’aspect de l’image comme paysage" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "Paramètres" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "Activité sexuelle ou nudité érotique." @@ -4470,7 +4615,7 @@ msgstr "Activité sexuelle ou nudité érotique." msgid "Sexually Suggestive" msgstr "Sexuellement suggestif" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "Partager" @@ -4480,7 +4625,7 @@ msgstr "Partager" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "Partager" @@ -4490,8 +4635,8 @@ msgstr "Partager" msgid "Share anyway" msgstr "Partager quand même" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "Partager le fil d’actu" @@ -4554,11 +4699,11 @@ msgstr "Voir plus" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Afficher les posts de mes fils d’actu" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "Afficher les citations" @@ -4574,7 +4719,7 @@ msgstr "Afficher les citations dans le fil d’actu « Following »" msgid "Show re-posts in Following feed" msgstr "Afficher les reposts dans le fil d’actu « Following »" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "Afficher les réponses" @@ -4594,7 +4739,7 @@ msgstr "Afficher les réponses dans le fil d’actu « Following »" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Afficher les réponses avec au moins {value} {0}" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "Afficher les reposts" @@ -4627,17 +4772,17 @@ msgstr "Affiche les posts de {0} dans votre fil d’actu" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4665,12 +4810,12 @@ msgstr "Connectez-vous à Bluesky ou créez un nouveau compte" msgid "Sign out" msgstr "Déconnexion" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4695,27 +4840,31 @@ msgstr "Connecté en tant que" msgid "Signed in as @{0}" msgstr "Connecté en tant que @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "Ignorer" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "Passer cette étape" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "Développement de logiciels" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Quelque chose n’a pas marché, veuillez réessayer." -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "Désolé ! Votre session a expiré. Essayez de vous reconnecter." @@ -4727,19 +4876,20 @@ msgstr "Trier les réponses" msgid "Sort replies to the same post by:" msgstr "Trier les réponses au même post par :" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "Source :" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "Spam" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "Spam ; mentions ou réponses excessives" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "Sports" @@ -4776,12 +4926,12 @@ msgstr "Stockage effacé, vous devez redémarrer l’application maintenant." msgid "Storybook" msgstr "Historique" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Envoyer" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "S’abonner" @@ -4802,7 +4952,7 @@ msgstr "S’abonner au fil d’actu {0}" msgid "Subscribe to this labeler" msgstr "S’abonner à cet étiqueteur" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "S’abonner à cette liste" @@ -4814,7 +4964,7 @@ msgstr "Suivis suggérés" msgid "Suggested for you" msgstr "Suggérés pour vous" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "Suggestif" @@ -4861,7 +5011,7 @@ msgstr "Grand" msgid "Tap to view fully" msgstr "Tapper pour voir en entier" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "Technologie" @@ -4873,13 +5023,13 @@ msgstr "Conditions générales" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Conditions d’utilisation" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "Termes utilisés qui violent les normes de la communauté" @@ -4887,15 +5037,16 @@ msgstr "Termes utilisés qui violent les normes de la communauté" msgid "text" msgstr "texte" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "Champ de saisie de texte" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "Nous vous remercions. Votre rapport a été envoyé." -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "Qui contient les éléments suivants :" @@ -4920,11 +5071,15 @@ msgstr "Les lignes directrices communautaires ont été déplacées vers <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Notre politique de droits d’auteur a été déplacée vers <0/>" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "Les étiquettes suivantes ont été appliquées à votre compte." -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "Les étiquettes suivantes ont été appliquées à votre contenu." @@ -4954,15 +5109,17 @@ msgid "There are many feeds to try:" msgstr "Il existe de nombreux fils d’actu à essayer :" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Il y a eu un problème de connexion au serveur, veuillez vérifier votre connexion Internet et réessayez." -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Il y a eu un problème lors de la suppression du fil, veuillez vérifier votre connexion Internet et réessayez." -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Il y a eu un problème lors de la mise à jour de vos fils d’actu, veuillez vérifier votre connexion Internet et réessayez." @@ -4974,16 +5131,17 @@ msgstr "" msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "Il y a eu un problème de connexion au serveur" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "Il y a eu un problème de connexion à votre serveur" @@ -4991,7 +5149,7 @@ msgstr "Il y a eu un problème de connexion à votre serveur" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Il y a eu un problème lors de la récupération des notifications. Appuyez ici pour réessayer." -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Il y a eu un problème lors de la récupération des posts. Appuyez ici pour réessayer." @@ -5004,6 +5162,7 @@ msgstr "Il y a eu un problème lors de la récupération de la liste. Appuyez ic msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Il y a eu un problème lors de la récupération de vos listes. Appuyez ici pour réessayer." +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Il y a eu un problème lors de l’envoi de votre rapport. Veuillez vérifier votre connexion internet." @@ -5030,10 +5189,10 @@ msgstr "Il y a eu un problème lors de la récupération de vos mots de passe d msgid "There was an issue! {0}" msgstr "Il y a eu un problème ! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "Il y a eu un problème. Veuillez vérifier votre connexion Internet et réessayez." @@ -5058,7 +5217,7 @@ msgstr "Ce {screenDescription} a été signalé :" msgid "This account has requested that users sign in to view their profile." msgstr "Ce compte a demandé aux personnes de se connecter pour voir son profil." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "Cet appel sera envoyé à <0>{0}." @@ -5083,21 +5242,21 @@ msgstr "Ce contenu est hébergé par {0}. Voulez-vous activer les médias extern msgid "This content is not available because one of the users involved has blocked the other." msgstr "Ce contenu n’est pas disponible car l’un des comptes impliqués a bloqué l’autre." -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "Ce contenu n’est pas visible sans un compte Bluesky." -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Cette fonctionnalité est en version bêta. Vous pouvez en savoir plus sur les exportations de dépôts dans <0>ce blogpost." -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Ce fil d’actu reçoit actuellement un trafic important, il est temporairement indisponible. Veuillez réessayer plus tard." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "Ce fil d’actu est vide !" @@ -5105,11 +5264,15 @@ msgstr "Ce fil d’actu est vide !" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Ce fil d’actu est vide ! Vous devriez peut-être suivre plus de comptes ou ajuster vos paramètres de langue." +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Ces informations ne sont pas partagées avec d’autres personnes." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "Ceci est important au cas où vous auriez besoin de changer d’e-mail ou de réinitialiser votre mot de passe." @@ -5125,6 +5288,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Cet étiqueteur n’a pas déclaré les étiquettes qu’il publie et peut ne pas être actif." @@ -5133,7 +5300,7 @@ msgstr "Cet étiqueteur n’a pas déclaré les étiquettes qu’il publie et pe msgid "This link is taking you to the following website:" msgstr "Ce lien vous conduit au site Web suivant :" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "Cette liste est vide !" @@ -5166,7 +5333,7 @@ msgstr "Ce profil n’est visible que pour les personnes connectées. Il ne sera msgid "This service has not provided terms of service or a privacy policy." msgstr "Ce service n’a pas fourni de conditions d’utilisation ni de politique de confidentialité." -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "Cela devrait créer un enregistrement de domaine à :" @@ -5220,10 +5387,14 @@ msgstr "Mode arborescent" msgid "Threads Preferences" msgstr "Préférences des fils de discussion" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "À qui souhaitez-vous envoyer ce rapport ?" @@ -5265,25 +5436,25 @@ msgstr "Réessayer" msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Type :" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "Débloquer la liste" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "Réafficher cette liste" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5293,7 +5464,7 @@ msgstr "Impossible de contacter votre service. Veuillez vérifier votre connexio #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "Débloquer" @@ -5314,7 +5485,7 @@ msgstr "Débloquer le compte ?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Annuler le repost" @@ -5341,12 +5512,12 @@ msgstr "Se désabonner du compte" #~ msgid "Unlike" #~ msgstr "Déliker" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "Déliker ce fil d’actu" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "Réafficher" @@ -5363,7 +5534,7 @@ msgstr "Réafficher ce compte" msgid "Unmute all {displayTag} posts" msgstr "Réafficher tous les posts {displayTag}" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5372,16 +5543,16 @@ msgstr "" msgid "Unmute thread" msgstr "Réafficher ce fil de discussion" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "Désépingler" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "Désépingler de l’accueil" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "Supprimer la liste de modération" @@ -5393,7 +5564,12 @@ msgstr "Se désabonner" msgid "Unsubscribe from this labeler" msgstr "Se désabonner de cet étiqueteur" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "Contenu sexuel non désiré" @@ -5401,7 +5577,7 @@ msgstr "Contenu sexuel non désiré" msgid "Update {displayName} in Lists" msgstr "Mise à jour de {displayName} dans les listes" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "Mettre à jour pour {handle}" @@ -5409,7 +5585,11 @@ msgstr "Mettre à jour pour {handle}" msgid "Updating..." msgstr "Mise à jour…" -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Envoyer un fichier texte vers :" @@ -5432,7 +5612,7 @@ msgstr "Envoyer à partir de fichiers" msgid "Upload from Library" msgstr "Envoyer à partir de la photothèque" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "Utiliser un fichier sur votre serveur" @@ -5440,11 +5620,11 @@ msgstr "Utiliser un fichier sur votre serveur" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilisez les mots de passe de l’appli pour se connecter à d’autres clients Bluesky sans donner un accès complet à votre compte ou à votre mot de passe." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "Utiliser bsky.social comme hébergeur" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "Utiliser le fournisseur par défaut" @@ -5458,7 +5638,11 @@ msgstr "Utiliser le navigateur interne à l’appli" msgid "Use my default browser" msgstr "Utiliser mon navigateur par défaut" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Utiliser le panneau DNS" @@ -5496,13 +5680,13 @@ msgstr "Compte qui vous bloque" msgid "User list by {0}" msgstr "Liste de compte de {0}" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "Liste de compte par <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "Liste de compte par vous" @@ -5518,11 +5702,11 @@ msgstr "Liste de compte mise à jour" msgid "User Lists" msgstr "Listes de comptes" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "Pseudo ou e-mail" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "Comptes" @@ -5538,7 +5722,7 @@ msgstr "Comptes dans « {0} »" msgid "Users that have liked this content or profile" msgstr "Comptes qui ont liké ce contenu ou ce profil" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "Valeur :" @@ -5546,7 +5730,7 @@ msgstr "Valeur :" #~ msgid "Verify {0}" #~ msgstr "Vérifier {0}" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -5562,16 +5746,16 @@ msgstr "Confirmer mon e-mail" msgid "Verify My Email" msgstr "Confirmer mon e-mail" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "Confirmer le nouvel e-mail" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "Vérifiez votre e-mail" @@ -5583,7 +5767,7 @@ msgstr "Vérifiez votre e-mail" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "Jeux vidéo" @@ -5595,11 +5779,11 @@ msgstr "Voir l’avatar de {0}" msgid "View debug entry" msgstr "Afficher l’entrée de débogage" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "Voir les détails" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "Voir les détails pour signaler une violation du droit d’auteur" @@ -5607,13 +5791,13 @@ msgstr "Voir les détails pour signaler une violation du droit d’auteur" msgid "View full thread" msgstr "Voir le fil de discussion entier" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "Voir les informations sur ces étiquettes" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Voir le profil" @@ -5625,7 +5809,7 @@ msgstr "Afficher l’avatar" msgid "View the labeling service provided by @{0}" msgstr "Voir le service d’étiquetage fourni par @{0}" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "Voir les comptes qui a liké ce fil d’actu" @@ -5653,11 +5837,15 @@ msgstr "Avertir du contenu et filtrer des fils d’actu" msgid "We couldn't find any results for that hashtag." msgstr "Nous n’avons trouvé aucun résultat pour ce mot-clé." +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Nous estimons que votre compte sera prêt dans {estimatedTime}." -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Nous espérons que vous passerez un excellent moment. N’oubliez pas que Bluesky est :" @@ -5681,7 +5869,7 @@ msgstr "Nous n’avons pas pu charger vos préférences en matière de date de n msgid "We were unable to load your configured labelers at this time." msgstr "Nous n’avons pas pu charger vos étiqueteurs configurés pour le moment." -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Nous n’avons pas pu nous connecter. Veuillez réessayer pour continuer à configurer votre compte. Si l’échec persiste, vous pouvez sauter cette étape." @@ -5689,7 +5877,7 @@ msgstr "Nous n’avons pas pu nous connecter. Veuillez réessayer pour continuer msgid "We will let you know when your account is ready." msgstr "Nous vous informerons lorsque votre compte sera prêt." -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "Nous utiliserons ces informations pour personnaliser votre expérience." @@ -5722,7 +5910,7 @@ msgstr "Nous sommes désolés ! Vous ne pouvez vous abonner qu’à dix étique #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Bienvenue sur <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "Quels sont vos centres d’intérêt ?" @@ -5745,23 +5933,31 @@ msgstr "Quelles langues aimeriez-vous voir apparaître dans vos fils d’actu al msgid "Who can reply" msgstr "Qui peut répondre ?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "Pourquoi ce contenu doit-il être examiné ?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "Pourquoi ce fil d’actu doit-il être examiné ?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "Pourquoi cette liste devrait-elle être examinée ?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "Pourquoi ce post devrait-il être examiné ?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "Pourquoi ce compte doit-il être examiné ?" @@ -5769,8 +5965,8 @@ msgstr "Pourquoi ce compte doit-il être examiné ?" msgid "Wide" msgstr "Large" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -5783,21 +5979,21 @@ msgstr "Rédiger un post" msgid "Write your reply" msgstr "Rédigez votre réponse" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "Écrivain·e·s" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Oui" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -5831,15 +6027,15 @@ msgstr "Vous n’avez pas d’abonné·e·s." msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Vous n’avez encore aucun code d’invitation ! Nous vous en enverrons lorsque vous serez sur Bluesky depuis un peu plus longtemps." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "Vous n’avez encore aucun fil épinglé." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "Vous n’avez encore aucun fil enregistré !" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "Vous n’avez encore aucun fil enregistré !" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "Vous n’avez encore aucun fil enregistré." @@ -5886,7 +6082,7 @@ msgstr "Vous n’avez aucun fil." msgid "You have no lists." msgstr "Vous n’avez aucune liste." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -5906,7 +6102,11 @@ msgstr "Vous n’avez encore masqué aucun compte. Pour masquer un compte, allez msgid "You haven't muted any words or tags yet" msgstr "Vous n’avez pas encore masqué de mot ou de mot-clé" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Vous pouvez faire appel de ces étiquettes si vous estimez qu’elles ont été apposées par erreur." @@ -5934,7 +6134,7 @@ msgstr "Vous recevrez désormais des notifications pour ce fil de discussion" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Vous recevrez un e-mail contenant un « code de réinitialisation ». Saisissez ce code ici, puis votre nouveau mot de passe." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -5948,7 +6148,7 @@ msgstr "Vous avez le contrôle" msgid "You're in line" msgstr "Vous êtes dans la file d’attente" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "Vous êtes prêt à partir !" @@ -5969,7 +6169,7 @@ msgstr "Votre compte" msgid "Your account has been deleted" msgstr "Votre compte a été supprimé" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Le dépôt de votre compte, qui contient toutes les données publiques, peut être téléchargé sous la forme d’un fichier « CAR ». Ce fichier n’inclut pas les éléments multimédias, tels que les images, ni vos données privées, qui doivent être récupérées séparément." @@ -5986,16 +6186,16 @@ msgid "Your default feed is \"Following\"" msgstr "Votre fil d’actu par défaut est « Following »" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "Votre e-mail semble être invalide." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "Votre e-mail a été mis à jour, mais n’a pas été vérifié. L’étape suivante consiste à vérifier votre nouvel e-mail." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Votre e-mail n’a pas encore été vérifié. Il s’agit d’une mesure de sécurité importante que nous recommandons." @@ -6007,7 +6207,7 @@ msgstr "Votre fil d’actu des comptes suivis est vide ! Suivez plus de comptes msgid "Your full handle will be" msgstr "Votre nom complet sera" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "Votre pseudo complet sera <0>@{0}" @@ -6023,7 +6223,7 @@ msgstr "Votre mot de passe a été modifié avec succès !" msgid "Your post has been published" msgstr "Votre post a été publié" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Vos posts, les likes et les blocages sont publics. Les silences (comptes masqués) sont privés." @@ -6035,6 +6235,10 @@ msgstr "Votre profil" msgid "Your reply has been published" msgstr "Votre réponse a été publiée" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Votre pseudo" diff --git a/src/locale/locales/ga/messages.po b/src/locale/locales/ga/messages.po index 1d390e9673..3814055007 100644 --- a/src/locale/locales/ga/messages.po +++ b/src/locale/locales/ga/messages.po @@ -12,7 +12,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? 3 : 4\n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(gan ríomhphost)" @@ -20,15 +20,15 @@ msgstr "(gan ríomhphost)" msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -50,7 +50,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -70,6 +70,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -89,15 +93,15 @@ msgstr "{following} á leanúint" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} gan léamh" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -105,11 +109,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> ball" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -134,7 +138,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>Lean cúpla<1>Úsáideoirí<2>Molta" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -146,7 +150,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Leasainm Neamhbhailí" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "Dearbhú 2FA" @@ -177,7 +181,7 @@ msgstr "Socruithe Inrochtaineachta" #~ msgid "account" #~ msgstr "cuntas" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -228,15 +232,15 @@ msgstr "Níl an cuntas i bhfolach a thuilleadh" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "Cuir leis" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Cuir rabhadh faoin ábhar leis" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "Cuir cuntas leis an liosta seo" @@ -248,6 +252,7 @@ msgstr "Cuir cuntas leis seo" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -255,8 +260,8 @@ msgid "Add alt text" msgstr "Cuir téacs malartach leis seo" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -280,7 +285,15 @@ msgstr "Cuir focal atá le cur i bhfolach anseo le haghaidh socruithe a rinne t msgid "Add muted words and tags" msgstr "Cuir focail agus clibeanna a cuireadh i bhfolach leis seo" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Cuir an taifead DNS seo a leanas le d'fhearann:" @@ -289,7 +302,7 @@ msgstr "Cuir an taifead DNS seo a leanas le d'fhearann:" msgid "Add to Lists" msgstr "Cuir le liostaí" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "Cuir le mo chuid fothaí" @@ -302,17 +315,17 @@ msgstr "Cuir le mo chuid fothaí" msgid "Added to list" msgstr "Curtha leis an liosta" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "Curtha le mo chuid fothaí" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Sonraigh an méid moltaí ar fhreagra atá de dhíth le bheith le feiceáil i d'fhotha." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Ábhar do dhaoine fásta" @@ -325,7 +338,7 @@ msgstr "Tá ábhar do dhaoine fásta curtha ar ceal." msgid "Advanced" msgstr "Ardleibhéal" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "Na fothaí go léir a shábháil tú, in áit amháin." @@ -358,12 +371,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "Cuireann an téacs malartach síos ar na híomhánna do dhaoine atá dall nó a bhfuil lagú radhairc orthu agus cuireann sé an comhthéacs ar fáil do chuile dhuine." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "Cuireadh teachtaireacht ríomhphoist chuig {0}. Tá cód dearbhaithe faoi iamh. Is féidir leat an cód a chur isteach thíos anseo." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Cuireadh teachtaireacht ríomhphoist chuig do sheanseoladh. {0}. Tá cód dearbhaithe faoi iamh." @@ -371,11 +384,11 @@ msgstr "Cuireadh teachtaireacht ríomhphoist chuig do sheanseoladh. {0}. Tá có msgid "An error occured" msgstr "Tharla earráid" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "Rud nach bhfuil ar fáil sna roghanna seo" @@ -388,7 +401,7 @@ msgstr "Rud nach bhfuil ar fáil sna roghanna seo" msgid "An issue occurred, please try again." msgstr "Tharla fadhb. Déan iarracht eile, le do thoil." -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -397,7 +410,7 @@ msgstr "" msgid "and" msgstr "agus" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "Ainmhithe" @@ -405,7 +418,7 @@ msgstr "Ainmhithe" msgid "Animated GIF" msgstr "GIF beo" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "Iompar Frithshóisialta" @@ -435,16 +448,16 @@ msgstr "Socruithe phasfhocal na haipe" msgid "App Passwords" msgstr "Pasfhocal na haipe" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "Achomharc" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "Achomharc in aghaidh lipéid \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -456,19 +469,24 @@ msgstr "" msgid "Appearance" msgstr "Cuma" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "An bhfuil tú cinnte gur mhaith leat pasfhocal na haipe “{name}” a scriosadh?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "An bhfuil tú cinnte gur mhaith leat {0} a bhaint de do chuid fothaí?" @@ -484,11 +502,11 @@ msgstr "Lánchinnte?" msgid "Are you writing in <0>{0}?" msgstr "An bhfuil tú ag scríobh sa teanga <0>{0}?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "Ealaín" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Lomnochtacht ealaíonta nó gan a bheith gáirsiúil." @@ -496,17 +514,17 @@ msgstr "Lomnochtacht ealaíonta nó gan a bheith gáirsiúil." msgid "At least 3 characters" msgstr "3 charachtar ar a laghad" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -534,8 +552,8 @@ msgstr "Breithlá:" msgid "Block" msgstr "Blocáil" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -548,15 +566,15 @@ msgstr "Blocáil an cuntas seo" msgid "Block Account?" msgstr "Blocáil an cuntas seo?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "Blocáil na cuntais seo" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "Liosta blocála" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "An bhfuil fonn ort na cuntais seo a bhlocáil?" @@ -590,7 +608,7 @@ msgstr "Postáil bhlocáilte." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Ní bhacann blocáil an lipéadóir seo ar lipéid a chur ar do chuntas." -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Tá an bhlocáil poiblí. Ní féidir leis na cuntais bhlocáilte freagra a thabhairt ar do chomhráite, tagairt a dhéanamh duit, ná aon phlé eile a bheith acu leat." @@ -635,10 +653,15 @@ msgstr "Déan íomhánna doiléir" msgid "Blur images and filter from feeds" msgstr "Déan íomhánna doiléir agus scag ó fhothaí iad" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "Leabhair" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Gnó" @@ -685,9 +708,9 @@ msgstr "Ní féidir ach litreacha, uimhreacha, spásanna, daiseanna agus fostrí #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -699,26 +722,26 @@ msgstr "Ní féidir ach litreacha, uimhreacha, spásanna, daiseanna agus fostrí #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "Cealaigh" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "Cealaigh" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "Ná scrios an chuntas" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "Ná hathraigh an leasainm" @@ -743,7 +766,7 @@ msgstr "Cealaigh an cuardach" msgid "Cancels opening the linked website" msgstr "Cuireann sé seo oscailt an tsuímh gréasáin atá nasctha ar ceal" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "Athraigh" @@ -756,12 +779,12 @@ msgstr "Athraigh" msgid "Change handle" msgstr "Athraigh mo leasainm" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "Athraigh mo leasainm" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Athraigh mo ríomhphost" @@ -778,7 +801,7 @@ msgstr "Athraigh mo phasfhocal" msgid "Change post language to {0}" msgstr "Athraigh an teanga phostála go {0}" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "Athraigh do ríomhphost" @@ -786,11 +809,11 @@ msgstr "Athraigh do ríomhphost" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -816,11 +839,11 @@ msgstr "Seiceáil mo stádas" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Cuir súil ar na húsáideoirí seo. Lean iad le húsáideoirí atá cosúil leo a fheiceáil." -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "Féach ar do bhosca ríomhphoist le haghaidh cód dearbhaithe agus cuir isteach anseo é." -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Féach ar do bhosca ríomhphoist le haghaidh teachtaireachta leis an gcód dearbhaithe atá le cur isteach thíos." @@ -832,7 +855,7 @@ msgstr "Roghnaigh “Chuile Dhuine” nó “Duine Ar Bith”" msgid "Choose Service" msgstr "Roghnaigh Seirbhís" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "Roghnaigh na halgartaim le haghaidh do chuid sainfhothaí." @@ -840,6 +863,10 @@ msgstr "Roghnaigh na halgartaim le haghaidh do chuid sainfhothaí." #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "Roghnaigh na halgartaim a shainíonn an dóigh a n-oibríonn do chuid sainfhothaí." +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "Roghnaigh do phríomhfhothaí" @@ -881,6 +908,10 @@ msgstr "Glanann seo na sonraí ar fad atá i dtaisce" msgid "click here" msgstr "cliceáil anseo" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Cliceáil anseo le clár na clibe le haghaidh {tag} a oscailt" @@ -889,7 +920,7 @@ msgstr "Cliceáil anseo le clár na clibe le haghaidh {tag} a oscailt" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "Cliceáil anseo le clár na clibe le haghaidh #{tag} a oscailt" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "Aeráid" @@ -958,11 +989,11 @@ msgstr "Dúnann sé seo an t-amharcóir le haghaidh íomhá an cheanntáisc" msgid "Collapses list of users for a given notification" msgstr "Laghdaíonn sé seo liosta na n-úsáideoirí le haghaidh an fhógra sin" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "Greann" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "Greannáin" @@ -971,7 +1002,7 @@ msgstr "Greannáin" msgid "Community Guidelines" msgstr "Treoirlínte an phobail" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "Críochnaigh agus tosaigh ag baint úsáide as do chuntas." @@ -1001,18 +1032,18 @@ msgstr "Le socrú i <0>socruithe na modhnóireachta." #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Dearbhaigh" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "Dearbhaigh an t-athrú" @@ -1020,7 +1051,7 @@ msgstr "Dearbhaigh an t-athrú" msgid "Confirm content language settings" msgstr "Dearbhaigh socruithe le haghaidh teanga an ábhair" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "Dearbhaigh scriosadh an chuntais" @@ -1032,17 +1063,17 @@ msgstr "Dearbhaigh d'aois:" msgid "Confirm your birthdate" msgstr "Dearbhaigh do bhreithlá" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Cód dearbhaithe" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "Ag nascadh…" @@ -1089,8 +1120,9 @@ msgstr "Cúlra an roghchláir comhthéacs, cliceáil chun an roghchlár a dhúna #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "Lean ar aghaidh" @@ -1100,8 +1132,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "Lean ort mar {0} (atá logáilte isteach faoi láthair)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1115,7 +1148,7 @@ msgstr "Lean ar aghaidh go dtí an chéad chéim eile" msgid "Continue to the next step without following any accounts" msgstr "Lean ar aghaidh go dtí an chéad chéim eile gan aon chuntas a leanúint" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "Cócaireacht" @@ -1128,9 +1161,9 @@ msgstr "Cóipeáilte" msgid "Copied build version to clipboard" msgstr "Leagan cóipeáilte sa ghearrthaisce" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1148,7 +1181,7 @@ msgstr "Cóipeálann sé seo pasfhocal na haipe" msgid "Copy" msgstr "Cóipeáil" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "Cóipeáil {0}" @@ -1157,7 +1190,7 @@ msgstr "Cóipeáil {0}" msgid "Copy code" msgstr "Cóipeáil an cód" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "Cóipeáil an nasc leis an liosta" @@ -1181,15 +1214,15 @@ msgstr "Cóipeáil téacs na postála" msgid "Copyright Policy" msgstr "An polasaí maidir le cóipcheart" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Ní féidir an fotha a lódáil" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "Ní féidir an liosta a lódáil" @@ -1197,13 +1230,13 @@ msgstr "Ní féidir an liosta a lódáil" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1223,6 +1256,10 @@ msgstr "Cruthaigh cuntas" msgid "Create an account" msgstr "Cruthaigh cuntas" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "Cruthaigh pasfhocal aipe" @@ -1232,7 +1269,7 @@ msgstr "Cruthaigh pasfhocal aipe" msgid "Create new account" msgstr "Cruthaigh cuntas nua" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "Cruthaigh tuairisc do {0}" @@ -1244,7 +1281,7 @@ msgstr "Cruthaíodh {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Cruthaíonn sé seo cárta le mionsamhail. Nascann an cárta le {url}." -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "Cultúr" @@ -1253,12 +1290,12 @@ msgstr "Cultúr" msgid "Custom" msgstr "Saincheaptha" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "Sainfhearann" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Cruthaíonn an pobal fothaí chun eispéiris nua a chur ar fáil duit, agus chun cabhrú leat teacht ar an ábhar a thaitníonn leat" @@ -1291,10 +1328,10 @@ msgstr "Dífhabhtaigh Modhnóireacht" msgid "Debug panel" msgstr "Painéal dífhabhtaithe" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "Scrios" @@ -1306,7 +1343,7 @@ msgstr "Scrios an cuntas" #~ msgid "Delete Account" #~ msgstr "Scrios an Cuntas" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1322,11 +1359,11 @@ msgstr "Scrios pasfhocal na haipe?" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "Scrios an liosta" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1334,7 +1371,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "Scrios mo chuntas" @@ -1347,7 +1384,7 @@ msgstr "Scrios mo chuntas…" msgid "Delete post" msgstr "Scrios an phostáil" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "An bhfuil fonn ort an liosta seo a scriosadh?" @@ -1386,7 +1423,7 @@ msgstr "Breacdhorcha" msgid "Disable autoplay for GIFs" msgstr "Ná seinn GIFanna go huathoibríoch" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "Ná húsáid 2FA trí ríomhphost" @@ -1423,7 +1460,7 @@ msgstr "Cuir ina luí ar aipeanna gan mo chuntas a thaispeáint d'úsáideoirí msgid "Discover new custom feeds" msgstr "Aimsigh sainfhothaí nua" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "Aimsigh Fothaí Nua" @@ -1435,7 +1472,7 @@ msgstr "Ainm taispeána" msgid "Display Name" msgstr "Ainm Taispeána" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "Painéal DNS" @@ -1447,11 +1484,11 @@ msgstr "Níl lomnochtacht ann." msgid "Doesn't begin or end with a hyphen" msgstr "Ní thosaíonn ná chríochnaíonn sé le fleiscín" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "Luach an Fhearainn" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "Fearann dearbhaithe!" @@ -1459,6 +1496,8 @@ msgstr "Fearann dearbhaithe!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1467,15 +1506,13 @@ msgstr "Fearann dearbhaithe!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "Déanta" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1489,8 +1526,8 @@ msgstr "Déanta" msgid "Done{extraText}" msgstr "Déanta{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "Íoslódáil comhad CAR" @@ -1502,7 +1539,7 @@ msgstr "Scaoil anseo chun íomhánna a chur leis" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "De bharr pholasaí Apple, ní féidir ábhar do dhaoine fásta ar an nGréasán a fháil roimh an logáil isteach a chríochnú." -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "m.sh. cáit" @@ -1510,7 +1547,7 @@ msgstr "m.sh. cáit" msgid "e.g. Alice Roberts" msgstr "m.sh. Cáit Ní Dhuibhir" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "m.sh. cait.com" @@ -1557,7 +1594,7 @@ msgstr "Cuir an t-abhatár in eagar" msgid "Edit image" msgstr "Cuir an íomhá seo in eagar" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "Athraigh mionsonraí an liosta" @@ -1566,8 +1603,8 @@ msgid "Edit Moderation List" msgstr "Athraigh liosta na modhnóireachta" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "Athraigh mo chuid fothaí" @@ -1586,7 +1623,7 @@ msgid "Edit Profile" msgstr "Athraigh an Phróifíl" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "Athraigh na fothaí sábháilte" @@ -1602,16 +1639,16 @@ msgstr "Athraigh d’ainm taispeána" msgid "Edit your profile description" msgstr "Athraigh an cur síos ort sa phróifíl" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "Oideachas" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Ríomhphost" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "Níl 2FA trí ríomhphost ar fáil a thuilleadh" @@ -1619,16 +1656,16 @@ msgstr "Níl 2FA trí ríomhphost ar fáil a thuilleadh" msgid "Email address" msgstr "Seoladh ríomhphoist" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "Seoladh ríomhphoist uasdátaithe" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "Seoladh ríomhphoist uasdátaithe" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "Ríomhphost dearbhaithe" @@ -1676,7 +1713,7 @@ msgstr "Cuir meáin sheachtracha ar fáil" msgid "Enable media players for" msgstr "Cuir seinnteoirí na meán ar fáil le haghaidh" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "Cuir an socrú seo ar siúl le gan ach freagraí i measc na ndaoine a leanann tú a fheiceáil." @@ -1705,7 +1742,7 @@ msgstr "Cuir pasfhocal isteach" msgid "Enter a word or tag" msgstr "Cuir focal na clib isteach" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "Cuir isteach an cód dearbhaithe" @@ -1713,7 +1750,7 @@ msgstr "Cuir isteach an cód dearbhaithe" msgid "Enter the code you received to change your password." msgstr "Cuir isteach an cód a fuair tú chun do phasfhocal a athrú." -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "Cuir isteach an fearann is maith leat a úsáid" @@ -1730,11 +1767,11 @@ msgstr "Cuir isteach do bhreithlá" msgid "Enter your email address" msgstr "Cuir isteach do sheoladh ríomhphoist" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "Cuir isteach do sheoladh ríomhphoist nua thuas" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "Cuir isteach do sheoladh ríomhphoist nua thíos." @@ -1742,11 +1779,15 @@ msgstr "Cuir isteach do sheoladh ríomhphoist nua thíos." msgid "Enter your username and password" msgstr "Cuir isteach do leasainm agus do phasfhocal" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Earráid agus an freagra ar an captcha á phróiseáil." -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "Earráid:" @@ -1755,15 +1796,19 @@ msgstr "Earráid:" msgid "Everybody" msgstr "Chuile dhuine" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "An iomarca tagairtí nó freagraí" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "Fágann sé seo próiseas scrios an chuntais" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "Fágann sé seo athrú do leasainm" @@ -1801,7 +1846,7 @@ msgstr "Íomhánna gnéasacha." msgid "Export my data" msgstr "Easpórtáil mo chuid sonraí" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "Easpórtáil mo chuid sonraí" @@ -1835,7 +1880,7 @@ msgstr "Teip ar phasfhocal aipe a chruthú." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Teip ar chruthú an liosta. Seiceáil do nasc leis an idirlíon agus déan iarracht eile." -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -1847,7 +1892,7 @@ msgstr "Teip ar scriosadh na postála. Déan iarracht eile." msgid "Failed to load GIFs" msgstr "Theip ar lódáil na GIFanna" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -1855,35 +1900,39 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "Teip ar lódáil na bhfothaí molta" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "Níor sábháladh an íomhá: {0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "Fotha" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "Fotha le {0}" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "Fotha as líne" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "Aiseolas" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "Fothaí" @@ -1891,7 +1940,7 @@ msgstr "Fothaí" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Is iad na húsáideoirí a chruthaíonn na fothaí le hábhar is spéis leo a chur ar fáil. Roghnaigh cúpla fotha a bhfuil suim agat iontu." -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Is sainalgartaim iad na fothaí. Cruthaíonn úsáideoirí a bhfuil beagán taithí acu ar chódáil iad. <0/> le tuilleadh eolais a fháil." @@ -1899,15 +1948,19 @@ msgstr "Is sainalgartaim iad na fothaí. Cruthaíonn úsáideoirí a bhfuil beag msgid "Feeds can be topical as well!" msgstr "Is féidir le fothaí a bheith bunaithe ar chúrsaí reatha freisin!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Ábhar an Chomhaid" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Scag ó mo chuid fothaí" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "Ag cur crích air" @@ -1933,7 +1986,7 @@ msgstr "Aimsigh postálacha agus úsáideoirí ar Bluesky" #~ msgid "Finding similar accounts..." #~ msgstr "Cuntais eile atá cosúil leis seo á n-aimsiú..." -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "Mionathraigh an t-ábhar a fheiceann tú ar an bhfotha Following." @@ -1941,11 +1994,11 @@ msgstr "Mionathraigh an t-ábhar a fheiceann tú ar an bhfotha Following." msgid "Fine-tune the discussion threads." msgstr "Mionathraigh na snáitheanna chomhrá" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "Folláine" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "Solúbtha" @@ -2007,7 +2060,7 @@ msgstr "Leanta ag {0}" msgid "Followed users" msgstr "Cuntais a leanann tú" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "Cuntais a leanann tú amháin" @@ -2025,7 +2078,9 @@ msgstr "Leantóirí" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "Á leanúint" @@ -2040,7 +2095,7 @@ msgstr "Roghanna le haghaidh an fhotha Following" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "Roghanna don Fhotha Following" @@ -2053,11 +2108,11 @@ msgstr "Leanann sé/sí thú" msgid "Follows You" msgstr "Leanann sé/sí thú" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "Bia" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Ar chúiseanna slándála, beidh orainn cód dearbhaithe a chur chuig do sheoladh ríomhphoist." @@ -2070,15 +2125,15 @@ msgstr "Ar chúiseanna slándála, ní bheidh tú in ann é seo a fheiceáil ar msgid "Forgot Password" msgstr "Pasfhocal dearmadta" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "Pasfhocal dearmadta?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "Dearmadta?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "Is minic a phostálann siad ábhar nach bhfuil de dhíth" @@ -2095,12 +2150,16 @@ msgstr "Ó <0/>" msgid "Gallery" msgstr "Gailearaí" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Ar aghaidh leat anois!" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "Deargshárú an dlí nó na dtéarmaí seirbhíse" @@ -2109,9 +2168,9 @@ msgstr "Deargshárú an dlí nó na dtéarmaí seirbhíse" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "Ar ais" @@ -2119,12 +2178,13 @@ msgstr "Ar ais" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "Ar ais" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2149,11 +2209,11 @@ msgstr "Abhaile" msgid "Go to next" msgstr "Téigh go dtí an chéad rud eile" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2161,7 +2221,7 @@ msgstr "" msgid "Graphic Media" msgstr "Meáin Ghrafacha" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Leasainm" @@ -2169,7 +2229,7 @@ msgstr "Leasainm" msgid "Haptics" msgstr "Haptaic" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "Ciapadh, trolláil, nó éadulaingt" @@ -2177,7 +2237,7 @@ msgstr "Ciapadh, trolláil, nó éadulaingt" msgid "Hashtag" msgstr "Haischlib" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "Haischlib: #{tag}" @@ -2186,10 +2246,14 @@ msgid "Having trouble?" msgstr "Fadhb ort?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "Cúnamh" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "Seo cúpla cuntas le leanúint duit" @@ -2242,23 +2306,23 @@ msgstr "An bhfuil fonn ort an phostáil seo a chur i bhfolach?" msgid "Hide user list" msgstr "Cuir liosta na gcuntas i bhfolach" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm. Tharla fadhb éigin sa dul i dteagmháil le freastalaí an fhotha seo. Cuir é seo in iúl d’úinéir an fhotha, le do thoil." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm. Is cosúil nach bhfuil freastalaí an fhotha seo curtha le chéile i gceart. Cuir é seo in iúl d’úinéir an fhotha, le do thoil." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm. Is cosúil go bhfuil freastalaí an fhotha as líne. Cuir é seo in iúl d’úinéir an fhotha, le do thoil." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm. Thug freastalaí an fhotha drochfhreagra. Cuir é seo in iúl d’úinéir an fhotha, le do thoil." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm. Ní féidir linn an fotha seo a aimsiú. Is féidir gur scriosadh é." @@ -2271,21 +2335,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "Hmmm, ní raibh muid in ann an tseirbhís modhnóireachta sin a lódáil." #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "Baile" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "Óstach:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Soláthraí óstála" @@ -2293,25 +2357,29 @@ msgstr "Soláthraí óstála" msgid "How should we open this link?" msgstr "Conas ar cheart dúinn an nasc seo a oscailt?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "Tá cód agam" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "Tá cód dearbhaithe agam" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "Tá fearann de mo chuid féin agam" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Má tá an téacs malartach rófhada, athraíonn sé seo go téacs leathnaithe" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "Mura roghnaítear tada, tá sé oiriúnach do gach aois." @@ -2319,7 +2387,7 @@ msgstr "Mura roghnaítear tada, tá sé oiriúnach do gach aois." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Ní duine fásta thú de réir dhlí do thíre, tá ar do thuismitheoir nó do chaomhnóir dlíthiúil na Téarmaí seo a léamh ar do shon." -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "Má scriosann tú an liosta seo, ní bheidh tú in ann é a fháil ar ais." @@ -2331,7 +2399,7 @@ msgstr "Má bhaineann tú an phostáil seo, ní bheidh tú in ann í a fháil ar msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Más mian leat do phasfhocal a athrú, seolfaimid cód duit chun dearbhú gur leatsa an cuntas seo." -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "Mídhleathach agus Práinneach" @@ -2343,7 +2411,7 @@ msgstr "Íomhá" msgid "Image alt text" msgstr "Téacs malartach le híomhá" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "Pearsanú nó maíomh mícheart maidir le cé atá ann nó a gceangal" @@ -2351,7 +2419,7 @@ msgstr "Pearsanú nó maíomh mícheart maidir le cé atá ann nó a gceangal" msgid "Input code sent to your email for password reset" msgstr "Cuir isteach an cód a seoladh chuig do ríomhphost leis an bpasfhocal a athrú" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "Cuir isteach an cód dearbhaithe leis an gcuntas a scriosadh" @@ -2363,27 +2431,27 @@ msgstr "Cuir isteach an t-ainm le haghaidh phasfhocal na haipe" msgid "Input new password" msgstr "Cuir isteach an pasfhocal nua" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "Cuir isteach an pasfhocal chun an cuntas a scriosadh" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "Cuir isteach an cód a chuir muid chugat i dteachtaireacht r-phoist" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "Cuir isteach an pasfhocal ceangailte le {identifier}" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Cuir isteach an leasainm nó an seoladh ríomhphoist a d’úsáid tú nuair a chláraigh tú" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "Cuir isteach do phasfhocal" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "Cuir isteach an soláthraí óstála is fearr leat" @@ -2391,8 +2459,8 @@ msgstr "Cuir isteach an soláthraí óstála is fearr leat" msgid "Input your user handle" msgstr "Cuir isteach do leasainm" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Tá an cód 2FA seo neamhbhailí." @@ -2400,7 +2468,7 @@ msgstr "Tá an cód 2FA seo neamhbhailí." msgid "Invalid or unsupported post record" msgstr "Taifead postála atá neamhbhailí nó gan bhunús" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "Leasainm nó pasfhocal míchruinn" @@ -2412,7 +2480,7 @@ msgstr "Tabhair cuireadh chuig cara leat" msgid "Invite code" msgstr "Cód cuiridh" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Níor glacadh leis an gcód cuiridh. Bí cinnte gur scríobh tú i gceart é agus bain triail eile as." @@ -2432,7 +2500,7 @@ msgstr "Taispeánann sé postálacha ó na daoine a leanann tú nuair a fhoilsí msgid "Jobs" msgstr "Jabanna" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "Iriseoireacht" @@ -2460,11 +2528,11 @@ msgstr "Nótaí faoi úsáideoirí nó ábhar is ea lipéid. Is féidir úsáid #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "cuireadh lipéid ar an {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "Lipéid ar do chuntas" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "Lipéid ar do chuid ábhair" @@ -2512,13 +2580,13 @@ msgstr "Le tuilleadh a fhoghlaim faoi céard atá poiblí ar Bluesky" msgid "Learn more." msgstr "Tuilleadh eolais." -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2543,7 +2611,7 @@ msgstr "Stóráil oidhreachta scriosta, tá ort an aip a atosú anois." msgid "Let's get your password reset!" msgstr "Socraímis do phasfhocal arís!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "Ar aghaidh linn!" @@ -2556,7 +2624,7 @@ msgstr "Sorcha" #~ msgstr "Mol" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Mol an fotha seo" @@ -2610,19 +2678,19 @@ msgstr "Liosta" msgid "List Avatar" msgstr "Abhatár an Liosta" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "Liosta blocáilte" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "Liosta le {0}" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "Scriosadh an liosta" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "Balbhaíodh an liosta" @@ -2630,20 +2698,20 @@ msgstr "Balbhaíodh an liosta" msgid "List Name" msgstr "Ainm an liosta" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "Liosta díbhlocáilte" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "Liosta nach bhfuil balbhaithe níos mó" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "Liostaí" @@ -2652,9 +2720,9 @@ msgid "Load new notifications" msgstr "Lódáil fógraí nua" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "Lódáil postálacha nua" @@ -2681,7 +2749,7 @@ msgstr "Feiceálacht le linn a bheith logáilte amach" msgid "Login to account that is not listed" msgstr "Logáil isteach ar chuntas nach bhfuil liostáilte" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "Brú fada le clár na clibe le haghaidh #{tag} a oscailt" @@ -2689,6 +2757,18 @@ msgstr "Brú fada le clár na clibe le haghaidh #{tag} a oscailt" msgid "Looks like XXXXX-XXXXX" msgstr "Tá cuma XXXXX-XXXXX air" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "Bí cinnte go bhfuil tú ag iarraidh cuairt a thabhairt ar an áit sin!" @@ -2697,6 +2777,11 @@ msgstr "Bí cinnte go bhfuil tú ag iarraidh cuairt a thabhairt ar an áit sin!" msgid "Manage your muted words and tags" msgstr "Bainistigh do chuid clibeanna agus na focail a chuir tú i bhfolach" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2715,30 +2800,35 @@ msgstr "Úsáideoirí luaite" msgid "Menu" msgstr "Clár" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Teachtaireacht ón bhfreastalaí: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -2746,7 +2836,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "Cuntas atá Míthreorach" @@ -2765,13 +2855,13 @@ msgstr "Mionsonraí modhnóireachta" msgid "Moderation list by {0}" msgstr "Liosta modhnóireachta le {0}" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "Liosta modhnóireachta le <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "Liosta modhnóireachta leat" @@ -2813,11 +2903,11 @@ msgstr "Chuir an modhnóir rabhadh ginearálta ar an ábhar." msgid "More" msgstr "Tuilleadh" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Tuilleadh fothaí" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "Tuilleadh roghanna" @@ -2838,7 +2928,7 @@ msgstr "Cuir {truncatedTag} i bhfolach" msgid "Mute Account" msgstr "Cuir an cuntas i bhfolach" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "Cuir na cuntais i bhfolach" @@ -2854,16 +2944,16 @@ msgstr "Ná cuir i bhfolach ach i gclibeanna" msgid "Mute in text & tags" msgstr "Cuir i bhfolach i dtéacs agus i gclibeanna" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "Cuir an liosta i bhfolach" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "An bhfuil fonn ort na cuntais seo a chur i bhfolach" @@ -2910,7 +3000,7 @@ msgstr "Curtha i bhfolach ag \"{0}\"" msgid "Muted words & tags" msgstr "Focail ⁊ clibeanna a cuireadh i bhfolach" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Tá an cur i bhfolach príobháideach. Is féidir leis na cuntais a chuir tú i bhfolach do chuid postálacha a fheiceáil agus is féidir leo scríobh chugat ach ní fheicfidh tú a gcuid postálacha eile ná aon fhógraí uathu." @@ -2919,11 +3009,11 @@ msgstr "Tá an cur i bhfolach príobháideach. Is féidir leis na cuntais a chui msgid "My Birthday" msgstr "Mo Bhreithlá" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "Mo Chuid Fothaí" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "Mo Phróifíl" @@ -2944,27 +3034,27 @@ msgstr "Ainm" msgid "Name is required" msgstr "Tá an t-ainm riachtanach" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "Sáraíonn an tAinm nó an Cur Síos Caighdeáin an Phobail" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "Nádúr" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Téann sé seo chuig an gcéad scáileán eile" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "Téann sé seo chuig do phróifíl" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "An bhfuil tú ag iarraidh sárú cóipchirt a thuairisciú?" @@ -2972,11 +3062,11 @@ msgstr "An bhfuil tú ag iarraidh sárú cóipchirt a thuairisciú?" #~ msgid "Never lose access to your followers and data." #~ msgstr "Ná bíodh gan fáil ar do chuid leantóirí ná ar do chuid dáta go deo." -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "Ná bíodh gan fáil ar do chuid leantóirí ná ar do chuid dáta go deo." -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "Is cuma, cruthaigh leasainm dom" @@ -2990,8 +3080,8 @@ msgid "New" msgstr "Nua" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -3007,22 +3097,22 @@ msgstr "Pasfhocal Nua" msgid "New Password" msgstr "Pasfhocal Nua" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "Postáil nua" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "Postáil nua" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "Postáil nua" @@ -3035,14 +3125,14 @@ msgstr "Liosta Nua d’Úsáideoirí" msgid "Newest replies first" msgstr "Na freagraí is déanaí ar dtús" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "Nuacht" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3060,21 +3150,21 @@ msgstr "Ar aghaidh" msgid "Next image" msgstr "An chéad íomhá eile" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "Níl" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "Gan chur síos" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "Gan Phainéal DNS" @@ -3090,8 +3180,8 @@ msgstr "Ní leantar {0} níos mó" msgid "No longer than 253 characters" msgstr "Gan a bheith níos faide na 253 charachtar" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3108,7 +3198,7 @@ msgstr "Gan torthaí" msgid "No results found" msgstr "Gan torthaí" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "Gan torthaí ar “{query}”" @@ -3153,8 +3243,8 @@ msgstr "Lomnochtacht Neamhghnéasach" msgid "Not Found" msgstr "Ní bhfuarthas é sin" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "Ní anois" @@ -3171,22 +3261,22 @@ msgstr "Nod leat: is gréasán oscailte poiblí Bluesky. Ní chuireann an socrú #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "Fógraí" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Lomnochtacht" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "Lomnochtacht nó ábhar do dhaoine fásta nach bhfuil an lipéad sin air" @@ -3203,7 +3293,7 @@ msgstr "As" msgid "Oh no!" msgstr "Úps!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "Úps! Theip ar rud éigin." @@ -3228,6 +3318,10 @@ msgstr "Atosú an chláraithe" msgid "One or more images is missing alt text." msgstr "Tá téacs malartach de dhíth ar íomhá amháin nó níos mó acu." +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "Ní féidir ach le {0} freagra a thabhairt." @@ -3246,16 +3340,20 @@ msgstr "Úps! Theip ar rud éigin!" msgid "Oops!" msgstr "Úps!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "Oscail" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "Oscail roghnóir na n-emoji" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "Oscail roghchlár na bhfothaí" @@ -3358,7 +3456,7 @@ msgstr "Osclaíonn sé seo an fhuinneog le stór sonraí do chuntais Bluesky a msgid "Opens modal for email verification" msgstr "Osclaíonn sé seo fuinneog le deimhniú an ríomhphoist" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "Osclaíonn sé seo an fhuinneog le sainfhearann a úsáid" @@ -3366,12 +3464,12 @@ msgstr "Osclaíonn sé seo an fhuinneog le sainfhearann a úsáid" msgid "Opens moderation settings" msgstr "Osclaíonn sé seo socruithe na modhnóireachta" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "Osclaíonn sé seo an fhoirm leis an bpasfhocal a athrú" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "Osclaíonn sé seo an scáileán leis na fothaí sábháilte a athrú" @@ -3391,7 +3489,7 @@ msgstr "Osclaíonn sé seo roghanna don fhotha Following" msgid "Opens the linked website" msgstr "Osclaíonn sé seo an suíomh gréasáin atá nasctha" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3412,6 +3510,7 @@ msgstr "Osclaíonn sé seo roghanna na snáitheanna" msgid "Option {0} of {numItems}" msgstr "Rogha {0} as {numItems}" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "Is féidir tuilleadh eolais a chur ar fáil thíos:" @@ -3420,7 +3519,7 @@ msgstr "Is féidir tuilleadh eolais a chur ar fáil thíos:" msgid "Or combine these options:" msgstr "Nó cuir na roghanna seo le chéile:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "Eile" @@ -3441,10 +3540,10 @@ msgstr "Leathanach gan aimsiú" msgid "Page Not Found" msgstr "Leathanach gan aimsiú" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "Pasfhocal" @@ -3476,32 +3575,32 @@ msgstr "Na daoine atá leanta ag @{0}" msgid "People following @{0}" msgstr "Na leantóirí atá ag @{0}" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "Tá cead de dhíth le rolla an cheamara a oscailt." -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Ní bhfuarthas cead le rolla an cheamara a oscailt. Athraigh socruithe an chórais len é seo a chur ar fáil, le do thoil." -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "Peataí" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Pictiúir le haghaidh daoine fásta." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "Greamaigh le baile" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "Greamaigh le Baile" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "Fothaí greamaithe" @@ -3526,19 +3625,19 @@ msgstr "Seinn an físeán" msgid "Plays the GIF" msgstr "Seinneann sé seo an GIF" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "Roghnaigh do leasainm, le do thoil." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "Roghnaigh do phasfhocal, le do thoil." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "Déan an captcha, le do thoil." -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Dearbhaigh do ríomhphost roimh é a athrú. Riachtanas sealadach é seo le linn dúinn acmhainní a chur isteach le haghaidh uasdátú an ríomhphoist. Scriosfar é seo roimh i bhfad." @@ -3554,15 +3653,15 @@ msgstr "Cuir isteach ainm nach bhfuil in úsáid cheana féin le haghaidh Phasfh msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Cuir focal, clib, nó frása inghlactha isteach le cur i bhfolach" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "Cuir isteach do sheoladh ríomhphoist, le do thoil." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "Cuir isteach do phasfhocal freisin, le do thoil." -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Abair linn, le do thoil, cén fáth a gcreideann tú gur chuir {0} an lipéad seo i bhfeidhm go mícheart" @@ -3570,7 +3669,7 @@ msgstr "Abair linn, le do thoil, cén fáth a gcreideann tú gur chuir {0} an li msgid "Please sign in as @{0}" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Dearbhaigh do ríomhphost, le do thoil." @@ -3578,11 +3677,11 @@ msgstr "Dearbhaigh do ríomhphost, le do thoil." msgid "Please wait for your link card to finish loading" msgstr "Fan le lódáil ar fad do chárta naisc, le do thoil." -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "Polaitíocht" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "Pornagrafaíocht" @@ -3650,7 +3749,7 @@ msgstr "Postálacha" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Is féidir postálacha a chuir i bhfolach de bharr a gcuid téacs, a gcuid clibeanna, nó an dá rud." -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "Cuireadh na postálacha i bhfolach" @@ -3664,15 +3763,15 @@ msgstr "Brúigh leis an soláthraí óstála a athrú" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "Brúigh le iarracht eile a dhéanamh" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3695,7 +3794,7 @@ msgstr "Príobháideacht" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Polasaí príobháideachta" @@ -3708,11 +3807,11 @@ msgstr "Á phróiseáil..." msgid "profile" msgstr "próifíl" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "Próifíl" @@ -3724,7 +3823,7 @@ msgstr "Próifíl uasdátaithe" msgid "Protect your account by verifying your email." msgstr "Dearbhaigh do ríomhphost le do chuntas a chosaint." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "Poiblí" @@ -3766,6 +3865,10 @@ msgstr "Randamach" msgid "Ratios" msgstr "Cóimheasa" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "Cuardaigh a Rinneadh le Déanaí" @@ -3779,11 +3882,11 @@ msgstr "Cuardaigh a Rinneadh le Déanaí" #~ msgstr "Cuntais mholta" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Scrios" @@ -3799,22 +3902,25 @@ msgstr "Bain an tAbhatár Amach" msgid "Remove Banner" msgstr "Bain an Fógra Meirge Amach" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "Bain an fotha de" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "An bhfuil fonn ort an fotha a bhaint?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "Bain de mo chuid fothaí" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "É sin a bhaint de mo chuid fothaí?" @@ -3838,7 +3944,7 @@ msgstr "" msgid "Remove repost" msgstr "Scrios an athphostáil" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "Bain an fotha seo de do chuid fothaí sábháilte" @@ -3847,11 +3953,13 @@ msgstr "Bain an fotha seo de do chuid fothaí sábháilte" msgid "Removed from list" msgstr "Baineadh den liosta é" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "Baineadh de do chuid fothaí é" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "Baineadh de do chuid fothaí é" @@ -3863,6 +3971,11 @@ msgstr "Baineann sé seo an mhionsamhail réamhshocraithe de {0}" msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "Freagraí" @@ -3876,7 +3989,7 @@ msgctxt "action" msgid "Reply" msgstr "Freagair" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "Scagairí freagra" @@ -3897,24 +4010,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Déan gearán faoi chuntas" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Tuairiscigh comhrá" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "Déan gearán faoi fhotha" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "Déan gearán faoi liosta" @@ -3927,30 +4046,36 @@ msgstr "" msgid "Report post" msgstr "Déan gearán faoi phostáil" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "Déan gearán faoin ábhar seo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "Déan gearán faoin fhotha seo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "Déan gearán faoin liosta seo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "Déan gearán faoin phostáil seo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "Déan gearán faoin úsáideoir seo" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "Athphostáil" @@ -3988,8 +4113,8 @@ msgstr "— d'athphostáil sé/sí do phostáil" msgid "Reposts of this post" msgstr "Athphostálacha den phostáil seo" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "Iarr Athrú" @@ -4002,7 +4127,7 @@ msgstr "Iarr Cód" msgid "Require alt text before posting" msgstr "Bíodh téacs malartach ann roimh phostáil i gcónaí" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "Bíodh cód ríomhphoist ag teastáil chun logáil isteach" @@ -4010,8 +4135,8 @@ msgstr "Bíodh cód ríomhphoist ag teastáil chun logáil isteach" msgid "Required for this provider" msgstr "Riachtanach don soláthraí seo" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "Athsheol an ríomhphost" @@ -4045,7 +4170,7 @@ msgstr "Athshocraíonn sé seo an clárú" msgid "Resets the preferences state" msgstr "Athshocraíonn sé seo na roghanna" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "Baineann sé seo triail eile as an logáil isteach" @@ -4054,13 +4179,14 @@ msgstr "Baineann sé seo triail eile as an logáil isteach" msgid "Retries the last action, which errored out" msgstr "Baineann sé seo triail eile as an ngníomh is déanaí, ar theip air" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4068,11 +4194,11 @@ msgid "Retry" msgstr "Bain triail eile as" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "Fill ar an leathanach roimhe seo" @@ -4081,20 +4207,20 @@ msgid "Returns to home page" msgstr "Filleann sé seo abhaile" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "Filleann sé seo ar an leathanach roimhe seo" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Sábháil" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4112,7 +4238,7 @@ msgstr "Sábháil do bhreithlá" msgid "Save Changes" msgstr "Sábháil na hathruithe" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "Sábháil an leasainm nua" @@ -4120,16 +4246,16 @@ msgstr "Sábháil an leasainm nua" msgid "Save image crop" msgstr "Sábháil an pictiúr bearrtha" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "Sábháil i mo chuid fothaí" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "Fothaí Sábháilte" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4137,7 +4263,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "Sábháilte i do rolla ceamara." -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "Sábháilte le mo chuid fothaí" @@ -4145,7 +4272,7 @@ msgstr "Sábháilte le mo chuid fothaí" msgid "Saves any changes to your profile" msgstr "Sábhálann sé seo na hathruithe a rinne tú ar do phróifíl" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "Sábhálann sé seo athrú an leasainm go {handle}" @@ -4153,11 +4280,11 @@ msgstr "Sábhálann sé seo athrú an leasainm go {handle}" msgid "Saves image crop settings" msgstr "Sábhálann sé seo na socruithe le haghaidh íomhánna a laghdú" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "Eolaíocht" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "Fill ar an mbarr" @@ -4170,12 +4297,12 @@ msgstr "Fill ar an mbarr" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "Cuardaigh" @@ -4217,7 +4344,7 @@ msgstr "" msgid "Search Tenor" msgstr "Cuardaigh Tenor" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "Céim Slándála de dhíth" @@ -4242,7 +4369,7 @@ msgstr "Féach na postálacha <0>{displayTag} leis an úsáideoir seo" msgid "See profile" msgstr "Féach ar an bpróifíl" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "Féach ar an treoirleabhar seo" @@ -4254,10 +4381,22 @@ msgstr "Féach ar an treoirleabhar seo" msgid "Select {item}" msgstr "Roghnaigh {item}" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "Roghnaigh cuntas" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Roghnaigh ó chuntas atá ann" @@ -4286,6 +4425,10 @@ msgstr "Roghnaigh rogha {i} as {numItems}" msgid "Select some accounts below to follow" msgstr "Roghnaigh cúpla cuntas le leanúint" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "Roghnaigh na seirbhísí modhnóireachta le tuairisciú chuige" @@ -4314,7 +4457,7 @@ msgstr "Roghnaigh teanga an téacs a thaispeánfar san aip." msgid "Select your date of birth" msgstr "Roghnaigh do dháta breithe" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "Roghnaigh na rudaí a bhfuil suim agat iontu as na roghanna thíos" @@ -4330,30 +4473,32 @@ msgstr "Roghnaigh do phríomhfhothaí algartamacha" msgid "Select your secondary algorithmic feeds" msgstr "Roghnaigh do chuid fothaí algartamacha tánaisteacha" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Seol ríomhphost dearbhaithe" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "Seol ríomhphost" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "Seol ríomhphost" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "Seol aiseolas" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4363,12 +4508,12 @@ msgstr "Seol an tuairisc" msgid "Send report to {0}" msgstr "Seol an tuairisc chuig {0}" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "Seol ríomhphost dearbhaithe" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "Seolann sé seo ríomhphost ina bhfuil cód dearbhaithe chun an cuntas a scriosadh" @@ -4384,15 +4529,15 @@ msgstr "Socraigh do bhreithlá" msgid "Set new password" msgstr "Socraigh pasfhocal nua" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Roghnaigh “Níl” chun postálacha athluaite a chur i bhfolach i d'fhotha. Feicfidh tú athphostálacha fós." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Roghnaigh “Níl” chun freagraí a chur i bhfolach i d'fhotha." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Roghnaigh “Níl” chun athphostálacha a chur i bhfolach i d'fhotha." @@ -4400,7 +4545,7 @@ msgstr "Roghnaigh “Níl” chun athphostálacha a chur i bhfolach i d'fhotha." msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Roghnaigh “Tá” le freagraí a thaispeáint i snáitheanna. Is gné thurgnamhach é seo." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Roghnaigh “Tá” le samplaí ó do chuid fothaí sábháilte a thaispeáint in ”Á Leanúint”. Is gné thurgnamhach é seo." @@ -4408,7 +4553,7 @@ msgstr "Roghnaigh “Tá” le samplaí ó do chuid fothaí sábháilte a thaisp msgid "Set up your account" msgstr "Socraigh do chuntas" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Socraíonn sé seo d'ainm úsáideora ar Bluesky" @@ -4451,13 +4596,13 @@ msgstr "Socraíonn sé seo cóimheas treoíochta na híomhá go leathan" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "Socruithe" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "Gníomhaíocht ghnéasach nó lomnochtacht gháirsiúil." @@ -4465,7 +4610,7 @@ msgstr "Gníomhaíocht ghnéasach nó lomnochtacht gháirsiúil." msgid "Sexually Suggestive" msgstr "Graosta" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "Comhroinn" @@ -4475,7 +4620,7 @@ msgstr "Comhroinn" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "Comhroinn" @@ -4485,8 +4630,8 @@ msgstr "Comhroinn" msgid "Share anyway" msgstr "Comhroinn mar sin féin" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "Comhroinn an fotha" @@ -4549,11 +4694,11 @@ msgstr "Tuilleadh" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Taispeáin postálacha ó mo chuid fothaí" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "Taispeáin postálacha athluaite" @@ -4569,7 +4714,7 @@ msgstr "Taispeáin postálacha athluaite san fhotha “Á Leanúint”" msgid "Show re-posts in Following feed" msgstr "Taispeáin athphostálacha san fhotha “Á Leanúint”" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "Taispeáin freagraí" @@ -4589,7 +4734,7 @@ msgstr "Taispeáin freagraí san fhotha “Á Leanúint”" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Taispeáin freagraí a bhfuil ar a laghad {value} {0} acu" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "Taispeáin athphostálacha" @@ -4622,17 +4767,17 @@ msgstr "Taispeánann sé seo postálacha ó {0} i d'fhotha" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4660,12 +4805,12 @@ msgstr "Logáil isteach i Bluesky nó cruthaigh cuntas nua" msgid "Sign out" msgstr "Logáil amach" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4690,27 +4835,31 @@ msgstr "Logáilte isteach mar" msgid "Signed in as @{0}" msgstr "Logáilte isteach mar @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "Ná bac leis" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "Ná bac leis an bpróiseas seo" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "Forbairt Bogearraí" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Chuaigh rud éigin ó rath. Bain triail eile as." -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "Ár leithscéal. Chuaigh do sheisiún i léig. Ní mór duit logáil isteach arís." @@ -4722,19 +4871,20 @@ msgstr "Sórtáil freagraí" msgid "Sort replies to the same post by:" msgstr "Sórtáil freagraí ar an bpostáil chéanna de réir:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "Foinse:" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "Turscar" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "Turscar; an iomarca tagairtí nó freagraí" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "Spórt" @@ -4771,12 +4921,12 @@ msgstr "Stóráil scriosta, tá ort an aip a atosú anois." msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Seol" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "Liostáil" @@ -4797,7 +4947,7 @@ msgstr "Liostáil leis an bhfotha {0}" msgid "Subscribe to this labeler" msgstr "Glac síntiús leis an lipéadóir seo" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "Liostáil leis an liosta seo" @@ -4809,7 +4959,7 @@ msgstr "Cuntais le leanúint" msgid "Suggested for you" msgstr "Molta duit" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "Gáirsiúil" @@ -4856,7 +5006,7 @@ msgstr "Ard" msgid "Tap to view fully" msgstr "Tapáil leis an rud iomlán a fheiceáil" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "Teic" @@ -4868,13 +5018,13 @@ msgstr "Téarmaí" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Téarmaí Seirbhíse" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "Sárú ar chaighdeáin an phobail atá sna téarmaí a úsáideadh" @@ -4882,15 +5032,16 @@ msgstr "Sárú ar chaighdeáin an phobail atá sna téarmaí a úsáideadh" msgid "text" msgstr "téacs" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "Réimse téacs" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "Go raibh maith agat. Seoladh do thuairisc." -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "Ina bhfuil an méid seo a leanas:" @@ -4915,11 +5066,15 @@ msgstr "Bogadh Treoirlínte an Phobail go dtí <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Bogadh an Polasaí Cóipchirt go dtí <0/>" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "Cuireadh na lipéid seo a leanas le do chuntas." -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "Cuireadh na lipéid seo a leanas le do chuid ábhair." @@ -4949,15 +5104,17 @@ msgid "There are many feeds to try:" msgstr "Tá a lán fothaí ann le blaiseadh:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Bhí fadhb ann maidir le dul i dteagmháil leis an bhfreastalaí. Seiceáil do cheangal leis an idirlíon agus bain triail eile as, le do thoil." -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Bhí fadhb ann maidir leis an bhfotha seo a bhaint. Seiceáil do cheangal leis an idirlíon agus bain triail eile as, le do thoil." -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Bhí fadhb ann maidir le huasdátú do chuid fothaí. Seiceáil do cheangal leis an idirlíon agus bain triail eile as, le do thoil." @@ -4969,16 +5126,17 @@ msgstr "Bhí fadhb ann maidir le teagmháil a dhéanamh le Tenor." msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "Bhí fadhb ann maidir le teagmháil a dhéanamh leis an bhfreastalaí" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "Bhí fadhb ann maidir le teagmháil a dhéanamh le do fhreastálaí" @@ -4986,7 +5144,7 @@ msgstr "Bhí fadhb ann maidir le teagmháil a dhéanamh le do fhreastálaí" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Bhí fadhb ann maidir le fógraí a fháil. Tapáil anseo le triail eile a bhaint as." -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Bhí fadhb ann maidir le postálacha a fháil. Tapáil anseo le triail eile a bhaint as." @@ -4999,6 +5157,7 @@ msgstr "Bhí fadhb ann maidir leis an liosta a fháil. Tapáil anseo le triail e msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Bhí fadhb ann maidir le do chuid liostaí a fháil. Tapáil anseo le triail eile a bhaint as." +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Níor seoladh do thuairisc. Seiceáil do nasc leis an idirlíon, le do thoil." @@ -5025,10 +5184,10 @@ msgstr "Bhí fadhb ann maidir le do chuid pasfhocal don aip a fháil" msgid "There was an issue! {0}" msgstr "Bhí fadhb ann! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "Bhí fadhb ann. Seiceáil do cheangal leis an idirlíon, le do thoil, agus bain triail eile as." @@ -5053,7 +5212,7 @@ msgstr "Cuireadh bratach leis an {screenDescription} seo:" msgid "This account has requested that users sign in to view their profile." msgstr "Ní mór duit logáil isteach le próifíl an chuntais seo a fheiceáil." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "Cuirfear an t-achomharc seo chuig <0>{0}." @@ -5078,21 +5237,21 @@ msgstr "Tá an t-ábhar seo ar fáil ó {0}. An bhfuil fonn ort na meáin sheach msgid "This content is not available because one of the users involved has blocked the other." msgstr "Níl an t-ábhar seo le feiceáil toisc gur bhlocáil duine de na húsáideoirí an duine eile." -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "Níl an t-ábhar seo le feiceáil gan chuntas Bluesky." -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Tá an ghné seo á tástáil fós. Tig leat níos mó faoi chartlanna easpórtáilte a léamh sa <0>bhlagphost seo." -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Tá ráchairt an-mhór ar an bhfotha seo faoi láthair. Níl sé ar fáil anois díreach dá bhrí sin. Bain triail eile as níos déanaí, le do thoil." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "Tá an fotha seo folamh!" @@ -5100,11 +5259,15 @@ msgstr "Tá an fotha seo folamh!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Tá an fotha seo folamh! Is féidir go mbeidh ort tuilleadh úsáideoirí a leanúint nó do shocruithe teanga a athrú." +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Ní roinntear an t-eolas seo le húsáideoirí eile." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "Tá sé seo tábhachtach má bhíonn ort do ríomhphost nó do phasfhocal a athrú." @@ -5120,6 +5283,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Ní dúirt an lipéadóir seo céard iad na lipéid a fhoilsíonn sé, agus is féidir nach bhfuil sé i mbun gnó." @@ -5128,7 +5295,7 @@ msgstr "Ní dúirt an lipéadóir seo céard iad na lipéid a fhoilsíonn sé, a msgid "This link is taking you to the following website:" msgstr "Téann an nasc seo go dtí an suíomh idirlín seo:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "Tá an liosta seo folamh!" @@ -5161,7 +5328,7 @@ msgstr "Níl an phróifíl seo le feiceáil ach ag úsáideoirí atá logáilte msgid "This service has not provided terms of service or a privacy policy." msgstr "Níor chuir an tseirbhís seo téarmaí seirbhíse ná polasaí príobháideachta ar fáil." -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "Ba cheart dó seo taifead fearainn a chruthú ag:" @@ -5215,10 +5382,14 @@ msgstr "Modh Snáithithe" msgid "Threads Preferences" msgstr "Roghanna Snáitheanna" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "Chun 2FA trí ríomhphoist a dhíchumasú, dearbhaigh gur leatsa an seoladh ríomhphoist." +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "Cé chuige ar mhaith leat an tuairisc seo a sheoladh?" @@ -5260,25 +5431,25 @@ msgstr "Bain triail eile as" msgid "Two-factor authentication" msgstr "Fíordheimhniú déshraithe (2FA)" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Clóscríobh:" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "Díbhlocáil an liosta" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "Ná coinnigh an liosta sin i bhfolach níos mó" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5288,7 +5459,7 @@ msgstr "Ní féidir teagmháil a dhéanamh le do sheirbhís. Seiceáil do cheang #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "Díbhlocáil" @@ -5309,7 +5480,7 @@ msgstr "An bhfuil fonn ort an cuntas seo a dhíbhlocáil?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Cuir stop leis an athphostáil" @@ -5336,12 +5507,12 @@ msgstr "Dílean an cuntas seo" #~ msgid "Unlike" #~ msgstr "Dímhol" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "Dímhol an fotha seo" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "Ná coinnigh i bhfolach" @@ -5358,7 +5529,7 @@ msgstr "Ná coinnigh an cuntas seo i bhfolach níos mó" msgid "Unmute all {displayTag} posts" msgstr "Ná coinnigh aon phostáil {displayTag} i bhfolach" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5367,16 +5538,16 @@ msgstr "" msgid "Unmute thread" msgstr "Ná coinnigh an snáithe seo i bhfolach níos mó" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "Díghreamaigh" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "Díghreamaigh ón mbaile" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "Díghreamaigh an liosta modhnóireachta" @@ -5388,7 +5559,12 @@ msgstr "Díliostáil" msgid "Unsubscribe from this labeler" msgstr "Díliostáil ón lipéadóir seo" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "Ábhar graosta nach mian liom" @@ -5396,7 +5572,7 @@ msgstr "Ábhar graosta nach mian liom" msgid "Update {displayName} in Lists" msgstr "Uasdátú {displayName} sna Liostaí" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "Déan uasdátú go {handle}" @@ -5404,7 +5580,11 @@ msgstr "Déan uasdátú go {handle}" msgid "Updating..." msgstr "Á uasdátú…" -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Uaslódáil comhad téacs chuig:" @@ -5427,7 +5607,7 @@ msgstr "Uaslódáil ó Chomhaid" msgid "Upload from Library" msgstr "Uaslódáil ó Leabharlann" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "Bain úsáid as comhad ar do fhreastalaí" @@ -5435,11 +5615,11 @@ msgstr "Bain úsáid as comhad ar do fhreastalaí" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Bain úsáid as pasfhocail na haipe le logáil isteach ar chliaint eile de chuid Bluesky gan fáil iomlán ar do chuntas ná do phasfhocal a thabhairt dóibh." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "Bain feidhm as bsky.social mar sholáthraí óstála" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "Úsáid an soláthraí réamhshocraithe" @@ -5453,7 +5633,11 @@ msgstr "Úsáid an brabhsálaí san aip seo" msgid "Use my default browser" msgstr "Úsáid an brabhsálaí réamhshocraithe atá agam" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Bain feidhm as an bpainéal DNS" @@ -5491,13 +5675,13 @@ msgstr "Blocálann an t-úsáideoir seo thú" msgid "User list by {0}" msgstr "Liosta úsáideoirí le {0}" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "Liosta úsáideoirí le <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "Liosta úsáideoirí leat" @@ -5513,11 +5697,11 @@ msgstr "Liosta úsáideoirí uasdátaithe" msgid "User Lists" msgstr "Liostaí Úsáideoirí" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "Ainm úsáideora nó ríomhphost" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "Úsáideoirí" @@ -5533,7 +5717,7 @@ msgstr "Úsáideoirí in ”{0}“" msgid "Users that have liked this content or profile" msgstr "Úsáideoirí ar thaitin an t-ábhar nó an próifíl seo leo" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "Luach:" @@ -5541,7 +5725,7 @@ msgstr "Luach:" #~ msgid "Verify {0}" #~ msgstr "Dearbhaigh {0}" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -5557,16 +5741,16 @@ msgstr "Dearbhaigh mo ríomhphost" msgid "Verify My Email" msgstr "Dearbhaigh Mo Ríomhphost" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "Dearbhaigh an Ríomhphost Nua" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "Dearbhaigh Do Ríomhphost" @@ -5578,7 +5762,7 @@ msgstr "Dearbhaigh Do Ríomhphost" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "Físchluichí" @@ -5590,11 +5774,11 @@ msgstr "Féach ar an abhatár atá ag {0}" msgid "View debug entry" msgstr "Féach ar an iontráil dífhabhtaithe" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "Féach ar shonraí" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "Féach ar shonraí maidir le sárú cóipchirt a thuairisciú" @@ -5602,13 +5786,13 @@ msgstr "Féach ar shonraí maidir le sárú cóipchirt a thuairisciú" msgid "View full thread" msgstr "Féach ar an snáithe iomlán" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "Féach ar eolas faoi na lipéid seo" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Féach ar an bpróifíl" @@ -5620,7 +5804,7 @@ msgstr "Féach ar an abhatár" msgid "View the labeling service provided by @{0}" msgstr "Féach ar an tseirbhís lipéadaithe atá curtha ar fáil ag @{0}" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "Féach ar úsáideoirí ar thaitin an fotha seo leo" @@ -5648,11 +5832,15 @@ msgstr "Tabhair foláireamh faoi ábhar agus scag as fothaí" msgid "We couldn't find any results for that hashtag." msgstr "Níor aimsigh muid toradh ar bith don haischlib sin." +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Measaimid go mbeidh do chuntas réidh i gceann {estimatedTime}" -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Tá súil againn go mbeidh an-chraic agat anseo. Ná déan dearmad go bhfuil Bluesky:" @@ -5676,7 +5864,7 @@ msgstr "Theip orainn do rogha maidir le dáta breithe a lódáil. Bain triail as msgid "We were unable to load your configured labelers at this time." msgstr "Theip orainn na lipéadóirí a roghnaigh tú a lódáil faoi láthair." -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Níorbh fhéidir linn ceangal a bhunú. Bain triail eile as do chuntas a shocrú. Má mhaireann an fhadhb, ní gá duit an próiseas seo a chur i gcrích." @@ -5684,7 +5872,7 @@ msgstr "Níorbh fhéidir linn ceangal a bhunú. Bain triail eile as do chuntas a msgid "We will let you know when your account is ready." msgstr "Déarfaidh muid leat nuair a bheidh do chuntas réidh." -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "Bainfimid úsáid as seo chun an suíomh a chur in oiriúint duit." @@ -5717,7 +5905,7 @@ msgstr "Tá brón orainn! Ní féidir síntiúis a ghlacadh ach le deich lipéad #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Fáilte go <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "Cad iad na rudaí a bhfuil suim agat iontu?" @@ -5740,23 +5928,31 @@ msgstr "Cad iad na teangacha ba mhaith leat a fheiceáil i do chuid fothaí alga msgid "Who can reply" msgstr "Cé atá in ann freagra a thabhairt" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an t-ábhar seo?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an bhfotha seo?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an liosta seo?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an bpostáil seo?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an úsáideoir seo?" @@ -5764,8 +5960,8 @@ msgstr "Cén fáth gur cheart athbhreithniú a dhéanamh ar an úsáideoir seo?" msgid "Wide" msgstr "Leathan" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -5778,21 +5974,21 @@ msgstr "Scríobh postáil" msgid "Write your reply" msgstr "Scríobh freagra" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "Scríbhneoirí" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Tá" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -5826,15 +6022,15 @@ msgstr "Níl aon leantóir agat." msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Níl aon chóid chuiridh agat fós! Cuirfidh muid cúpla cód chugat tar éis duit beagán ama a chaitheamh anseo." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "Níl aon fhothaí greamaithe agat." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "Níl aon fhothaí sábháilte agat!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "Níl aon fhothaí sábháilte agat!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "Níl aon fhothaí sábháilte agat." @@ -5881,7 +6077,7 @@ msgstr "Níl aon fhothaí agat." msgid "You have no lists." msgstr "Níl aon liostaí agat." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -5901,7 +6097,11 @@ msgstr "Níor chuir tú aon chuntas i bhfolach fós. Le cuntas a chur i bhfolach msgid "You haven't muted any words or tags yet" msgstr "Níor chuir tú aon fhocal ná clib i bhfolach fós" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Is féidir leat achomharc a dhéanamh maidir leis na lipéad seo má shíleann tú gur cuireadh in earráid iad." @@ -5929,7 +6129,7 @@ msgstr "Gheobhaidh tú fógraí don snáithe seo anois." msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Gheobhaidh tú teachtaireacht ríomhphoist le “cód athshocraithe” ann. Cuir an cód sin isteach anseo, ansin cuir do phasfhocal nua isteach." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -5943,7 +6143,7 @@ msgstr "Tá sé faoi do stiúir" msgid "You're in line" msgstr "Tá tú sa scuaine" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "Tá tú réidh!" @@ -5964,7 +6164,7 @@ msgstr "Do chuntas" msgid "Your account has been deleted" msgstr "Scriosadh do chuntas" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Is féidir cartlann do chuntais, a bhfuil na taifid phoiblí uile inti, a íoslódáil mar chomhad “CAR”. Ní bheidh aon mheáin leabaithe (íomhánna, mar shampla) ná do shonraí príobháideacha inti. Ní mór iad a fháil ar dhóigh eile." @@ -5981,16 +6181,16 @@ msgid "Your default feed is \"Following\"" msgstr "Is é “Following” d’fhotha réamhshocraithe" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "Is cosúil go bhfuil do ríomhphost neamhbhailí." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "Uasdátaíodh do sheoladh ríomhphoist ach níor dearbhaíodh é. An chéad chéim eile anois ná do sheoladh nua a dhearbhú, le do thoil." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Níor dearbhaíodh do sheoladh ríomhphoist fós. Is tábhachtach an chéim shábháilteachta é sin agus molaimid é." @@ -6002,7 +6202,7 @@ msgstr "Tá an fotha de na daoine a leanann tú folamh! Lean tuilleadh úsáideo msgid "Your full handle will be" msgstr "Do leasainm iomlán anseo:" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "Do leasainm iomlán anseo: <0>@{0}" @@ -6018,7 +6218,7 @@ msgstr "Athraíodh do phasfhocal!" msgid "Your post has been published" msgstr "Foilsíodh do phostáil" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Tá do chuid postálacha, moltaí, agus blocálacha poiblí. Is príobháideach iad na cuntais a chuireann tú i bhfolach." @@ -6030,6 +6230,10 @@ msgstr "Do phróifíl" msgid "Your reply has been published" msgstr "Foilsíodh do fhreagra" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Do leasainm" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index 582504e83c..8ea3352c61 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "" @@ -25,15 +25,15 @@ msgstr "" #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -55,7 +55,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -75,6 +75,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -108,15 +112,15 @@ msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -124,11 +128,11 @@ msgstr "" msgid "<0/> members" msgstr "" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -157,7 +161,7 @@ msgstr "" #~ msgid "<0>Here is your app password. Use this to sign into the other app along with your handle." #~ msgstr "<0>इधर आपका ऐप पासवर्ड है। इसे अपने हैंडल के साथ दूसरे ऐप में साइन करने के लिए उपयोग करें।।" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -169,7 +173,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "" @@ -208,7 +212,7 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -259,15 +263,15 @@ msgstr "" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "ऐड करो" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "सामग्री चेतावनी जोड़ें" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "इस सूची में किसी को जोड़ें" @@ -279,6 +283,7 @@ msgstr "अकाउंट जोड़ें" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -286,8 +291,8 @@ msgid "Add alt text" msgstr "इस फ़ोटो में विवरण जोड़ें" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -320,7 +325,15 @@ msgstr "" msgid "Add muted words and tags" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "अपने डोमेन में निम्नलिखित DNS रिकॉर्ड जोड़ें:" @@ -329,7 +342,7 @@ msgstr "अपने डोमेन में निम्नलिखित DN msgid "Add to Lists" msgstr "सूचियों में जोड़ें" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "इस फ़ीड को सहेजें" @@ -342,17 +355,17 @@ msgstr "इस फ़ीड को सहेजें" msgid "Added to list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "पसंद की संख्या को समायोजित करें उत्तर को आपके फ़ीड में दिखाया जाना चाहिए।।" #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "वयस्क सामग्री" @@ -373,7 +386,7 @@ msgstr "" msgid "Advanced" msgstr "विकसित" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "" @@ -406,12 +419,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "ऑल्ट टेक्स्ट अंधा और कम दृश्य लोगों के लिए छवियों का वर्णन करता है, और हर किसी को संदर्भ देने में मदद करता है।।" -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "{0} को ईमेल भेजा गया है। इसमें एक OTP कोड शामिल है जिसे आप नीचे दर्ज कर सकते हैं।।" -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "{0} को ईमेल भेजा गया है। इसमें एक OTP कोड शामिल है जिसे आप नीचे दर्ज कर सकते हैं।।" @@ -419,11 +432,11 @@ msgstr "{0} को ईमेल भेजा गया है। इसमें msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "" @@ -436,7 +449,7 @@ msgstr "" msgid "An issue occurred, please try again." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -445,7 +458,7 @@ msgstr "" msgid "and" msgstr "और" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "" @@ -453,7 +466,7 @@ msgstr "" msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "" @@ -487,12 +500,12 @@ msgstr "" msgid "App Passwords" msgstr "ऐप पासवर्ड" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "" @@ -505,7 +518,7 @@ msgstr "" #~ msgid "Appeal Content Warning" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -525,19 +538,24 @@ msgstr "" msgid "Appearance" msgstr "दिखावट" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "क्या आप वाकई ऐप पासवर्ड \"{name}\" हटाना चाहते हैं?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "" @@ -557,11 +575,11 @@ msgstr "क्या आप वास्तव में इसे करना msgid "Are you writing in <0>{0}?" msgstr "" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "कलात्मक या गैर-कामुक नग्नता।।" @@ -569,17 +587,17 @@ msgstr "कलात्मक या गैर-कामुक नग्नत msgid "At least 3 characters" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -612,8 +630,8 @@ msgstr "जन्मदिन:" msgid "Block" msgstr "" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -626,15 +644,15 @@ msgstr "खाता ब्लॉक करें" msgid "Block Account?" msgstr "" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "खाता ब्लॉक करें" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "खाता ब्लॉक करें?" @@ -672,7 +690,7 @@ msgstr "ब्लॉक पोस्ट।" msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "" -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "अवरोधन सार्वजनिक है. अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते।" @@ -728,10 +746,15 @@ msgstr "" msgid "Blur images and filter from feeds" msgstr "" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/screens/Settings/index.tsx:893 #~ msgid "Build version {0} {1}" #~ msgstr "Build version {0} {1}" @@ -786,9 +809,9 @@ msgstr "केवल अक्षर, संख्या, रिक्त स् #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -800,26 +823,26 @@ msgstr "केवल अक्षर, संख्या, रिक्त स् #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "कैंसिल" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "अकाउंट बंद मत करो" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "नाम मत बदलो" @@ -848,7 +871,7 @@ msgstr "खोज मत करो" msgid "Cancels opening the linked website" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "" @@ -861,12 +884,12 @@ msgstr "परिवर्तन" msgid "Change handle" msgstr "हैंडल बदलें" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "हैंडल बदलें" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "मेरा ईमेल बदलें" @@ -887,7 +910,7 @@ msgstr "" #~ msgid "Change your Bluesky password" #~ msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "मेरा ईमेल बदलें" @@ -895,11 +918,11 @@ msgstr "मेरा ईमेल बदलें" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -925,11 +948,11 @@ msgstr "" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "कुछ अनुशंसित उपयोगकर्ताओं की जाँच करें। ऐसे ही उपयोगकर्ता देखने के लिए उनका अनुसरण करें।" -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "नीचे प्रवेश करने के लिए OTP कोड के साथ एक ईमेल के लिए अपने इनबॉक्स की जाँच करें:" @@ -945,7 +968,7 @@ msgstr "" msgid "Choose Service" msgstr "सेवा चुनें" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "" @@ -954,6 +977,10 @@ msgstr "" #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "उन एल्गोरिदम का चयन करें जो कस्टम फीड्स के साथ अपने अनुभव को शक्ति देते हैं।।" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:103 #~ msgid "Choose your algorithmic feeds" #~ msgstr "" @@ -999,6 +1026,10 @@ msgstr "" msgid "click here" msgstr "" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "" @@ -1007,7 +1038,7 @@ msgstr "" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "" @@ -1076,11 +1107,11 @@ msgstr "" msgid "Collapses list of users for a given notification" msgstr "" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "" @@ -1089,7 +1120,7 @@ msgstr "" msgid "Community Guidelines" msgstr "समुदाय दिशानिर्देश" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "" @@ -1119,13 +1150,13 @@ msgstr "" #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "हो गया" @@ -1135,8 +1166,8 @@ msgstr "हो गया" #~ msgid "Confirm" #~ msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "बदलाव की पुष्टि करें" @@ -1144,7 +1175,7 @@ msgstr "बदलाव की पुष्टि करें" msgid "Confirm content language settings" msgstr "सामग्री भाषा सेटिंग्स की पुष्टि करें" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "खाते को हटा दें" @@ -1160,13 +1191,13 @@ msgstr "" msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "OTP कोड" @@ -1174,7 +1205,7 @@ msgstr "OTP कोड" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "कनेक्टिंग ..।" @@ -1229,8 +1260,9 @@ msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "आगे बढ़ें" @@ -1240,8 +1272,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1255,7 +1288,7 @@ msgstr "" msgid "Continue to the next step without following any accounts" msgstr "" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "" @@ -1268,9 +1301,9 @@ msgstr "कॉपी कर ली" msgid "Copied build version to clipboard" msgstr "" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1288,7 +1321,7 @@ msgstr "" msgid "Copy" msgstr "कॉपी" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "" @@ -1297,7 +1330,7 @@ msgstr "" msgid "Copy code" msgstr "" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "" @@ -1325,15 +1358,15 @@ msgstr "पोस्ट टेक्स्ट कॉपी करें" msgid "Copyright Policy" msgstr "कॉपीराइट नीति" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "फ़ीड लोड नहीं कर सकता" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "सूची लोड नहीं कर सकता" @@ -1341,13 +1374,13 @@ msgstr "सूची लोड नहीं कर सकता" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/create/Step2.tsx:91 #~ msgid "Country" @@ -1371,6 +1404,10 @@ msgstr "खाता बनाएँ" msgid "Create an account" msgstr "" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "" @@ -1380,7 +1417,7 @@ msgstr "" msgid "Create new account" msgstr "नया खाता बनाएं" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "" @@ -1400,7 +1437,7 @@ msgstr "बनाया गया {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "" @@ -1409,12 +1446,12 @@ msgstr "" msgid "Custom" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "कस्टम डोमेन" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "" @@ -1451,10 +1488,10 @@ msgstr "" msgid "Debug panel" msgstr "" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "" @@ -1466,7 +1503,7 @@ msgstr "खाता हटाएं" #~ msgid "Delete Account" #~ msgstr "खाता हटाएं" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1482,11 +1519,11 @@ msgstr "" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "सूची हटाएँ" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1494,7 +1531,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "मेरा खाता हटाएं" @@ -1511,7 +1548,7 @@ msgstr "" msgid "Delete post" msgstr "पोस्ट को हटाएं" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "" @@ -1554,7 +1591,7 @@ msgstr "" msgid "Disable autoplay for GIFs" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "" @@ -1603,7 +1640,7 @@ msgstr "" #~ msgid "Discover new feeds" #~ msgstr "नए फ़ीड की खोज करें" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "" @@ -1615,7 +1652,7 @@ msgstr "नाम" msgid "Display Name" msgstr "प्रदर्शन का नाम" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "" @@ -1627,11 +1664,11 @@ msgstr "" msgid "Doesn't begin or end with a hyphen" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "डोमेन सत्यापित!" @@ -1643,6 +1680,8 @@ msgstr "डोमेन सत्यापित!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1651,15 +1690,13 @@ msgstr "डोमेन सत्यापित!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "खत्म" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1681,8 +1718,8 @@ msgstr "खत्म {extraText}" #~ msgid "Download Bluesky account data (repository)" #~ msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "" @@ -1694,7 +1731,7 @@ msgstr "" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "" @@ -1702,7 +1739,7 @@ msgstr "" msgid "e.g. Alice Roberts" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "" @@ -1749,7 +1786,7 @@ msgstr "" msgid "Edit image" msgstr "छवि संपादित करें" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "सूची विवरण संपादित करें" @@ -1758,8 +1795,8 @@ msgid "Edit Moderation List" msgstr "" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "मेरी फ़ीड संपादित करें" @@ -1778,7 +1815,7 @@ msgid "Edit Profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "एडिट सेव्ड फीड" @@ -1794,16 +1831,16 @@ msgstr "" msgid "Edit your profile description" msgstr "" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "ईमेल" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "" @@ -1811,16 +1848,16 @@ msgstr "" msgid "Email address" msgstr "ईमेल" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "ईमेल अपडेट किया गया" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "" @@ -1872,7 +1909,7 @@ msgstr "" msgid "Enable media players for" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "इस सेटिंग को केवल उन लोगों के बीच जवाब देखने में सक्षम करें जिन्हें आप फॉलो करते हैं।।" @@ -1901,7 +1938,7 @@ msgstr "" msgid "Enter a word or tag" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "" @@ -1909,7 +1946,7 @@ msgstr "" msgid "Enter the code you received to change your password." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "आप जिस डोमेन का उपयोग करना चाहते हैं उसे दर्ज करें" @@ -1930,11 +1967,11 @@ msgstr "" msgid "Enter your email address" msgstr "अपना ईमेल पता दर्ज करें" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "नीचे अपना नया ईमेल पता दर्ज करें।।" @@ -1946,11 +1983,15 @@ msgstr "नीचे अपना नया ईमेल पता दर्ज msgid "Enter your username and password" msgstr "अपने यूज़रनेम और पासवर्ड दर्ज करें" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "" @@ -1959,15 +2000,19 @@ msgstr "" msgid "Everybody" msgstr "" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "" @@ -2009,7 +2054,7 @@ msgstr "" msgid "Export my data" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "" @@ -2043,7 +2088,7 @@ msgstr "" msgid "Failed to create the list. Check your internet connection and try again." msgstr "" -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -2055,7 +2100,7 @@ msgstr "" msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -2064,19 +2109,23 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "अनुशंसित फ़ीड लोड करने में विफल" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "फ़ीड ऑफ़लाइन है" @@ -2085,18 +2134,18 @@ msgstr "फ़ीड ऑफ़लाइन है" #~ msgstr "फ़ीड प्राथमिकता" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "प्रतिक्रिया" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "सभी फ़ीड" @@ -2112,7 +2161,7 @@ msgstr "सभी फ़ीड" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "सामग्री को व्यवस्थित करने के लिए उपयोगकर्ताओं द्वारा फ़ीड बनाए जाते हैं। कुछ फ़ीड चुनें जो आपको दिलचस्प लगें।" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "फ़ीड कस्टम एल्गोरिदम हैं जिन्हें उपयोगकर्ता थोड़ी कोडिंग विशेषज्ञता के साथ बनाते हैं। <0/> अधिक जानकारी के लिए." @@ -2120,15 +2169,19 @@ msgstr "फ़ीड कस्टम एल्गोरिदम हैं ज msgid "Feeds can be topical as well!" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "" @@ -2154,7 +2207,7 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "मिलते-जुलते खाते ढूँढना" -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "" @@ -2166,11 +2219,11 @@ msgstr "" msgid "Fine-tune the discussion threads." msgstr "चर्चा धागे को ठीक-ट्यून करें।।" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "" @@ -2232,7 +2285,7 @@ msgstr "" msgid "Followed users" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "केवल वे यूजर को फ़ॉलो किया गया" @@ -2250,7 +2303,9 @@ msgstr "यह यूजर आपका फ़ोलो करता है" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "फोल्लोविंग" @@ -2265,7 +2320,7 @@ msgstr "" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "" @@ -2278,11 +2333,11 @@ msgstr "यह यूजर आपका फ़ोलो करता है" msgid "Follows You" msgstr "" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "सुरक्षा कारणों के लिए, हमें आपके ईमेल पते पर एक OTP कोड भेजने की आवश्यकता होगी।।" @@ -2303,15 +2358,15 @@ msgstr "सुरक्षा कारणों के लिए, आप इस msgid "Forgot Password" msgstr "पासवर्ड भूल गए" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "" @@ -2328,12 +2383,16 @@ msgstr "" msgid "Gallery" msgstr "गैलरी" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "प्रारंभ करें" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "" @@ -2342,9 +2401,9 @@ msgstr "" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "वापस जाओ" @@ -2352,12 +2411,13 @@ msgstr "वापस जाओ" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "वापस जाओ" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2383,11 +2443,11 @@ msgstr "" msgid "Go to next" msgstr "अगला" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2395,7 +2455,7 @@ msgstr "" msgid "Graphic Media" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "हैंडल" @@ -2403,7 +2463,7 @@ msgstr "हैंडल" msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "" @@ -2415,7 +2475,7 @@ msgstr "" #~ msgid "Hashtag: {tag}" #~ msgstr "" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "" @@ -2424,10 +2484,14 @@ msgid "Having trouble?" msgstr "" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "सहायता" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "" @@ -2484,23 +2548,23 @@ msgstr "उपयोगकर्ता सूची छुपाएँ" #~ msgid "Hides posts from {0} in your feed" #~ msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "" @@ -2513,10 +2577,10 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "" #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "होम फीड" @@ -2527,14 +2591,14 @@ msgstr "होम फीड" #~ msgid "Home Feed Preferences" #~ msgstr "होम फ़ीड प्राथमिकताएं" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "होस्टिंग प्रदाता" @@ -2542,25 +2606,29 @@ msgstr "होस्टिंग प्रदाता" msgid "How should we open this link?" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "मेरे पास एक OTP कोड है" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "मेरे पास अपना डोमेन है" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "यदि किसी को चुना जाता है, तो सभी उम्र के लिए उपयुक्त है।।" @@ -2568,7 +2636,7 @@ msgstr "यदि किसी को चुना जाता है, तो msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "" -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "" @@ -2580,7 +2648,7 @@ msgstr "" msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "" -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "" @@ -2597,7 +2665,7 @@ msgstr "छवि alt पाठ" #~ msgid "Image options" #~ msgstr "छवि विकल्प" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "" @@ -2605,7 +2673,7 @@ msgstr "" msgid "Input code sent to your email for password reset" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "" @@ -2625,7 +2693,7 @@ msgstr "" msgid "Input new password" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "" @@ -2633,15 +2701,15 @@ msgstr "" #~ msgid "Input phone number for SMS verification" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "" @@ -2653,11 +2721,11 @@ msgstr "" #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "" @@ -2665,8 +2733,8 @@ msgstr "" msgid "Input your user handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" @@ -2674,7 +2742,7 @@ msgstr "" msgid "Invalid or unsupported post record" msgstr "" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "अवैध उपयोगकर्ता नाम या पासवर्ड" @@ -2690,7 +2758,7 @@ msgstr "एक दोस्त को आमंत्रित करें" msgid "Invite code" msgstr "आमंत्रण कोड" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "" @@ -2727,7 +2795,7 @@ msgstr "" #~ msgid "Join Waitlist" #~ msgstr "वेटरलिस्ट में शामिल हों" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "" @@ -2755,11 +2823,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "" @@ -2815,13 +2883,13 @@ msgstr "" msgid "Learn more." msgstr "" -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2846,7 +2914,7 @@ msgstr "" msgid "Let's get your password reset!" msgstr "चलो अपना पासवर्ड रीसेट करें!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "" @@ -2864,7 +2932,7 @@ msgstr "लाइट मोड" #~ msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "इस फ़ीड को लाइक करो" @@ -2918,19 +2986,19 @@ msgstr "" msgid "List Avatar" msgstr "सूची अवतार" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "" @@ -2938,20 +3006,20 @@ msgstr "" msgid "List Name" msgstr "सूची का नाम" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "सूची" @@ -2965,9 +3033,9 @@ msgid "Load new notifications" msgstr "नई सूचनाएं लोड करें" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "नई पोस्ट लोड करें" @@ -2998,7 +3066,7 @@ msgstr "" msgid "Login to account that is not listed" msgstr "उस खाते में लॉग इन करें जो सूचीबद्ध नहीं है" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -3006,6 +3074,18 @@ msgstr "" msgid "Looks like XXXXX-XXXXX" msgstr "" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "यह सुनिश्चित करने के लिए कि आप कहाँ जाना चाहते हैं!" @@ -3014,6 +3094,11 @@ msgstr "यह सुनिश्चित करने के लिए कि msgid "Manage your muted words and tags" msgstr "" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:118 #~ msgid "May not be longer than 253 characters" #~ msgstr "" @@ -3040,30 +3125,35 @@ msgstr "" msgid "Menu" msgstr "मेनू" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -3071,7 +3161,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "" @@ -3090,13 +3180,13 @@ msgstr "" msgid "Moderation list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "" @@ -3138,11 +3228,11 @@ msgstr "" msgid "More" msgstr "" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "अधिक फ़ीड" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "अधिक विकल्प" @@ -3171,7 +3261,7 @@ msgstr "" msgid "Mute Account" msgstr "खाता म्यूट करें" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "खातों को म्यूट करें" @@ -3191,16 +3281,16 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "इन खातों को म्यूट करें?" @@ -3251,7 +3341,7 @@ msgstr "" msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "म्यूट करना निजी है. म्यूट किए गए खाते आपके साथ इंटरैक्ट कर सकते हैं, लेकिन आप उनकी पोस्ट नहीं देखेंगे या उनसे सूचनाएं प्राप्त नहीं करेंगे।" @@ -3260,11 +3350,11 @@ msgstr "म्यूट करना निजी है. म्यूट कि msgid "My Birthday" msgstr "जन्मदिन" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "मेरी फ़ीड" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "मेरी प्रोफाइल" @@ -3289,27 +3379,27 @@ msgstr "नाम" msgid "Name is required" msgstr "" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "" @@ -3323,7 +3413,7 @@ msgstr "" #~ msgid "Never lose access to your followers and data." #~ msgstr "अपने फ़ॉलोअर्स और डेटा तक पहुंच कभी न खोएं।" -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "" @@ -3331,7 +3421,7 @@ msgstr "" #~ msgid "Nevermind" #~ msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "" @@ -3345,8 +3435,8 @@ msgid "New" msgstr "नया" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -3362,22 +3452,22 @@ msgstr "" msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "नई पोस्ट" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "नई पोस्ट" @@ -3390,14 +3480,14 @@ msgstr "" msgid "Newest replies first" msgstr "" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3415,21 +3505,21 @@ msgstr "अगला" msgid "Next image" msgstr "अगली फोटो" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "नहीं" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "कोई विवरण नहीं" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "" @@ -3445,8 +3535,8 @@ msgstr "" msgid "No longer than 253 characters" msgstr "" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3463,7 +3553,7 @@ msgstr "" msgid "No results found" msgstr "" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "\"{query}\" के लिए कोई परिणाम नहीं मिला" @@ -3508,8 +3598,8 @@ msgstr "" msgid "Not Found" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "" @@ -3526,22 +3616,22 @@ msgstr "" #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "सूचनाएं" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "" @@ -3562,7 +3652,7 @@ msgstr "" msgid "Oh no!" msgstr "अरे नहीं!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "" @@ -3587,6 +3677,10 @@ msgstr "" msgid "One or more images is missing alt text." msgstr "एक या अधिक छवियाँ alt पाठ याद आती हैं।।" +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "" @@ -3605,10 +3699,14 @@ msgstr "" msgid "Oops!" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/screens/Moderation.tsx:75 #~ msgid "Open content filtering settings" #~ msgstr "" @@ -3618,7 +3716,7 @@ msgstr "" msgid "Open emoji picker" msgstr "" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "" @@ -3745,7 +3843,7 @@ msgstr "" msgid "Opens modal for email verification" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "कस्टम डोमेन का उपयोग करने के लिए मोडल खोलें" @@ -3753,12 +3851,12 @@ msgstr "कस्टम डोमेन का उपयोग करने क msgid "Opens moderation settings" msgstr "मॉडरेशन सेटिंग्स खोलें" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "" @@ -3786,7 +3884,7 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3807,6 +3905,7 @@ msgstr "धागे वरीयताओं को खोलता है" msgid "Option {0} of {numItems}" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "" @@ -3819,7 +3918,7 @@ msgstr "" #~ msgid "Or you can try our \"Discover\" algorithm:" #~ msgstr "" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "" @@ -3844,10 +3943,10 @@ msgstr "पृष्ठ नहीं मिला" msgid "Page Not Found" msgstr "" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "पासवर्ड" @@ -3879,15 +3978,15 @@ msgstr "" msgid "People following @{0}" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "" -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "" @@ -3895,20 +3994,20 @@ msgstr "" #~ msgid "Phone number" #~ msgstr "" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "चित्र वयस्कों के लिए थे।।" -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "पिन किया गया फ़ीड" @@ -3933,19 +4032,19 @@ msgstr "" msgid "Plays the GIF" msgstr "" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "" -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "इसे बदलने से पहले कृपया अपने ईमेल की पुष्टि करें। यह एक अस्थायी आवश्यकता है जबकि ईमेल-अपडेटिंग टूल जोड़ा जाता है, और इसे जल्द ही हटा दिया जाएगा।।" @@ -3973,15 +4072,15 @@ msgstr "" #~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." #~ msgstr "" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "कृपया अपना पासवर्ड भी दर्ज करें:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -3994,7 +4093,7 @@ msgstr "" #~ msgid "Please tell us why you think this content warning was incorrectly applied!" #~ msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "" @@ -4002,11 +4101,11 @@ msgstr "" msgid "Please wait for your link card to finish loading" msgstr "" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "" @@ -4078,7 +4177,7 @@ msgstr "" msgid "Posts can be muted based on their text, their tags, or both." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "" @@ -4092,15 +4191,15 @@ msgstr "" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -4123,7 +4222,7 @@ msgstr "गोपनीयता" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "गोपनीयता नीति" @@ -4136,11 +4235,11 @@ msgstr "प्रसंस्करण..." msgid "profile" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "प्रोफ़ाइल" @@ -4152,7 +4251,7 @@ msgstr "" msgid "Protect your account by verifying your email." msgstr "अपने ईमेल को सत्यापित करके अपने खाते को सुरक्षित रखें।।" -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "" @@ -4194,6 +4293,10 @@ msgstr "" msgid "Ratios" msgstr "अनुपात" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "" @@ -4207,11 +4310,11 @@ msgstr "" #~ msgstr "अनुशंसित लोग" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "निकालें" @@ -4231,22 +4334,25 @@ msgstr "" msgid "Remove Banner" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "फ़ीड हटाएँ" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "मेरे फ़ीड से हटाएँ" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "" @@ -4274,7 +4380,7 @@ msgstr "" #~ msgid "Remove this feed from my feeds?" #~ msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "" @@ -4287,11 +4393,13 @@ msgstr "" msgid "Removed from list" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "" @@ -4303,6 +4411,11 @@ msgstr "" msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "" @@ -4316,7 +4429,7 @@ msgctxt "action" msgid "Reply" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "फिल्टर" @@ -4342,24 +4455,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "रिपोर्ट" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "रिपोर्ट फ़ीड" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "रिपोर्ट सूची" @@ -4372,30 +4491,36 @@ msgstr "" msgid "Report post" msgstr "रिपोर्ट पोस्ट" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "" @@ -4433,8 +4558,8 @@ msgstr "" msgid "Reposts of this post" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "अनुरोध बदलें" @@ -4451,7 +4576,7 @@ msgstr "" msgid "Require alt text before posting" msgstr "पोस्ट करने से पहले वैकल्पिक टेक्स्ट की आवश्यकता है" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "" @@ -4459,8 +4584,8 @@ msgstr "" msgid "Required for this provider" msgstr "इस प्रदाता के लिए आवश्यक" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "" @@ -4502,7 +4627,7 @@ msgstr "ऑनबोर्डिंग स्टेट को रीसेट msgid "Resets the preferences state" msgstr "प्राथमिकताओं की स्थिति को रीसेट करें" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "" @@ -4511,13 +4636,14 @@ msgstr "" msgid "Retries the last action, which errored out" msgstr "" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4525,11 +4651,11 @@ msgid "Retry" msgstr "फिर से कोशिश करो" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "" @@ -4538,7 +4664,7 @@ msgid "Returns to home page" msgstr "" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "" @@ -4549,13 +4675,13 @@ msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "सेव करो" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4573,7 +4699,7 @@ msgstr "" msgid "Save Changes" msgstr "बदलाव सेव करो" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "बदलाव सेव करो" @@ -4581,16 +4707,16 @@ msgstr "बदलाव सेव करो" msgid "Save image crop" msgstr "फोटो बदलाव सेव करो" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "सहेजे गए फ़ीड" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4598,7 +4724,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "" @@ -4606,7 +4733,7 @@ msgstr "" msgid "Saves any changes to your profile" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "" @@ -4614,11 +4741,11 @@ msgstr "" msgid "Saves image crop settings" msgstr "" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "" @@ -4631,12 +4758,12 @@ msgstr "" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "खोज" @@ -4686,7 +4813,7 @@ msgstr "" msgid "Search Tenor" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "सुरक्षा चरण आवश्यक" @@ -4719,7 +4846,7 @@ msgstr "" msgid "See profile" msgstr "" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "" @@ -4731,10 +4858,22 @@ msgstr "" msgid "Select {item}" msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/view/com/modals/ServerInput.tsx:75 #~ msgid "Select Bluesky Social" #~ msgstr "Bluesky Social का चयन करें" @@ -4772,6 +4911,10 @@ msgstr "" msgid "Select some accounts below to follow" msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4808,7 +4951,7 @@ msgstr "" msgid "Select your date of birth" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "" @@ -4828,30 +4971,32 @@ msgstr "" msgid "Select your secondary algorithmic feeds" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "पुष्टिकरण ईमेल भेजें" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "ईमेल भेजें" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "ईमेल भेजें" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "प्रतिक्रिया भेजें" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4865,12 +5010,12 @@ msgstr "" msgid "Send report to {0}" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "" @@ -4920,15 +5065,15 @@ msgstr "नया पासवर्ड सेट करें" #~ msgid "Set password" #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "अपने फ़ीड से सभी उद्धरण पदों को छिपाने के लिए इस सेटिंग को \"नहीं\" में सेट करें। Reposts अभी भी दिखाई देगा।।" -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "इस सेटिंग को अपने फ़ीड से सभी उत्तरों को छिपाने के लिए \"नहीं\" पर सेट करें।।" -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "इस सेटिंग को अपने फ़ीड से सभी पोस्ट छिपाने के लिए \"नहीं\" करने के लिए सेट करें।।" @@ -4940,7 +5085,7 @@ msgstr "इस सेटिंग को \"हाँ\" में सेट क #~ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." #~ msgstr "इस सेटिंग को अपने निम्नलिखित फ़ीड में अपने सहेजे गए फ़ीड के नमूने दिखाने के लिए \"हाँ\" पर सेट करें। यह एक प्रयोगात्मक विशेषता है।।" -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "" @@ -4948,7 +5093,7 @@ msgstr "" msgid "Set up your account" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "" @@ -5000,13 +5145,13 @@ msgstr "" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "सेटिंग्स" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "यौन गतिविधि या कामुक नग्नता।।" @@ -5014,7 +5159,7 @@ msgstr "यौन गतिविधि या कामुक नग्नत msgid "Sexually Suggestive" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "" @@ -5024,7 +5169,7 @@ msgstr "" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "शेयर" @@ -5034,8 +5179,8 @@ msgstr "शेयर" msgid "Share anyway" msgstr "" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "" @@ -5102,11 +5247,11 @@ msgstr "" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "मेरी फीड से पोस्ट दिखाएं" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "उद्धरण पोस्ट दिखाओ" @@ -5122,7 +5267,7 @@ msgstr "" msgid "Show re-posts in Following feed" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "उत्तर दिखाएँ" @@ -5142,7 +5287,7 @@ msgstr "" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "रीपोस्ट दिखाएँ" @@ -5179,17 +5324,17 @@ msgstr "" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -5227,12 +5372,12 @@ msgstr "" msgid "Sign out" msgstr "साइन आउट" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -5261,12 +5406,12 @@ msgstr "" #~ msgid "Signs {0} out of Bluesky" #~ msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "स्किप" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "" @@ -5274,10 +5419,14 @@ msgstr "" #~ msgid "SMS verification" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/view/com/modals/ProfilePreview.tsx:62 #~ msgid "Something went wrong and we're not sure what." #~ msgstr "" @@ -5296,8 +5445,8 @@ msgstr "" #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "" -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "" @@ -5309,19 +5458,20 @@ msgstr "उत्तर क्रमबद्ध करें" msgid "Sort replies to the same post by:" msgstr "उसी पोस्ट के उत्तरों को इस प्रकार क्रमबद्ध करें:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "" @@ -5366,12 +5516,12 @@ msgstr "" msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "सब्सक्राइब" @@ -5392,7 +5542,7 @@ msgstr "" msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "इस सूची को सब्सक्राइब करें" @@ -5404,7 +5554,7 @@ msgstr "अनुशंसित लोग" msgid "Suggested for you" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "" @@ -5459,7 +5609,7 @@ msgstr "लंबा" msgid "Tap to view fully" msgstr "" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "" @@ -5471,13 +5621,13 @@ msgstr "शर्तें" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "सेवा की शर्तें" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "" @@ -5485,15 +5635,16 @@ msgstr "" msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "पाठ इनपुट फ़ील्ड" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "" @@ -5518,11 +5669,15 @@ msgstr "सामुदायिक दिशानिर्देशों क msgid "The Copyright Policy has been moved to <0/>" msgstr "कॉपीराइट नीति को <0/> पर स्थानांतरित कर दिया गया है" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "" @@ -5552,15 +5707,17 @@ msgid "There are many feeds to try:" msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "" -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "" @@ -5572,16 +5729,17 @@ msgstr "" msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "" @@ -5589,7 +5747,7 @@ msgstr "" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "" -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "" @@ -5602,6 +5760,7 @@ msgstr "" msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" @@ -5628,10 +5787,10 @@ msgstr "" msgid "There was an issue! {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "" @@ -5660,7 +5819,7 @@ msgstr "यह {screenDescription} फ्लैग किया गया है msgid "This account has requested that users sign in to view their profile." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -5685,7 +5844,7 @@ msgstr "" msgid "This content is not available because one of the users involved has blocked the other." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "" @@ -5693,17 +5852,17 @@ msgstr "" #~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." #~ msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "" #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "" @@ -5711,11 +5870,15 @@ msgstr "" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "यह जानकारी अन्य उपयोगकर्ताओं के साथ साझा नहीं की जाती है।।" -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "अगर आपको कभी अपना ईमेल बदलने या पासवर्ड रीसेट करने की आवश्यकता है तो यह महत्वपूर्ण है।।" @@ -5731,6 +5894,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5739,7 +5906,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "यह लिंक आपको निम्नलिखित वेबसाइट पर ले जा रहा है:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "" @@ -5772,7 +5939,7 @@ msgstr "" msgid "This service has not provided terms of service or a privacy policy." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "" @@ -5842,10 +6009,14 @@ msgstr "थ्रेड मोड" msgid "Threads Preferences" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "" @@ -5887,25 +6058,25 @@ msgstr "फिर से कोशिश करो" msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5915,7 +6086,7 @@ msgstr "आपकी सेवा से संपर्क करने मे #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "अनब्लॉक" @@ -5936,7 +6107,7 @@ msgstr "" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "पुनः पोस्ट पूर्ववत करें" @@ -5967,12 +6138,12 @@ msgstr "" #~ msgid "Unlike" #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "" @@ -5993,7 +6164,7 @@ msgstr "" #~ msgid "Unmute all {tag} posts" #~ msgstr "" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -6002,16 +6173,16 @@ msgstr "" msgid "Unmute thread" msgstr "थ्रेड को अनम्यूट करें" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "" @@ -6027,7 +6198,12 @@ msgstr "" msgid "Unsubscribe from this labeler" msgstr "" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "" @@ -6039,7 +6215,7 @@ msgstr "सूची में {displayName} अद्यतन करें" #~ msgid "Update Available" #~ msgstr "उपलब्ध अद्यतन" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "" @@ -6047,7 +6223,11 @@ msgstr "" msgid "Updating..." msgstr "अद्यतन..।" -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "एक पाठ फ़ाइल अपलोड करने के लिए:" @@ -6070,7 +6250,7 @@ msgstr "" msgid "Upload from Library" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "" @@ -6078,11 +6258,11 @@ msgstr "" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "अपने खाते या पासवर्ड को पूर्ण एक्सेस देने के बिना अन्य ब्लूस्की ग्राहकों को लॉगिन करने के लिए ऐप पासवर्ड का उपयोग करें।।" -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "डिफ़ॉल्ट प्रदाता का उपयोग करें" @@ -6096,7 +6276,11 @@ msgstr "" msgid "Use my default browser" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "" @@ -6142,13 +6326,13 @@ msgstr "" msgid "User list by {0}" msgstr "" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "" @@ -6164,11 +6348,11 @@ msgstr "" msgid "User Lists" msgstr "लोग सूचियाँ" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "यूजर नाम या ईमेल पता" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "यूजर लोग" @@ -6184,7 +6368,7 @@ msgstr "" msgid "Users that have liked this content or profile" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "" @@ -6196,7 +6380,7 @@ msgstr "" #~ msgid "Verify {0}" #~ msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -6212,16 +6396,16 @@ msgstr "मेरी ईमेल सत्यापित करें" msgid "Verify My Email" msgstr "मेरी ईमेल सत्यापित करें" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "नया ईमेल सत्यापित करें" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "" @@ -6233,7 +6417,7 @@ msgstr "" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "" @@ -6245,11 +6429,11 @@ msgstr "" msgid "View debug entry" msgstr "डीबग प्रविष्टि देखें" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "" @@ -6257,13 +6441,13 @@ msgstr "" msgid "View full thread" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "" @@ -6275,7 +6459,7 @@ msgstr "अवतार देखें" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "" @@ -6307,11 +6491,15 @@ msgstr "" msgid "We couldn't find any results for that hashtag." msgstr "" +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "" @@ -6339,7 +6527,7 @@ msgstr "" msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "" @@ -6351,7 +6539,7 @@ msgstr "" #~ msgid "We'll look into your appeal promptly." #~ msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "" @@ -6384,7 +6572,7 @@ msgstr "" #~ msgid "Welcome to <0>Bluesky" #~ msgstr "<0>Bluesky में आपका स्वागत है" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "" @@ -6411,23 +6599,31 @@ msgstr "कौन से भाषाएं आपको अपने एल् msgid "Who can reply" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "" @@ -6435,8 +6631,8 @@ msgstr "" msgid "Wide" msgstr "चौड़ा" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -6449,7 +6645,7 @@ msgstr "पोस्ट लिखो" msgid "Write your reply" msgstr "अपना जवाब दें" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "" @@ -6458,16 +6654,16 @@ msgstr "" #~ msgstr "" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "हाँ" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -6509,15 +6705,15 @@ msgstr "" msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "आपके पास अभी तक कोई आमंत्रण कोड नहीं है! जब आप कुछ अधिक समय के लिए Bluesky पर रहेंगे तो हम आपको कुछ भेजेंगे।" -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "आपके पास कोई पिन किया हुआ फ़ीड नहीं है." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "आपके पास कोई सहेजी गई फ़ीड नहीं है." @@ -6568,7 +6764,7 @@ msgstr "" msgid "You have no lists." msgstr "आपके पास कोई सूची नहीं है।।" -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -6596,7 +6792,11 @@ msgstr "" msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" @@ -6628,7 +6828,7 @@ msgstr "" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "आपको \"reset code\" के साथ एक ईमेल प्राप्त होगा। उस कोड को यहाँ दर्ज करें, फिर अपना नया पासवर्ड दर्ज करें।।" -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -6642,7 +6842,7 @@ msgstr "" msgid "You're in line" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "" @@ -6663,7 +6863,7 @@ msgstr "आपका खाता" msgid "Your account has been deleted" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "" @@ -6680,7 +6880,7 @@ msgid "Your default feed is \"Following\"" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "" @@ -6689,11 +6889,11 @@ msgstr "" #~ msgid "Your email has been saved! We'll be in touch soon." #~ msgstr "आपका ईमेल बचाया गया है! हम जल्द ही संपर्क में रहेंगे।।" -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "आपका ईमेल अद्यतन किया गया है लेकिन सत्यापित नहीं किया गया है। अगले चरण के रूप में, कृपया अपना नया ईमेल सत्यापित करें।।" -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "आपका ईमेल अभी तक सत्यापित नहीं हुआ है। यह एक महत्वपूर्ण सुरक्षा कदम है जिसे हम अनुशंसा करते हैं।।" @@ -6705,7 +6905,7 @@ msgstr "" msgid "Your full handle will be" msgstr "आपका पूरा हैंडल होगा" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "" @@ -6727,7 +6927,7 @@ msgstr "" msgid "Your post has been published" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "आपकी पोस्ट, पसंद और ब्लॉक सार्वजनिक हैं। म्यूट निजी हैं।।" @@ -6739,6 +6939,10 @@ msgstr "आपकी प्रोफ़ाइल" msgid "Your reply has been published" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "आपका यूजर हैंडल" diff --git a/src/locale/locales/id/messages.po b/src/locale/locales/id/messages.po index 1b3f3c968c..8a6c1f7a5f 100644 --- a/src/locale/locales/id/messages.po +++ b/src/locale/locales/id/messages.po @@ -18,7 +18,7 @@ msgstr "" "X-Crowdin-File: /main/src/locale/locales/en/messages.po\n" "X-Crowdin-File-ID: 12\n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(tidak ada email)" @@ -26,15 +26,15 @@ msgstr "(tidak ada email)" msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -56,7 +56,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -76,6 +76,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -95,15 +99,15 @@ msgstr "{following} mengikuti" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} belum dibaca" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -111,11 +115,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> anggota" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -140,7 +144,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -152,7 +156,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Handle Tidak Valid" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "Konfirmasi 2FA" @@ -183,7 +187,7 @@ msgstr "Pengaturan Aksesibilitas" #~ msgid "account" #~ msgstr "akun" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -234,15 +238,15 @@ msgstr "Akun batal dibisukan" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "Tambah" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Tambahkan peringatan konten" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "Tambahkan pengguna ke daftar ini" @@ -254,6 +258,7 @@ msgstr "Tambahkan akun" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -261,8 +266,8 @@ msgid "Add alt text" msgstr "Tambahkan teks alt" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -286,7 +291,15 @@ msgstr "Tambahkan kata yang akan dibisukan ke pengaturan terpilih" msgid "Add muted words and tags" msgstr "Tambah kata dan tagar untuk dibisukan" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Tambahkan catatan DNS berikut ke domain Anda:" @@ -295,7 +308,7 @@ msgstr "Tambahkan catatan DNS berikut ke domain Anda:" msgid "Add to Lists" msgstr "Tambahkan ke Daftar" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "Tambakan ke feed saya" @@ -308,17 +321,17 @@ msgstr "Tambakan ke feed saya" msgid "Added to list" msgstr "Ditambahkan ke daftar" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "Ditambahkan ke feed saya" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Atur jumlah suka dari balasan yang akan ditampilkan di feed Anda." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Konten Dewasa" @@ -331,7 +344,7 @@ msgstr "Konten dewasa dinonaktifkan." msgid "Advanced" msgstr "Lanjutan" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "Berisi semua feed yang telah Anda simpan dalam satu tempat." @@ -364,12 +377,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "Teks alt menjelaskan gambar untuk pengguna tunanetra dan pengguna dengan penglihatan rendah, serta membantu memberikan konteks kepada semua orang." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "Email telah dikirim ke {0}. Email tersebut berisi kode konfirmasi yang dapat Anda masukkan di bawah ini." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Email telah dikirim ke alamat Anda sebelumnya, {0}. Email tersebut berisi kode konfirmasi yang dapat Anda masukkan di bawah ini." @@ -377,11 +390,11 @@ msgstr "Email telah dikirim ke alamat Anda sebelumnya, {0}. Email tersebut beris msgid "An error occured" msgstr "Terjadi kesalahan" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "Masalah yang tidak termasuk dalam pilihan" @@ -394,7 +407,7 @@ msgstr "Masalah yang tidak termasuk dalam pilihan" msgid "An issue occurred, please try again." msgstr "Terjadi masalah, silakan coba lagi." -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -403,7 +416,7 @@ msgstr "" msgid "and" msgstr "dan" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "Hewan" @@ -411,7 +424,7 @@ msgstr "Hewan" msgid "Animated GIF" msgstr "Animasi GIF" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "Perilaku Anti-Sosial" @@ -441,16 +454,16 @@ msgstr "Pengaturan kata sandi aplikasi" msgid "App Passwords" msgstr "Kata sandi Aplikasi" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "Ajukan Banding" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "Banding label \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -462,19 +475,24 @@ msgstr "" msgid "Appearance" msgstr "Tampilan" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Anda yakin untuk menghapus kata sandi aplikasi \"{name}\"?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Apakah Anda yakin ingin menghapus {0} dari daftar feed Anda?" @@ -490,11 +508,11 @@ msgstr "Anda yakin?" msgid "Are you writing in <0>{0}?" msgstr "Apakah Anda menulis dalam <0>{0}?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "Seni" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Ketelanjangan artistik atau non-erotis." @@ -502,17 +520,17 @@ msgstr "Ketelanjangan artistik atau non-erotis." msgid "At least 3 characters" msgstr "Sedikitnya 3 karakter" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -540,8 +558,8 @@ msgstr "Tanggal lahir:" msgid "Block" msgstr "Blokir" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -554,15 +572,15 @@ msgstr "Blokir Akun" msgid "Block Account?" msgstr "Blokir Akun?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "Blokir akun" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "Blokir daftar" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "Blokir akun ini?" @@ -596,7 +614,7 @@ msgstr "Postingan yang diblokir." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Pemblokiran tidak menghalangi pelabel ini menerapkan label pada akun Anda." -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Pemblokiran bersifat publik. Akun yang diblokir tidak dapat membalas postingan Anda, menyebut Anda, atau berinteraksi dengan Anda." @@ -644,10 +662,15 @@ msgstr "Buramkan gambar" msgid "Blur images and filter from feeds" msgstr "Buramkan gambar dan saring dari feed" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "Buku" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Bisnis" @@ -694,9 +717,9 @@ msgstr "Hanya dapat terdiri dari huruf, angka, spasi, tanda hubung dan garis baw #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -708,26 +731,26 @@ msgstr "Hanya dapat terdiri dari huruf, angka, spasi, tanda hubung dan garis baw #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "Batal" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "Batal" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "Batal menghapus akun" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "Batal mengubah handle" @@ -752,7 +775,7 @@ msgstr "Batal mencari" msgid "Cancels opening the linked website" msgstr "Membatalkan membuka situs web tertaut" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "Ubah" @@ -765,12 +788,12 @@ msgstr "Ubah" msgid "Change handle" msgstr "Ubah handle" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "Ubah Handle" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Ubah email saya" @@ -787,7 +810,7 @@ msgstr "Ubah Kata Sandi" msgid "Change post language to {0}" msgstr "Ubah bahasa postingan menjadi {0}" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "Ubah Email Anda" @@ -795,11 +818,11 @@ msgstr "Ubah Email Anda" msgid "Chat" msgstr "Chat" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -825,11 +848,11 @@ msgstr "Periksa status saya" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "Periksa email Anda untuk mendapatkan kode login dan masukkan di sini." -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Periksa kotak masuk email Anda untuk kode konfirmasi dan masukkan di bawah ini:" @@ -841,7 +864,7 @@ msgstr "Pilih \"Semua Orang\" atau \"Tidak Ada\"" msgid "Choose Service" msgstr "Pilih Layanan" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "Pilih algoritma yang akan digunakan untuk feed khusus Anda." @@ -850,6 +873,10 @@ msgstr "Pilih algoritma yang akan digunakan untuk feed khusus Anda." #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "Pilih feed utama Anda" @@ -891,6 +918,10 @@ msgstr "Hapus semua data penyimpanan" msgid "click here" msgstr "klik di sini" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Klik di sini untuk membuka menu tagar dari {tag}" @@ -899,7 +930,7 @@ msgstr "Klik di sini untuk membuka menu tagar dari {tag}" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "Iklim" @@ -968,11 +999,11 @@ msgstr "Menutup penampil untuk gambar header" msgid "Collapses list of users for a given notification" msgstr "Menciutkan daftar pengguna untuk notifikasi tertentu" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "Komedi" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "Komik" @@ -981,7 +1012,7 @@ msgstr "Komik" msgid "Community Guidelines" msgstr "Panduan Komunitas" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "Selesaikan onboarding dan mulai menggunakan akun Anda" @@ -1011,18 +1042,18 @@ msgstr "Diatur pada <0>pengaturan moderasi." #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Konfirmasi" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "Konfirmasi Perubahan" @@ -1030,7 +1061,7 @@ msgstr "Konfirmasi Perubahan" msgid "Confirm content language settings" msgstr "Konfirmasi pengaturan bahasa konten" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "Konfirmasi hapus akun" @@ -1042,17 +1073,17 @@ msgstr "Konfirmasikan usia Anda:" msgid "Confirm your birthdate" msgstr "Konfirmasi tanggal lahir Anda" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Kode konfirmasi" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "Menghubungkan..." @@ -1099,8 +1130,9 @@ msgstr "Latar belakang menu konteks, klik untuk menutup menu." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "Lanjutkan" @@ -1110,8 +1142,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "Lanjutkan sebagai {0} (saat ini masuk)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1125,7 +1158,7 @@ msgstr "Lanjutkan ke langkah berikutnya" msgid "Continue to the next step without following any accounts" msgstr "Lanjutkan ke langkah berikutnya tanpa mengikuti akun apa pun" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "Memasak" @@ -1138,9 +1171,9 @@ msgstr "Disalin" msgid "Copied build version to clipboard" msgstr "Menyalin versi build ke papan klip" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1158,7 +1191,7 @@ msgstr "Menyalin kata sandi aplikasi" msgid "Copy" msgstr "Salin" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "Salin {0}" @@ -1167,7 +1200,7 @@ msgstr "Salin {0}" msgid "Copy code" msgstr "Salin kode" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "Salin tautan daftar" @@ -1191,15 +1224,15 @@ msgstr "Salin teks postingan" msgid "Copyright Policy" msgstr "Kebijakan Hak Cipta" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Tidak dapat memuat feed" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "Tidak dapat memuat daftar" @@ -1207,13 +1240,13 @@ msgstr "Tidak dapat memuat daftar" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1233,6 +1266,10 @@ msgstr "Buat Akun" msgid "Create an account" msgstr "Buat akun" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "Buat Kata Sandi Aplikasi" @@ -1242,7 +1279,7 @@ msgstr "Buat Kata Sandi Aplikasi" msgid "Create new account" msgstr "Buat akun baru" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "Buat laporan untuk {0}" @@ -1254,7 +1291,7 @@ msgstr "Dibuat {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "Budaya" @@ -1263,12 +1300,12 @@ msgstr "Budaya" msgid "Custom" msgstr "Kustom" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "Domain kustom" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Feed khusus yang dibuat oleh komunitas memberikan pengalaman baru dan membantu Anda menemukan konten yang Anda sukai." @@ -1301,10 +1338,10 @@ msgstr "Debug Moderasi" msgid "Debug panel" msgstr "Panel awakutu" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "Hapus" @@ -1316,7 +1353,7 @@ msgstr "Hapus akun" #~ msgid "Delete Account" #~ msgstr "Hapus Akun" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1332,11 +1369,11 @@ msgstr "Hapus kata sandi aplikasi?" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "Hapus Daftar" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1344,7 +1381,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "Hapus akun saya" @@ -1357,7 +1394,7 @@ msgstr "Hapus Akun Saya…" msgid "Delete post" msgstr "Hapus postingan" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "Hapus daftar ini?" @@ -1396,7 +1433,7 @@ msgstr "Redup" msgid "Disable autoplay for GIFs" msgstr "Nonaktifkan pemutaran otomatis untuk GIF" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "Nonaktfikan Email 2FA" @@ -1437,7 +1474,7 @@ msgstr "Cegah aplikasi untuk menampilkan akun saya ke pengguna yang tidak login" msgid "Discover new custom feeds" msgstr "Temukan feed khusus baru" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "Temukan Feed Baru" @@ -1449,7 +1486,7 @@ msgstr "Nama tampilan" msgid "Display Name" msgstr "Nama Tampilan" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "Panel DNS" @@ -1461,11 +1498,11 @@ msgstr "Tidak termasuk ketelanjangan." msgid "Doesn't begin or end with a hyphen" msgstr "Tidak diawali atau diakhiri dengan tanda hubung" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "Nilai Domain" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "Domain terverifikasi!" @@ -1473,6 +1510,8 @@ msgstr "Domain terverifikasi!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1481,15 +1520,13 @@ msgstr "Domain terverifikasi!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "Selesai" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1503,8 +1540,8 @@ msgstr "Selesai" msgid "Done{extraText}" msgstr "Selesai{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "Unduh berkas CAR" @@ -1516,7 +1553,7 @@ msgstr "Lepaskan untuk menambahkan gambar" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Sesuai dengan kebijakan Apple, konten dewasa hanya dapat diaktifkan di web setelah menyelesaikan pendaftaran." -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "contoh: alice" @@ -1524,7 +1561,7 @@ msgstr "contoh: alice" msgid "e.g. Alice Roberts" msgstr "contoh: Alice Roberts" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "contoh: alice.com" @@ -1571,7 +1608,7 @@ msgstr "Edit avatar" msgid "Edit image" msgstr "Edit gambar" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "Edit detail daftar" @@ -1580,8 +1617,8 @@ msgid "Edit Moderation List" msgstr "Ubah Daftar Moderasi" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "Edit Feed Saya" @@ -1600,7 +1637,7 @@ msgid "Edit Profile" msgstr "Edit Profil" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "Edit Feed Tersimpan" @@ -1616,16 +1653,16 @@ msgstr "Ubah nama tampilan Anda" msgid "Edit your profile description" msgstr "Ubah deskripsi profil Anda" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "Pendidikan" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Email" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "Email 2FA dinonaktifkan" @@ -1633,16 +1670,16 @@ msgstr "Email 2FA dinonaktifkan" msgid "Email address" msgstr "Alamat email" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "Email diperbarui" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "Email Diupdate" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "Email terverifikasi" @@ -1690,7 +1727,7 @@ msgstr "Aktifkan media eksternal" msgid "Enable media players for" msgstr "Aktifkan pemutar media untuk" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "Aktifkan opsi ini untuk hanya menampilkan balasan dari akun yang Anda ikuti." @@ -1719,7 +1756,7 @@ msgstr "Masukkan kata sandi" msgid "Enter a word or tag" msgstr "Masukkan kata atau tag" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "Masukkan Kode Konfirmasi" @@ -1727,7 +1764,7 @@ msgstr "Masukkan Kode Konfirmasi" msgid "Enter the code you received to change your password." msgstr "Masukkan kode yang Anda terima untuk mengubah kata sandi Anda." -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "Masukkan domain yang ingin Anda gunakan" @@ -1744,11 +1781,11 @@ msgstr "Masukkan tanggal lahir Anda" msgid "Enter your email address" msgstr "Masukkan alamat email Anda" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "Masukkan email baru Anda di atas" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "Masukkan alamat email baru Anda di bawah ini." @@ -1756,11 +1793,15 @@ msgstr "Masukkan alamat email baru Anda di bawah ini." msgid "Enter your username and password" msgstr "Masukkan nama pengguna dan kata sandi Anda" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Gagal menerima respons captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "Eror:" @@ -1769,15 +1810,19 @@ msgstr "Eror:" msgid "Everybody" msgstr "Semua orang" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "Menyebut atau membalas secara berlebihan" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "Keluar dari proses penghapusan akun" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "Keluar dari proses perubahan handle" @@ -1815,7 +1860,7 @@ msgstr "Gambar seksual eksplisit." msgid "Export my data" msgstr "Ekspor data saya" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "Ekspor Data Saya" @@ -1849,7 +1894,7 @@ msgstr "Gagal membuat kata sandi aplikasi." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Gagal membuat daftar. Periksa koneksi internet Anda dan coba lagi." -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -1861,7 +1906,7 @@ msgstr "Gagal menghapus postingan, silakan coba lagi" msgid "Failed to load GIFs" msgstr "Gagal memuat GIF" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -1870,35 +1915,39 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "Gagal menyimpan gambar: {0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "Feed oleh {0}" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "Feed offline" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "Masukan" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "Feed" @@ -1906,7 +1955,7 @@ msgstr "Feed" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Feed adalah algoritma khusus yang dibuat oleh pengguna dengan sedikit keahlian pengkodean. <0/> untuk informasi lebih lanjut." @@ -1914,15 +1963,19 @@ msgstr "Feed adalah algoritma khusus yang dibuat oleh pengguna dengan sedikit ke msgid "Feeds can be topical as well!" msgstr "Feed juga bisa berdasarkan topik!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Isi Berkas" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Saring dari feed" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "Menyelesaikan" @@ -1948,7 +2001,7 @@ msgstr "Temukan postingan dan pengguna di Bluesky" #~ msgid "Finding similar accounts..." #~ msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "Sesuaikan konten yang ingin Anda lihat di feed Following." @@ -1956,11 +2009,11 @@ msgstr "Sesuaikan konten yang ingin Anda lihat di feed Following." msgid "Fine-tune the discussion threads." msgstr "Atur utasan diskusi." -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "Kebugaran" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "Fleksibel" @@ -2022,7 +2075,7 @@ msgstr "Diikuti oleh {0}" msgid "Followed users" msgstr "Pengguna yang diikuti" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "Hanya pengguna yang diikuti" @@ -2040,7 +2093,9 @@ msgstr "Pengikut" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "Mengikuti" @@ -2055,7 +2110,7 @@ msgstr "Preferensi feed Following" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "Preferensi Feed Following" @@ -2068,11 +2123,11 @@ msgstr "Mengikuti Anda" msgid "Follows You" msgstr "Mengikuti Anda" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "Makanan" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Untuk alasan keamanan, kami akan mengirimkan kode konfirmasi ke alamat email Anda." @@ -2085,15 +2140,15 @@ msgstr "Untuk alasan keamanan, Anda tidak akan dapat melihat ini lagi. Jika Anda msgid "Forgot Password" msgstr "Lupa Kata Sandi" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "Lupa kata sandi?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "Lupa?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "Sering Memposting Konten yang Tidak Diinginkan" @@ -2110,12 +2165,16 @@ msgstr "Dari <0/>" msgid "Gallery" msgstr "Galeri" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Memulai" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "Pelanggaran hukum atau ketentuan layanan secara terang-terangan" @@ -2124,9 +2183,9 @@ msgstr "Pelanggaran hukum atau ketentuan layanan secara terang-terangan" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "Kembali" @@ -2134,12 +2193,13 @@ msgstr "Kembali" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "Kembali" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2165,11 +2225,11 @@ msgstr "Ke Beranda" msgid "Go to next" msgstr "Berikutnya" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2177,7 +2237,7 @@ msgstr "" msgid "Graphic Media" msgstr "Media Sensitif" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Handle" @@ -2185,7 +2245,7 @@ msgstr "Handle" msgid "Haptics" msgstr "Haptik" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "Pelecehan, unggah sulut, atau intoleransi" @@ -2193,7 +2253,7 @@ msgstr "Pelecehan, unggah sulut, atau intoleransi" msgid "Hashtag" msgstr "Tagar" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "Tagar: #{tag}" @@ -2202,10 +2262,14 @@ msgid "Having trouble?" msgstr "Mengalami masalah?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "Bantuan" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "Berikut beberapa akun untuk Anda ikuti" @@ -2258,23 +2322,23 @@ msgstr "Sembunyikan postingan ini?" msgid "Hide user list" msgstr "Sembunyikan daftar pengguna" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm, ada masalah yang terjadi saat menghubungi server feed. Harap beri tahu pemilik feed tentang masalah ini." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, server feed tampaknya salah konfigurasi. Harap beri tahu pemilik feed tentang masalah ini." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, server feed tampaknya sedang offline. Harap beri tahu pemilik feed tentang masalah ini." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, server feed memberikan respons yang buruk. Harap beri tahu pemilik feed tentang masalah ini." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, kami kesulitan menemukan feed ini. Mungkin sudah dihapus." @@ -2287,21 +2351,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "Hmmmm, kami tidak dapat memuat layanan moderasi." #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "Beranda" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "Host:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Provider hosting" @@ -2309,25 +2373,29 @@ msgstr "Provider hosting" msgid "How should we open this link?" msgstr "Bagaimana kami harus membuka tautan ini?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "Saya punya kode" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "Saya punya kode konfirmasi" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "Saya punya domain sendiri" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Jika teks alt panjang, alihkan status teks alt yang diperluas" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "Jika tidak ada yang dipilih, cocok untuk semua umur." @@ -2335,7 +2403,7 @@ msgstr "Jika tidak ada yang dipilih, cocok untuk semua umur." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Jika Anda belum berusia dewasa menurut hukum negara Anda, orang tua atau wali sah Anda harus membaca Ketentuan ini atas nama Anda." -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "Jika Anda menghapus daftar ini, Anda tidak dapat memulihkannya lagi." @@ -2347,7 +2415,7 @@ msgstr "Jika Anda menghapus postingan ini, Anda tidak dapat memulihkannya lagi." msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Jika Anda ingin mengubah kata sandi, kami akan mengirimkan kode untuk memverifikasi bahwa ini adalah akun Anda." -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "Ilegal dan Urgen" @@ -2359,7 +2427,7 @@ msgstr "Gambar" msgid "Image alt text" msgstr "Teks alt gambar" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "Impersonasi atau klaim palsu tentang identitas atau afiliasi" @@ -2367,7 +2435,7 @@ msgstr "Impersonasi atau klaim palsu tentang identitas atau afiliasi" msgid "Input code sent to your email for password reset" msgstr "Masukkan kode yang dikirim ke email Anda untuk pengaturan ulang kata sandi" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "Masukkan kode konfirmasi untuk penghapusan akun" @@ -2379,27 +2447,27 @@ msgstr "Masukkan nama untuk kata sandi aplikasi" msgid "Input new password" msgstr "Masukkan kata sandi baru" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "Masukkan kata sandi untuk penghapusan akun" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "Masukkan kode yang telah dikirim ke email Anda" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "Masukkan kata sandi yang terkait dengan {identifier}" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Masukkan nama pengguna atau alamat email yang Anda gunakan saat mendaftar" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "Masukkan kata sandi Anda" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "Masukkan penyedia hosting pilihan Anda" @@ -2407,8 +2475,8 @@ msgstr "Masukkan penyedia hosting pilihan Anda" msgid "Input your user handle" msgstr "Masukkan handle pengguna Anda" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Kode konfirmasi 2FA tidak valid." @@ -2416,7 +2484,7 @@ msgstr "Kode konfirmasi 2FA tidak valid." msgid "Invalid or unsupported post record" msgstr "Catatan posting tidak valid atau tidak didukung" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "Username atau kata sandi salah" @@ -2428,7 +2496,7 @@ msgstr "Undang Teman" msgid "Invite code" msgstr "Kode Undangan" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Kode undangan salah. Periksa bahwa Anda memasukkannya dengan benar dan coba lagi." @@ -2448,7 +2516,7 @@ msgstr "Feed ini menampilkan postingan secara langsung dari orang yang Anda ikut msgid "Jobs" msgstr "Karir" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "Jurnalisme" @@ -2476,11 +2544,11 @@ msgstr "Label adalah anotasi pada pengguna dan konten. Label dapat digunakan unt #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "label telah diterapkan pada {labelTarget} ini" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "Label pada akun Anda" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "Label pada konten Anda" @@ -2528,13 +2596,13 @@ msgstr "Pelajari lebih lanjut tentang apa yang publik di Bluesky." msgid "Learn more." msgstr "Pelajari lebih lanjut." -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2559,7 +2627,7 @@ msgstr "Penyimpanan lama dihapus, Anda perlu memulai ulang aplikasi sekarang." msgid "Let's get your password reset!" msgstr "Reset kata sandi Anda!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "Ayo!" @@ -2572,7 +2640,7 @@ msgstr "Terang" #~ msgstr "Suka" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Suka feed ini" @@ -2626,19 +2694,19 @@ msgstr "Daftar" msgid "List Avatar" msgstr "Avatar Daftar" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "Daftar diblokir" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "Daftar oleh {0}" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "Daftar dihapus" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "Daftar dibisukan" @@ -2646,20 +2714,20 @@ msgstr "Daftar dibisukan" msgid "List Name" msgstr "Nama Daftar" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "Daftar tidak diblokir" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "Daftar tidak dibisukan" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "Daftar" @@ -2668,9 +2736,9 @@ msgid "Load new notifications" msgstr "Muat notifikasi baru" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "Muat postingan baru" @@ -2697,7 +2765,7 @@ msgstr "Visibilitas pengguna yang tidak login" msgid "Login to account that is not listed" msgstr "Masuk ke akun yang tidak ada di daftar" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "Tekan lama untuk membuka menu tagar untuk #{tag}" @@ -2705,6 +2773,18 @@ msgstr "Tekan lama untuk membuka menu tagar untuk #{tag}" msgid "Looks like XXXXX-XXXXX" msgstr "Seperti XXXXX-XXXXX" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "Pastikan ini adalah website yang Anda tuju!" @@ -2713,6 +2793,11 @@ msgstr "Pastikan ini adalah website yang Anda tuju!" msgid "Manage your muted words and tags" msgstr "Kelola kata dan tagar yang dibisukan" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2731,30 +2816,35 @@ msgstr "Pengguna yang disebutkan" msgid "Menu" msgstr "Menu" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Pesan dari server: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "Pengaturan pesan" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "Pesan" @@ -2762,7 +2852,7 @@ msgstr "Pesan" msgid "Messaging settings" msgstr "Pengaturan perpesanan" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "Akun Menyesatkan" @@ -2781,13 +2871,13 @@ msgstr "Detail moderasi" msgid "Moderation list by {0}" msgstr "Daftar moderasi oleh {0}" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "Daftar moderasi oleh <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "Daftar moderasi Anda" @@ -2829,11 +2919,11 @@ msgstr "Moderator telah memilih untuk menetapkan peringatan umum pada konten." msgid "More" msgstr "Lainnya" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Feed lainnya" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "Pilihan lainnya" @@ -2854,7 +2944,7 @@ msgstr "Bisukan {truncatedTag}" msgid "Mute Account" msgstr "Bisukan Akun" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "Bisukan akun" @@ -2870,16 +2960,16 @@ msgstr "Bisukan di tagar saja" msgid "Mute in text & tags" msgstr "Bisukan di teks & tagar" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "Bisukan daftar" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "Bisukan akun ini?" @@ -2926,7 +3016,7 @@ msgstr "Dibisukan oleh \"{0}\"" msgid "Muted words & tags" msgstr "Kata & tagar yang dibisukan" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Pembisuan akun bersifat privat. Akun yang dibisukan tetap dapat berinteraksi dengan Anda, namun Anda tidak akan melihat postingan atau notifikasi dari mereka." @@ -2935,11 +3025,11 @@ msgstr "Pembisuan akun bersifat privat. Akun yang dibisukan tetap dapat berinter msgid "My Birthday" msgstr "Tanggal Lahir Saya" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "Feed Saya" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "Profil Saya" @@ -2960,27 +3050,27 @@ msgstr "Nama" msgid "Name is required" msgstr "Nama harus diisi" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "Nama atau Deskripsi Melanggar Standar Komunitas" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "Alam" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Menuju ke layar berikutnya" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "Menuju ke profil Anda" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "Perlu melaporkan pelanggaran hak cipta?" @@ -2989,11 +3079,11 @@ msgstr "Perlu melaporkan pelanggaran hak cipta?" #~ msgid "Never lose access to your followers and data." #~ msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "Tidak akan lagi kehilangan akses ke data dan pengikut Anda." -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "Tidak usah, buatkan handle untuk saya" @@ -3007,8 +3097,8 @@ msgid "New" msgstr "Baru" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -3024,22 +3114,22 @@ msgstr "Kata sandi baru" msgid "New Password" msgstr "Kata Sandi Baru" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "Postingan baru" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "Postingan baru" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "Postingan baru" @@ -3052,14 +3142,14 @@ msgstr "Daftar Pengguna Baru" msgid "Newest replies first" msgstr "Balasan terbaru terlebih dahulu" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "Berita" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3077,21 +3167,21 @@ msgstr "Berikutnya" msgid "Next image" msgstr "Gambar berikutnya" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "Tidak" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "Tidak ada deskripsi" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "Tanpa Panel DNS" @@ -3107,8 +3197,8 @@ msgstr "Tidak lagi mengikuti {0}" msgid "No longer than 253 characters" msgstr "Tidak lebih dari 253 karakter" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3125,7 +3215,7 @@ msgstr "Tidak ada hasil" msgid "No results found" msgstr "Tidak ada hasil yang ditemukan" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "Tidak ada hasil ditemukan untuk \"{query}\"" @@ -3170,8 +3260,8 @@ msgstr "Ketelanjangan Non-Seksual" msgid "Not Found" msgstr "Tidak ditemukan" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "Jangan sekarang" @@ -3188,22 +3278,22 @@ msgstr "Catatan: Bluesky merupakan jaringan terbuka dan publik. Pengaturan ini h #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "Notifikasi" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Ketelanjangan" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "Ketelanjangan atau konten dewasa yang tidak dilabeli sedemikian rupa" @@ -3220,7 +3310,7 @@ msgstr "Matikan" msgid "Oh no!" msgstr "Oh tidak!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "Oh tidak! Sepertinya ada yang salah." @@ -3245,6 +3335,10 @@ msgstr "Atur ulang orientasi" msgid "One or more images is missing alt text." msgstr "Satu atau lebih gambar belum ada teks alt." +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "Hanya {0} dapat membalas." @@ -3263,16 +3357,20 @@ msgstr "Oops, sepertinya ada yang salah!" msgid "Oops!" msgstr "Uups!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "Buka" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "Buka pemilih emoji" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "Buka menu opsi feed" @@ -3375,7 +3473,7 @@ msgstr "Membuka modal untuk mengunduh data akun (repositori) Bluesky Anda" msgid "Opens modal for email verification" msgstr "Membuka modal untuk verifikasi email" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "Buka modal untuk menggunakan domain kustom" @@ -3383,12 +3481,12 @@ msgstr "Buka modal untuk menggunakan domain kustom" msgid "Opens moderation settings" msgstr "Buka pengaturan moderasi" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "Membuka formulir pengaturan ulang kata sandi" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "Membuka layar untuk mengedit Feed Tersimpan" @@ -3408,7 +3506,7 @@ msgstr "Membuka preferensi feed Following" msgid "Opens the linked website" msgstr "Membuka situs web tertaut" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "Membuka halaman pengaturan perpesanan" @@ -3429,6 +3527,7 @@ msgstr "Buka preferensi utasan" msgid "Option {0} of {numItems}" msgstr "Opsi {0} dari {numItems}" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "Jika perlu, berikan informasi tambahan di bawah ini:" @@ -3437,7 +3536,7 @@ msgstr "Jika perlu, berikan informasi tambahan di bawah ini:" msgid "Or combine these options:" msgstr "Atau gabungkan opsi-opsi berikut:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "Lainnya" @@ -3458,10 +3557,10 @@ msgstr "Halaman tidak ditemukan" msgid "Page Not Found" msgstr "Halaman Tidak Ditemukan" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "Kata sandi" @@ -3493,32 +3592,32 @@ msgstr "Orang yang diikuti oleh @{0}" msgid "People following @{0}" msgstr "Orang yang mengikuti @{0}" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "Diperlukan izin untuk mengakses rol kamera." -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Izin untuk mengakses rol kamera ditolak. Silakan aktifkan di pengaturan sistem Anda." -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "Hewan Peliharaan" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Gambar yang ditujukan untuk orang dewasa." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "Sematkan ke beranda" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "Sematkan ke Beranda" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "Feed Tersemat" @@ -3543,19 +3642,19 @@ msgstr "Putar Video" msgid "Plays the GIF" msgstr "Putar GIF" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "Silakan pilih handle Anda." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "Masukkan kata sandi Anda." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "Mohon selesaikan verifikasi captcha." -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Harap konfirmasi email Anda sebelum mengubahnya. Ini adalah persyaratan sementara selama alat pembaruan email ditambahkan, dan akan segera dihapus." @@ -3571,15 +3670,15 @@ msgstr "Masukkan nama unik untuk Kata Sandi Aplikasi ini atau gunakan nama yang msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Silakan masukkan kata, tagar, atau frasa yang valid untuk dibisukan" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "Masukkan email Anda." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "Masukkan juga kata sandi Anda:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Jelaskan menurut Anda mengapa {0} salah menerapkan label ini" @@ -3587,7 +3686,7 @@ msgstr "Jelaskan menurut Anda mengapa {0} salah menerapkan label ini" msgid "Please sign in as @{0}" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Mohon Verifikasi Email Anda" @@ -3595,11 +3694,11 @@ msgstr "Mohon Verifikasi Email Anda" msgid "Please wait for your link card to finish loading" msgstr "Harap tunggu hingga kartu tautan Anda selesai dimuat" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "Politik" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "Pornografi" @@ -3667,7 +3766,7 @@ msgstr "Postingan" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Postingan dapat dibisukan berdasarkan teks, tagar mereka, atau keduanya." -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "Postingan disembunyikan" @@ -3681,15 +3780,15 @@ msgstr "Tekan untuk mengganti penyedia hosting" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "Tekan untuk mengulangi" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3712,7 +3811,7 @@ msgstr "Privasi" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Kebijakan Privasi" @@ -3725,11 +3824,11 @@ msgstr "Memproses..." msgid "profile" msgstr "profil" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "Profil" @@ -3741,7 +3840,7 @@ msgstr "Profil diperbarui" msgid "Protect your account by verifying your email." msgstr "Amankan akun Anda dengan memverifikasi email Anda." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "Publik" @@ -3783,6 +3882,10 @@ msgstr "Acak (alias \"Rolet Poster\")" msgid "Ratios" msgstr "Rasio" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "Pencarian terakhir" @@ -3796,11 +3899,11 @@ msgstr "Pencarian terakhir" #~ msgstr "" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Hapus" @@ -3816,22 +3919,25 @@ msgstr "Hapus Avatar" msgid "Remove Banner" msgstr "Hapus Banner" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "Hapus feed" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "Hapus feed?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "Hapus dari feed saya" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "Hapus dari feed saya?" @@ -3855,7 +3961,7 @@ msgstr "Hapus kutipan" msgid "Remove repost" msgstr "Hapus postingan ulang" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "Hapus feed ini dari feed tersimpan Anda" @@ -3864,11 +3970,13 @@ msgstr "Hapus feed ini dari feed tersimpan Anda" msgid "Removed from list" msgstr "Dihapus dari daftar" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "Dihapus dari feed saya" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "Dihapus dari feed Anda" @@ -3880,6 +3988,11 @@ msgstr "Menghapus gambar pra tinjau bawaan dari {0}" msgid "Removes quoted post" msgstr "Hapus kutipan postingan" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "Balasan" @@ -3893,7 +4006,7 @@ msgctxt "action" msgid "Reply" msgstr "Balas" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "Penyaring Balasan" @@ -3915,24 +4028,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Laporkan Akun" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Dialog laporan" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "Laporkan feed" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "Laporkan Daftar" @@ -3945,30 +4064,36 @@ msgstr "" msgid "Report post" msgstr "Laporkan postingan" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "Laporkan konten ini" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "Laporkan feed ini" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "Laporkan daftar ini" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "Laporkan postingan ini" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "Laporkan pengguna ini" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "Posting ulang" @@ -4006,8 +4131,8 @@ msgstr "memposting ulang postingan Anda" msgid "Reposts of this post" msgstr "Posting ulang postingan ini" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "Ajukan Perubahan" @@ -4020,7 +4145,7 @@ msgstr "Minta Kode" msgid "Require alt text before posting" msgstr "Wajibkan teks alt sebelum memposting" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "Gunakan kode email untuk masuk ke akun Anda" @@ -4028,8 +4153,8 @@ msgstr "Gunakan kode email untuk masuk ke akun Anda" msgid "Required for this provider" msgstr "Diwajibkan untuk provider ini" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "Kirim ulang email" @@ -4063,7 +4188,7 @@ msgstr "Reset status onboarding" msgid "Resets the preferences state" msgstr "Reset status preferensi" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "Mencoba masuk kembali" @@ -4072,13 +4197,14 @@ msgstr "Mencoba masuk kembali" msgid "Retries the last action, which errored out" msgstr "Coba kembali tindakan terakhir, yang gagal" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4086,11 +4212,11 @@ msgid "Retry" msgstr "Ulangi" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "Kembali ke halaman sebelumnya" @@ -4099,20 +4225,20 @@ msgid "Returns to home page" msgstr "Kembali ke beranda" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "Kembali ke halaman sebelumnya" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Simpan" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4130,7 +4256,7 @@ msgstr "Simpan tanggal lahir" msgid "Save Changes" msgstr "Simpan Perubahan" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "Simpan perubahan handle" @@ -4138,16 +4264,16 @@ msgstr "Simpan perubahan handle" msgid "Save image crop" msgstr "Simpan potongan gambar" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "Tambakan ke feed saya" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "Feed Tersimpan" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4155,7 +4281,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "Disimpan ke rol kamera Anda." -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "Disimpan ke feed Anda" @@ -4163,7 +4290,7 @@ msgstr "Disimpan ke feed Anda" msgid "Saves any changes to your profile" msgstr "Simpan setiap perubahan pada profil Anda" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "Simpan perubahan handle ke {handle}" @@ -4171,11 +4298,11 @@ msgstr "Simpan perubahan handle ke {handle}" msgid "Saves image crop settings" msgstr "Menyimpan pengaturan pemangkasan gambar" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "Sains" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "Gulir ke atas" @@ -4188,12 +4315,12 @@ msgstr "Gulir ke atas" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "Cari" @@ -4235,7 +4362,7 @@ msgstr "" msgid "Search Tenor" msgstr "Cari di Tenor" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "Langkah Keamanan Diperlukan" @@ -4260,7 +4387,7 @@ msgstr "Lihat postingan <0>{displayTag} oleh pengguna ini" msgid "See profile" msgstr "Lihat profil" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "Lihat panduan ini" @@ -4272,10 +4399,22 @@ msgstr "Lihat panduan ini" msgid "Select {item}" msgstr "Pilih {item}" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "Pilih akun" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Pilih dari akun yang sudah ada" @@ -4304,6 +4443,10 @@ msgstr "Pilih opsi {i} dari {numItems}" msgid "Select some accounts below to follow" msgstr "Pilih beberapa akun di bawah ini untuk diikuti" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "Pilih layanan moderasi untuk melaporkan" @@ -4332,7 +4475,7 @@ msgstr "Pilih bahasa untuk teks yang akan ditampilkan dalam aplikasi." msgid "Select your date of birth" msgstr "Pilih tanggal lahir Anda" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "Pilih minat Anda dari opsi di bawah ini" @@ -4348,30 +4491,32 @@ msgstr "Pilih feed algoritma utama Anda" msgid "Select your secondary algorithmic feeds" msgstr "Pilih feed algoritma sekunder Anda" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Kirim Email Konfirmasi" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "Kirim email" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "Kirim Email" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "Kirim masukan" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4381,12 +4526,12 @@ msgstr "Kirim laporan" msgid "Send report to {0}" msgstr "Kirim laporan ke {0}" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "Kirim email verifikasi" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "Kirim email dengan kode konfirmasi untuk penghapusan akun" @@ -4402,15 +4547,15 @@ msgstr "Atur tanggal lahir" msgid "Set new password" msgstr "Buat kata sandi baru" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Pilih \"Tidak\" untuk menyembunyikan semua kutipan postingan dari feed Anda. Posting ulang tetap akan terlihat." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Pilih \"Tidak\" untuk menyembunyikan semua balasan dari feed Anda." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Pilih \"Tidak\" untuk menyembunyikan semua posting ulang dari feed Anda." @@ -4418,7 +4563,7 @@ msgstr "Pilih \"Tidak\" untuk menyembunyikan semua posting ulang dari feed Anda. msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Pilih \"Ya\" untuk menampilkan balasan dalam bentuk utasan. Ini merupakan fitur eksperimental." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Pilih \"Ya\" untuk menampilkan beberapa sampel dari feed tersimpan di feed Mengikuti Anda. Ini merupakan fitur eksperimental" @@ -4426,7 +4571,7 @@ msgstr "Pilih \"Ya\" untuk menampilkan beberapa sampel dari feed tersimpan di fe msgid "Set up your account" msgstr "Atur akun Anda" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Atur nama pengguna Bluesky" @@ -4469,13 +4614,13 @@ msgstr "Mengatur aspek rasio gambar menjadi lebar" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "Pengaturan" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "Aktivitas seksual atau ketelanjangan erotis." @@ -4483,7 +4628,7 @@ msgstr "Aktivitas seksual atau ketelanjangan erotis." msgid "Sexually Suggestive" msgstr "Mengarah ke Seksualitas" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "Bagikan" @@ -4493,7 +4638,7 @@ msgstr "Bagikan" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "Bagikan" @@ -4503,8 +4648,8 @@ msgstr "Bagikan" msgid "Share anyway" msgstr "Tetap bagikan" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "Bagikan feed" @@ -4567,11 +4712,11 @@ msgstr "Tampilkan Lebih Lanjut" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Tampilkan Postingan dari Feed Saya" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "Tampilkan Kutipan Postingan" @@ -4587,7 +4732,7 @@ msgstr "Tampilkan kutipan di Mengikuti" msgid "Show re-posts in Following feed" msgstr "Tampilkan posting ulang di feed Mengikuti" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "Tampilkan Balasan" @@ -4607,7 +4752,7 @@ msgstr "Tampilkan balasan di feed Mengikuti" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Tampilkan balasan dengan setidaknya {value} {0}" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "Tampilkan Posting Ulang" @@ -4640,17 +4785,17 @@ msgstr "Tampilkan postingan dari {0} di feed Anda" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4678,12 +4823,12 @@ msgstr "Masuk ke Bluesky atau buat akun baru" msgid "Sign out" msgstr "Keluar" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4708,27 +4853,31 @@ msgstr "Masuk sebagai" msgid "Signed in as @{0}" msgstr "Masuk sebagai @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "Lewati" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "Lewati tahap ini" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "Pengembang Perangkat Lunak" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Terjadi kesalahan, silakan coba lagi." -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "Maaf! Sesi Anda telah berakhir. Silakan masuk lagi." @@ -4740,19 +4889,20 @@ msgstr "Urutkan Balasan" msgid "Sort replies to the same post by:" msgstr "Urutkan balasan ke postingan yang sama berdasarkan:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "Asal:" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "Spam" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "Spam; menyebut atau membalas secara berlebihan" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "Olahraga" @@ -4789,12 +4939,12 @@ msgstr "Penyimpanan dihapus, Anda perlu memulai ulang aplikasi sekarang." msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Kirim" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "Langganan" @@ -4815,7 +4965,7 @@ msgstr "Langganan ke feed {0}" msgid "Subscribe to this labeler" msgstr "Berlangganan pelabel ini" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "Langganan ke daftar ini" @@ -4827,7 +4977,7 @@ msgstr "Saran untuk Diikuti" msgid "Suggested for you" msgstr "Disarankan untuk Anda" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "Sugestif" @@ -4874,7 +5024,7 @@ msgstr "Tinggi" msgid "Tap to view fully" msgstr "Ketuk untuk melihat sepenuhnya" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "Teknologi" @@ -4886,13 +5036,13 @@ msgstr "Ketentuan" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Ketentuan Layanan" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "Istilah yang digunakan melanggar standar komunitas" @@ -4900,15 +5050,16 @@ msgstr "Istilah yang digunakan melanggar standar komunitas" msgid "text" msgstr "teks" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "Area input teks" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "Terima kasih. Laporan Anda telah terkirim." -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "Yang berisi konten berikut:" @@ -4933,11 +5084,15 @@ msgstr "Panduan Komunitas telah dipindahkan ke <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Kebijakan Hak Cipta telah dipindahkan ke <0/>" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "Label berikut ini telah diterapkan pada akun Anda." -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "Label berikut ini telah diterapkan pada konten Anda." @@ -4967,15 +5122,17 @@ msgid "There are many feeds to try:" msgstr "Ada banyak feed untuk dicoba:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Ada masalah saat menghubungi server, silakan periksa koneksi internet Anda dan coba lagi." -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Ada masalah saat menghapus feed ini. Periksa koneksi internet Anda dan coba lagi." -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Ada masalah saat memperbarui feed Anda, periksa koneksi internet Anda dan coba lagi." @@ -4987,16 +5144,17 @@ msgstr "Ada masalah saat menghubungkan ke Tenor." msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "Ada masalah saat menghubungi server" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "Ada masalah saat menghubungi server Anda" @@ -5004,7 +5162,7 @@ msgstr "Ada masalah saat menghubungi server Anda" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Ada masalah saat mengambil notifikasi. Ketuk di sini untuk mencoba lagi." -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Ada masalah saat mengambil postingan. Ketuk di sini untuk mencoba lagi." @@ -5017,6 +5175,7 @@ msgstr "Ada masalah saat mengambil daftar. Ketuk di sini untuk mencoba lagi." msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Ada masalah saat mengambil daftar Anda. Ketuk di sini untuk mencoba lagi." +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Ada masalah saat mengirimkan laporan. Silakan periksa koneksi internet Anda." @@ -5043,10 +5202,10 @@ msgstr "Ada masalah dengan pengambilan kata sandi aplikasi Anda" msgid "There was an issue! {0}" msgstr "Ada masalah! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "Ada masalah. Periksa koneksi internet Anda dan coba lagi." @@ -5071,7 +5230,7 @@ msgstr "Ini {screenDescription} telah ditandai:" msgid "This account has requested that users sign in to view their profile." msgstr "Akun ini mewajibkan pengguna untuk masuk agar bisa melihat profilnya." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "Banding ini akan dikirim ke <0>{0}." @@ -5096,21 +5255,21 @@ msgstr "Konten ini disediakan oleh {0}. Apakah Anda ingin mengaktifkan media eks msgid "This content is not available because one of the users involved has blocked the other." msgstr "Konten ini tidak tersedia karena salah satu pengguna yang terlibat telah memblokir pengguna lainnya." -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "Konten ini tidak dapat dilihat tanpa akun Bluesky." -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Fitur ini masih dalam versi beta. Anda dapat membaca lebih lanjut tentang ekspor repositori di <0>blogpost ini." -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Feed ini sedang menerima terlalu banyak trafik dan sementara tidak tersedia. Silakan coba lagi nanti." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "Feed ini kosong!" @@ -5118,11 +5277,15 @@ msgstr "Feed ini kosong!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Feed ini kosong! Anda mungkin perlu mengikuti lebih banyak pengguna atau menyesuaikan pengaturan bahasa Anda." +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Informasi ini tidak akan dibagikan ke pengguna lainnya." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "Ini penting jika Anda butuh untuk mengganti email atau reset kata sandi Anda nantinya." @@ -5138,6 +5301,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Pelabel ini belum menyatakan label yang dia publikasikan, dan mungkin tidak aktif." @@ -5146,7 +5313,7 @@ msgstr "Pelabel ini belum menyatakan label yang dia publikasikan, dan mungkin ti msgid "This link is taking you to the following website:" msgstr "Tautan ini akan membawa Anda ke website:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "Daftar ini kosong!" @@ -5179,7 +5346,7 @@ msgstr "Profil ini hanya dapat dilihat oleh pengguna yang masuk. Ini tidak akan msgid "This service has not provided terms of service or a privacy policy." msgstr "Layanan ini tidak menyediakan ketentuan layanan atau kebijakan privasi." -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "Ini akan membuat catatan domain di:" @@ -5233,10 +5400,14 @@ msgstr "Mode Utasan" msgid "Threads Preferences" msgstr "Preferensi Utas" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "Untuk menonaktifkan metode 2FA email, silakan verifikasi akses Anda ke alamat email." +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "Kepada siapa Anda ingin mengirimkan laporan ini?" @@ -5278,25 +5449,25 @@ msgstr "Coba lagi" msgid "Two-factor authentication" msgstr "Autentikasi dua faktor" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Tipe:" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "Buka blokir daftar" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "Bunyikan daftar" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5306,7 +5477,7 @@ msgstr "Tidak dapat terhubung ke layanan. Mohon periksa koneksi internet Anda." #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "Buka blokir" @@ -5327,7 +5498,7 @@ msgstr "Buka blokir Akun?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Batalkan posting ulang" @@ -5354,12 +5525,12 @@ msgstr "Batal Ikuti Akun" #~ msgid "Unlike" #~ msgstr "Tidak suka" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "Batalkan suka feed ini" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "Bunyikan" @@ -5376,7 +5547,7 @@ msgstr "Bunyikan Akun" msgid "Unmute all {displayTag} posts" msgstr "Batal bisukan semua postingan {displayTag}" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5385,16 +5556,16 @@ msgstr "" msgid "Unmute thread" msgstr "Bunyikan utasan" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "Lepas sematan" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "Batal sematkan dari beranda" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "Lepas sematan daftar moderasi" @@ -5406,7 +5577,12 @@ msgstr "Berhenti langganan" msgid "Unsubscribe from this labeler" msgstr "Berhenti langganan pelabel ini" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "Konten Seksual yang Tidak Diinginkan" @@ -5414,7 +5590,7 @@ msgstr "Konten Seksual yang Tidak Diinginkan" msgid "Update {displayName} in Lists" msgstr "Perbarui {displayName} dalam Daftar" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "Ubah ke {handle}" @@ -5422,7 +5598,11 @@ msgstr "Ubah ke {handle}" msgid "Updating..." msgstr "Memperbarui..." -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Unggah berkas teks ke:" @@ -5445,7 +5625,7 @@ msgstr "Unggah dari Berkas" msgid "Upload from Library" msgstr "Unggah dari Pustaka" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "Gunakan berkas di server Anda" @@ -5453,11 +5633,11 @@ msgstr "Gunakan berkas di server Anda" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Gunakan kata sandi aplikasi untuk masuk ke klien Bluesky lainnya tanpa memberikan akses penuh ke akun atau kata sandi Anda." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "Gunakan bsky.social sebagai penyedia hosting" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "Gunakan layanan bawaan" @@ -5471,7 +5651,11 @@ msgstr "Gunakan peramban dalam aplikasi" msgid "Use my default browser" msgstr "Gunakan peramban bawaan saya" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Gunakan panel DNS" @@ -5509,13 +5693,13 @@ msgstr "Pengguna Memblokir Anda" msgid "User list by {0}" msgstr "Daftar pengguna oleh {0}" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "Daftar pengguna oleh<0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "Daftar pengguna oleh Anda" @@ -5531,11 +5715,11 @@ msgstr "Daftar pengguna diperbarui" msgid "User Lists" msgstr "Daftar Pengguna" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "Nama pengguna atau alamat email" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "Pengguna" @@ -5551,7 +5735,7 @@ msgstr "Pengguna di \"{0}\"" msgid "Users that have liked this content or profile" msgstr "Pengguna yang telah menyukai konten atau profil" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "Nilai:" @@ -5559,7 +5743,7 @@ msgstr "Nilai:" #~ msgid "Verify {0}" #~ msgstr "Verifikasi {0}" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -5575,16 +5759,16 @@ msgstr "Verifikasi email saya" msgid "Verify My Email" msgstr "Verifikasi Email Saya" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "Verifikasi Email Baru" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "Verifikasi Email Anda" @@ -5596,7 +5780,7 @@ msgstr "Verifikasi Email Anda" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "Permainan Video" @@ -5608,11 +5792,11 @@ msgstr "Lihat avatar {0}" msgid "View debug entry" msgstr "Lihat entri debug" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "Lihat detail" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "Lihat detail untuk melaporkan pelanggaran hak cipta" @@ -5620,13 +5804,13 @@ msgstr "Lihat detail untuk melaporkan pelanggaran hak cipta" msgid "View full thread" msgstr "Lihat utas lengkap" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "Lihat informasi tentang label ini" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Lihat profil" @@ -5638,7 +5822,7 @@ msgstr "Lihat avatar" msgid "View the labeling service provided by @{0}" msgstr "Lihat layanan pelabelan yang disediakan oleh @{0}" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "Lihat pengguna yang menyukai feed ini" @@ -5666,11 +5850,15 @@ msgstr "Peringatkan konten dan saring dari feed" msgid "We couldn't find any results for that hashtag." msgstr "Kami tidak dapat menemukan hasil apa pun untuk tagar tersebut." +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Kami perkirakan {estimatedTime} hingga akun Anda siap." -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Semoga Anda senang dan betah di sini. Ingat, Bluesky adalah:" @@ -5694,7 +5882,7 @@ msgstr "Kami tidak dapat memuat preferensi tanggal lahir Anda. Silakan coba lagi msgid "We were unable to load your configured labelers at this time." msgstr "Kami tidak dapat memuat pelabel yang Anda konfigurasikan saat ini." -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Sepertinya ada masalah koneksi. Mohon coba lagi untuk melanjutkan pengaturan akun Anda. Jika terus gagal, Anda dapat melewati langkah ini." @@ -5702,7 +5890,7 @@ msgstr "Sepertinya ada masalah koneksi. Mohon coba lagi untuk melanjutkan pengat msgid "We will let you know when your account is ready." msgstr "Kami akan memberi tahu Anda ketika akun Anda siap." -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "Kami akan menggunakan ini untuk menyesuaikan pengalaman Anda." @@ -5735,7 +5923,7 @@ msgstr "Maaf, Anda hanya dapat berlangganan sepuluh pelabel dan Anda telah menca #~ msgid "Welcome to <0>Bluesky" #~ msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "Apa saja minat Anda?" @@ -5758,23 +5946,31 @@ msgstr "Bahasa apa yang ingin Anda lihat di feed Anda?" msgid "Who can reply" msgstr "Siapa yang dapat membalas" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "Mengapa konten ini perlu ditinjau?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "Mengapa feed ini perlu ditinjau?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "Mengapa daftar ini perlu ditinjau?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "Mengapa postingan ini perlu ditinjau?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "Mengapa pengguna ini perlu ditinjau?" @@ -5782,8 +5978,8 @@ msgstr "Mengapa pengguna ini perlu ditinjau?" msgid "Wide" msgstr "Lebar" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -5796,21 +5992,21 @@ msgstr "Tulis postingan" msgid "Write your reply" msgstr "Tulis balasan Anda" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "Penulis" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Ya" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -5844,15 +6040,15 @@ msgstr "Anda tidak memiliki pengikut." msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Anda belum memiliki kode undangan! Kami akan mengirimkan kode saat Anda sudah sedikit lama di Bluesky." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "Anda tidak memiliki feed yang disematkan." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "Anda tidak memiliki feed yang disimpan!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "Anda tidak memiliki feed yang disimpan!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "Anda tidak memiliki feed yang disimpan." @@ -5899,7 +6095,7 @@ msgstr "Anda tidak punya feed." msgid "You have no lists." msgstr "Anda tidak punya daftar." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "Anda belum memiliki pesan. Mulailah percakapan dengan seseorang!" @@ -5919,7 +6115,11 @@ msgstr "Anda belum membisukan akun apa pun. Untuk membisukan akun, buka profilny msgid "You haven't muted any words or tags yet" msgstr "Anda belum membisukan kata atau tag apa pun" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Anda dapat mengajukan banding atas label ini jika Anda merasa label tersebut ditempatkan secara tidak tepat." @@ -5947,7 +6147,7 @@ msgstr "Anda sekarang akan menerima notifikasi untuk utas ini" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Anda akan menerima email berisikan \"kode reset\". Masukkan kode tersebut di sini, lalu masukkan kata sandi baru." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -5961,7 +6161,7 @@ msgstr "Anda memiliki kendali" msgid "You're in line" msgstr "Anda sedang dalam antrian" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "Anda siap untuk mulai!" @@ -5982,7 +6182,7 @@ msgstr "Akun Anda" msgid "Your account has been deleted" msgstr "Akun Anda telah dihapus" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Semua catatan data publik dalam repositori akun Anda dapat diunduh sebagai file \"CAR\". Tidak termasuk konten media seperti gambar dan data pribadi yang harus diunduh secara terpisah." @@ -5999,16 +6199,16 @@ msgid "Your default feed is \"Following\"" msgstr "Feed bawaan Anda adalah \"Mengikuti\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "Email Anda tidak valid." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "Alamat email Anda telah diperbarui namun belum diverifikasi. Silakan verifikasi alamat email baru Anda." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Alamat email Anda belum diverifikasi. Ini merupakan langkah keamanan penting yang kami rekomendasikan." @@ -6020,7 +6220,7 @@ msgstr "Feed mengikuti Anda kosong! Ikuti lebih banyak pengguna untuk melihat ap msgid "Your full handle will be" msgstr "Handle lengkap Anda akan menjadi" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "Handle lengkap Anda akan menjadi <0>@{0}" @@ -6036,7 +6236,7 @@ msgstr "Kata sandi Anda telah berhasil diubah!" msgid "Your post has been published" msgstr "Postingan Anda telah dipublikasikan" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Postingan, suka, dan blokir Anda bersifat publik. Bisukan bersifat privat." @@ -6048,6 +6248,10 @@ msgstr "Profil Anda" msgid "Your reply has been published" msgstr "Balasan Anda telah dipublikasikan" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Handle Anda" diff --git a/src/locale/locales/it/messages.po b/src/locale/locales/it/messages.po index 4f58d95b10..f8468a5077 100644 --- a/src/locale/locales/it/messages.po +++ b/src/locale/locales/it/messages.po @@ -14,7 +14,7 @@ msgstr "" "X-Generator: Poedit 3.4.2\n" "X-Poedit-SourceCharset: UTF-8\n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(no email)" @@ -25,15 +25,15 @@ msgstr "" #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "{0, plural, one {# codice d'invito disponibile} other {# codici d'inviti disponibili}}" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -55,7 +55,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -81,6 +81,10 @@ msgstr "" #~ msgid "{0} {purposeLabel} List" #~ msgstr "Lista {purposeLabel} {0}" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -109,18 +113,18 @@ msgstr "{following} following" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" #~ msgid "{message}" #~ msgstr "{message}" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} non letto" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -128,11 +132,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> membri" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -157,7 +161,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>Segui alcuni<1>utenti<2>consigliati" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -169,7 +173,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Nome utente non valido" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "Conferma 2FA" @@ -206,7 +210,7 @@ msgstr "Impostazioni di Accessibilità" #~ msgid "account" #~ msgstr "account" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -257,15 +261,15 @@ msgstr "Account non silenziato" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "Aggiungi" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Aggiungi un avviso sul contenuto" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "Aggiungi un utente a questo elenco" @@ -277,6 +281,7 @@ msgstr "Aggiungi account" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -284,8 +289,8 @@ msgid "Add alt text" msgstr "Aggiungi testo alternativo" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -313,7 +318,15 @@ msgstr "Aggiungi parola silenziata alle impostazioni configurate" msgid "Add muted words and tags" msgstr "Aggiungi parole silenziate e tags" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Aggiungi il seguente record DNS al tuo dominio:" @@ -322,7 +335,7 @@ msgstr "Aggiungi il seguente record DNS al tuo dominio:" msgid "Add to Lists" msgstr "Aggiungi alle Liste" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "Aggiungi ai miei feed" @@ -335,17 +348,17 @@ msgstr "Aggiungi ai miei feed" msgid "Added to list" msgstr "Aggiunto alla lista" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "Aggiunto ai miei feeds" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Modifica il numero di \"Mi piace\" che una risposta deve avere per essere mostrata nel tuo feed." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Contenuto per adulti" @@ -361,7 +374,7 @@ msgstr "Il contenuto per adulti è disattivato." msgid "Advanced" msgstr "Avanzato" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "Tutti i feed che hai salvato, in un unico posto." @@ -394,12 +407,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "Il testo alternativo descrive le immagini per gli utenti non vedenti ed ipovedenti, fornendo un contesto a tutti." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "È stata inviata un'e-mail a {0}. Include un codice di conferma che puoi inserire di seguito." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Una email è stata inviata al tuo indirizzo precedente, {0}. Include un codice di conferma che puoi inserire di seguito." @@ -407,11 +420,11 @@ msgstr "Una email è stata inviata al tuo indirizzo precedente, {0}. Include un msgid "An error occured" msgstr "Si è verificato un errore" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "Un problema non incluso in queste opzioni" @@ -424,7 +437,7 @@ msgstr "Un problema non incluso in queste opzioni" msgid "An issue occurred, please try again." msgstr "Si è verificato un problema, riprova un'altra volta." -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -433,7 +446,7 @@ msgstr "" msgid "and" msgstr "e" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "Animali" @@ -441,7 +454,7 @@ msgstr "Animali" msgid "Animated GIF" msgstr "GIF animata" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "Comportamento antisociale" @@ -474,12 +487,12 @@ msgstr "Impostazioni della password dell'app" msgid "App Passwords" msgstr "Password dell'App" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "Ricorso" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "Etichetta \"{0}\" del ricorso" @@ -492,7 +505,7 @@ msgstr "Etichetta \"{0}\" del ricorso" #~ msgid "Appeal Decision" #~ msgstr "Decisión de apelación" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -510,19 +523,24 @@ msgstr "" msgid "Appearance" msgstr "Aspetto" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Confermi di voler eliminare la password dell'app \"{name}\"?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Confermi di voler rimuovere {0} dai tuoi feed?" @@ -541,11 +559,11 @@ msgstr "Confermi?" msgid "Are you writing in <0>{0}?" msgstr "Stai scrivendo in <0>{0}?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "Arte" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Nudità artistica o non erotica." @@ -553,17 +571,17 @@ msgstr "Nudità artistica o non erotica." msgid "At least 3 characters" msgstr "Almeno 3 caratteri" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -595,8 +613,8 @@ msgstr "Compleanno:" msgid "Block" msgstr "Blocca" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -609,15 +627,15 @@ msgstr "Blocca Account" msgid "Block Account?" msgstr "Bloccare Account?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "Blocca gli account" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "Lista di blocchi" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "Vuoi bloccare questi accounts?" @@ -654,7 +672,7 @@ msgstr "Post bloccato." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Il blocco non impedisce al labeler di inserire etichette nel tuo account." -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "l blocco è pubblico. Gli account bloccati non possono rispondere alle tue discussioni, menzionarti, o interagire con te in nessun altro modo." @@ -708,10 +726,15 @@ msgstr "Sfoca le immagini" msgid "Blur images and filter from feeds" msgstr "Sfoca le immagini e filtra dai feed" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "Libri" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #~ msgid "Build version {0} {1}" #~ msgstr "Versione {0} {1}" @@ -764,9 +787,9 @@ msgstr "Può contenere solo lettere, numeri, spazi, trattini e trattini bassi. D #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -778,29 +801,29 @@ msgstr "Può contenere solo lettere, numeri, spazi, trattini e trattini bassi. D #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "Cancella" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "Cancella" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "Annulla la cancellazione dell'account" #~ msgid "Cancel add image alt text" #~ msgstr "Cancel·la afegir text a la imatge" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "Annulla il cambio del tuo nome utente" @@ -828,7 +851,7 @@ msgstr "Annulla la ricerca" msgid "Cancels opening the linked website" msgstr "Annulla l'apertura del sito collegato" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "Cambia" @@ -841,12 +864,12 @@ msgstr "Cambia" msgid "Change handle" msgstr "Cambia il nome utente" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "Cambia il Nome Utente" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Cambia la mia email" @@ -866,7 +889,7 @@ msgstr "Cambia la lingua del post a {0}" #~ msgid "Change your Bluesky password" #~ msgstr "Cambia la tua password di Bluesky" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "Cambia la tua email" @@ -874,11 +897,11 @@ msgstr "Cambia la tua email" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -904,11 +927,11 @@ msgstr "Verifica il mio stato" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Scopri alcuni utenti consigliati. Seguili per vedere utenti simili." -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "Controlla la tua email per il codice di accesso e inseriscilo qui." -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Controlla la tua posta in arrivo, dovrebbe contenere un'e-mail con il codice di conferma da inserire di seguito:" @@ -923,7 +946,7 @@ msgstr "Scegli \"Tutti\" o \"Nessuno\"" msgid "Choose Service" msgstr "Scegli il servizio" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "Scegli gli algoritmi che compilano i tuoi feed personalizzati." @@ -932,6 +955,10 @@ msgstr "Scegli gli algoritmi che compilano i tuoi feed personalizzati." #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "Scegli gli algoritmi che migliorano la tua esperienza con i feed personalizzati." +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "Scegli i tuoi feed principali" @@ -973,6 +1000,10 @@ msgstr "Cancella tutti i dati di archiviazione" msgid "click here" msgstr "clicca qui" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Clicca qui per aprire il menu per {tag}" @@ -980,7 +1011,7 @@ msgstr "Clicca qui per aprire il menu per {tag}" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "Clicca qui per aprire il menu per #{tag}" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "Clima" @@ -1049,11 +1080,11 @@ msgstr "Chiude il visualizzatore dell'immagine di intestazione" msgid "Collapses list of users for a given notification" msgstr "Comprime l'elenco degli utenti per una determinata notifica" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "Commedia" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "Fumetti" @@ -1062,7 +1093,7 @@ msgstr "Fumetti" msgid "Community Guidelines" msgstr "Linee guida della community" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "Completa l'incorporazione e inizia a utilizzare il tuo account" @@ -1092,13 +1123,13 @@ msgstr "Configurato nelle <0>impostazioni di moderazione." #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Conferma" @@ -1106,8 +1137,8 @@ msgstr "Conferma" #~ msgid "Confirm" #~ msgstr "Conferma" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "Conferma il cambio" @@ -1115,7 +1146,7 @@ msgstr "Conferma il cambio" msgid "Confirm content language settings" msgstr "Conferma le impostazioni della lingua del contenuto" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "Conferma l'eliminazione dell'account" @@ -1130,20 +1161,20 @@ msgstr "Conferma la tua età:" msgid "Confirm your birthdate" msgstr "Conferma la tua data di nascita" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Codice di conferma" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "Conferma l'iscrizione di {email} alla lista d'attesa" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "Connessione in corso..." @@ -1196,8 +1227,9 @@ msgstr "Sfondo del menu contestuale, clicca per chiudere il menu." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "Continua" @@ -1207,8 +1239,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "Continua come {0} (attualmente connesso)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1222,7 +1255,7 @@ msgstr "Vai al passaggio successivo" msgid "Continue to the next step without following any accounts" msgstr "Vai al passaggio successivo senza seguire nessun account" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "Cucina" @@ -1235,9 +1268,9 @@ msgstr "Copiato" msgid "Copied build version to clipboard" msgstr "Versione di build copiata nella clipboard" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1255,7 +1288,7 @@ msgstr "Copia la password dell'app" msgid "Copy" msgstr "Copia" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "Copia {0}" @@ -1264,7 +1297,7 @@ msgstr "Copia {0}" msgid "Copy code" msgstr "Copia il codice" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "Copia il link alla lista" @@ -1291,15 +1324,15 @@ msgstr "Copia il testo del post" msgid "Copyright Policy" msgstr "Politica sul diritto d'autore" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Feed non caricato" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "No si è potuto caricare la lista" @@ -1307,13 +1340,13 @@ msgstr "No si è potuto caricare la lista" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #~ msgid "Country" #~ msgstr "Paese" @@ -1336,6 +1369,10 @@ msgstr "Crea un account" msgid "Create an account" msgstr "Crea un account" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "Crea un password per l'app" @@ -1345,7 +1382,7 @@ msgstr "Crea un password per l'app" msgid "Create new account" msgstr "Crea un nuovo account" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "Crea un report per {0}" @@ -1362,7 +1399,7 @@ msgstr "Creato {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Crea una scheda con una miniatura. La scheda si collega a {url}" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "Cultura" @@ -1371,12 +1408,12 @@ msgstr "Cultura" msgid "Custom" msgstr "Personalizzato" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "Dominio personalizzato" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "I feed personalizzati creati dalla comunità ti offrono nuove esperienze e ti aiutano a trovare contenuti interessanti." @@ -1412,10 +1449,10 @@ msgstr "Eliminare errori nella Moderazione" msgid "Debug panel" msgstr "Pannello per il debug" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "Elimina" @@ -1427,7 +1464,7 @@ msgstr "Elimina l'account" #~ msgid "Delete Account" #~ msgstr "Elimina l'Account" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1443,11 +1480,11 @@ msgstr "Eliminare la password dell'app?" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "Elimina la lista" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1455,7 +1492,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "Cancellare account" @@ -1471,7 +1508,7 @@ msgstr "Cancellare Account…" msgid "Delete post" msgstr "Elimina il post" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "Elimina questa lista?" @@ -1516,7 +1553,7 @@ msgstr "Fioco" msgid "Disable autoplay for GIFs" msgstr "Disattiva la riproduzione automatica per le GIF" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "Disattiva l'email 2FA" @@ -1555,7 +1592,7 @@ msgstr "Scopri nuovi feeds personalizzati" #~ msgid "Discover new feeds" #~ msgstr "Scopri nuovi feeds" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "Scopri nuovi feeds" @@ -1567,7 +1604,7 @@ msgstr "Nome visualizzato" msgid "Display Name" msgstr "Nome Visualizzato" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "Pannello DNS" @@ -1579,11 +1616,11 @@ msgstr "Non include nudità." msgid "Doesn't begin or end with a hyphen" msgstr "Non inizia o termina con un trattino" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "Valore del dominio" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "Dominio verificato!" @@ -1594,6 +1631,8 @@ msgstr "Dominio verificato!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1602,15 +1641,13 @@ msgstr "Dominio verificato!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "Fatto" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1630,8 +1667,8 @@ msgstr "Fatto{extraText}" #~ msgid "Download Bluesky account data (repository)" #~ msgstr "Scarica i dati dell'account Bluesky (archivio)" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "Scarica il CAR file" @@ -1643,7 +1680,7 @@ msgstr "Trascina e rilascia per aggiungere immagini" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "A causa delle politiche di Apple, i contenuti per adulti possono essere abilitati sul Web solo dopo aver completato la registrazione." -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "e.g. alice" @@ -1651,7 +1688,7 @@ msgstr "e.g. alice" msgid "e.g. Alice Roberts" msgstr "e.g. Alice Roberts" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "e.g. alice.com" @@ -1698,7 +1735,7 @@ msgstr "Modifica l'avatar" msgid "Edit image" msgstr "Modifica l'immagine" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "Modifica i dettagli della lista" @@ -1707,8 +1744,8 @@ msgid "Edit Moderation List" msgstr "Modifica l'elenco di moderazione" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "Modifica i miei feeds" @@ -1727,7 +1764,7 @@ msgid "Edit Profile" msgstr "Modifica il Profilo" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "Modifica i feeds memorizzati" @@ -1743,16 +1780,16 @@ msgstr "Modifica il tuo nome visualizzato" msgid "Edit your profile description" msgstr "Modifica la descrizione del tuo profilo" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "Formazione scolastica" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Email" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "E-mail 2FA disattivata" @@ -1760,16 +1797,16 @@ msgstr "E-mail 2FA disattivata" msgid "Email address" msgstr "Indirizzo email" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "Email aggiornata" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "Email Aggiornata" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "Email verificata" @@ -1820,7 +1857,7 @@ msgstr "Abilita i media esterni" msgid "Enable media players for" msgstr "Attiva i lettori multimediali per" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "Abilita questa impostazione per vedere solo le risposte delle persone che segui." @@ -1849,7 +1886,7 @@ msgstr "Inserisci una password" msgid "Enter a word or tag" msgstr "Inserisci una parola o tag" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "Inserire il codice di conferma" @@ -1860,7 +1897,7 @@ msgstr "Inserire il codice di conferma" msgid "Enter the code you received to change your password." msgstr "Inserisci il codice che hai ricevuto per modificare la tua password." -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "Inserisci il dominio che vuoi utilizzare" @@ -1880,11 +1917,11 @@ msgstr "Inserisci la tua data di nascita" msgid "Enter your email address" msgstr "Inserisci il tuo indirizzo email" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "Inserisci la tua nuova email qui sopra" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "Inserisci il tuo nuovo indirizzo email qui sotto." @@ -1895,11 +1932,15 @@ msgstr "Inserisci il tuo nuovo indirizzo email qui sotto." msgid "Enter your username and password" msgstr "Inserisci il tuo nome di utente e la tua password" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Errore nella risposta del captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "Errore:" @@ -1908,15 +1949,19 @@ msgstr "Errore:" msgid "Everybody" msgstr "Tutti" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "Menzioni o risposte eccessive" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "Uscita dall'eliminazione dell'account" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "Uscita dal processo di modifica" @@ -1957,7 +2002,7 @@ msgstr "Immagini sessuali esplicite." msgid "Export my data" msgstr "Esporta i miei dati" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "Esporta i miei dati" @@ -1991,7 +2036,7 @@ msgstr "Impossibile creare la password dell'app." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Impossibile creare l'elenco. Controlla la connessione Internet e riprova." -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -2003,7 +2048,7 @@ msgstr "Non possiamo eliminare il post, riprova di nuovo" msgid "Failed to load GIFs" msgstr "Ha fallito il Il caricamento delle GIF's" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -2012,19 +2057,23 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "Non possiamo caricare i feed consigliati" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "Non è possibile salvare l'immagine: {0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "Feed fatto da {0}" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "Feed offline" @@ -2032,18 +2081,18 @@ msgstr "Feed offline" #~ msgstr "Preferenze del feed" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "Commenti" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "Feeds" @@ -2051,7 +2100,7 @@ msgstr "Feeds" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "I feed vengono creati dagli utenti per curare i contenuti. Scegli alcuni feed che ritieni interessanti." -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "I feed sono algoritmi personalizzati che gli utenti creano con un minimo di esperienza nella codifica. Vedi <0/> per ulteriori informazioni." @@ -2059,15 +2108,19 @@ msgstr "I feed sono algoritmi personalizzati che gli utenti creano con un minimo msgid "Feeds can be topical as well!" msgstr "I feeds possono anche avere tematiche!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Archivia i contenuti" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Filtra dai feed" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "Finalizzando" @@ -2091,7 +2144,7 @@ msgstr "Trova post e utenti su Bluesky" #~ msgid "Finding similar accounts..." #~ msgstr "Trovare account simili…" -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "Ottimizza il contenuto che vedi nel tuo Following feed." @@ -2102,11 +2155,11 @@ msgstr "Ottimizza il contenuto che vedi nel tuo Following feed." msgid "Fine-tune the discussion threads." msgstr "Ottimizza i la visualizzazione delle discussioni." -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "Fitness" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "Flessibile" @@ -2168,7 +2221,7 @@ msgstr "Seguito da {0}" msgid "Followed users" msgstr "Utenti seguiti" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "Solo utenti seguiti" @@ -2189,7 +2242,9 @@ msgstr "Followers" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "Following" @@ -2204,7 +2259,7 @@ msgstr "Preferenze del Following feed" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "Preferenze del Following Feed" @@ -2217,11 +2272,11 @@ msgstr "Ti segue" msgid "Follows You" msgstr "Ti Segue" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "Gastronomia" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Per motivi di sicurezza, invieremo un codice di conferma al tuo indirizzo email." @@ -2240,15 +2295,15 @@ msgstr "Per motivi di sicurezza non potrai visualizzarlo nuovamente. Se perdi qu msgid "Forgot Password" msgstr "Hai dimenticato la Password" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "Hai dimenticato la password?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "Hai dimenticato?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "Pubblica spesso contenuti indesiderati" @@ -2265,12 +2320,16 @@ msgstr "Da <0/>" msgid "Gallery" msgstr "Galleria" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Inizia" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "Evidenti violazioni della legge o dei termini di servizio" @@ -2279,9 +2338,9 @@ msgstr "Evidenti violazioni della legge o dei termini di servizio" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "Torna indietro" @@ -2289,12 +2348,13 @@ msgstr "Torna indietro" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "Torna Indietro" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2319,11 +2379,11 @@ msgstr "Torna Home" msgid "Go to next" msgstr "Seguente" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2331,7 +2391,7 @@ msgstr "" msgid "Graphic Media" msgstr "Media grafici" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Nome Utente" @@ -2339,7 +2399,7 @@ msgstr "Nome Utente" msgid "Haptics" msgstr "Aptica" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "Molestie, trolling o intolleranza" @@ -2347,7 +2407,7 @@ msgstr "Molestie, trolling o intolleranza" msgid "Hashtag" msgstr "Hashtag" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "Hashtag: #{tag}" @@ -2356,10 +2416,14 @@ msgid "Having trouble?" msgstr "Ci sono problemi?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "Aiuto" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "Ecco alcuni account da seguire" @@ -2415,23 +2479,23 @@ msgstr "Nascondi elenco utenti" #~ msgid "Hides posts from {0} in your feed" #~ msgstr "Nasconde i post di {0} nel tuo feed" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Si è verificato un problema durante il contatto con il server del feed. Informa il proprietario del feed del problema." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Il server del feed sembra non è configurato correttamente. Informa il proprietario del feed del problema." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Il server del feed sembra essere offline. Informa il proprietario del feed di questo problema." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Il server del feed ha dato una risposta negativa. Informa il proprietario del feed di questo problema." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Stiamo riscontrando problemi nel trovare questo feed. Potrebbe essere stato cancellato." @@ -2444,24 +2508,24 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "Non siamo riusciti a caricare il servizio di moderazione." #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "Home" #~ msgid "Home Feed Preferences" #~ msgstr "Preferenze per i feed per la pagina d'inizio" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "Hosting:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Servizio di hosting" @@ -2472,25 +2536,29 @@ msgstr "Servizio di hosting" msgid "How should we open this link?" msgstr "Come dovremmo aprire questo link?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "Ho un codice" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "Ho un codice di conferma" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "Ho il mio dominio" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Se il testo alternativo è lungo, attiva/disattiva lo stato del testo alternativo" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "Se niente è selezionato, adatto a tutte le età." @@ -2498,7 +2566,7 @@ msgstr "Se niente è selezionato, adatto a tutte le età." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Se non sei ancora maggiorenne secondo le leggi del tuo Paese, il tuo genitore o tutore legale deve leggere i Termini a tuo nome." -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "Se elimini questa lista, non potrai recuperarla." @@ -2510,7 +2578,7 @@ msgstr "Se rimuovi questo post, non potrai recuperarlo." msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Se vuoi modificare la password, ti invieremo un codice per verificare se questo è il tuo account." -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "Illegale e Urgente" @@ -2525,7 +2593,7 @@ msgstr "Testo alternativo dell'immagine" #~ msgid "Image options" #~ msgstr "Opzioni per l'immagine" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "Furto d'identità o false affermazioni sull'identità o sull'affiliazione" @@ -2533,7 +2601,7 @@ msgstr "Furto d'identità o false affermazioni sull'identità o sull'affiliazion msgid "Input code sent to your email for password reset" msgstr "Inserisci il codice inviato alla tua email per reimpostare la password" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "Inserisci il codice di conferma per la cancellazione dell'account" @@ -2551,22 +2619,22 @@ msgstr "Inserisci il nome per la password dell'app" msgid "Input new password" msgstr "Inserisci la nuova password" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "Inserisci la password per la cancellazione dell'account" #~ msgid "Input phone number for SMS verification" #~ msgstr "Inserisci il numero di telefono per la verifica via SMS" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "Inserisci il codice che ti è stato inviato via email" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "Inserisci la password relazionata a {identifier}" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Inserisci il nome utente o l'indirizzo email che hai utilizzato al momento della registrazione" @@ -2576,11 +2644,11 @@ msgstr "Inserisci il nome utente o l'indirizzo email che hai utilizzato al momen #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Inserisci la tua email per entrare nella lista d'attesa di Bluesky" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "Inserisci la tua password" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "Inserisci il tuo provider di hosting preferito" @@ -2588,8 +2656,8 @@ msgstr "Inserisci il tuo provider di hosting preferito" msgid "Input your user handle" msgstr "Inserisci il tuo identificatore" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Codice di conferma 2FA non valido." @@ -2597,7 +2665,7 @@ msgstr "Codice di conferma 2FA non valido." msgid "Invalid or unsupported post record" msgstr "Protocollo del post non valido o non supportato" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "Nome dell'utente o password errato" @@ -2612,7 +2680,7 @@ msgstr "Invita un amico" msgid "Invite code" msgstr "Codice d'invito" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Codice invito non accettato. Controlla di averlo inserito correttamente e riprova." @@ -2644,7 +2712,7 @@ msgstr "Lavori" #~ msgid "Join Waitlist" #~ msgstr "Iscriviti alla Lista d'Attesa" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "Giornalismo" @@ -2672,11 +2740,11 @@ msgstr "Le etichette sono annotazioni su utenti e contenuti. Possono essere util #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "le etichette sono state inserite su questo {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "Etichette sul tuo account" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "Etichette sul tuo contenuto" @@ -2730,13 +2798,13 @@ msgstr "Scopri cosa è pubblico su Bluesky." msgid "Learn more." msgstr "Saperne di più." -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2761,7 +2829,7 @@ msgstr "L'archivio legacy è stato cancellato, riattiva la app." msgid "Let's get your password reset!" msgstr "Reimpostazione della password!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "Andiamo!" @@ -2777,7 +2845,7 @@ msgstr "Chiaro" #~ msgstr "Mi piace" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Metti mi piace a questo feed" @@ -2834,19 +2902,19 @@ msgstr "Lista" msgid "List Avatar" msgstr "Lista avatar" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "Lista bloccata" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "Lista di {0}" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "Lista cancellata" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "Lista muta" @@ -2854,20 +2922,20 @@ msgstr "Lista muta" msgid "List Name" msgstr "Nome della lista" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "Lista sbloccata" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "Lista non mutata" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "Liste" @@ -2879,9 +2947,9 @@ msgid "Load new notifications" msgstr "Carica più notifiche" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "Carica nuovi posts" @@ -2911,7 +2979,7 @@ msgstr "Visibilità degli utenti disconnessi" msgid "Login to account that is not listed" msgstr "Accedi all'account che non è nella lista" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "Tieni premutoper aprire il menu dei tag per #{tag}" @@ -2922,6 +2990,18 @@ msgstr "Tieni premutoper aprire il menu dei tag per #{tag}" msgid "Looks like XXXXX-XXXXX" msgstr "Sembra XXXX-XXXXX" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "Assicurati che questo sia dove intendi andare!" @@ -2930,6 +3010,11 @@ msgstr "Assicurati che questo sia dove intendi andare!" msgid "Manage your muted words and tags" msgstr "Gestisci le parole mute e i tags" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #~ msgid "May not be longer than 253 characters" #~ msgstr "Non può contenere più di 253 caratteri" @@ -2954,33 +3039,38 @@ msgstr "Utenti menzionati" msgid "Menu" msgstr "Menù" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" #~ msgid "Message from server" #~ msgstr "Messaggio dal server" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Messaggio dal server: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -2988,7 +3078,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "Account Ingannevole" @@ -3007,13 +3097,13 @@ msgstr "Dettagli sulla moderazione" msgid "Moderation list by {0}" msgstr "Lista di moderazione di {0}" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "Lista di moderazione di <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "Le tue liste di moderazione" @@ -3055,11 +3145,11 @@ msgstr "Il moderatore ha scelto di mettere un avviso generale sul contenuto." msgid "More" msgstr "Di più" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Altri feed" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "Altre opzioni" @@ -3086,7 +3176,7 @@ msgstr "Silenzia {truncatedTag}" msgid "Mute Account" msgstr "Silenzia l'account" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "Silenzia gli accounts" @@ -3102,16 +3192,16 @@ msgstr "Silenzia solo i tags" msgid "Mute in text & tags" msgstr "Silenzia nel testo & tags" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "Silenziare la lista" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "Vuoi silenziare queste liste?" @@ -3161,7 +3251,7 @@ msgstr "Silenziato da \"{0}\"" msgid "Muted words & tags" msgstr "Parole e tags silenziati" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Silenziare un account è privato. Gli account silenziati possono interagire con te, ma non vedrai i loro post né riceverai le loro notifiche." @@ -3170,11 +3260,11 @@ msgstr "Silenziare un account è privato. Gli account silenziati possono interag msgid "My Birthday" msgstr "Il mio Compleanno" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "I miei Feeds" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "Il mio Profilo" @@ -3198,27 +3288,27 @@ msgstr "Nome" msgid "Name is required" msgstr "Il nome è obbligatorio" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "Il Nome o la Descrizione Viola gli Standard della Comunità" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "Natura" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Vai alla schermata successiva" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "Vai al tuo profilo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "Hai bisogno di segnalare una violazione del copyright?" @@ -3230,11 +3320,11 @@ msgstr "Hai bisogno di segnalare una violazione del copyright?" #~ msgid "Never lose access to your followers and data." #~ msgstr "Non perdere mai l'accesso ai tuoi follower e ai tuoi dati." -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "Non perdere mai l'accesso ai tuoi follower o ai tuoi dati." -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "Non importa, crea una handle per me" @@ -3248,8 +3338,8 @@ msgid "New" msgstr "Nuova" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -3265,22 +3355,22 @@ msgstr "Nuovo Password" msgid "New Password" msgstr "Nuovo Password" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "Nuovo Post" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "Nuovo post" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "Nuovo post" @@ -3296,14 +3386,14 @@ msgstr "Nuova lista" msgid "Newest replies first" msgstr "Mostrare prima le risposte più recenti" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "Notizie" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3321,21 +3411,21 @@ msgstr "Seguente" msgid "Next image" msgstr "Immagine seguente" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "No" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "Senza descrizione" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "Nessun pannello DNS" @@ -3351,8 +3441,8 @@ msgstr "Non segui più {0}" msgid "No longer than 253 characters" msgstr "Non più di 253 caratteri" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3369,7 +3459,7 @@ msgstr "Nessun risultato" msgid "No results found" msgstr "Non si è trovato nessun risultato" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "Nessun risultato trovato per \"{query}\"" @@ -3414,8 +3504,8 @@ msgstr "Nudità non sessuale" msgid "Not Found" msgstr "Non trovato" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "Non adesso" @@ -3432,22 +3522,22 @@ msgstr "Nota: Bluesky è una rete aperta e pubblica. Questa impostazione limita #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "Notifiche" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Nudità" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "Nudità o contenuti per adulti non etichettati come tali" @@ -3467,7 +3557,7 @@ msgstr "Spento" msgid "Oh no!" msgstr "Oh no!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "Oh no! Qualcosa è andato male." @@ -3492,6 +3582,10 @@ msgstr "Reimpostazione dell'onboarding" msgid "One or more images is missing alt text." msgstr "A una o più immagini manca il testo alternativo." +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "Solo {0} può rispondere." @@ -3510,16 +3604,20 @@ msgstr "Ops! Qualcosa è andato male!" msgid "Oops!" msgstr "Ops!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "Apri" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "Apri il selettore emoji" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "Apri il menu delle opzioni del feed" @@ -3637,7 +3735,7 @@ msgstr "Apre la modale per scaricare i dati del tuo account Bluesky (repository) msgid "Opens modal for email verification" msgstr "Apre la modale per la verifica dell'e-mail" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "Apre il modal per l'utilizzo del dominio personalizzato" @@ -3645,12 +3743,12 @@ msgstr "Apre il modal per l'utilizzo del dominio personalizzato" msgid "Opens moderation settings" msgstr "Apre le impostazioni di moderazione" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "Apre il modulo di reimpostazione della password" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "Apre la schermata per modificare i feed salvati" @@ -3676,7 +3774,7 @@ msgstr "Apre le preferenze del feed Following" msgid "Opens the linked website" msgstr "Apre il sito Web collegato" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3697,6 +3795,7 @@ msgstr "Apre le preferenze dei threads" msgid "Option {0} of {numItems}" msgstr "Opzione {0} di {numItems}" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "Facoltativamente, fornisci ulteriori informazioni di seguito:" @@ -3705,7 +3804,7 @@ msgstr "Facoltativamente, fornisci ulteriori informazioni di seguito:" msgid "Or combine these options:" msgstr "Oppure combina queste opzioni:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "Altri" @@ -3729,10 +3828,10 @@ msgstr "Pagina non trovata" msgid "Page Not Found" msgstr "Pagina non trovata" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "Password" @@ -3764,35 +3863,35 @@ msgstr "Persone seguite da @{0}" msgid "People following @{0}" msgstr "Persone che seguono @{0}" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "È richiesta l'autorizzazione per accedere al la cartella delle immagini." -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "L'autorizzazione per accedere la cartella delle immagini è stata negata. Si prega di abilitarla nelle impostazioni del sistema." -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "Animali di compagnia" #~ msgid "Phone number" #~ msgstr "Numero di telefono" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Immagini per adulti." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "Fissa su Home" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "Fissa su Home" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "Feeds Fissi" @@ -3817,19 +3916,19 @@ msgstr "Riproduci video" msgid "Plays the GIF" msgstr "Riproduci questa GIF" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "Scegli il tuo nome utente." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "Scegli la tua password." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "Si prega di completare il captcha di verifica." -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Conferma la tua email prima di cambiarla. Si tratta di un requisito temporaneo durante l'aggiunta degli strumenti di aggiornamento della posta elettronica e verrà presto rimosso." @@ -3854,15 +3953,15 @@ msgstr "Inserisci una parola, un tag o una frase valida da silenziare" #~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." #~ msgstr "Inserisci il codice di verifica inviato a {phoneNumberFormatted}." -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "Inserisci la tua email." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "Inserisci anche la tua password:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Spiega perché ritieni che questa etichetta sia stata applicata in modo errato da {0}" @@ -3876,7 +3975,7 @@ msgstr "" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "Per favore spiegaci perché ritieni che questa decisione sia stata sbagliata." -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Verifica la tua email" @@ -3884,11 +3983,11 @@ msgstr "Verifica la tua email" msgid "Please wait for your link card to finish loading" msgstr "Attendi il caricamento della scheda di collegamento" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "Politica" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "Porno" @@ -3962,7 +4061,7 @@ msgstr "Post" msgid "Posts can be muted based on their text, their tags, or both." msgstr "I post possono essere silenziati ​​in base al testo, ai tag o entrambi." -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "Post nascosto" @@ -3976,15 +4075,15 @@ msgstr "Premi per cambiare provider di hosting" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "Premere per riprovare" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -4007,7 +4106,7 @@ msgstr "Privacy" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Informativa sulla privacy" @@ -4020,11 +4119,11 @@ msgstr "Elaborazione in corso…" msgid "profile" msgstr "profilo" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "Profilo" @@ -4036,7 +4135,7 @@ msgstr "Profilo aggiornato" msgid "Protect your account by verifying your email." msgstr "Proteggi il tuo account verificando la tua email." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "Pubblico" @@ -4081,6 +4180,10 @@ msgstr "Selezione a caso (nota anche come \"Poster's Roulette\")" msgid "Ratios" msgstr "Rapporti" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "Ricerche recenti" @@ -4094,11 +4197,11 @@ msgstr "Ricerche recenti" #~ msgstr "Utenti consigliati" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Rimuovi" @@ -4117,22 +4220,25 @@ msgstr "Rimuovere Avatar" msgid "Remove Banner" msgstr "Rimuovi il Banner" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "Rimuovi il feed" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "Rimuovere il feed?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "Rimuovi dai miei feed" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "Rimuovere dai miei feed?" @@ -4159,7 +4265,7 @@ msgstr "Rimuovi la ripubblicazione" #~ msgid "Remove this feed from my feeds?" #~ msgstr "Rimuovere questo feed dai miei feeds?" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "Rimuovi questo feed dai feed salvati" @@ -4171,11 +4277,13 @@ msgstr "Rimuovi questo feed dai feed salvati" msgid "Removed from list" msgstr "Elimina dalla lista" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "Rimuovere dai miei feeds" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "Rimosso dai tuoi feed" @@ -4187,6 +4295,11 @@ msgstr "Elimina la miniatura predefinita da {0}" msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "Risposte" @@ -4200,7 +4313,7 @@ msgctxt "action" msgid "Reply" msgstr "Risposta" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "Filtri di risposta" @@ -4223,24 +4336,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Segnala l'account" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Segnala il dialogo" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "Segnala il feed" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "Segnala la lista" @@ -4253,30 +4372,36 @@ msgstr "" msgid "Report post" msgstr "Segnala il post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "Segnala questo contenuto" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "Segnala questo feed" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "Segnala questa lista" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "Segnala questo post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "Segnala questo utente" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "Ripubblicare" @@ -4319,8 +4444,8 @@ msgstr "ripubblicato il tuo post" msgid "Reposts of this post" msgstr "Ripubblicazioni di questo post" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "Richiedi un cambio" @@ -4336,7 +4461,7 @@ msgstr "Richiedi il codice" msgid "Require alt text before posting" msgstr "Richiedi il testo alternativo prima di pubblicare" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "Richiedi il codice via email per accedere al tuo account" @@ -4344,8 +4469,8 @@ msgstr "Richiedi il codice via email per accedere al tuo account" msgid "Required for this provider" msgstr "Obbligatorio per questo operatore" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "Rinvia l'email" @@ -4385,7 +4510,7 @@ msgstr "Reimposta lo stato dell'incorporazione" msgid "Resets the preferences state" msgstr "Reimposta lo stato delle preferenze" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "Ritenta l'accesso" @@ -4394,13 +4519,14 @@ msgstr "Ritenta l'accesso" msgid "Retries the last action, which errored out" msgstr "Ritenta l'ultima azione che ha generato un errore" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4408,11 +4534,11 @@ msgid "Retry" msgstr "Riprova" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "Riprova." +#~ msgid "Retry." +#~ msgstr "Riprova." #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "Ritorna alla pagina precedente" @@ -4421,7 +4547,7 @@ msgid "Returns to home page" msgstr "Ritorna su Home" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "Ritorna alla pagina precedente" @@ -4431,13 +4557,13 @@ msgstr "Ritorna alla pagina precedente" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Salva" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4455,7 +4581,7 @@ msgstr "Salva il compleanno" msgid "Save Changes" msgstr "Salva i cambi" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "Salva la modifica del tuo identificatore" @@ -4463,16 +4589,16 @@ msgstr "Salva la modifica del tuo identificatore" msgid "Save image crop" msgstr "Salva il ritaglio dell'immagine" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "Salva nei miei feed" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "Canali salvati" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4480,7 +4606,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "Salvato nel rullino fotografico." -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "Salvato nei tuoi feed" @@ -4488,7 +4615,7 @@ msgstr "Salvato nei tuoi feed" msgid "Saves any changes to your profile" msgstr "Salva eventuali modifiche al tuo profilo" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "Salva la modifica del cambio dell'utente in {handle}" @@ -4496,11 +4623,11 @@ msgstr "Salva la modifica del cambio dell'utente in {handle}" msgid "Saves image crop settings" msgstr "Salva le impostazioni di ritaglio dell'immagine" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "Scienza" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "Scorri verso l'alto" @@ -4513,12 +4640,12 @@ msgstr "Scorri verso l'alto" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "Cerca" @@ -4560,7 +4687,7 @@ msgstr "" msgid "Search Tenor" msgstr "Cerca Tenor" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "Passaggio di sicurezza obbligatorio" @@ -4585,7 +4712,7 @@ msgstr "Vedi <0>{displayTag} posts di questo utente" msgid "See profile" msgstr "Vedi il profilo" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "Consulta questa guida" @@ -4596,10 +4723,22 @@ msgstr "Consulta questa guida" msgid "Select {item}" msgstr "Seleziona {item}" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "Seleziona l'account" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #~ msgid "Select Bluesky Social" #~ msgstr "Seleziona Bluesky Social" @@ -4634,6 +4773,10 @@ msgstr "Seleziona l'opzione {i} di {numItems}" msgid "Select some accounts below to follow" msgstr "Seleziona alcuni account da seguire qui giù" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "Seleziona il/i servizio/i di moderazione per fare la segnalazione" @@ -4665,7 +4808,7 @@ msgstr "Seleziona la lingua dell'app per il testo predefinito da visualizzare ne msgid "Select your date of birth" msgstr "Seleziona la tua data di nascita" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "Seleziona i tuoi interessi dalle seguenti opzioni" @@ -4684,16 +4827,16 @@ msgstr "Seleziona i tuoi feed algoritmici principali" msgid "Select your secondary algorithmic feeds" msgstr "Seleziona i tuoi feed algoritmici secondari" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Invia email di conferma" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "Invia email" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "Invia email" @@ -4701,16 +4844,18 @@ msgstr "Invia email" #~ msgid "Send Email" #~ msgstr "Envia Email" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "Invia feedback" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4723,12 +4868,12 @@ msgstr "Invia la segnalazione" msgid "Send report to {0}" msgstr "Invia la segnalazione a {0}" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "Invia la email di verifica" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "Invia un'email con il codice di conferma per la cancellazione dell'account" @@ -4769,15 +4914,15 @@ msgstr "Imposta una nuova password" #~ msgid "Set password" #~ msgstr "Imposta la password" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Seleziona \"No\" per nascondere tutti i post con le citazioni dal tuo feed. I repost saranno ancora visibili." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Seleziona \"No\" per nascondere tutte le risposte dal tuo feed." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Seleziona \"No\" per nascondere tutte le ripubblicazioni dal tuo feed." @@ -4788,7 +4933,7 @@ msgstr "Seleziona \"Sì\" per mostrare le risposte in una visualizzazione concat #~ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." #~ msgstr "Seleziona \"Sì\" per mostrare esempi dei feed salvati nel feed successivo. Questa è una funzionalità sperimentale." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Imposta questa impostazione su \"Sì\" per mostrare esempi dei tuoi feed salvati nel feed Seguiti. Questa è una funzionalità sperimentale." @@ -4796,7 +4941,7 @@ msgstr "Imposta questa impostazione su \"Sì\" per mostrare esempi dei tuoi feed msgid "Set up your account" msgstr "Configura il tuo account" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Imposta il tuo nome utente di Bluesky" @@ -4845,13 +4990,13 @@ msgstr "Imposta l'amplio sulle proporzioni dell'immagine" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "Impostazioni" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "Attività sessuale o nudità erotica." @@ -4859,7 +5004,7 @@ msgstr "Attività sessuale o nudità erotica." msgid "Sexually Suggestive" msgstr "Sessualmente suggestivo" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "Condividi" @@ -4869,7 +5014,7 @@ msgstr "Condividi" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "Condividi" @@ -4879,8 +5024,8 @@ msgstr "Condividi" msgid "Share anyway" msgstr "Condividi comunque" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "Condividi il feed" @@ -4946,11 +5091,11 @@ msgstr "Mostra di più" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Mostra post dai miei feed" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "Mostra post con citazioni" @@ -4966,7 +5111,7 @@ msgstr "Mostra le citazioni in Seguiti" msgid "Show re-posts in Following feed" msgstr "Mostra re-post nel feed Seguiti" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "Mostra risposte" @@ -4986,7 +5131,7 @@ msgstr "Mostra le risposte nel feed Seguiti" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Mostra risposte con almeno {value} {0}" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "Mostra ripubblicazioni" @@ -5022,17 +5167,17 @@ msgstr "Mostra i post di {0} nel tuo feed" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -5066,12 +5211,12 @@ msgstr "Accedi a Bluesky o crea un nuovo account" msgid "Sign out" msgstr "Disconnetta" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -5099,22 +5244,26 @@ msgstr "Registrato/a come @{0}" #~ msgid "Signs {0} out of Bluesky" #~ msgstr "{0} esce da Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "Salta questo passo" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "Salta questa corrente" #~ msgid "SMS verification" #~ msgstr "Verifica tramite SMS" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "Sviluppo Software" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #~ msgid "Something went wrong and we're not sure what." #~ msgstr "Qualcosa è andato storto ma non siamo sicuri di cosa." @@ -5127,8 +5276,8 @@ msgstr "Qualcosa è andato male, prova di nuovo." #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "Qualcosa è andato storto. Controlla la tua email e riprova." -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "Scusa! La tua sessione è scaduta. Per favore accedi di nuovo." @@ -5140,19 +5289,20 @@ msgstr "Ordina le risposte" msgid "Sort replies to the same post by:" msgstr "Ordina le risposte allo stesso post per:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "Origine:" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "Spam" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "Spam; menzioni o risposte eccessive" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "Sports" @@ -5195,12 +5345,12 @@ msgstr "Spazio di archiviazione eliminato. Riavvia l'app." msgid "Storybook" msgstr "Cronologia" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Invia" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "Iscriviti" @@ -5221,7 +5371,7 @@ msgstr "Iscriviti a {0} feed" msgid "Subscribe to this labeler" msgstr "Iscriviti a questo labeler" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "Iscriviti alla lista" @@ -5233,7 +5383,7 @@ msgstr "Accounts da seguire" msgid "Suggested for you" msgstr "Suggerito per te" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "Suggestivo" @@ -5283,7 +5433,7 @@ msgstr "Alto" msgid "Tap to view fully" msgstr "Tocca per visualizzare completamente" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "Tecnologia" @@ -5295,13 +5445,13 @@ msgstr "Termini" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Termini di servizio" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "I termini utilizzati violano gli standard della comunità" @@ -5309,15 +5459,16 @@ msgstr "I termini utilizzati violano gli standard della comunità" msgid "text" msgstr "testo" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "Campo di testo" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "Grazie. La tua segnalazione è stata inviata." -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "Che contiene il seguente:" @@ -5342,11 +5493,15 @@ msgstr "Le Linee guida della community sono state spostate a<0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "La politica sul copyright è stata spostata a <0/>" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "Al tuo account sono state applicate le seguenti etichette." -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "Ai tuoi contenuti sono state applicate le seguenti etichette." @@ -5379,15 +5534,17 @@ msgid "There are many feeds to try:" msgstr "Ci sono molti feed da provare:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Si è verificato un problema nel contattare il server, controlla la tua connessione Internet e riprova." -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Si è verificato un problema durante la rimozione di questo feed. Per favore controlla la tua connessione Internet e prova di nuovo." -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Si è verificato un problema durante la rimozione di questo feed. Per favore controlla la tua connessione Internet e prova di nuovo." @@ -5399,16 +5556,17 @@ msgstr "Si è verificato un problema durante la connessione a Tenor." msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "Si è verificato un problema durante il contatto con il server" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "Si è verificato un problema durante il contatto con il tuo server" @@ -5416,7 +5574,7 @@ msgstr "Si è verificato un problema durante il contatto con il tuo server" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Si è verificato un problema durante il recupero delle notifiche. Tocca qui per riprovare." -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Si è verificato un problema nel recupero dei post. Tocca qui per riprovare." @@ -5429,6 +5587,7 @@ msgstr "Si è verificato un problema durante il recupero dell'elenco. Tocca qui msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Si è verificato un problema durante il recupero delle tue liste. Tocca qui per riprovare." +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Si è verificato un problema durante l'invio della segnalazione. Per favore controlla la tua connessione Internet." @@ -5455,10 +5614,10 @@ msgstr "Si è verificato un problema durante il recupero delle password dell'app msgid "There was an issue! {0}" msgstr "Si è verificato un problema! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "Si è verificato un problema. Per favore controlla la tua connessione Internet e prova di nuovo." @@ -5489,7 +5648,7 @@ msgstr "Questa {screenDescription} è stata segnalata:" msgid "This account has requested that users sign in to view their profile." msgstr "Questo account ha richiesto agli utenti di accedere Bluesky per visualizzare il profilo." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "Questo ricorso verrà inviato a <0>{0}." @@ -5514,24 +5673,24 @@ msgstr "Questo contenuto è hosted da {0}. Vuoi abilitare i media esterni?" msgid "This content is not available because one of the users involved has blocked the other." msgstr "Questo contenuto non è disponibile perché uno degli utenti coinvolti ha bloccato l'altro." -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "Questo contenuto non è visualizzabile senza un account Bluesky." #~ msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." #~ msgstr "Questa funzionalità è in versione beta. Puoi leggere ulteriori informazioni sulle esportazioni dell' archivio in <0>questo post del blog." -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Questa funzionalità è in versione beta. Puoi leggere ulteriori informazioni sulle esportazioni del repository in <0>questo post del blog." -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Questo canale al momento sta ricevendo molte visite ed è temporaneamente non disponibile. Riprova più tardi." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "Questo feed è vuoto!" @@ -5539,11 +5698,15 @@ msgstr "Questo feed è vuoto!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Questo feed è vuoto! Prova a seguire più utenti o ottimizza le impostazioni della lingua." +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Queste informazioni non vengono condivise con altri utenti." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "Questo è importante nel caso in cui avessi bisogno di modificare la tua email o reimpostare la password." @@ -5562,6 +5725,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Questo etichettatore non ha dichiarato quali etichette pubblica e potrebbe non essere attivo." @@ -5570,7 +5737,7 @@ msgstr "Questo etichettatore non ha dichiarato quali etichette pubblica e potreb msgid "This link is taking you to the following website:" msgstr "Questo link ti porta al seguente sito web:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "La lista è vuota!" @@ -5603,7 +5770,7 @@ msgstr "Questo profilo è visibile solo agli utenti registrati. Non sarà visibi msgid "This service has not provided terms of service or a privacy policy." msgstr "Questo servizio non ha fornito termini di servizio o un'informativa sulla privacy." -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "Questo dovrebbe creare un record di dominio in:" @@ -5669,10 +5836,14 @@ msgstr "Modalità discussione" msgid "Threads Preferences" msgstr "Preferenze per le discussioni" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "Per disabilitare il metodo 2FA via e-mail, verifica il tuo accesso all'indirizzo e-mail." +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "A chi desideri inviare questo report?" @@ -5717,25 +5888,25 @@ msgstr "Riprova" msgid "Two-factor authentication" msgstr "Autenticazione a due fattori" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Tipo:" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "Sblocca la lista" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "Riattiva questa lista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5745,7 +5916,7 @@ msgstr "Impossibile contattare il servizio. Per favore controlla la tua connessi #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "Sblocca" @@ -5766,7 +5937,7 @@ msgstr "Sblocca Account?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Annulla la ripubblicazione" @@ -5796,12 +5967,12 @@ msgstr "Smetti di seguire questo account" #~ msgid "Unlike" #~ msgstr "Togli Mi piace" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "Togli il like a questo feed" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "Riattiva" @@ -5818,7 +5989,7 @@ msgstr "Riattiva questo account" msgid "Unmute all {displayTag} posts" msgstr "Riattiva tutti i post di {displayTag}" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5827,16 +5998,16 @@ msgstr "" msgid "Unmute thread" msgstr "Riattiva questa discussione" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "Stacca dal profilo" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "Stacca dalla Home" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "Stacca la lista di moderazione" @@ -5851,7 +6022,12 @@ msgstr "Annulla l'iscrizione" msgid "Unsubscribe from this labeler" msgstr "Annulla l'iscrizione a questo/a labeler" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "Contenuti Sessuali Indesiderati" @@ -5862,7 +6038,7 @@ msgstr "Aggiorna {displayName} negli elenchi" #~ msgid "Update Available" #~ msgstr "Aggiornamento disponibile" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "Aggiorna a {handle}" @@ -5870,7 +6046,11 @@ msgstr "Aggiorna a {handle}" msgid "Updating..." msgstr "In aggiornamento..." -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Carica una file di testo a:" @@ -5893,7 +6073,7 @@ msgstr "Carica dai Files" msgid "Upload from Library" msgstr "Carica dalla Libreria" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "Utilizza un file sul tuo server" @@ -5901,11 +6081,11 @@ msgstr "Utilizza un file sul tuo server" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilizza le password dell'app per accedere ad altri client Bluesky senza fornire l'accesso completo al tuo account o alla tua password." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "Utilizza bsky.social come provider di hosting" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "Utilizza il tuo provider predefinito" @@ -5919,7 +6099,11 @@ msgstr "Utilizza il browser dell'app" msgid "Use my default browser" msgstr "Utilizza il mio browser predefinito" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Utilizza il pannello DNS" @@ -5963,13 +6147,13 @@ msgstr "Questo utente ti blocca" msgid "User list by {0}" msgstr "Lista di {0}" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "Lista di<0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "La tua lista" @@ -5985,11 +6169,11 @@ msgstr "Lista aggiornata" msgid "User Lists" msgstr "Liste publiche" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "Nome utente o indirizzo Email" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "Utenti" @@ -6005,7 +6189,7 @@ msgstr "Utenti in «{0}»" msgid "Users that have liked this content or profile" msgstr "Utenti a cui è piaciuto questo contenuto o profilo" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "Valore:" @@ -6016,7 +6200,7 @@ msgstr "Valore:" #~ msgid "Verify {0}" #~ msgstr "Verifica {0}" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -6032,16 +6216,16 @@ msgstr "Verifica la mia email" msgid "Verify My Email" msgstr "Verifica la Mia Email" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "Verifica la nuova email" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "Verifica la tua email" @@ -6053,7 +6237,7 @@ msgstr "Verifica la tua email" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "Video Games" @@ -6065,11 +6249,11 @@ msgstr "Vedi l'avatar di {0}" msgid "View debug entry" msgstr "Vedi le informazioni del debug" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "Vedere dettagli" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "Visualizza i dettagli per segnalare una violazione del copyright" @@ -6077,13 +6261,13 @@ msgstr "Visualizza i dettagli per segnalare una violazione del copyright" msgid "View full thread" msgstr "Vedi la discussione completa" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "Visualizza le informazioni su queste etichette" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Vedi il profilo" @@ -6095,7 +6279,7 @@ msgstr "Vedi l'avatar" msgid "View the labeling service provided by @{0}" msgstr "Visualizza il servizio di etichettatura fornito da @{0}" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "Visualizza gli utenti a cui piace questo feed" @@ -6126,11 +6310,15 @@ msgstr "Avvisa i contenuti e filtra dai feed" msgid "We couldn't find any results for that hashtag." msgstr "Non siamo riusciti a trovare alcun risultato per quell'hashtag." +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Stimiamo {estimatedTime} prima che il tuo account sia pronto." -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Speriamo di darti dei momenti dei bei momenti. Ricorda, Bluesky è:" @@ -6154,7 +6342,7 @@ msgstr "Non siamo riusciti a caricare le tue preferenze relative alla data di na msgid "We were unable to load your configured labelers at this time." msgstr "Al momento non è stato possibile caricare le etichettatori configurati." -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Non siamo riusciti a connetterci. Riprova per continuare a configurare il tuo account. Se il problema persiste, puoi ignorare questo flusso." @@ -6165,7 +6353,7 @@ msgstr "Ti faremo sapere quando il tuo account sarà pronto." #~ msgid "We'll look into your appeal promptly." #~ msgstr "Esamineremo il tuo ricorso al più presto." -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "Lo useremo per personalizzare la tua esperienza." @@ -6198,7 +6386,7 @@ msgstr "Ci dispiace! Puoi abbonarti solo a dieci etichettatori e hai raggiunto i #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Ti diamo il benvenuto a <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "Quali sono i tuoi interessi?" @@ -6227,23 +6415,31 @@ msgstr "Quali lingue vorresti vedere negli algoritmi dei tuoi feeds?" msgid "Who can reply" msgstr "Chi può rispondere" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "Perché questo contenuto dovrebbe essere revisionato?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "Perché questo feed dovrebbe essere revisionato?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "Perché questa lista dovrebbe essere revisionata?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "Perché questo post dovrebbe essere revisionato?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "Perché questo utente dovrebbe essere revisionato?" @@ -6251,8 +6447,8 @@ msgstr "Perché questo utente dovrebbe essere revisionato?" msgid "Wide" msgstr "Largo" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -6265,7 +6461,7 @@ msgstr "Scrivi un post" msgid "Write your reply" msgstr "Scrivi la tua risposta" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "Scrittori" @@ -6273,16 +6469,16 @@ msgstr "Scrittori" #~ msgstr "XXXXXX" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Si" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -6319,15 +6515,15 @@ msgstr "Non hai follower." msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Non hai ancora alcun codice di invito! Te ne invieremo alcuni quando utilizzerai Bluesky per un po' più a lungo." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "Non hai fissato nessun feed." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "Non hai salvato nessun feed!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "Non hai salvato nessun feed!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "Non hai salvato nessun feed." @@ -6377,7 +6573,7 @@ msgstr "Non hai feeds." msgid "You have no lists." msgstr "Non hai liste." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -6403,7 +6599,11 @@ msgstr "Non hai ancora silenziato nessun account. Per silenziare un account, vai msgid "You haven't muted any words or tags yet" msgstr "Non hai ancora silenziato nessuna parola o tag" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Puoi presentare ricorso contro queste etichette se ritieni che siano state inserite per errore." @@ -6434,7 +6634,7 @@ msgstr "Adesso riceverai le notifiche per questa discussione" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Riceverai un'email con un \"codice di reset\". Inserisci il codice qui, poi inserisci la nuova password." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -6448,7 +6648,7 @@ msgstr "Sei in controllo" msgid "You're in line" msgstr "Sei in fila" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "Sei pronto per iniziare!" @@ -6469,7 +6669,7 @@ msgstr "Il tuo account" msgid "Your account has been deleted" msgstr "Il tuo account è stato eliminato" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "L'archivio del tuo account, che contiene tutti i record di dati pubblici, può essere scaricato come file \"CAR\". Questo file non include elementi multimediali incorporati, come immagini o dati privati, che devono essere recuperati separatamente." @@ -6486,7 +6686,7 @@ msgid "Your default feed is \"Following\"" msgstr "Il tuo feed predefinito è \"Following\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "Your email appears to be invalid." @@ -6494,11 +6694,11 @@ msgstr "Your email appears to be invalid." #~ msgid "Your email has been saved! We'll be in touch soon." #~ msgstr "La tua email è stata salvata! Ci metteremo in contatto al più presto." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "La tua email è stata aggiornata ma non verificata. Come passo successivo, verifica la tua nuova email." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "La tua email non è stata ancora verificata. Ti consigliamo di fare questo importante passo per la sicurezza del tuo account." @@ -6510,7 +6710,7 @@ msgstr "Il tuo feed seguente è vuoto! Segui più utenti per vedere cosa sta suc msgid "Your full handle will be" msgstr "Il tuo nome di utente completo sarà" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "Il tuo nome di utente completo sarà <0>@{0}" @@ -6532,7 +6732,7 @@ msgstr "La tua password è stata modificata correttamente!" msgid "Your post has been published" msgstr "Il tuo post è stato pubblicato" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "I tuoi post, i tuoi Mi piace e i tuoi blocchi sono pubblici. I conti silenziati sono privati." @@ -6544,6 +6744,10 @@ msgstr "Il tuo profilo" msgid "Your reply has been published" msgstr "La tua risposta è stata pubblicata" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Il tuo handle utente" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index a612fff007..c1f3083fd4 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: Hima-Zinn, tkusano, dolciss, oboenikui, noritada, middlingphys, hibiki, reindex-ot, haoyayoi, vyv03354\n" "Plural-Forms: \n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "メールがありません" @@ -21,15 +21,15 @@ msgstr "メールがありません" msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -51,7 +51,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -71,6 +71,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -90,15 +94,15 @@ msgstr "{following} フォロー" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications}件の未読" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -106,11 +110,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/>のメンバー" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -127,7 +131,7 @@ msgstr "" #~ msgid "<0>{following} <1>following" #~ msgstr "<0>{following} <1>フォロー" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -135,7 +139,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠無効なハンドル" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "2要素認証の確認" @@ -166,7 +170,7 @@ msgstr "アクセシビリティの設定" #~ msgid "account" #~ msgstr "アカウント" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -217,15 +221,15 @@ msgstr "アカウントのミュートを解除しました" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "追加" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "コンテンツの警告を追加" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "リストにユーザーを追加" @@ -237,6 +241,7 @@ msgstr "アカウントを追加" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -244,8 +249,8 @@ msgid "Add alt text" msgstr "ALTテキストを追加" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -261,7 +266,15 @@ msgstr "ミュートするワードを設定に追加" msgid "Add muted words and tags" msgstr "ミュートするワードとタグを追加" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "次のDNSレコードをドメインに追加してください:" @@ -270,7 +283,7 @@ msgstr "次のDNSレコードをドメインに追加してください:" msgid "Add to Lists" msgstr "リストに追加" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "マイフィードに追加" @@ -279,17 +292,17 @@ msgstr "マイフィードに追加" msgid "Added to list" msgstr "リストに追加" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "マイフィードに追加" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "返信がフィードに表示されるために必要ないいねの数を調整します。" #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "成人向けコンテンツ" @@ -302,7 +315,7 @@ msgstr "成人向けコンテンツは無効になっています。" msgid "Advanced" msgstr "高度な設定" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "保存したすべてのフィードを1箇所にまとめます。" @@ -335,12 +348,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "ALTテキストは、すべての人が文脈を理解できるようにするために、視覚障害者や低視力者向けに提供する画像の説明文です。" -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "メールが{0}に送信されました。以下に入力できる確認コードがそのメールに記載されています。" -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "以前のメールアドレス{0}にメールが送信されました。以下に入力できる確認コードがそのメールに記載されています。" @@ -348,11 +361,11 @@ msgstr "以前のメールアドレス{0}にメールが送信されました。 msgid "An error occured" msgstr "エラーが発生しました" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "メッセージ削除中にエラーが発生しました。再実行してみてください。" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "ほかの選択肢にはあてはまらない問題" @@ -365,7 +378,7 @@ msgstr "ほかの選択肢にはあてはまらない問題" msgid "An issue occurred, please try again." msgstr "問題が発生しました。もう一度お試しください。" -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -374,7 +387,7 @@ msgstr "" msgid "and" msgstr "および" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "動物" @@ -382,7 +395,7 @@ msgstr "動物" msgid "Animated GIF" msgstr "アニメーションGIF" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "反社会的な行動" @@ -412,16 +425,16 @@ msgstr "アプリパスワードの設定" msgid "App Passwords" msgstr "アプリパスワード" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "異議を申し立てる" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "「{0}」のラベルに異議を申し立てる" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -433,19 +446,24 @@ msgstr "" msgid "Appearance" msgstr "背景" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "アプリパスワード「{name}」を本当に削除しますか?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "このメッセージを本当に削除しますか?このメッセージはあなたからは削除したように見えますが、他の参加者からは削除されません。" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "この会話から退出しますか?あなたのメッセージはあなたからは削除したように見えますが、他の参加者からは削除されません。" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "あなたのフィードから{0}を削除してもよろしいですか?" @@ -461,11 +479,11 @@ msgstr "本当によろしいですか?" msgid "Are you writing in <0>{0}?" msgstr "<0>{0}で書かれた投稿ですか?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "アート" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "芸術的または性的ではないヌード。" @@ -473,17 +491,17 @@ msgstr "芸術的または性的ではないヌード。" msgid "At least 3 characters" msgstr "少なくとも3文字" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -511,8 +529,8 @@ msgstr "生年月日:" msgid "Block" msgstr "ブロック" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "アカウントをブロック" @@ -525,15 +543,15 @@ msgstr "アカウントをブロック" msgid "Block Account?" msgstr "アカウントをブロックしますか?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "アカウントをブロック" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "リストをブロック" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "これらのアカウントをブロックしますか?" @@ -567,7 +585,7 @@ msgstr "投稿をブロックしました。" msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "ブロックしてもこのラベラーがあなたのアカウントにラベルを貼ることができます。" -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "ブロックしたことは公開されます。ブロック中のアカウントは、あなたのスレッドでの返信、あなたへのメンション、その他の方法であなたとやり取りすることはできません。" @@ -600,10 +618,15 @@ msgstr "画像をぼかす" msgid "Blur images and filter from feeds" msgstr "画像のぼかしとフィードからのフィルタリング" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "書籍" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "ビジネス" @@ -646,9 +669,9 @@ msgstr "英数字、スペース、ハイフン、アンダースコアのみが #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -660,26 +683,26 @@ msgstr "英数字、スペース、ハイフン、アンダースコアのみが #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "キャンセル" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "キャンセル" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "アカウントの削除をキャンセル" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "ハンドルの変更をキャンセル" @@ -704,7 +727,7 @@ msgstr "検索をキャンセル" msgid "Cancels opening the linked website" msgstr "リンク先のウェブサイトを開くことをキャンセル" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "変更" @@ -717,12 +740,12 @@ msgstr "変更" msgid "Change handle" msgstr "ハンドルを変更" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "ハンドルを変更" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "メールアドレスを変更" @@ -739,7 +762,7 @@ msgstr "パスワードを変更" msgid "Change post language to {0}" msgstr "投稿の言語を{0}に変更します" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "メールアドレスを変更" @@ -747,11 +770,11 @@ msgstr "メールアドレスを変更" msgid "Chat" msgstr "チャット" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "チャットをミュートしました" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "チャットの設定" @@ -765,11 +788,11 @@ msgstr "チャットのミュートを解除しました" msgid "Check my status" msgstr "ステータスを確認" -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "確認コードが記載されたメールを確認し、ここに入力してください。" -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "入力したメールアドレスの受信トレイを確認して、以下に入力するための確認コードが記載されたメールが届いていないか確認してください:" @@ -781,10 +804,14 @@ msgstr "「全員」か「返信不可」のどちらかを選択" msgid "Choose Service" msgstr "サービスを選択" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "カスタムフィードのアルゴリズムを選択できます。" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "メインのフィードを選択" @@ -826,11 +853,15 @@ msgstr "すべてのストレージデータをクリア" msgid "click here" msgstr "こちらをクリック" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "{tag}のタグメニューをクリックして表示" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "気象" @@ -899,11 +930,11 @@ msgstr "ヘッダー画像のビューワーを閉じる" msgid "Collapses list of users for a given notification" msgstr "指定した通知のユーザーリストを折りたたむ" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "コメディー" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "漫画" @@ -912,7 +943,7 @@ msgstr "漫画" msgid "Community Guidelines" msgstr "コミュニティーガイドライン" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "初期設定を完了してアカウントを使い始める" @@ -942,18 +973,18 @@ msgstr "<0>モデレーションの設定で設定されています。" #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "確認" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "変更を確認" @@ -961,7 +992,7 @@ msgstr "変更を確認" msgid "Confirm content language settings" msgstr "コンテンツの言語設定を確認" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "アカウントの削除を確認" @@ -973,17 +1004,17 @@ msgstr "年齢の確認:" msgid "Confirm your birthdate" msgstr "生年月日の確認" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "確認コード" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "接続中..." @@ -1030,8 +1061,9 @@ msgstr "コンテキストメニューの背景をクリックし、メニュー #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "続行" @@ -1041,8 +1073,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "{0}として続行 (現在サインイン中)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1056,7 +1089,7 @@ msgstr "次のステップへ進む" msgid "Continue to the next step without following any accounts" msgstr "アカウントをフォローせずに次のステップへ進む" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "料理" @@ -1069,9 +1102,9 @@ msgstr "コピーしました" msgid "Copied build version to clipboard" msgstr "ビルドバージョンをクリップボードにコピーしました" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1089,7 +1122,7 @@ msgstr "アプリパスワードをコピーします" msgid "Copy" msgstr "コピー" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "{0}をコピー" @@ -1098,7 +1131,7 @@ msgstr "{0}をコピー" msgid "Copy code" msgstr "コードをコピー" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "リストへのリンクをコピー" @@ -1122,15 +1155,15 @@ msgstr "投稿のテキストをコピー" msgid "Copyright Policy" msgstr "著作権ポリシー" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "チャットからの退出に失敗しました" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "フィードの読み込みに失敗しました" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "リストの読み込みに失敗しました" @@ -1138,13 +1171,13 @@ msgstr "リストの読み込みに失敗しました" msgid "Could not load profiles. Please try again later." msgstr "プロフィールの読み込みに失敗しました。時間をおいてもう一度お試しください。" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "チャットのミュートに失敗しました" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "チャットのミュートの解除に失敗しました" +#~ msgid "Could not unmute chat" +#~ msgstr "チャットのミュートの解除に失敗しました" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1164,6 +1197,10 @@ msgstr "アカウントを作成" msgid "Create an account" msgstr "アカウントを作成" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "アプリパスワードを作成" @@ -1173,7 +1210,7 @@ msgstr "アプリパスワードを作成" msgid "Create new account" msgstr "新しいアカウントを作成" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "{0}の報告を作成" @@ -1181,7 +1218,7 @@ msgstr "{0}の報告を作成" msgid "Created {0}" msgstr "{0}に作成" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "文化" @@ -1190,12 +1227,12 @@ msgstr "文化" msgid "Custom" msgstr "カスタム" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "カスタムドメイン" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "コミュニティーによって作成されたカスタムフィードは、あなたに新しい体験をもたらし、あなたが好きなコンテンツを見つけるのに役立ちます。" @@ -1228,10 +1265,10 @@ msgstr "モデレーションをデバッグ" msgid "Debug panel" msgstr "デバッグパネル" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "削除" @@ -1243,7 +1280,7 @@ msgstr "アカウントを削除" #~ msgid "Delete Account" #~ msgstr "アカウントを削除" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1259,11 +1296,11 @@ msgstr "アプリパスワードを削除しますか?" msgid "Delete for me" msgstr "自分宛を削除" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "リストを削除" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "メッセージを削除" @@ -1271,7 +1308,7 @@ msgstr "メッセージを削除" msgid "Delete message for me" msgstr "メッセージの宛先から自分を削除" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "マイアカウントを削除" @@ -1284,7 +1321,7 @@ msgstr "マイアカウントを削除…" msgid "Delete post" msgstr "投稿を削除" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "このリストを削除しますか?" @@ -1323,7 +1360,7 @@ msgstr "グレー" msgid "Disable autoplay for GIFs" msgstr "GIFを自動再生しない" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "メールでの2要素認証を無効化" @@ -1356,7 +1393,7 @@ msgstr "アプリがログアウトしたユーザーに自分のアカウント msgid "Discover new custom feeds" msgstr "新しいカスタムフィードを見つける" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "新しいフィードを探す" @@ -1368,7 +1405,7 @@ msgstr "表示名" msgid "Display Name" msgstr "表示名" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "DNSパネルがある場合" @@ -1380,11 +1417,11 @@ msgstr "ヌードは含まれません。" msgid "Doesn't begin or end with a hyphen" msgstr "ハイフンで始まったり終ったりしない" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "ドメインの値" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "ドメインを確認しました!" @@ -1392,6 +1429,8 @@ msgstr "ドメインを確認しました!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1400,15 +1439,13 @@ msgstr "ドメインを確認しました!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "完了" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1422,8 +1459,8 @@ msgstr "完了" msgid "Done{extraText}" msgstr "完了{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "CARファイルをダウンロード" @@ -1435,7 +1472,7 @@ msgstr "ドロップして画像を追加する" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Appleのポリシーにより、成人向けコンテンツはサインアップ完了後にウェブ上でのみ有効にすることができます。" -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "例:太郎" @@ -1443,7 +1480,7 @@ msgstr "例:太郎" msgid "e.g. Alice Roberts" msgstr "例:山田 太郎" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "例:taro.com" @@ -1490,7 +1527,7 @@ msgstr "アバターを編集" msgid "Edit image" msgstr "画像を編集" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "リストの詳細を編集" @@ -1499,8 +1536,8 @@ msgid "Edit Moderation List" msgstr "モデレーションリストを編集" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "マイフィードを編集" @@ -1519,7 +1556,7 @@ msgid "Edit Profile" msgstr "プロフィールを編集" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "保存されたフィードを編集" @@ -1535,16 +1572,16 @@ msgstr "あなたの表示名を編集します" msgid "Edit your profile description" msgstr "あなたのプロフィールの説明を編集します" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "教育" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "メールアドレス" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "メールでの2要素認証を無効にしました" @@ -1552,16 +1589,16 @@ msgstr "メールでの2要素認証を無効にしました" msgid "Email address" msgstr "メールアドレス" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "メールアドレスは更新されました" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "メールアドレスは更新されました" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "メールアドレスは認証されました" @@ -1609,7 +1646,7 @@ msgstr "外部メディアを有効にする" msgid "Enable media players for" msgstr "有効にするメディアプレイヤー" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "この設定を有効にすると、自分がフォローしているユーザーからの返信だけが表示されます。" @@ -1638,7 +1675,7 @@ msgstr "パスワードを入力" msgid "Enter a word or tag" msgstr "ワードまたはタグを入力" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "確認コードを入力してください" @@ -1646,7 +1683,7 @@ msgstr "確認コードを入力してください" msgid "Enter the code you received to change your password." msgstr "パスワードを変更するために受け取ったコードを入力してください。" -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "使用するドメインを入力してください" @@ -1663,11 +1700,11 @@ msgstr "生年月日を入力してください" msgid "Enter your email address" msgstr "メールアドレスを入力してください" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "上記に新しいメールアドレスを入力してください" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "以下に新しいメールアドレスを入力してください。" @@ -1675,11 +1712,15 @@ msgstr "以下に新しいメールアドレスを入力してください。" msgid "Enter your username and password" msgstr "ユーザー名とパスワードを入力してください" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Captchaレスポンスの受信中にエラーが発生しました。" -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "エラー:" @@ -1688,15 +1729,19 @@ msgstr "エラー:" msgid "Everybody" msgstr "全員" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "過剰なメンションや返信" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "アカウントの削除処理を終了" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "ハンドルの変更を終了" @@ -1734,7 +1779,7 @@ msgstr "露骨な性的画像。" msgid "Export my data" msgstr "私のデータをエクスポートする" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "私のデータをエクスポートする" @@ -1768,7 +1813,7 @@ msgstr "アプリパスワードの作成に失敗しました。" msgid "Failed to create the list. Check your internet connection and try again." msgstr "リストの作成に失敗しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "メッセージの削除に失敗しました" @@ -1780,43 +1825,47 @@ msgstr "投稿の削除に失敗しました。もう一度お試しください msgid "Failed to load GIFs" msgstr "GIFの読み込みに失敗しました" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "過去のメッセージの読み込みに失敗しました。" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "画像の保存に失敗しました:{0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "フィード" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "{0}によるフィード" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "フィードはオフラインです" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "フィードバック" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "フィード" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "フィードはユーザーがプログラミングの専門知識を持って構築するカスタムアルゴリズムです。詳細については、<0/>を参照してください。" @@ -1824,15 +1873,19 @@ msgstr "フィードはユーザーがプログラミングの専門知識を持 msgid "Feeds can be topical as well!" msgstr "フィードには特定の話題に焦点を当てたものもあります!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "ファイルのコンテンツ" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "フィードからのフィルター" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "最後に" @@ -1846,7 +1899,7 @@ msgstr "フォローするアカウントを探す" msgid "Find posts and users on Bluesky" msgstr "投稿やユーザーをBlueskyで検索" -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "Followingフィードに表示されるコンテンツを調整します。" @@ -1854,11 +1907,11 @@ msgstr "Followingフィードに表示されるコンテンツを調整します msgid "Fine-tune the discussion threads." msgstr "ディスカッションスレッドを微調整します。" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "フィットネス" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "柔軟です" @@ -1916,7 +1969,7 @@ msgstr "{0}がフォロー中" msgid "Followed users" msgstr "自分がフォローしているユーザー" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "自分がフォローしているユーザーのみ" @@ -1934,7 +1987,9 @@ msgstr "フォロワー" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "フォロー中" @@ -1949,7 +2004,7 @@ msgstr "Followingフィードの設定" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "Followingフィードの設定" @@ -1962,11 +2017,11 @@ msgstr "あなたをフォロー" msgid "Follows You" msgstr "あなたをフォロー" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "食べ物" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "セキュリティ上の理由から、あなたのメールアドレスに確認コードを送信する必要があります。" @@ -1979,15 +2034,15 @@ msgstr "セキュリティ上の理由から、これを再度表示すること msgid "Forgot Password" msgstr "パスワードを忘れた" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "パスワードを忘れた?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "忘れた?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "望ましくないコンテンツを頻繁に投稿" @@ -2004,12 +2059,16 @@ msgstr "<0/>から" msgid "Gallery" msgstr "ギャラリー" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "開始" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "法律または利用規約への明らかな違反" @@ -2018,9 +2077,9 @@ msgstr "法律または利用規約への明らかな違反" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "戻る" @@ -2028,12 +2087,13 @@ msgstr "戻る" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "戻る" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2054,11 +2114,11 @@ msgstr "ホームへ" msgid "Go to next" msgstr "次へ" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "プロフィールへ" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "ユーザーのプロフィールへ移動" @@ -2066,7 +2126,7 @@ msgstr "ユーザーのプロフィールへ移動" msgid "Graphic Media" msgstr "生々しいメディア" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "ハンドル" @@ -2074,7 +2134,7 @@ msgstr "ハンドル" msgid "Haptics" msgstr "触覚フィードバック" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "嫌がらせ、荒らし、不寛容" @@ -2082,7 +2142,7 @@ msgstr "嫌がらせ、荒らし、不寛容" msgid "Hashtag" msgstr "ハッシュタグ" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "ハッシュタグ:#{tag}" @@ -2091,10 +2151,14 @@ msgid "Having trouble?" msgstr "なにか問題が発生しましたか?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "ヘルプ" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "あなたがフォローしそうなアカウントを紹介します" @@ -2147,23 +2211,23 @@ msgstr "この投稿を非表示にしますか?" msgid "Hide user list" msgstr "ユーザーリストを非表示" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "フィードサーバーに問い合わせたところ、なんらかの問題が発生しました。この問題をフィードのオーナーにお知らせください。" -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "フィードサーバーの設定が間違っているようです。この問題をフィードのオーナーにお知らせください。" -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "フィードサーバーがオフラインのようです。この問題をフィードのオーナーにお知らせください。" -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "フィードサーバーの反応が悪いようです。この問題をフィードのオーナーにお知らせください。" -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "このフィードが見つからないようです。もしかしたら削除されたのかもしれません。" @@ -2176,21 +2240,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "そのモデレーションサービスを読み込めませんでした。" #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "ホーム" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "ホスト:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "ホスティングプロバイダー" @@ -2198,25 +2262,29 @@ msgstr "ホスティングプロバイダー" msgid "How should we open this link?" msgstr "このリンクをどのように開きますか?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "コードを持っています" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "確認コードを持っています" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "自分のドメインを持っています" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "ALTテキストが長い場合、ALTテキストの展開状態を切り替える" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "なにも選択しない場合は、全年齢対象です。" @@ -2224,7 +2292,7 @@ msgstr "なにも選択しない場合は、全年齢対象です。" msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "あなたがお住いの国の法律においてまだ成人していない場合は、親権者または法定後見人があなたに代わって本規約をお読みください。" -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "このリストを削除すると、復元できなくなります。" @@ -2236,7 +2304,7 @@ msgstr "この投稿を削除すると、復元できなくなります。" msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "パスワードを変更する場合は、あなたのアカウントであることを確認するためのコードをお送りします。" -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "違法かつ緊急" @@ -2248,7 +2316,7 @@ msgstr "画像" msgid "Image alt text" msgstr "画像のALTテキスト" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "なりすまし、または身元もしくは所属に関する虚偽の主張" @@ -2256,7 +2324,7 @@ msgstr "なりすまし、または身元もしくは所属に関する虚偽の msgid "Input code sent to your email for password reset" msgstr "パスワードをリセットするためにあなたのメールアドレスに送られたコードを入力" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "アカウント削除のために確認コードを入力" @@ -2268,27 +2336,27 @@ msgstr "アプリパスワードの名前を入力" msgid "Input new password" msgstr "新しいパスワードを入力" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "アカウント削除のためにパスワードを入力" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "メールで送られたコードを入力" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "{identifier}に紐づくパスワードを入力" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "サインアップ時に使用したユーザー名またはメールアドレスを入力" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "あなたのパスワードを入力" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "ご希望のホスティングプロバイダーを入力" @@ -2296,8 +2364,8 @@ msgstr "ご希望のホスティングプロバイダーを入力" msgid "Input your user handle" msgstr "あなたのユーザーハンドルを入力" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "無効な2要素認証の確認コードです。" @@ -2305,7 +2373,7 @@ msgstr "無効な2要素認証の確認コードです。" msgid "Invalid or unsupported post record" msgstr "無効またはサポートされていない投稿のレコード" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "無効なユーザー名またはパスワード" @@ -2317,7 +2385,7 @@ msgstr "友達を招待" msgid "Invite code" msgstr "招待コード" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "招待コードが確認できません。正しく入力されていることを確認し、もう一度実行してください。" @@ -2337,7 +2405,7 @@ msgstr "あなたがフォローしたユーザーの投稿が随時表示され msgid "Jobs" msgstr "仕事" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "報道" @@ -2365,11 +2433,11 @@ msgstr "ラベルは、ユーザーやコンテンツに対する注釈です。 #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "個のラベルがこの{labelTarget}に貼られました" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "あなたのアカウントのラベル" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "あなたのコンテンツのラベル" @@ -2417,13 +2485,13 @@ msgstr "Blueskyで公開されている内容はこちらを参照してくだ msgid "Learn more." msgstr "詳細。" -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "退出" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "会話を退出" @@ -2448,7 +2516,7 @@ msgstr "レガシーストレージがクリアされたため、今すぐアプ msgid "Let's get your password reset!" msgstr "パスワードをリセットしましょう!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "さあ始めましょう!" @@ -2461,7 +2529,7 @@ msgstr "ライト" #~ msgstr "いいね" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "このフィードをいいね" @@ -2515,19 +2583,19 @@ msgstr "リスト" msgid "List Avatar" msgstr "リストのアバター" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "リストをブロックしました" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "{0}によるリスト" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "リストを削除しました" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "リストをミュートしました" @@ -2535,20 +2603,20 @@ msgstr "リストをミュートしました" msgid "List Name" msgstr "リストの名前" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "リストのブロックを解除しました" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "リストのミュートを解除しました" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "リスト" @@ -2557,9 +2625,9 @@ msgid "Load new notifications" msgstr "最新の通知を読み込む" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "最新の投稿を読み込む" @@ -2586,7 +2654,7 @@ msgstr "ログアウトしたユーザーからの可視性" msgid "Login to account that is not listed" msgstr "リストにないアカウントにログイン" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "長押しで #{tag} のタグメニューを開く" @@ -2594,6 +2662,18 @@ msgstr "長押しで #{tag} のタグメニューを開く" msgid "Looks like XXXXX-XXXXX" msgstr "XXXXX-XXXXXみたいなもの" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "意図した場所であることを確認してください!" @@ -2602,6 +2682,11 @@ msgstr "意図した場所であることを確認してください!" msgid "Manage your muted words and tags" msgstr "ミュートしたワードとタグの管理" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2620,30 +2705,35 @@ msgstr "メンションされたユーザー" msgid "Menu" msgstr "メニュー" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "メッセージは削除されました" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "サーバーからのメッセージ:{0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "メッセージを入力するフィールド" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "メッセージの設定" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "メッセージ" @@ -2651,7 +2741,7 @@ msgstr "メッセージ" msgid "Messaging settings" msgstr "メッセージの設定" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "誤解を招くアカウント" @@ -2670,13 +2760,13 @@ msgstr "モデレーションの詳細" msgid "Moderation list by {0}" msgstr "{0}の作成したモデレーションリスト" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "<0/>の作成したモデレーションリスト" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "あなたの作成したモデレーションリスト" @@ -2718,11 +2808,11 @@ msgstr "モデレーターによりコンテンツに一般的な警告が設定 msgid "More" msgstr "さらに" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "その他のフィード" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "その他のオプション" @@ -2743,7 +2833,7 @@ msgstr "{truncatedTag}をミュート" msgid "Mute Account" msgstr "アカウントをミュート" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "アカウントをミュート" @@ -2759,16 +2849,16 @@ msgstr "タグのみをミュート" msgid "Mute in text & tags" msgstr "テキストとタグをミュート" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "リストをミュート" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "通知をミュート" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "これらのアカウントをミュートしますか?" @@ -2815,7 +2905,7 @@ msgstr "「{0}」によってミュート中" msgid "Muted words & tags" msgstr "ミュートしたワードとタグ" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "ミュートの設定は非公開です。ミュート中のアカウントはあなたと引き続き関わることができますが、そのアカウントの投稿や通知を受信することはできません。" @@ -2824,11 +2914,11 @@ msgstr "ミュートの設定は非公開です。ミュート中のアカウン msgid "My Birthday" msgstr "生年月日" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "マイフィード" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "マイプロフィール" @@ -2849,35 +2939,35 @@ msgstr "名前" msgid "Name is required" msgstr "名前は必須です" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "名前または説明がコミュニティ基準に違反" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "自然" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "次の画面に移動します" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "あなたのプロフィールに移動します" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "著作権侵害を報告する必要がありますか?" -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "フォロワーやデータへのアクセスを失うことはありません。" -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "気にせずにハンドルを作成" @@ -2891,8 +2981,8 @@ msgid "New" msgstr "新規" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "新しいチャット" @@ -2908,22 +2998,22 @@ msgstr "新しいパスワード" msgid "New Password" msgstr "新しいパスワード" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "新しい投稿" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "新しい投稿" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "新しい投稿" @@ -2936,14 +3026,14 @@ msgstr "新しいユーザーリスト" msgid "Newest replies first" msgstr "新しい順に返信を表示" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "ニュース" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -2956,21 +3046,21 @@ msgstr "次へ" msgid "Next image" msgstr "次の画像" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "いいえ" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "説明はありません" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "DNSパネルがない場合" @@ -2986,8 +3076,8 @@ msgstr "{0}のフォローを解除しました" msgid "No longer than 253 characters" msgstr "253文字まで" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "メッセージはありません" @@ -3004,7 +3094,7 @@ msgstr "結果はありません" msgid "No results found" msgstr "結果は見つかりません" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "「{query}」の検索結果はありません" @@ -3049,8 +3139,8 @@ msgstr "性的ではないヌード" msgid "Not Found" msgstr "見つかりません" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "今はしない" @@ -3067,22 +3157,22 @@ msgstr "注記:Blueskyはオープンでパブリックなネットワーク #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "通知" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "今" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "ヌード" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "ヌードあるいは成人向けコンテンツと表示されていないもの" @@ -3099,7 +3189,7 @@ msgstr "オフ" msgid "Oh no!" msgstr "ちょっと!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "ちょっと!なにかがおかしいです。" @@ -3124,6 +3214,10 @@ msgstr "オンボーディングのリセット" msgid "One or more images is missing alt text." msgstr "1つもしくは複数の画像にALTテキストがありません。" +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "{0}のみ返信可能" @@ -3142,16 +3236,20 @@ msgstr "おっと、なにかが間違っているようです!" msgid "Oops!" msgstr "おっと!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "開かれています" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "絵文字を入力" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "フィードの設定メニューを開く" @@ -3254,7 +3352,7 @@ msgstr "Blueskyのアカウントのデータ(リポジトリ)をダウン msgid "Opens modal for email verification" msgstr "メールアドレスの認証のためのモーダルを開く" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "カスタムドメインを使用するためのモーダルを開く" @@ -3262,12 +3360,12 @@ msgstr "カスタムドメインを使用するためのモーダルを開く" msgid "Opens moderation settings" msgstr "モデレーションの設定を開く" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "パスワードリセットのフォームを開く" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "保存されたフィードの編集画面を開く" @@ -3287,7 +3385,7 @@ msgstr "Followingフィードの設定を開く" msgid "Opens the linked website" msgstr "リンク先のウェブサイトを開く" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "メッセージの設定のページを開く" @@ -3308,6 +3406,7 @@ msgstr "スレッドの設定を開く" msgid "Option {0} of {numItems}" msgstr "{numItems}個中{0}目のオプション" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "オプションとして、以下に追加情報をご記入ください:" @@ -3316,7 +3415,7 @@ msgstr "オプションとして、以下に追加情報をご記入ください msgid "Or combine these options:" msgstr "または以下のオプションを組み合わせてください:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "その他" @@ -3337,10 +3436,10 @@ msgstr "ページが見つかりません" msgid "Page Not Found" msgstr "ページが見つかりません" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "パスワード" @@ -3372,32 +3471,32 @@ msgstr "@{0}がフォロー中のユーザー" msgid "People following @{0}" msgstr "@{0}をフォロー中のユーザー" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "カメラへのアクセス権限が必要です。" -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "カメラへのアクセスが拒否されました。システムの設定で有効にしてください。" -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "ペット" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "成人向けの画像です。" -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "ホームにピン留め" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "ホームにピン留め" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "ピン留めされたフィード" @@ -3422,19 +3521,19 @@ msgstr "動画を再生" msgid "Plays the GIF" msgstr "GIFを再生" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "ハンドルをお選びください。" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "パスワードを選択してください。" -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "Captcha認証を完了してください。" -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "変更する前にメールを確認してください。これは、メールアップデートツールが追加されている間の一時的な要件であり、まもなく削除されます。" @@ -3450,15 +3549,15 @@ msgstr "このアプリパスワードに固有の名前を入力するか、ラ msgid "Please enter a valid word, tag, or phrase to mute" msgstr "ミュートにする有効な単語、タグ、フレーズを入力してください" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "メールアドレスを入力してください。" -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "パスワードも入力してください:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "{0}によって貼られたこのラベルが誤って適用されたと思われる理由を説明してください" @@ -3466,7 +3565,7 @@ msgstr "{0}によって貼られたこのラベルが誤って適用されたと msgid "Please sign in as @{0}" msgstr "@{0}としてサインインしてください" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "メールアドレスを確認してください" @@ -3474,11 +3573,11 @@ msgstr "メールアドレスを確認してください" msgid "Please wait for your link card to finish loading" msgstr "リンクカードが読み込まれるまでお待ちください" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "政治" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "ポルノ" @@ -3546,7 +3645,7 @@ msgstr "投稿" msgid "Posts can be muted based on their text, their tags, or both." msgstr "投稿はテキスト、タグ、またはその両方に基づいてミュートできます。" -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "非表示の投稿" @@ -3560,15 +3659,15 @@ msgstr "ホスティングプロバイダーを変える" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "再実行する" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "再実行" +#~ msgid "Press to Retry" +#~ msgstr "再実行" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3591,7 +3690,7 @@ msgstr "プライバシー" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "プライバシーポリシー" @@ -3604,11 +3703,11 @@ msgstr "処理中..." msgid "profile" msgstr "プロフィール" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "プロフィール" @@ -3620,7 +3719,7 @@ msgstr "プロフィールを更新しました" msgid "Protect your account by verifying your email." msgstr "メールアドレスを確認してアカウントを保護します。" -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "公開されています" @@ -3662,16 +3761,20 @@ msgstr "ランダムな順番で表示(別名「投稿者のルーレット」 msgid "Ratios" msgstr "比率" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "検索履歴" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "削除" @@ -3687,22 +3790,25 @@ msgstr "アバターを削除" msgid "Remove Banner" msgstr "バナーを削除" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "フィードを削除" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "フィードを削除しますか?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "マイフィードから削除" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "マイフィードから削除しますか?" @@ -3726,7 +3832,7 @@ msgstr "引用を削除" msgid "Remove repost" msgstr "リポストを削除" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "保存したフィードからこのフィードを削除" @@ -3735,11 +3841,13 @@ msgstr "保存したフィードからこのフィードを削除" msgid "Removed from list" msgstr "リストから削除されました" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "フィードから削除しました" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "あなたのフィードから削除しました" @@ -3751,6 +3859,11 @@ msgstr "{0}からデフォルトのサムネイルを削除" msgid "Removes quoted post" msgstr "引用を削除する" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "返信" @@ -3764,7 +3877,7 @@ msgctxt "action" msgid "Reply" msgstr "返信" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "返信のフィルター" @@ -3780,24 +3893,30 @@ msgstr "報告" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "アカウントを報告" +#~ msgid "Report account" +#~ msgstr "アカウントを報告" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "アカウントを報告" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "報告ダイアログ" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "フィードを報告" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "リストを報告" @@ -3810,30 +3929,36 @@ msgstr "メッセージを報告" msgid "Report post" msgstr "投稿を報告" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "このコンテンツを報告" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "このフィードを報告" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "このリストを報告" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "この投稿を報告" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "このユーザーを報告" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "リポスト" @@ -3867,8 +3992,8 @@ msgstr "あなたの投稿はリポストされました" msgid "Reposts of this post" msgstr "この投稿をリポスト" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "変更を要求" @@ -3881,7 +4006,7 @@ msgstr "コードをリクエスト" msgid "Require alt text before posting" msgstr "画像投稿時にALTテキストを必須とする" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "アカウントにログインする時にメールのコードを必須とする" @@ -3889,8 +4014,8 @@ msgstr "アカウントにログインする時にメールのコードを必須 msgid "Required for this provider" msgstr "このプロバイダーに必要" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "メールを再送" @@ -3924,7 +4049,7 @@ msgstr "オンボーディングの状態をリセットします" msgid "Resets the preferences state" msgstr "設定の状態をリセットします" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "ログインをやり直す" @@ -3933,13 +4058,14 @@ msgstr "ログインをやり直す" msgid "Retries the last action, which errored out" msgstr "エラーになった最後のアクションをやり直す" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -3947,11 +4073,11 @@ msgid "Retry" msgstr "再試行" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "再試行。" +#~ msgid "Retry." +#~ msgstr "再試行。" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "前のページに戻る" @@ -3960,20 +4086,20 @@ msgid "Returns to home page" msgstr "ホームページに戻る" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "前のページに戻る" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "保存" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -3991,7 +4117,7 @@ msgstr "生年月日を保存" msgid "Save Changes" msgstr "変更を保存" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "ハンドルの変更を保存" @@ -3999,16 +4125,16 @@ msgstr "ハンドルの変更を保存" msgid "Save image crop" msgstr "画像の切り抜きを保存" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "マイフィードに保存" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "保存されたフィード" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4016,7 +4142,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "カメラロールに保存しました。" -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "フィードを保存しました" @@ -4024,7 +4151,7 @@ msgstr "フィードを保存しました" msgid "Saves any changes to your profile" msgstr "プロフィールに加えた変更を保存します" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "{handle}へのハンドルの変更を保存" @@ -4032,11 +4159,11 @@ msgstr "{handle}へのハンドルの変更を保存" msgid "Saves image crop settings" msgstr "画像の切り抜き設定を保存" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "科学" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "一番上までスクロール" @@ -4049,12 +4176,12 @@ msgstr "一番上までスクロール" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "検索" @@ -4096,7 +4223,7 @@ msgstr "プロフィールを検索" msgid "Search Tenor" msgstr "Tenorを検索" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "必要なセキュリティの手順" @@ -4121,7 +4248,7 @@ msgstr "<0>{displayTag}の投稿を表示(このユーザーのみ)" msgid "See profile" msgstr "プロフィールを表示" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "ガイドを見る" @@ -4129,10 +4256,22 @@ msgstr "ガイドを見る" msgid "Select {item}" msgstr "{item}を選択" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "アカウントを選択" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "既存のアカウントから選択" @@ -4161,6 +4300,10 @@ msgstr "{numItems}個中{i}個目のオプションを選択" msgid "Select some accounts below to follow" msgstr "次のアカウントを選択してフォローしてください" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "報告先のモデレーションサービスを選んでください" @@ -4189,7 +4332,7 @@ msgstr "アプリに表示されるデフォルトのテキストの言語を選 msgid "Select your date of birth" msgstr "生年月日を選択" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "次のオプションから興味のあるものを選択してください" @@ -4205,30 +4348,32 @@ msgstr "1番目のフィードのアルゴリズムを選択してください msgid "Select your secondary algorithmic feeds" msgstr "2番目のフィードのアルゴリズムを選択してください" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "確認のメールを送信" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "メールを送信" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "メールを送信" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "フィードバックを送信" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "メッセージを送信" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4238,12 +4383,12 @@ msgstr "報告を送信" msgid "Send report to {0}" msgstr "{0}に報告を送信" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "確認メールを送信" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "アカウントの削除の確認コードをメールに送信" @@ -4259,15 +4404,15 @@ msgstr "生年月日を設定" msgid "Set new password" msgstr "新しいパスワードを設定" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "フィード内の引用をすべて非表示にするには、この設定を「いいえ」にします。リポストは引き続き表示されます。" -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "フィード内の返信をすべて非表示にするには、この設定を「いいえ」にします。" -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "フィード内のリポストをすべて非表示にするには、この設定を「いいえ」にします。" @@ -4275,7 +4420,7 @@ msgstr "フィード内のリポストをすべて非表示にするには、こ msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "スレッド表示で返信を表示するには、この設定を「はい」にします。これは実験的な機能です。" -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "保存されたフィードから投稿を抽出してFollowingフィードに表示するには、この設定を「はい」にします。これは実験的な機能です。" @@ -4283,7 +4428,7 @@ msgstr "保存されたフィードから投稿を抽出してFollowingフィー msgid "Set up your account" msgstr "アカウントを設定する" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Blueskyのユーザーネームを設定" @@ -4326,13 +4471,13 @@ msgstr "画像のアスペクト比をワイドに設定" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "設定" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "性的行為または性的なヌード。" @@ -4340,7 +4485,7 @@ msgstr "性的行為または性的なヌード。" msgid "Sexually Suggestive" msgstr "性的にきわどい" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "共有" @@ -4350,7 +4495,7 @@ msgstr "共有" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "共有" @@ -4360,8 +4505,8 @@ msgstr "共有" msgid "Share anyway" msgstr "とにかく共有" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "フィードを共有" @@ -4424,11 +4569,11 @@ msgstr "さらに表示" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "マイフィードからの投稿を表示" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "引用を表示" @@ -4444,7 +4589,7 @@ msgstr "Followingフィードで引用を表示" msgid "Show re-posts in Following feed" msgstr "Followingフィードでリポストを表示" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "返信を表示" @@ -4464,7 +4609,7 @@ msgstr "Followingフィードで返信を表示" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "{value}個以上の{0}がついた返信を表示" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "リポストを表示" @@ -4497,17 +4642,17 @@ msgstr "マイフィード内の{0}からの投稿を表示します" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4535,12 +4680,12 @@ msgstr "Blueskyにサインイン または 新規アカウントの登録" msgid "Sign out" msgstr "サインアウト" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4565,27 +4710,31 @@ msgstr "サインイン済み" msgid "Signed in as @{0}" msgstr "@{0}でサインイン" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "スキップ" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "この手順をスキップする" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "ソフトウェア開発" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "なにか間違っているようなので、もう一度お試しください。" -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "大変申し訳ありません!セッションの有効期限が切れました。もう一度ログインしてください。" @@ -4597,19 +4746,20 @@ msgstr "返信を並び替える" msgid "Sort replies to the same post by:" msgstr "次の方法で同じ投稿への返信を並び替えます。" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "ソース:" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "スパム" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "スパム、過剰なメンションや返信" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "スポーツ" @@ -4642,12 +4792,12 @@ msgstr "ストレージがクリアされたため、今すぐアプリを再起 msgid "Storybook" msgstr "ストーリーブック" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "送信" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "登録" @@ -4668,7 +4818,7 @@ msgstr "{0} フィードを登録" msgid "Subscribe to this labeler" msgstr "このラベラーを登録" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "このリストに登録" @@ -4680,7 +4830,7 @@ msgstr "おすすめのフォロー" msgid "Suggested for you" msgstr "あなたへのおすすめ" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "きわどい" @@ -4727,7 +4877,7 @@ msgstr "トール" msgid "Tap to view fully" msgstr "タップして全体を表示" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "テクノロジー" @@ -4739,13 +4889,13 @@ msgstr "条件" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "利用規約" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "使用されている用語がコミュニティ基準に違反している" @@ -4753,15 +4903,16 @@ msgstr "使用されている用語がコミュニティ基準に違反してい msgid "text" msgstr "テキスト" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "テキストの入力フィールド" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "ありがとうございます。あなたの報告は送信されました。" -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "その内容は以下の通りです:" @@ -4786,11 +4937,15 @@ msgstr "コミュニティーガイドラインは<0/>に移動しました" msgid "The Copyright Policy has been moved to <0/>" msgstr "著作権ポリシーは<0/>に移動しました" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "以下のラベルがあなたのアカウントに適用されました。" -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "以下のラベルがあなたのコンテンツに適用されました。" @@ -4820,15 +4975,17 @@ msgid "There are many feeds to try:" msgstr "試せるフィードはたくさんあります:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "サーバーへの問い合わせ中に問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "フィードの削除中に問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "フィードの更新中に問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" @@ -4840,16 +4997,17 @@ msgstr "Tenorへの接続中に問題が発生しました。" msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "サーバーへの問い合わせ中に問題が発生しました" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "サーバーへの問い合わせ中に問題が発生しました" @@ -4857,7 +5015,7 @@ msgstr "サーバーへの問い合わせ中に問題が発生しました" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "通知の取得中に問題が発生しました。もう一度試すにはこちらをタップしてください。" -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "投稿の取得中に問題が発生しました。もう一度試すにはこちらをタップしてください。" @@ -4870,6 +5028,7 @@ msgstr "リストの取得中に問題が発生しました。もう一度試す msgid "There was an issue fetching your lists. Tap here to try again." msgstr "リストの取得中に問題が発生しました。もう一度試すにはこちらをタップしてください。" +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "報告の送信に問題が発生しました。インターネットの接続を確認してください。" @@ -4896,10 +5055,10 @@ msgstr "アプリパスワードの取得中に問題が発生しました" msgid "There was an issue! {0}" msgstr "問題が発生しました! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" @@ -4924,7 +5083,7 @@ msgstr "この{screenDescription}にはフラグが設定されています:" msgid "This account has requested that users sign in to view their profile." msgstr "このアカウントを閲覧するためにはサインインが必要です。" -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "この申し立ては<0>{0}に送られます。" @@ -4949,21 +5108,21 @@ msgstr "このコンテンツは{0}によってホストされています。外 msgid "This content is not available because one of the users involved has blocked the other." msgstr "このコンテンツは関係するユーザーの一方が他方をブロックしているため、利用できません。" -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "このコンテンツはBlueskyのアカウントがないと閲覧できません。" -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "この機能はベータ版です。リポジトリのエクスポートの詳細については、<0>このブログ投稿を参照してください。" -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "現在このフィードにはアクセスが集中しており、一時的にご利用いただけません。時間をおいてもう一度お試しください。" #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "このフィードは空です!" @@ -4971,11 +5130,15 @@ msgstr "このフィードは空です!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "このフィードは空です!もっと多くのユーザーをフォローするか、言語の設定を調整する必要があるかもしれません。" +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "この情報は他のユーザーと共有されません。" -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "これは、メールアドレスの変更やパスワードのリセットが必要な場合に重要です。" @@ -4991,6 +5154,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "このラベラーはどのようなラベルを発行しているか宣言しておらず、活動していない可能性もあります。" @@ -4999,7 +5166,7 @@ msgstr "このラベラーはどのようなラベルを発行しているか宣 msgid "This link is taking you to the following website:" msgstr "このリンクは次のウェブサイトへリンクしています:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "このリストは空です!" @@ -5032,7 +5199,7 @@ msgstr "このプロフィールはログインしているユーザーにのみ msgid "This service has not provided terms of service or a privacy policy." msgstr "このサービスには、利用規約もプライバシーポリシーもありません。" -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "右記にドメインレコードを作成されるはずです:" @@ -5086,10 +5253,14 @@ msgstr "スレッドモード" msgid "Threads Preferences" msgstr "スレッドの設定" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "メールでの2要素認証を無効にするには、メールアドレスにアクセスできるか確認してください。" +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "この報告を誰に送りたいですか?" @@ -5131,25 +5302,25 @@ msgstr "再試行" msgid "Two-factor authentication" msgstr "2要素認証" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "ここにメッセージを入力する" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "タイプ:" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "リストでのブロックを解除" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "リストでのミュートを解除" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5159,7 +5330,7 @@ msgstr "あなたのサービスに接続できません。インターネット #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "ブロックを解除" @@ -5180,7 +5351,7 @@ msgstr "アカウントのブロックを解除しますか?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "リポストを元に戻す" @@ -5207,12 +5378,12 @@ msgstr "アカウントのフォローを解除" #~ msgid "Unlike" #~ msgstr "いいねを外す" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "このフィードからいいねを外す" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "ミュートを解除" @@ -5229,7 +5400,7 @@ msgstr "アカウントのミュートを解除" msgid "Unmute all {displayTag} posts" msgstr "{displayTag}のすべての投稿のミュートを解除" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "通知のミュートを解除" @@ -5238,16 +5409,16 @@ msgstr "通知のミュートを解除" msgid "Unmute thread" msgstr "スレッドのミュートを解除" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "ピン留めを解除" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "ホームからピン留めを解除" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "モデレーションリストのピン留めを解除" @@ -5259,7 +5430,12 @@ msgstr "登録を解除" msgid "Unsubscribe from this labeler" msgstr "このラベラーの登録を解除" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "望まない性的なコンテンツ" @@ -5267,7 +5443,7 @@ msgstr "望まない性的なコンテンツ" msgid "Update {displayName} in Lists" msgstr "リストの{displayName}を更新" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "{handle}に更新" @@ -5275,7 +5451,11 @@ msgstr "{handle}に更新" msgid "Updating..." msgstr "更新中…" -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "テキストファイルのアップロード先:" @@ -5298,7 +5478,7 @@ msgstr "ファイルからアップロード" msgid "Upload from Library" msgstr "ライブラリーからアップロード" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "あなたのサーバーのファイルを使用" @@ -5306,11 +5486,11 @@ msgstr "あなたのサーバーのファイルを使用" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "他のBlueskyクライアントにアカウントやパスワードに完全にアクセスする権限を与えずに、アプリパスワードを使ってログインします。" -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "ホスティングプロバイダーとしてbsky.socialを使用" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "デフォルトプロバイダーを使用" @@ -5324,7 +5504,11 @@ msgstr "アプリ内ブラウザーを使用" msgid "Use my default browser" msgstr "デフォルトのブラウザーを使用" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "DNSパネルを使用" @@ -5362,13 +5546,13 @@ msgstr "あなたをブロックしているユーザー" msgid "User list by {0}" msgstr "<0/>の作成したユーザーリスト" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "<0/>の作成したユーザーリスト" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "あなたの作成したユーザーリスト" @@ -5384,11 +5568,11 @@ msgstr "ユーザーリストを更新しました" msgid "User Lists" msgstr "ユーザーリスト" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "ユーザー名またはメールアドレス" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "ユーザー" @@ -5404,7 +5588,7 @@ msgstr "{0}のユーザー" msgid "Users that have liked this content or profile" msgstr "このコンテンツやプロフィールにいいねをしているユーザー" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "値:" @@ -5412,7 +5596,7 @@ msgstr "値:" #~ msgid "Verify {0}" #~ msgstr "{0}で認証" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -5428,16 +5612,16 @@ msgstr "メールアドレスを確認" msgid "Verify My Email" msgstr "メールアドレスを確認" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "新しいメールアドレスを確認" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "メールアドレスを確認" @@ -5445,7 +5629,7 @@ msgstr "メールアドレスを確認" msgid "Version {appVersion} {bundleInfo}" msgstr "バージョン {appVersion} {bundleInfo}" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "ビデオゲーム" @@ -5457,11 +5641,11 @@ msgstr "{0}のアバターを表示" msgid "View debug entry" msgstr "デバッグエントリーを表示" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "詳細を表示" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "著作権侵害の報告の詳細を見る" @@ -5469,13 +5653,13 @@ msgstr "著作権侵害の報告の詳細を見る" msgid "View full thread" msgstr "スレッドをすべて表示" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "これらのラベルに関する情報を見る" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "プロフィールを表示" @@ -5487,7 +5671,7 @@ msgstr "アバターを表示" msgid "View the labeling service provided by @{0}" msgstr "@{0}によって提供されるラベリングサービスを見る" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "このフィードにいいねしたユーザーを見る" @@ -5515,11 +5699,15 @@ msgstr "コンテンツの警告とフィードからのフィルタリング" msgid "We couldn't find any results for that hashtag." msgstr "そのハッシュタグの検索結果は見つかりませんでした。" +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "あなたのアカウントが準備できるまで{estimatedTime}ほどかかります。" -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "素敵なひとときをお過ごしください。覚えておいてください、Blueskyは:" @@ -5543,7 +5731,7 @@ msgstr "生年月日の設定を読み込むことはできませんでした。 msgid "We were unable to load your configured labelers at this time." msgstr "現在設定されたラベラーを読み込めません。" -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "接続できませんでした。アカウントの設定を続けるためにもう一度お試しください。繰り返し失敗する場合は、この手順をスキップすることもできます。" @@ -5551,7 +5739,7 @@ msgstr "接続できませんでした。アカウントの設定を続けるた msgid "We will let you know when your account is ready." msgstr "アカウントの準備ができたらお知らせします。" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "これはあなたの体験をカスタマイズするために使用されます。" @@ -5580,7 +5768,7 @@ msgstr "大変申し訳ありません!お探しのページは見つかりま msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "大変申し訳ありません!ラベラーは10までしか登録できず、すでに上限に達しています。" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "なにに興味がありますか?" @@ -5603,23 +5791,31 @@ msgstr "アルゴリズムによるフィードにはどの言語を使用しま msgid "Who can reply" msgstr "返信できるユーザー" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "なぜこのコンテンツをレビューする必要がありますか?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "なぜこのフィードをレビューする必要がありますか?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "なぜこのリストをレビューする必要がありますか?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "なぜこの投稿をレビューする必要がありますか?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "なぜこのユーザーをレビューする必要がありますか?" @@ -5627,8 +5823,8 @@ msgstr "なぜこのユーザーをレビューする必要がありますか? msgid "Wide" msgstr "ワイド" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "メッセージを書く" @@ -5641,21 +5837,21 @@ msgstr "投稿を書く" msgid "Write your reply" msgstr "返信を書く" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "ライター" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "はい" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "昨日、{time}" @@ -5689,15 +5885,15 @@ msgstr "あなたはまだだれもフォロワーがいません。" msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "まだ招待コードがありません!Blueskyをもうしばらく利用したらお送りします。" -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "ピン留めされたフィードがありません。" #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "保存されたフィードがありません!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "保存されたフィードがありません!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "保存されたフィードがありません。" @@ -5744,7 +5940,7 @@ msgstr "フィードがありません。" msgid "You have no lists." msgstr "リストがありません。" -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "メッセージがありません。誰かと会話を始めましょう!" @@ -5764,7 +5960,11 @@ msgstr "ミュートしているアカウントはまだありません。アカ msgid "You haven't muted any words or tags yet" msgstr "まだワードやタグをミュートしていません" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "これらのラベルが誤って貼られたと思った場合は、異議申し立てを行うことができます。" @@ -5792,7 +5992,7 @@ msgstr "これ以降、このスレッドに関する通知を受け取ること msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "「リセットコード」が記載されたメールが届きます。ここにコードを入力し、新しいパスワードを入力します。" -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "あなた: {0}" @@ -5806,7 +6006,7 @@ msgstr "あなたがコントロールしています" msgid "You're in line" msgstr "あなたは並んでいます。" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "準備ができました!" @@ -5827,7 +6027,7 @@ msgstr "あなたのアカウント" msgid "Your account has been deleted" msgstr "あなたのアカウントは削除されました" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "あなたのアカウントの公開データの全記録を含むリポジトリは、「CAR」ファイルとしてダウンロードできます。このファイルには、画像などのメディア埋め込み、また非公開のデータは含まれていないため、それらは個別に取得する必要があります。" @@ -5844,16 +6044,16 @@ msgid "Your default feed is \"Following\"" msgstr "あなたのデフォルトフィードは「Following」です" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "メールアドレスが無効なようです。" -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "メールアドレスは更新されましたが、確認されていません。次のステップとして、新しいメールアドレスを確認してください。" -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "メールアドレスはまだ確認されていません。これは、当社が推奨する重要なセキュリティステップです。" @@ -5865,7 +6065,7 @@ msgstr "Followingフィードは空です!もっと多くのユーザーをフ msgid "Your full handle will be" msgstr "フルハンドルは" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "フルハンドルは<0>@{0}になります" @@ -5881,7 +6081,7 @@ msgstr "パスワードの変更が完了しました!" msgid "Your post has been published" msgstr "投稿を公開しました" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "投稿、いいね、ブロックは公開されます。ミュートは非公開です。" @@ -5893,6 +6093,10 @@ msgstr "あなたのプロフィール" msgid "Your reply has been published" msgstr "返信を公開しました" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "あなたのユーザーハンドル" diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index 4817053a16..96dd562817 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -126,7 +126,7 @@ msgstr "<0>해당 없음. 이 경고는 미디어가 첨부된 게시물에 msgid "⚠Invalid Handle" msgstr "⚠잘못된 핸들" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "2단계 인증" @@ -153,7 +153,7 @@ msgstr "접근성 설정" msgid "Accessibility Settings" msgstr "접근성 설정" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -340,7 +340,7 @@ msgstr "이전 주소인 {0}(으)로 이메일을 보냈습니다. 이 이메일 msgid "An error occured" msgstr "오류 발생" -#: src/components/dms/MessageMenu.tsx:138 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "메시지를 삭제하는 동안 오류가 발생했습니다. 다시 시도해 주세요." @@ -357,7 +357,7 @@ msgstr "어떤 옵션에도 포함되지 않는 문제" msgid "An issue occurred, please try again." msgstr "문제가 발생했습니다. 다시 시도해 주세요." -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "알 수 없는 오류가 발생했습니다" @@ -430,11 +430,11 @@ msgstr "기본 추천 피드 적용하기" msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "앱 비밀번호 \"{name}\"을(를) 삭제하시겠습니까?" -#: src/components/dms/MessageMenu.tsx:127 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "정말 이 메시지를 삭제하시겠습니까? 나에게 보이는 메시지는 삭제되지만 상대방에게는 삭제되지 않습니다." -#: src/components/dms/ConvoMenu.tsx:191 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "정말 이 대화를 종료하시겠습니까? 나에게 보이는 메시지는 삭제되지만 상대방에게는 삭제되지 않습니다." @@ -472,8 +472,8 @@ msgstr "3자 이상" #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/index.tsx:179 @@ -504,8 +504,8 @@ msgstr "생년월일:" msgid "Block" msgstr "차단" -#: src/components/dms/ConvoMenu.tsx:154 -#: src/components/dms/ConvoMenu.tsx:158 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "계정 차단" @@ -745,16 +745,16 @@ msgstr "이메일 변경" msgid "Chat" msgstr "대화" -#: src/components/dms/ConvoMenu.tsx:65 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "대화 뮤트됨" -#: src/components/dms/ConvoMenu.tsx:91 -#: src/components/dms/MessageMenu.tsx:73 +#: src/components/dms/ConvoMenu.tsx:89 +#: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "대화 설정" -#: src/components/dms/ConvoMenu.tsx:67 +#: src/components/dms/ConvoMenu.tsx:65 msgid "Chat unmuted" msgstr "대화 언뮤트됨" @@ -763,7 +763,7 @@ msgstr "대화 언뮤트됨" msgid "Check my status" msgstr "내 상태 확인" -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "이메일에서 로그인 코드를 확인한 후 여기에 입력하세요." @@ -779,7 +779,7 @@ msgstr "\"모두\" 또는 \"없음\"을 선택하세요." msgid "Choose Service" msgstr "서비스 선택" -#: src/screens/Onboarding/StepFinished.tsx:228 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "맞춤 피드를 구동할 알고리즘을 선택하세요." @@ -918,7 +918,7 @@ msgstr "만화" msgid "Community Guidelines" msgstr "커뮤니티 가이드라인" -#: src/screens/Onboarding/StepFinished.tsx:241 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "온보딩 완료 후 계정 사용 시작" @@ -979,7 +979,7 @@ msgstr "나이를 확인하세요:" msgid "Confirm your birthdate" msgstr "생년월일 확인" -#: src/screens/Login/LoginForm.tsx:244 +#: src/screens/Login/LoginForm.tsx:247 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:175 #: src/view/com/modals/DeleteAccount.tsx:181 @@ -989,7 +989,7 @@ msgstr "생년월일 확인" msgid "Confirmation code" msgstr "인증 코드" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "연결 중…" @@ -1032,9 +1032,9 @@ msgstr "컨텍스트 메뉴 배경을 클릭하여 메뉴를 닫습니다." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 -#: src/screens/Onboarding/StepProfile/index.tsx:253 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "계속" @@ -1044,9 +1044,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "{0}(으)로 계속하기 (현재 로그인)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 -#: src/screens/Onboarding/StepProfile/index.tsx:250 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1073,7 +1073,7 @@ msgstr "복사됨" msgid "Copied build version to clipboard" msgstr "빌드 버전 클립보드에 복사됨" -#: src/components/dms/MessageMenu.tsx:55 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 @@ -1111,8 +1111,8 @@ msgstr "리스트 링크 복사" msgid "Copy link to post" msgstr "게시물 링크 복사" -#: src/components/dms/MessageMenu.tsx:93 -#: src/components/dms/MessageMenu.tsx:95 +#: src/components/dms/MessageMenu.tsx:89 +#: src/components/dms/MessageMenu.tsx:91 msgid "Copy message text" msgstr "메시지 텍스트 복사" @@ -1126,7 +1126,7 @@ msgstr "게시물 텍스트 복사" msgid "Copyright Policy" msgstr "저작권 정책" -#: src/components/dms/ConvoMenu.tsx:82 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "대화를 종료할 수 없습니다" @@ -1142,7 +1142,7 @@ msgstr "리스트를 불러올 수 없습니다" msgid "Could not load profiles. Please try again later." msgstr "프로필을 불러올 수 없습니다. 나중에 다시 시도하세요." -#: src/components/dms/ConvoMenu.tsx:71 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "대화를 뮤트할 수 없습니다" @@ -1168,7 +1168,7 @@ msgstr "계정 만들기" msgid "Create an account" msgstr "계정 만들기" -#: src/screens/Onboarding/StepProfile/index.tsx:267 +#: src/screens/Onboarding/StepProfile/index.tsx:286 msgid "Create an avatar instead" msgstr "대신 아바타 만들기" @@ -1236,7 +1236,7 @@ msgstr "검토 디버그" msgid "Debug panel" msgstr "디버그 패널" -#: src/components/dms/MessageMenu.tsx:129 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 #: src/view/screens/ProfileList.tsx:662 @@ -1259,7 +1259,7 @@ msgstr "앱 비밀번호 삭제" msgid "Delete app password?" msgstr "앱 비밀번호를 삭제하시겠습니까?" -#: src/components/dms/MessageMenu.tsx:105 +#: src/components/dms/MessageMenu.tsx:101 msgid "Delete for me" msgstr "내게서 삭제" @@ -1267,11 +1267,11 @@ msgstr "내게서 삭제" msgid "Delete List" msgstr "리스트 삭제" -#: src/components/dms/MessageMenu.tsx:125 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "메시지 삭제" -#: src/components/dms/MessageMenu.tsx:103 +#: src/components/dms/MessageMenu.tsx:99 msgid "Delete message for me" msgstr "내게 보이는 메시지 삭제" @@ -1396,8 +1396,8 @@ msgstr "도메인을 확인했습니다." #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 -#: src/screens/Onboarding/StepProfile/index.tsx:306 -#: src/screens/Onboarding/StepProfile/index.tsx:309 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1687,7 +1687,7 @@ msgstr "파일을 저장하는 동안 오류가 발생했습니다" msgid "Error receiving captcha response." msgstr "캡차 응답을 수신하는 동안 오류가 발생했습니다." -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "오류:" @@ -1780,7 +1780,7 @@ msgstr "앱 비밀번호를 만들지 못했습니다." msgid "Failed to create the list. Check your internet connection and try again." msgstr "리스트를 만들지 못했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." -#: src/components/dms/MessageMenu.tsx:136 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "메시지를 삭제하지 못했습니다" @@ -1852,7 +1852,7 @@ msgstr "파일을 성공적으로 저장했습니다!" msgid "Filter from feeds" msgstr "피드에서 필터링" -#: src/screens/Onboarding/StepFinished.tsx:244 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "마무리 중" @@ -1878,7 +1878,7 @@ msgstr "대화 스레드를 미세 조정합니다." msgid "Fitness" msgstr "건강" -#: src/screens/Onboarding/StepFinished.tsx:224 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "유연성" @@ -1956,7 +1956,7 @@ msgstr "팔로워" #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 -#: src/view/screens/SavedFeeds.tsx:395 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "팔로우 중" @@ -2001,11 +2001,11 @@ msgstr "보안상의 이유로 이 비밀번호는 다시 볼 수 없습니다. msgid "Forgot Password" msgstr "비밀번호 분실" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "비밀번호를 잊으셨나요?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "분실" @@ -2031,7 +2031,7 @@ msgstr "갤러리" msgid "Get Started" msgstr "시작하기" -#: src/screens/Onboarding/StepProfile/index.tsx:209 +#: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Give your profile a face" msgstr "프로필에 얼굴 달기" @@ -2081,11 +2081,11 @@ msgstr "홈으로 이동" msgid "Go to next" msgstr "다음" -#: src/components/dms/ConvoMenu.tsx:133 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "프로필로 가기" -#: src/components/dms/ConvoMenu.tsx:130 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "사용자의 프로필로 가기" @@ -2122,7 +2122,7 @@ msgstr "문제가 있나요?" msgid "Help" msgstr "도움말" -#: src/screens/Onboarding/StepProfile/index.tsx:212 +#: src/screens/Onboarding/StepProfile/index.tsx:231 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." msgstr "사진을 업로드하거나 아바타를 만들어 사람들이 내가 봇이 아니라는 사실을 알 수 있도록 하세요." @@ -2219,7 +2219,7 @@ msgid "Host:" msgstr "호스트:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2243,7 +2243,7 @@ msgstr "인증 코드가 있습니다" msgid "I have my own domain" msgstr "내 도메인을 가지고 있습니다" -#: src/components/dms/ConvoMenu.tsx:204 +#: src/components/dms/ConvoMenu.tsx:202 msgid "I understand" msgstr "확인" @@ -2307,19 +2307,19 @@ msgstr "새 비밀번호를 입력합니다" msgid "Input password for account deletion" msgstr "계정을 삭제하기 위해 비밀번호를 입력합니다" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "이메일로 전송된 코드를 입력합니다" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "{identifier}에 연결된 비밀번호를 입력합니다" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "가입 시 사용한 사용자 이름 또는 이메일 주소를 입력합니다" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "비밀번호를 입력합니다" @@ -2331,7 +2331,7 @@ msgstr "선호하는 호스팅 제공자를 입력합니다" msgid "Input your user handle" msgstr "사용자 핸들을 입력합니다" -#: src/screens/Login/LoginForm.tsx:126 +#: src/screens/Login/LoginForm.tsx:129 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "잘못된 2단계 인증 코드입니다." @@ -2340,7 +2340,7 @@ msgstr "잘못된 2단계 인증 코드입니다." msgid "Invalid or unsupported post record" msgstr "유효하지 않거나 지원되지 않는 게시물 기록" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "잘못된 사용자 이름 또는 비밀번호" @@ -2444,13 +2444,13 @@ msgstr "Bluesky에서 공개되는 항목에 대해 자세히 알아보세요." msgid "Learn more." msgstr "더 알아보기" -#: src/components/dms/ConvoMenu.tsx:193 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "종료" -#: src/components/dms/ConvoMenu.tsx:176 -#: src/components/dms/ConvoMenu.tsx:179 -#: src/components/dms/ConvoMenu.tsx:189 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "대화 종료" @@ -2475,7 +2475,7 @@ msgstr "레거시 스토리지가 지워졌으며 지금 앱을 다시 시작해 msgid "Let's get your password reset!" msgstr "비밀번호를 재설정해 봅시다!" -#: src/screens/Onboarding/StepFinished.tsx:244 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "출발!" @@ -2623,8 +2623,8 @@ msgstr "이곳이 당신이 가고자 하는 곳인지 확인하세요!" msgid "Manage your muted words and tags" msgstr "뮤트한 단어 및 태그 관리" -#: src/components/dms/ConvoMenu.tsx:117 -#: src/components/dms/ConvoMenu.tsx:124 +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 msgid "Mark as read" msgstr "읽음으로 표시" @@ -2646,8 +2646,8 @@ msgstr "멘션한 사용자" msgid "Menu" msgstr "메뉴" -#: src/components/dms/MessageMenu.tsx:64 -#: src/screens/Messages/List/index.tsx:282 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "메시지 삭제됨" @@ -2655,19 +2655,24 @@ msgstr "메시지 삭제됨" msgid "Message from server: {0}" msgstr "서버에서 보낸 메시지: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "메시지 입력 필드" -#: src/screens/Messages/List/index.tsx:91 -#: src/screens/Messages/List/index.tsx:464 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "메시지 설정" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:193 -#: src/screens/Messages/List/index.tsx:220 -#: src/screens/Messages/List/index.tsx:460 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 #: src/view/shell/bottom-bar/BottomBar.tsx:219 #: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" @@ -2789,8 +2794,8 @@ msgstr "글 및 태그에서 뮤트" msgid "Mute list" msgstr "리스트 뮤트" -#: src/components/dms/ConvoMenu.tsx:138 -#: src/components/dms/ConvoMenu.tsx:144 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "알림 뮤트" @@ -2886,7 +2891,7 @@ msgid "Nature" msgstr "자연" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "다음 화면으로 이동합니다" @@ -2899,7 +2904,7 @@ msgstr "내 프로필로 이동합니다" msgid "Need to report a copyright violation?" msgstr "저작권 위반을 신고해야 하나요?" -#: src/screens/Onboarding/StepFinished.tsx:212 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "팔로워 또는 데이터에 대한 접근 권한을 잃지 마세요." @@ -2917,8 +2922,8 @@ msgid "New" msgstr "새로 만들기" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:474 -#: src/screens/Messages/List/index.tsx:482 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "새 대화" @@ -2968,8 +2973,8 @@ msgstr "뉴스" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3012,8 +3017,8 @@ msgstr "더 이상 {0} 님을 팔로우하지 않음" msgid "No longer than 253 characters" msgstr "253자를 초과하지 않음" -#: src/screens/Messages/List/index.tsx:204 -#: src/screens/Messages/List/index.tsx:271 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "아직 메시지가 없습니다" @@ -3096,7 +3101,7 @@ msgstr "참고: Bluesky는 개방형 공개 네트워크입니다. 이 설정은 msgid "Notifications" msgstr "알림" -#: src/components/dms/MessageItem.tsx:146 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "지금" @@ -3117,7 +3122,7 @@ msgstr "끄기" msgid "Oh no!" msgstr "이런!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "이런! 뭔가 잘못되었습니다." @@ -3142,7 +3147,7 @@ msgstr "온보딩 재설정" msgid "One or more images is missing alt text." msgstr "하나 이상의 이미지에 대체 텍스트가 누락되었습니다." -#: src/screens/Onboarding/StepProfile/index.tsx:107 +#: src/screens/Onboarding/StepProfile/index.tsx:120 msgid "Only .jpg and .png files are supported" msgstr ".jpg 및 .png 파일만 지원합니다" @@ -3164,11 +3169,11 @@ msgstr "이런, 뭔가 잘못되었습니다!" msgid "Oops!" msgstr "이런!" -#: src/screens/Onboarding/StepFinished.tsx:208 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "공개성" -#: src/screens/Onboarding/StepProfile/index.tsx:261 +#: src/screens/Onboarding/StepProfile/index.tsx:280 msgid "Open avatar creator" msgstr "아바타 생성기 열기" @@ -3288,7 +3293,7 @@ msgstr "사용자 지정 도메인을 사용하기 위한 대화 상자를 엽 msgid "Opens moderation settings" msgstr "검토 설정을 엽니다" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "비밀번호 재설정 양식을 엽니다" @@ -3313,7 +3318,7 @@ msgstr "팔로우 중 피드 설정을 엽니다" msgid "Opens the linked website" msgstr "연결된 웹사이트를 엽니다" -#: src/screens/Messages/List/index.tsx:92 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "메시지 설정 페이지를 엽니다" @@ -3364,7 +3369,7 @@ msgstr "페이지를 찾을 수 없음" msgid "Page Not Found" msgstr "페이지를 찾을 수 없음" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:194 #: src/view/com/modals/DeleteAccount.tsx:201 @@ -3647,7 +3652,7 @@ msgstr "프로필 업데이트됨" msgid "Protect your account by verifying your email." msgstr "이메일을 인증하여 계정을 보호하세요." -#: src/screens/Onboarding/StepFinished.tsx:194 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "공공성" @@ -3815,7 +3820,7 @@ msgctxt "description" msgid "Reply to <0><1/>" msgstr "<0><1/> 님에게 보내는 답글" -#: src/components/dms/MessageMenu.tsx:113 +#: src/components/dms/MessageMenu.tsx:109 msgid "Report" msgstr "신고" @@ -3829,9 +3834,9 @@ msgstr "신고" msgid "Report Account" msgstr "계정 신고" -#: src/components/dms/ConvoMenu.tsx:165 -#: src/components/dms/ConvoMenu.tsx:168 -#: src/components/dms/ConvoMenu.tsx:200 +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 msgid "Report conversation" msgstr "대화 신고" @@ -3848,7 +3853,7 @@ msgstr "피드 신고" msgid "Report List" msgstr "리스트 신고" -#: src/components/dms/MessageMenu.tsx:111 +#: src/components/dms/MessageMenu.tsx:107 msgid "Report message" msgstr "메시지 신고" @@ -3977,7 +3982,7 @@ msgstr "온보딩 상태 초기화" msgid "Resets the preferences state" msgstr "설정 상태 초기화" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "로그인을 다시 시도합니다" @@ -3986,14 +3991,14 @@ msgstr "로그인을 다시 시도합니다" msgid "Retries the last action, which errored out" msgstr "오류가 발생한 마지막 작업을 다시 시도합니다" -#: src/components/dms/MessageMenu.tsx:140 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:68 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4256,7 +4261,7 @@ msgstr "앱에 표시되는 기본 텍스트 언어를 선택합니다." msgid "Select your date of birth" msgstr "생년월일을 선택하세요" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "아래 옵션에서 관심사를 선택하세요" @@ -4291,8 +4296,8 @@ msgstr "이메일 보내기" msgid "Send feedback" msgstr "피드백 보내기" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "메시지 보내기" @@ -4558,7 +4563,7 @@ msgstr "피드에 {0} 님의 게시물을 표시합니다" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -4626,12 +4631,12 @@ msgstr "로그인한 계정" msgid "Signed in as @{0}" msgstr "@{0}(으)로 로그인했습니다" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "건너뛰기" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "이 단계 건너뛰기" @@ -5157,7 +5162,7 @@ msgstr "스레드 설정" msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "이메일 2단계 인증을 비활성화하려면 이메일 주소에 대한 접근 권한을 인증하세요." -#: src/components/dms/ConvoMenu.tsx:202 +#: src/components/dms/ConvoMenu.tsx:200 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." msgstr "대화를 신고하려면 대화 화면에서 해당 메시지 중 하나를 신고하세요. 이렇게 하면 운영진이 문제의 맥락을 파악할 수 있습니다." @@ -5202,7 +5207,7 @@ msgstr "다시 시도" msgid "Two-factor authentication" msgstr "2단계 인증" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "메시지를 입력하세요" @@ -5220,7 +5225,7 @@ msgstr "리스트 언뮤트" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5296,7 +5301,7 @@ msgstr "계정 언뮤트" msgid "Unmute all {displayTag} posts" msgstr "모든 {tag} 게시물 언뮤트" -#: src/components/dms/ConvoMenu.tsx:142 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "알림 언뮤트" @@ -5347,7 +5352,7 @@ msgstr "{handle}로 변경" msgid "Updating..." msgstr "업데이트 중…" -#: src/screens/Onboarding/StepProfile/index.tsx:265 +#: src/screens/Onboarding/StepProfile/index.tsx:284 msgid "Upload a photo instead" msgstr "대신 사진 업로드하기" @@ -5464,7 +5469,7 @@ msgstr "사용자 리스트 업데이트됨" msgid "User Lists" msgstr "사용자 리스트" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "사용자 이름 또는 이메일 주소" @@ -5599,7 +5604,7 @@ msgstr "이 대화를 불러올 수 없습니다" msgid "We estimate {estimatedTime} until your account is ready." msgstr "계정이 준비될 때까지 {estimatedTime}이(가) 걸릴 것으로 예상됩니다." -#: src/screens/Onboarding/StepFinished.tsx:186 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "즐거운 시간 되시기 바랍니다. Bluesky의 다음 특징을 기억하세요:" @@ -5623,7 +5628,7 @@ msgstr "생년월일 설정을 불러올 수 없습니다. 다시 시도해 주 msgid "We were unable to load your configured labelers at this time." msgstr "현재 구성된 라벨러를 불러올 수 없습니다." -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "연결하지 못했습니다. 계정 설정을 계속하려면 다시 시도해 주세요. 계속 실패하면 이 과정을 건너뛸 수 있습니다." @@ -5631,7 +5636,7 @@ msgstr "연결하지 못했습니다. 계정 설정을 계속하려면 다시 msgid "We will let you know when your account is ready." msgstr "계정이 준비되면 알려드리겠습니다." -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "이를 통해 사용자 환경을 맞춤 설정할 수 있습니다." @@ -5660,7 +5665,7 @@ msgstr "죄송합니다. 페이지를 찾을 수 없습니다." msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "죄송합니다. 라벨러는 10개까지만 구독할 수 있으며 10개에 도달했습니다." -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "어떤 관심사가 있으신가요?" @@ -5715,8 +5720,8 @@ msgstr "이 사용자를 검토해야 하는 이유는 무엇인가요?" msgid "Wide" msgstr "가로" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "메시지를 입력하세요" @@ -5743,7 +5748,7 @@ msgstr "작가" msgid "Yes" msgstr "예" -#: src/components/dms/MessageItem.tsx:159 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "어제 {time}" @@ -5832,7 +5837,7 @@ msgstr "피드가 없습니다." msgid "You have no lists." msgstr "리스트가 없습니다." -#: src/screens/Messages/List/index.tsx:206 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "아직 메시지가 없습니다. 사람들과 대화를 시작해 보세요!" @@ -5884,7 +5889,7 @@ msgstr "이제 이 스레드에 대한 알림을 받습니다" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "\"재설정 코드\"가 포함된 이메일을 받게 되면 여기에 해당 코드를 입력한 다음 새 비밀번호를 입력합니다." -#: src/screens/Messages/List/index.tsx:275 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "나: {0}" @@ -5898,7 +5903,7 @@ msgstr "직접 제어하세요" msgid "You're in line" msgstr "대기 중입니다" -#: src/screens/Onboarding/StepFinished.tsx:183 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "준비가 끝났습니다!" @@ -5973,7 +5978,7 @@ msgstr "비밀번호를 성공적으로 변경했습니다." msgid "Your post has been published" msgstr "게시물을 게시했습니다" -#: src/screens/Onboarding/StepFinished.tsx:198 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "게시물, 좋아요, 차단 목록은 공개됩니다. 뮤트 목록은 공개되지 않습니다." diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po index 7a4ac1dd21..2b8c51b779 100644 --- a/src/locale/locales/pt-BR/messages.po +++ b/src/locale/locales/pt-BR/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: maisondasilva, MightyLoggor, gildaswise, gleydson, faeriarum\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(sem email)" @@ -21,15 +21,15 @@ msgstr "(sem email)" msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -51,7 +51,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -71,6 +71,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -90,15 +94,15 @@ msgstr "{following} seguindo" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} não lidas" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -106,11 +110,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> membros" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -135,7 +139,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>Siga alguns<2>Usuários<1>recomendados" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Usuário Inválido" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "" @@ -178,7 +182,7 @@ msgstr "" #~ msgid "account" #~ msgstr "conta" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -229,15 +233,15 @@ msgstr "Conta dessilenciada" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "Adicionar" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Adicionar um aviso de conteúdo" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "Adicionar um usuário a esta lista" @@ -249,6 +253,7 @@ msgstr "Adicionar conta" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -256,8 +261,8 @@ msgid "Add alt text" msgstr "Adicionar texto alternativo" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -281,7 +286,15 @@ msgstr "Adicionar palavra silenciada para as configurações selecionadas" msgid "Add muted words and tags" msgstr "Adicionar palavras/tags silenciadas" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Adicione o seguinte registro DNS ao seu domínio:" @@ -290,7 +303,7 @@ msgstr "Adicione o seguinte registro DNS ao seu domínio:" msgid "Add to Lists" msgstr "Adicionar às Listas" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "Adicionar aos meus feeds" @@ -303,17 +316,17 @@ msgstr "Adicionar aos meus feeds" msgid "Added to list" msgstr "Adicionado à lista" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "Adicionado aos meus feeds" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Ajuste o número de curtidas para que uma resposta apareça no seu feed." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Conteúdo Adulto" @@ -326,7 +339,7 @@ msgstr "O conteúdo adulto está desabilitado." msgid "Advanced" msgstr "Avançado" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "Todos os feeds que você salvou, em um único lugar." @@ -359,12 +372,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "O texto alternativo descreve imagens para usuários cegos e com baixa visão, além de dar contexto a todos." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "Um email foi enviado para {0}. Ele inclui um código de confirmação que você pode inserir abaixo." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Um email foi enviado para seu email anterior, {0}. Ele inclui um código de confirmação que você pode inserir abaixo." @@ -372,11 +385,11 @@ msgstr "Um email foi enviado para seu email anterior, {0}. Ele inclui um código msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "Outro problema" @@ -389,7 +402,7 @@ msgstr "Outro problema" msgid "An issue occurred, please try again." msgstr "Ocorreu um problema, por favor tente novamente." -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -398,7 +411,7 @@ msgstr "" msgid "and" msgstr "e" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "Animais" @@ -406,7 +419,7 @@ msgstr "Animais" msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "Comportamento anti-social" @@ -436,16 +449,16 @@ msgstr "Configurações de Senha de Aplicativo" msgid "App Passwords" msgstr "Senhas de Aplicativos" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "Contestar" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "Contestar rótulo \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -457,19 +470,24 @@ msgstr "" msgid "Appearance" msgstr "Aparência" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Tem certeza de que deseja excluir a senha do aplicativo \"{name}\"?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Tem certeza que deseja remover {0} dos seus feeds?" @@ -485,11 +503,11 @@ msgstr "Tem certeza?" msgid "Are you writing in <0>{0}?" msgstr "Você está escrevendo em <0>{0}?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "Arte" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Nudez artística ou não erótica." @@ -497,17 +515,17 @@ msgstr "Nudez artística ou não erótica." msgid "At least 3 characters" msgstr "No mínimo 3 caracteres" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -535,8 +553,8 @@ msgstr "Aniversário:" msgid "Block" msgstr "Bloquear" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -549,15 +567,15 @@ msgstr "Bloquear Conta" msgid "Block Account?" msgstr "Bloquear Conta?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "Bloquear contas" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "Lista de bloqueio" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "Bloquear estas contas?" @@ -591,7 +609,7 @@ msgstr "Post bloqueado." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Bloquear não previne este rotulador de rotular a sua conta." -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Bloqueios são públicos. Contas bloqueadas não podem te responder, mencionar ou interagir com você." @@ -639,10 +657,15 @@ msgstr "Desfocar imagens" msgid "Blur images and filter from feeds" msgstr "Desfocar imagens e filtrar dos feeds" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "Livros" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Empresarial" @@ -689,9 +712,9 @@ msgstr "Só pode conter letras, números, espaços, traços e sublinhados. Deve #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -703,26 +726,26 @@ msgstr "Só pode conter letras, números, espaços, traços e sublinhados. Deve #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "Cancelar" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "Cancelar" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "Cancelar exclusão da conta" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "Cancelar alteração de usuário" @@ -747,7 +770,7 @@ msgstr "Cancelar busca" msgid "Cancels opening the linked website" msgstr "Cancela a abertura do link" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "Trocar" @@ -760,12 +783,12 @@ msgstr "Alterar" msgid "Change handle" msgstr "Alterar usuário" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "Alterar Usuário" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Alterar meu email" @@ -782,7 +805,7 @@ msgstr "Alterar Senha" msgid "Change post language to {0}" msgstr "Trocar idioma do post para {0}" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "Altere o Seu Email" @@ -790,11 +813,11 @@ msgstr "Altere o Seu Email" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -820,11 +843,11 @@ msgstr "Verificar minha situação" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Confira alguns usuários recomendados. Siga-os para ver usuários semelhantes." -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Verifique em sua caixa de entrada um e-mail com o código de confirmação abaixo:" @@ -836,7 +859,7 @@ msgstr "Escolha \"Todos\" ou \"Ninguém\"" msgid "Choose Service" msgstr "Escolher Serviço" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "Escolha os algoritmos que geram seus feeds customizados." @@ -845,6 +868,10 @@ msgstr "Escolha os algoritmos que geram seus feeds customizados." #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "Escolha os algoritmos que fazem sentido para você com os feeds personalizados." +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "Escolha seus feeds principais" @@ -886,6 +913,10 @@ msgstr "Limpa todos os dados antigos" msgid "click here" msgstr "clique aqui" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Clique aqui para abrir o menu da tag {tag}" @@ -894,7 +925,7 @@ msgstr "Clique aqui para abrir o menu da tag {tag}" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "Clique aqui para abrir o menu da tag #{tag}" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "Clima e tempo" @@ -963,11 +994,11 @@ msgstr "Fechar o visualizador de banner" msgid "Collapses list of users for a given notification" msgstr "Fecha lista de usuários da notificação" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "Comédia" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "Quadrinhos" @@ -976,7 +1007,7 @@ msgstr "Quadrinhos" msgid "Community Guidelines" msgstr "Diretrizes da Comunidade" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "Completar e começar a usar sua conta" @@ -1006,18 +1037,18 @@ msgstr "Configure no <0>painel de moderação." #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Confirmar" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "Confirmar Alterações" @@ -1025,7 +1056,7 @@ msgstr "Confirmar Alterações" msgid "Confirm content language settings" msgstr "Confirmar configurações de idioma de conteúdo" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "Confirmar a exclusão da conta" @@ -1037,17 +1068,17 @@ msgstr "Confirme sua idade:" msgid "Confirm your birthdate" msgstr "Confirme sua data de nascimento" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Código de confirmação" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "Conectando..." @@ -1094,8 +1125,9 @@ msgstr "Fundo do menu, clique para fechá-lo." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "Continuar" @@ -1105,8 +1137,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "Continuar como {0} (já conectado)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1120,7 +1153,7 @@ msgstr "Continuar para o próximo passo" msgid "Continue to the next step without following any accounts" msgstr "Continuar para o próximo passo sem seguir contas" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "Culinária" @@ -1133,9 +1166,9 @@ msgstr "Copiado" msgid "Copied build version to clipboard" msgstr "Versão do aplicativo copiada" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1153,7 +1186,7 @@ msgstr "Copia senha de aplicativo" msgid "Copy" msgstr "Copiar" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "Copiar {0}" @@ -1162,7 +1195,7 @@ msgstr "Copiar {0}" msgid "Copy code" msgstr "Copiar código" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "Copiar link da lista" @@ -1186,15 +1219,15 @@ msgstr "Copiar texto do post" msgid "Copyright Policy" msgstr "Política de Direitos Autorais" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Não foi possível carregar o feed" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "Não foi possível carregar a lista" @@ -1202,13 +1235,13 @@ msgstr "Não foi possível carregar a lista" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1228,6 +1261,10 @@ msgstr "Criar Conta" msgid "Create an account" msgstr "Criar conta" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "Criar Senha de Aplicativo" @@ -1237,7 +1274,7 @@ msgstr "Criar Senha de Aplicativo" msgid "Create new account" msgstr "Criar uma nova conta" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "Criar denúncia para {0}" @@ -1249,7 +1286,7 @@ msgstr "{0} criada" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Cria uma prévia com miniatura. A prévia faz um link para {url}" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "Cultura" @@ -1258,12 +1295,12 @@ msgstr "Cultura" msgid "Custom" msgstr "Customizado" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "Domínio personalizado" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Feeds customizados feitos pela comunidade te proporcionam novas experiências e te ajudam a encontrar o conteúdo que você mais ama." @@ -1296,10 +1333,10 @@ msgstr "Testar Moderação" msgid "Debug panel" msgstr "Painel de depuração" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "Excluir" @@ -1311,7 +1348,7 @@ msgstr "Excluir a conta" #~ msgid "Delete Account" #~ msgstr "Excluir a Conta" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1327,11 +1364,11 @@ msgstr "Excluir senha de aplicativo?" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "Excluir Lista" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1339,7 +1376,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "Excluir minha conta" @@ -1352,7 +1389,7 @@ msgstr "Excluir minha conta…" msgid "Delete post" msgstr "Excluir post" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "Excluir esta lista?" @@ -1391,7 +1428,7 @@ msgstr "Menos escuro" msgid "Disable autoplay for GIFs" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "" @@ -1432,7 +1469,7 @@ msgstr "Desencorajar aplicativos a mostrar minha conta para usuários desautenti msgid "Discover new custom feeds" msgstr "Descubra novos feeds" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "Descubra Novos Feeds" @@ -1444,7 +1481,7 @@ msgstr "Nome de exibição" msgid "Display Name" msgstr "Nome de Exibição" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "Painel DNS" @@ -1456,11 +1493,11 @@ msgstr "Não inclui nudez." msgid "Doesn't begin or end with a hyphen" msgstr "Não começa ou termina com um hífen" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "Domínio" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "Domínio verificado!" @@ -1468,6 +1505,8 @@ msgstr "Domínio verificado!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1476,15 +1515,13 @@ msgstr "Domínio verificado!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "Feito" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1498,8 +1535,8 @@ msgstr "Feito" msgid "Done{extraText}" msgstr "Feito{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "Baixar arquivo CAR" @@ -1511,7 +1548,7 @@ msgstr "Solte para adicionar imagens" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Devido a políticas da Apple, o conteúdo adulto só pode ser habilitado no site após terminar o cadastro." -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "ex. alice" @@ -1519,7 +1556,7 @@ msgstr "ex. alice" msgid "e.g. Alice Roberts" msgstr "ex. Alice Roberts" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "ex. alice.com" @@ -1566,7 +1603,7 @@ msgstr "Editar avatar" msgid "Edit image" msgstr "Editar imagem" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "Editar detalhes da lista" @@ -1575,8 +1612,8 @@ msgid "Edit Moderation List" msgstr "Editar lista de moderação" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "Editar Meus Feeds" @@ -1595,7 +1632,7 @@ msgid "Edit Profile" msgstr "Editar Perfil" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "Editar Feeds Salvos" @@ -1611,16 +1648,16 @@ msgstr "Editar seu nome" msgid "Edit your profile description" msgstr "Editar sua descrição" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "Educação" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "E-mail" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "" @@ -1628,16 +1665,16 @@ msgstr "" msgid "Email address" msgstr "Endereço de e-mail" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "E-mail atualizado" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "E-mail Atualizado" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "E-mail verificado" @@ -1685,7 +1722,7 @@ msgstr "Habilitar mídia externa" msgid "Enable media players for" msgstr "Habilitar mídia para" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "Ative esta configuração para ver respostas apenas entre as pessoas que você segue." @@ -1714,7 +1751,7 @@ msgstr "Insira uma senha" msgid "Enter a word or tag" msgstr "Digite uma palavra ou tag" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "Insira o código de confirmação" @@ -1722,7 +1759,7 @@ msgstr "Insira o código de confirmação" msgid "Enter the code you received to change your password." msgstr "Digite o código recebido para alterar sua senha." -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "Digite o domínio que você deseja usar" @@ -1739,11 +1776,11 @@ msgstr "Insira seu aniversário" msgid "Enter your email address" msgstr "Digite seu endereço de e-mail" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "Digite o novo e-mail acima" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "Digite seu novo endereço de e-mail abaixo." @@ -1751,11 +1788,15 @@ msgstr "Digite seu novo endereço de e-mail abaixo." msgid "Enter your username and password" msgstr "Digite seu nome de usuário e senha" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Não foi possível processar o captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "Erro:" @@ -1764,15 +1805,19 @@ msgstr "Erro:" msgid "Everybody" msgstr "Todos" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "Menções ou respostas excessivas" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "Sair do processo de deleção da conta" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "Sair do processo de trocar usuário" @@ -1810,7 +1855,7 @@ msgstr "Imagens sexualmente explícitas." msgid "Export my data" msgstr "Exportar meus dados" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "Exportar Meus Dados" @@ -1844,7 +1889,7 @@ msgstr "Não foi possível criar senha de aplicativo." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Não foi possível criar a lista. Por favor tente novamente." -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -1856,7 +1901,7 @@ msgstr "Não foi possível excluir o post, por favor tente novamente." msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -1865,35 +1910,39 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "Falha ao carregar feeds recomendados" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "Não foi possível salvar a imagem: {0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "Feed" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "Feed por {0}" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "Feed offline" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "Comentários" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "Feeds" @@ -1901,7 +1950,7 @@ msgstr "Feeds" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Os feeds são criados por usuários para curadoria de conteúdo. Escolha alguns feeds que você acha interessantes." -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Os feeds são algoritmos personalizados que os usuários com um pouco de experiência em programação podem criar. <0/> para mais informações." @@ -1909,15 +1958,19 @@ msgstr "Os feeds são algoritmos personalizados que os usuários com um pouco de msgid "Feeds can be topical as well!" msgstr "Feeds podem ser de assuntos específicos também!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Conteúdo do arquivo" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Filtrar dos feeds" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "Finalizando" @@ -1943,7 +1996,7 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "Procurando contas semelhantes..." -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "Ajuste o conteúdo que você vê na sua tela inicial." @@ -1951,11 +2004,11 @@ msgstr "Ajuste o conteúdo que você vê na sua tela inicial." msgid "Fine-tune the discussion threads." msgstr "Ajuste as threads." -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "Fitness" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "Flexível" @@ -2017,7 +2070,7 @@ msgstr "Seguido por {0}" msgid "Followed users" msgstr "Usuários seguidos" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "Somente usuários seguidos" @@ -2035,7 +2088,9 @@ msgstr "Seguidores" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "Seguindo" @@ -2050,7 +2105,7 @@ msgstr "Configurações do feed principal" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "Configurações do feed principal" @@ -2063,11 +2118,11 @@ msgstr "Segue você" msgid "Follows You" msgstr "Segue Você" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "Comida" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Por motivos de segurança, precisamos enviar um código de confirmação para seu endereço de e-mail." @@ -2080,15 +2135,15 @@ msgstr "Por motivos de segurança, você não poderá ver esta senha novamente. msgid "Forgot Password" msgstr "Esqueci a Senha" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "Esqueceu a senha?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "Esqueceu?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "Frequentemente Posta Conteúdo Indesejado" @@ -2105,12 +2160,16 @@ msgstr "Por <0/>" msgid "Gallery" msgstr "Galeria" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Vamos começar" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "Violações flagrantes da lei ou dos termos de serviço" @@ -2119,9 +2178,9 @@ msgstr "Violações flagrantes da lei ou dos termos de serviço" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "Voltar" @@ -2129,12 +2188,13 @@ msgstr "Voltar" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "Voltar" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2160,11 +2220,11 @@ msgstr "Voltar para a tela inicial" msgid "Go to next" msgstr "Próximo" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2172,7 +2232,7 @@ msgstr "" msgid "Graphic Media" msgstr "Conteúdo Gráfico" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Usuário" @@ -2180,7 +2240,7 @@ msgstr "Usuário" msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "Assédio, intolerância ou \"trollagem\"" @@ -2188,7 +2248,7 @@ msgstr "Assédio, intolerância ou \"trollagem\"" msgid "Hashtag" msgstr "Hashtag" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "Hashtag: #{tag}" @@ -2197,10 +2257,14 @@ msgid "Having trouble?" msgstr "Precisa de ajuda?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "Ajuda" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "Aqui estão algumas contas para você seguir" @@ -2253,23 +2317,23 @@ msgstr "Ocultar este post?" msgid "Hide user list" msgstr "Ocultar lista de usuários" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm, ocorreu algum problema ao entrar em contato com o servidor deste feed. Por favor, avise o criador do feed sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, o servidor do feed parece estar mal configurado. Por favor, avise o criador do feed sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, o servidor do feed parece estar offline. Por favor, avise o criador do feed sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, o servidor do feed teve algum problema. Por favor, avise o criador do feed sobre este problema." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, estamos com problemas para encontrar este feed. Ele pode ter sido excluído." @@ -2282,21 +2346,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "Hmmmm, não foi possível carregar este serviço de moderação." #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "Página Inicial" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "Host:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Provedor de hospedagem" @@ -2304,25 +2368,29 @@ msgstr "Provedor de hospedagem" msgid "How should we open this link?" msgstr "Como devemos abrir este link?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "Eu tenho um código" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "Eu tenho um código" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "Eu tenho meu próprio domínio" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Se o texto alternativo é longo, mostra o texto completo" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "Se nenhum for selecionado, adequado para todas as idades." @@ -2330,7 +2398,7 @@ msgstr "Se nenhum for selecionado, adequado para todas as idades." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Se você ainda não é um adulto de acordo com as leis do seu país, seu responsável ou guardião legal deve ler estes Termos por você." -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "Se você deletar esta lista, você não poderá recuperá-la." @@ -2342,7 +2410,7 @@ msgstr "Se você remover este post, você não poderá recuperá-la." msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Se você quiser alterar sua senha, enviaremos um código que para verificar sua identidade." -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "Ilegal e Urgente" @@ -2354,7 +2422,7 @@ msgstr "Imagem" msgid "Image alt text" msgstr "Texto alternativo da imagem" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "Falsificação de identidade ou alegações falsas sobre identidade ou filiação" @@ -2362,7 +2430,7 @@ msgstr "Falsificação de identidade ou alegações falsas sobre identidade ou f msgid "Input code sent to your email for password reset" msgstr "Insira o código enviado para o seu e-mail para redefinir sua senha" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "Insira o código de confirmação para excluir sua conta" @@ -2374,27 +2442,27 @@ msgstr "Insira um nome para a senha de aplicativo" msgid "Input new password" msgstr "Insira a nova senha" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "Insira a senha para excluir a conta" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "Insira a senha da conta {identifier}" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Insira o usuário ou e-mail que você cadastrou" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "Insira sua senha" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "Insira seu provedor de hospedagem" @@ -2402,8 +2470,8 @@ msgstr "Insira seu provedor de hospedagem" msgid "Input your user handle" msgstr "Insira o usuário" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" @@ -2411,7 +2479,7 @@ msgstr "" msgid "Invalid or unsupported post record" msgstr "Post inválido" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "Credenciais inválidas" @@ -2423,7 +2491,7 @@ msgstr "Convide um Amigo" msgid "Invite code" msgstr "Convite" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Convite inválido. Verifique se você o inseriu corretamente e tente novamente." @@ -2443,7 +2511,7 @@ msgstr "Mostra os posts de quem você segue conforme acontecem." msgid "Jobs" msgstr "Carreiras" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "Jornalismo" @@ -2471,11 +2539,11 @@ msgstr "Rótulos são identificações aplicadas sobre perfis e conteúdos. Eles #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "rótulos foram aplicados neste {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "Rótulos sobre sua conta" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "Rótulos sobre seu conteúdo" @@ -2523,13 +2591,13 @@ msgstr "Saiba mais sobre o que é público no Bluesky." msgid "Learn more." msgstr "Saiba mais." -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2554,7 +2622,7 @@ msgstr "Armazenamento limpo, você precisa reiniciar o app agora." msgid "Let's get your password reset!" msgstr "Vamos redefinir sua senha!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "Vamos lá!" @@ -2567,7 +2635,7 @@ msgstr "Claro" #~ msgstr "Curtir" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Curtir este feed" @@ -2621,19 +2689,19 @@ msgstr "Lista" msgid "List Avatar" msgstr "Avatar da lista" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "Lista bloqueada" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "Lista por {0}" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "Lista excluída" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "Lista silenciada" @@ -2641,20 +2709,20 @@ msgstr "Lista silenciada" msgid "List Name" msgstr "Nome da lista" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "Lista desbloqueada" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "Lista dessilenciada" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "Listas" @@ -2663,9 +2731,9 @@ msgid "Load new notifications" msgstr "Carregar novas notificações" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "Carregar novos posts" @@ -2692,7 +2760,7 @@ msgstr "Visibilidade do seu perfil" msgid "Login to account that is not listed" msgstr "Fazer login em uma conta que não está listada" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -2700,6 +2768,18 @@ msgstr "" msgid "Looks like XXXXX-XXXXX" msgstr "Tem esse formato: XXXXX-XXXXX" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "Certifique-se de onde está indo!" @@ -2708,6 +2788,11 @@ msgstr "Certifique-se de onde está indo!" msgid "Manage your muted words and tags" msgstr "Gerencie suas palavras/tags silenciadas" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2726,30 +2811,35 @@ msgstr "Usuários mencionados" msgid "Menu" msgstr "Menu" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Mensagem do servidor: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -2757,7 +2847,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "Conta Enganosa" @@ -2776,13 +2866,13 @@ msgstr "Detalhes da moderação" msgid "Moderation list by {0}" msgstr "Lista de moderação por {0}" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "Lista de moderação por <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "Lista de moderação por você" @@ -2824,11 +2914,11 @@ msgstr "O moderador escolheu um aviso geral neste conteúdo." msgid "More" msgstr "Mais" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Mais feeds" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "Mais opções" @@ -2849,7 +2939,7 @@ msgstr "Silenciar {truncatedTag}" msgid "Mute Account" msgstr "Silenciar Conta" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "Silenciar contas" @@ -2865,16 +2955,16 @@ msgstr "Silenciar apenas tags" msgid "Mute in text & tags" msgstr "Silenciar texto e tags" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "Silenciar lista" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "Silenciar estas contas?" @@ -2921,7 +3011,7 @@ msgstr "Silenciado por \"{0}\"" msgid "Muted words & tags" msgstr "Palavras/tags silenciadas" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Silenciar é privado. Contas silenciadas podem interagir com você, mas você não verá postagens ou receber notificações delas." @@ -2930,11 +3020,11 @@ msgstr "Silenciar é privado. Contas silenciadas podem interagir com você, mas msgid "My Birthday" msgstr "Meu Aniversário" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "Meus Feeds" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "Meu Perfil" @@ -2955,27 +3045,27 @@ msgstr "Nome" msgid "Name is required" msgstr "Nome é obrigatório" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "Nome ou Descrição Viola os Padrões da Comunidade" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "Natureza" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Navega para próxima tela" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "Navega para seu perfil" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "Precisa denunciar uma violação de copyright?" @@ -2984,11 +3074,11 @@ msgstr "Precisa denunciar uma violação de copyright?" #~ msgid "Never lose access to your followers and data." #~ msgstr "Nunca perca o acesso aos seus seguidores e dados." -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "Nunca perca o acesso aos seus seguidores ou dados." -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "Deixa pra lá, crie um usuário pra mim" @@ -3002,8 +3092,8 @@ msgid "New" msgstr "Novo" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -3019,22 +3109,22 @@ msgstr "Nova senha" msgid "New Password" msgstr "Nova Senha" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "Novo post" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "Novo post" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "Novo Post" @@ -3047,14 +3137,14 @@ msgstr "Nova lista de usuários" msgid "Newest replies first" msgstr "Respostas mais recentes primeiro" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "Notícias" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3072,21 +3162,21 @@ msgstr "Próximo" msgid "Next image" msgstr "Próxima imagem" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "Não" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "Sem descrição" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "Não tenho painel de DNS" @@ -3102,8 +3192,8 @@ msgstr "Você não está mais seguindo {0}" msgid "No longer than 253 characters" msgstr "No máximo 253 caracteres" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3120,7 +3210,7 @@ msgstr "Nenhum resultado" msgid "No results found" msgstr "Nenhum resultado encontrado" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "Nenhum resultado encontrado para \"{query}\"" @@ -3165,8 +3255,8 @@ msgstr "Nudez não-erótica" msgid "Not Found" msgstr "Não encontrado" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "Agora não" @@ -3183,22 +3273,22 @@ msgstr "Nota: o Bluesky é uma rede aberta e pública. Esta configuração limit #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "Notificações" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Nudez" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "Nudez ou pornografia sem aviso aplicado" @@ -3215,7 +3305,7 @@ msgstr "Desligado" msgid "Oh no!" msgstr "Opa!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "Opa! Algo deu errado." @@ -3240,6 +3330,10 @@ msgstr "Resetar tutoriais" msgid "One or more images is missing alt text." msgstr "Uma ou mais imagens estão sem texto alternativo." +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "Apenas {0} pode responder." @@ -3258,16 +3352,20 @@ msgstr "Opa, algo deu errado!" msgid "Oops!" msgstr "Opa!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "Abrir" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "Abrir seletor de emojis" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "Abrir opções do feed" @@ -3370,7 +3468,7 @@ msgstr "Abre modal para baixar os dados da sua conta do Bluesky" msgid "Opens modal for email verification" msgstr "Abre modal para verificação de email" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "Abre modal para usar o domínio personalizado" @@ -3378,12 +3476,12 @@ msgstr "Abre modal para usar o domínio personalizado" msgid "Opens moderation settings" msgstr "Abre configurações de moderação" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "Abre o formulário de redefinição de senha" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "Abre a tela para editar feeds salvos" @@ -3403,7 +3501,7 @@ msgstr "Abre as preferências do feed inicial" msgid "Opens the linked website" msgstr "Abre o link" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3424,6 +3522,7 @@ msgstr "Abre as preferências de threads" msgid "Option {0} of {numItems}" msgstr "Opção {0} de {numItems}" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "Se quiser adicionar mais informações, digite abaixo:" @@ -3432,7 +3531,7 @@ msgstr "Se quiser adicionar mais informações, digite abaixo:" msgid "Or combine these options:" msgstr "Ou combine estas opções:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "Outro" @@ -3453,10 +3552,10 @@ msgstr "Página não encontrada" msgid "Page Not Found" msgstr "Página Não Encontrada" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "Senha" @@ -3488,32 +3587,32 @@ msgstr "Pessoas seguidas por @{0}" msgid "People following @{0}" msgstr "Pessoas seguindo @{0}" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "A permissão de galeria é obrigatória." -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "A permissão de galeria foi recusada. Por favor, habilite-a nas configurações do dispositivo." -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "Pets" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Imagens destinadas a adultos." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "Fixar na tela inicial" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "Fixar na Tela Inicial" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "Feeds Fixados" @@ -3538,19 +3637,19 @@ msgstr "Reproduzir Vídeo" msgid "Plays the GIF" msgstr "Reproduz o GIF" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "Por favor, escolha seu usuário." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "Por favor, escolha sua senha." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "Por favor, complete o captcha de verificação." -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Por favor, confirme seu e-mail antes de alterá-lo. Este é um requisito temporário enquanto ferramentas de atualização de e-mail são adicionadas, e em breve será removido." @@ -3566,15 +3665,15 @@ msgstr "Por favor, insira um nome único para esta Senha de Aplicativo ou use no msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Por favor, insira uma palavra, tag ou frase para silenciar" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "Por favor, digite o seu e-mail." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "Por favor, digite sua senha também:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Por favor, explique por que você acha que este rótulo foi aplicado incorrentamente por {0}" @@ -3582,7 +3681,7 @@ msgstr "Por favor, explique por que você acha que este rótulo foi aplicado inc msgid "Please sign in as @{0}" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Por favor, verifique seu e-mail" @@ -3590,11 +3689,11 @@ msgstr "Por favor, verifique seu e-mail" msgid "Please wait for your link card to finish loading" msgstr "Aguarde até que a prévia de link termine de carregar" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "Política" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "Pornografia" @@ -3662,7 +3761,7 @@ msgstr "Posts" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Posts podem ser silenciados baseados no seu conteúdo, tags ou ambos." -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "Posts ocultados" @@ -3676,15 +3775,15 @@ msgstr "Trocar de provedor de hospedagem" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "Tentar novamente" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3707,7 +3806,7 @@ msgstr "Privacidade" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de Privacidade" @@ -3720,11 +3819,11 @@ msgstr "Processando..." msgid "profile" msgstr "perfil" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "Perfil" @@ -3736,7 +3835,7 @@ msgstr "Perfil atualizado" msgid "Protect your account by verifying your email." msgstr "Proteja a sua conta verificando o seu e-mail." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "Público" @@ -3778,6 +3877,10 @@ msgstr "Aleatório" msgid "Ratios" msgstr "Índices" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "Buscas Recentes" @@ -3791,11 +3894,11 @@ msgstr "Buscas Recentes" #~ msgstr "Usuários Recomendados" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Remover" @@ -3811,22 +3914,25 @@ msgstr "Remover avatar" msgid "Remove Banner" msgstr "Remover banner" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "Remover feed" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "Remover feed?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "Remover dos meus feeds" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "Remover dos meus feeds?" @@ -3850,7 +3956,7 @@ msgstr "" msgid "Remove repost" msgstr "Desfazer repost" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "Remover este feed dos feeds salvos" @@ -3859,11 +3965,13 @@ msgstr "Remover este feed dos feeds salvos" msgid "Removed from list" msgstr "Removido da lista" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "Removido dos meus feeds" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "Removido dos feeds salvos" @@ -3875,6 +3983,11 @@ msgstr "Remover miniatura de {0}" msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "Respostas" @@ -3888,7 +4001,7 @@ msgctxt "action" msgid "Reply" msgstr "Responder" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "Filtros de Resposta" @@ -3910,24 +4023,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Denunciar Conta" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Janela de denúncia" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "Denunciar feed" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "Denunciar Lista" @@ -3940,30 +4059,36 @@ msgstr "" msgid "Report post" msgstr "Denunciar post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "Denunciar conteúdo" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "Denunciar este feed" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "Denunciar esta lista" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "Denunciar este post" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "Denunciar este usuário" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "Repostar" @@ -4001,8 +4126,8 @@ msgstr "repostou seu post" msgid "Reposts of this post" msgstr "Reposts" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "Solicitar Alteração" @@ -4015,7 +4140,7 @@ msgstr "Solicitar Código" msgid "Require alt text before posting" msgstr "Exigir texto alternativo antes de postar" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "" @@ -4023,8 +4148,8 @@ msgstr "" msgid "Required for this provider" msgstr "Obrigatório para este provedor" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "" @@ -4058,7 +4183,7 @@ msgstr "Redefine tutoriais" msgid "Resets the preferences state" msgstr "Redefine as configurações" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "Tenta entrar novamente" @@ -4067,13 +4192,14 @@ msgstr "Tenta entrar novamente" msgid "Retries the last action, which errored out" msgstr "Tenta a última ação, que deu erro" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4081,11 +4207,11 @@ msgid "Retry" msgstr "Tente novamente" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "Voltar para página anterior" @@ -4094,20 +4220,20 @@ msgid "Returns to home page" msgstr "Voltar para a tela inicial" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "Voltar para página anterior" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Salvar" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4125,7 +4251,7 @@ msgstr "Salvar data de nascimento" msgid "Save Changes" msgstr "Salvar Alterações" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "Salvar usuário" @@ -4133,16 +4259,16 @@ msgstr "Salvar usuário" msgid "Save image crop" msgstr "Salvar corte de imagem" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "Salvar nos meus feeds" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "Feeds Salvos" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4150,7 +4276,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "Imagem salva na galeria." -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "Adicionado aos seus feeds" @@ -4158,7 +4285,7 @@ msgstr "Adicionado aos seus feeds" msgid "Saves any changes to your profile" msgstr "Salva todas as alterações" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "Salva mudança de usuário para {handle}" @@ -4166,11 +4293,11 @@ msgstr "Salva mudança de usuário para {handle}" msgid "Saves image crop settings" msgstr "Salva o corte da imagem" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "Ciência" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "Ir para o topo" @@ -4183,12 +4310,12 @@ msgstr "Ir para o topo" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "Buscar" @@ -4230,7 +4357,7 @@ msgstr "" msgid "Search Tenor" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "Passo de Segurança Necessário" @@ -4255,7 +4382,7 @@ msgstr "Ver posts com <0>{displayTag} deste usuário" msgid "See profile" msgstr "Ver perfil" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "Veja o guia" @@ -4267,10 +4394,22 @@ msgstr "Veja o guia" msgid "Select {item}" msgstr "Selecionar {item}" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "Selecione uma conta" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Selecionar de uma conta existente" @@ -4299,6 +4438,10 @@ msgstr "Seleciona opção {i} de {numItems}" msgid "Select some accounts below to follow" msgstr "Selecione algumas contas para seguir" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "Selecione o(s) serviço(s) de moderação para reportar" @@ -4327,7 +4470,7 @@ msgstr "Selecione o idioma do seu aplicativo" msgid "Select your date of birth" msgstr "Selecione sua data de nascimento" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "Selecione seus interesses" @@ -4343,30 +4486,32 @@ msgstr "Selecione seus feeds primários" msgid "Select your secondary algorithmic feeds" msgstr "Selecione seus feeds secundários" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Enviar E-mail de Confirmação" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "Enviar e-mail" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "Enviar E-mail" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "Enviar comentários" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4376,12 +4521,12 @@ msgstr "Denunciar" msgid "Send report to {0}" msgstr "Denunciar via {0}" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "Envia o e-mail com o código de confirmação para excluir a conta" @@ -4397,15 +4542,15 @@ msgstr "Definir data de nascimento" msgid "Set new password" msgstr "Definir uma nova senha" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Defina esta configuração como \"Não\" para ocultar todas as citações do seu feed. Reposts ainda serão visíveis." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Defina esta configuração como \"Não\" para ocultar todas as respostas do seu feed." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Defina esta configuração como \"Não\" para ocultar todos os reposts do seu feed." @@ -4413,7 +4558,7 @@ msgstr "Defina esta configuração como \"Não\" para ocultar todos os reposts d msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Defina esta configuração como \"Sim\" para mostrar respostas em uma visualização de thread. Este é um recurso experimental." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Defina esta configuração como \"Sim\" para exibir amostras de seus feeds salvos no seu feed inicial. Este é um recurso experimental." @@ -4421,7 +4566,7 @@ msgstr "Defina esta configuração como \"Sim\" para exibir amostras de seus fee msgid "Set up your account" msgstr "Configure sua conta" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Configura o usuário no Bluesky" @@ -4464,13 +4609,13 @@ msgstr "Define a proporção da imagem para comprida" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "Configurações" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "Atividade sexual ou nudez erótica." @@ -4478,7 +4623,7 @@ msgstr "Atividade sexual ou nudez erótica." msgid "Sexually Suggestive" msgstr "Sexualmente Sugestivo" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "Compartilhar" @@ -4488,7 +4633,7 @@ msgstr "Compartilhar" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "Compartilhar" @@ -4498,8 +4643,8 @@ msgstr "Compartilhar" msgid "Share anyway" msgstr "Compartilhar assim" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "Compartilhar feed" @@ -4562,11 +4707,11 @@ msgstr "Mostrar Mais" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Mostrar Posts dos Meus Feeds" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "Mostrar Citações" @@ -4582,7 +4727,7 @@ msgstr "Mostrar citações no Seguindo" msgid "Show re-posts in Following feed" msgstr "Mostrar reposts no feed Seguindo" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "Mostrar Respostas" @@ -4602,7 +4747,7 @@ msgstr "Mostrar respostas no feed Seguindo" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Mostrar respostas com ao menos {0} {value}" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "Mostrar Reposts" @@ -4635,17 +4780,17 @@ msgstr "Mostra posts de {0} no seu feed" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4673,12 +4818,12 @@ msgstr "Faça login no Bluesky ou crie uma nova conta" msgid "Sign out" msgstr "Sair" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4703,27 +4848,31 @@ msgstr "Entrou como" msgid "Signed in as @{0}" msgstr "autenticado como @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "Pular" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "Pular" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "Desenvolvimento de software" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Algo deu errado. Por favor, tente novamente." -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "Opa! Sua sessão expirou. Por favor, entre novamente." @@ -4735,19 +4884,20 @@ msgstr "Classificar Respostas" msgid "Sort replies to the same post by:" msgstr "Classificar respostas de um post por:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "Fonte:" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "Spam" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "Spam; menções ou respostas excessivas" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "Esportes" @@ -4784,12 +4934,12 @@ msgstr "Armazenamento limpo, você precisa reiniciar o app agora." msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Enviar" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "Inscrever-se" @@ -4810,7 +4960,7 @@ msgstr "Increver-se no feed {0}" msgid "Subscribe to this labeler" msgstr "Inscrever-se neste rotulador" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "Inscreva-se nesta lista" @@ -4822,7 +4972,7 @@ msgstr "Sugestões de Seguidores" msgid "Suggested for you" msgstr "Sugeridos para você" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "Sugestivo" @@ -4869,7 +5019,7 @@ msgstr "Alto" msgid "Tap to view fully" msgstr "Toque para ver tudo" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "Tecnologia" @@ -4881,13 +5031,13 @@ msgstr "Termos" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Termos de Serviço" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "Termos utilizados violam as diretrizes da comunidade" @@ -4895,15 +5045,16 @@ msgstr "Termos utilizados violam as diretrizes da comunidade" msgid "text" msgstr "texto" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "Campo de entrada de texto" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "Obrigado. Sua denúncia foi enviada." -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "Contém o seguinte:" @@ -4928,11 +5079,15 @@ msgstr "As Diretrizes da Comunidade foram movidas para <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "A Política de Direitos Autorais foi movida para <0/>" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "Os seguintes rótulos foram aplicados sobre sua conta." -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "Os seguintes rótulos foram aplicados sobre seu conteúdo." @@ -4962,15 +5117,17 @@ msgid "There are many feeds to try:" msgstr "Temos vários feeds para você experimentar:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Tivemos um problema ao contatar o servidor, por favor verifique sua conexão com a internet e tente novamente." -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Tivemos um problema ao remover este feed, por favor verifique sua conexão com a internet e tente novamente." -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Tivemos um problema ao atualizar seus feeds, por favor verifique sua conexão com a internet e tente novamente." @@ -4982,16 +5139,17 @@ msgstr "" msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "Tivemos um problema ao contatar o servidor deste feed" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "Tivemos um problema ao contatar o servidor deste feed" @@ -4999,7 +5157,7 @@ msgstr "Tivemos um problema ao contatar o servidor deste feed" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Tivemos um problema ao carregar notificações. Toque aqui para tentar de novo." -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Tivemos um problema ao carregar posts. Toque aqui para tentar de novo." @@ -5012,6 +5170,7 @@ msgstr "Tivemos um problema ao carregar esta lista. Toque aqui para tentar de no msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Tivemos um problema ao carregar suas listas. Toque aqui para tentar de novo." +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Tivemos um problema ao enviar sua denúncia. Por favor, verifique sua conexão com a internet." @@ -5038,10 +5197,10 @@ msgstr "Tivemos um problema ao carregar suas senhas de app." msgid "There was an issue! {0}" msgstr "Tivemos um problema! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "Tivemos algum problema. Por favor verifique sua conexão com a internet e tente novamente." @@ -5066,7 +5225,7 @@ msgstr "Este {screenDescription} foi reportado:" msgid "This account has requested that users sign in to view their profile." msgstr "Esta conta solicitou que os usuários fizessem login para visualizar seu perfil." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "Esta contestação será enviada para <0>{0}." @@ -5091,21 +5250,21 @@ msgstr "Este conteúdo é hospedado por {0}. Deseja ativar a mídia externa?" msgid "This content is not available because one of the users involved has blocked the other." msgstr "Este conteúdo não está disponível porque um dos usuários bloqueou o outro." -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "Este conteúdo não é visível sem uma conta do Bluesky." -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Esta funcionalidade está em beta. Você pode ler mais sobre exportação de repositórios <0>neste post do nosso blog." -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Este feed está recebendo muito tráfego e está temporariamente indisponível. Por favor, tente novamente mais tarde." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "Este feed está vazio!" @@ -5113,11 +5272,15 @@ msgstr "Este feed está vazio!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Este feed está vazio! Talvez você precise seguir mais usuários ou configurar os idiomas filtrados." +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Esta informação não é compartilhada com outros usuários." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "Isso é importante caso você precise alterar seu e-mail ou redefinir sua senha." @@ -5133,6 +5296,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Este rotulador não declarou quais rótulos utiliza e pode não estar funcionando ainda." @@ -5141,7 +5308,7 @@ msgstr "Este rotulador não declarou quais rótulos utiliza e pode não estar fu msgid "This link is taking you to the following website:" msgstr "Este link está levando você ao seguinte site:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "Esta lista está vazia!" @@ -5174,7 +5341,7 @@ msgstr "Este post só pode ser visto por usuários autenticados e não aparecer msgid "This service has not provided terms of service or a privacy policy." msgstr "Este serviço não proveu termos de serviço ou política de privacidade." -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "Isso deve criar um registro no domínio:" @@ -5228,10 +5395,14 @@ msgstr "Visualização de Threads" msgid "Threads Preferences" msgstr "Preferências das Threads" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "Para quem você gostaria de enviar esta denúncia?" @@ -5273,25 +5444,25 @@ msgstr "Tentar novamente" msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Tipo:" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "Desbloquear lista" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "Dessilenciar lista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5301,7 +5472,7 @@ msgstr "Não foi possível entrar em contato com seu serviço. Por favor, verifi #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "Desbloquear" @@ -5322,7 +5493,7 @@ msgstr "Desbloquear Conta?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Desfazer repost" @@ -5349,12 +5520,12 @@ msgstr "Deixar de seguir" #~ msgid "Unlike" #~ msgstr "Descurtir" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "Descurtir este feed" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "Dessilenciar" @@ -5371,7 +5542,7 @@ msgstr "Dessilenciar conta" msgid "Unmute all {displayTag} posts" msgstr "Dessilenciar posts com {displayTag}" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5380,16 +5551,16 @@ msgstr "" msgid "Unmute thread" msgstr "Dessilenciar thread" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "Desafixar" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "Desafixar da tela inicial" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "Desafixar lista de moderação" @@ -5401,7 +5572,12 @@ msgstr "Desinscrever-se" msgid "Unsubscribe from this labeler" msgstr "Desinscrever-se deste rotulador" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "Conteúdo Sexual Indesejado" @@ -5409,7 +5585,7 @@ msgstr "Conteúdo Sexual Indesejado" msgid "Update {displayName} in Lists" msgstr "Atualizar {displayName} nas Listas" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "Alterar para {handle}" @@ -5417,7 +5593,11 @@ msgstr "Alterar para {handle}" msgid "Updating..." msgstr "Atualizando..." -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Carregar um arquivo de texto para:" @@ -5440,7 +5620,7 @@ msgstr "Carregar um arquivo" msgid "Upload from Library" msgstr "Carregar da galeria" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "Utilize um arquivo no seu servidor" @@ -5448,11 +5628,11 @@ msgstr "Utilize um arquivo no seu servidor" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Use as senhas de aplicativos para fazer login em outros clientes do Bluesky sem dar acesso total à sua conta ou senha." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "Usar bsky.social como serviço de hospedagem" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "Usar provedor padrão" @@ -5466,7 +5646,11 @@ msgstr "Usar o navegador interno" msgid "Use my default browser" msgstr "Usar o meu navegador padrão" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Usar o painel do meu DNS" @@ -5504,13 +5688,13 @@ msgstr "Este Usuário Te Bloqueou" msgid "User list by {0}" msgstr "Lista de usuários por {0}" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "Lista de usuários por <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "Sua lista de usuários" @@ -5526,11 +5710,11 @@ msgstr "Lista de usuários atualizada" msgid "User Lists" msgstr "Listas de Usuários" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "Nome de usuário ou endereço de e-mail" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "Usuários" @@ -5546,7 +5730,7 @@ msgstr "Usuários em \"{0}\"" msgid "Users that have liked this content or profile" msgstr "Usuários que curtiram este conteúdo ou perfil" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "Conteúdo:" @@ -5554,7 +5738,7 @@ msgstr "Conteúdo:" #~ msgid "Verify {0}" #~ msgstr "Verificar {0}" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -5570,16 +5754,16 @@ msgstr "Verificar meu e-mail" msgid "Verify My Email" msgstr "Verificar Meu Email" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "Verificar Novo E-mail" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "Verificar Seu E-mail" @@ -5591,7 +5775,7 @@ msgstr "Verificar Seu E-mail" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "Games" @@ -5603,11 +5787,11 @@ msgstr "Ver o avatar de {0}" msgid "View debug entry" msgstr "Ver depuração" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "Ver detalhes" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "Ver detalhes para denunciar uma violação de copyright" @@ -5615,13 +5799,13 @@ msgstr "Ver detalhes para denunciar uma violação de copyright" msgid "View full thread" msgstr "Ver thread completa" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "Ver informações sobre estes rótulos" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Ver perfil" @@ -5633,7 +5817,7 @@ msgstr "Ver o avatar" msgid "View the labeling service provided by @{0}" msgstr "Ver este rotulador provido por @{0}" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "Ver usuários que curtiram este feed" @@ -5661,11 +5845,15 @@ msgstr "Avisar e filtrar dos feeds" msgid "We couldn't find any results for that hashtag." msgstr "Não encontramos nenhum post com esta hashtag." +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Estimamos que sua conta estará pronta em mais ou menos {estimatedTime}." -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Esperamos que você se divirta. Lembre-se, o Bluesky é:" @@ -5689,7 +5877,7 @@ msgstr "Não foi possível carregar sua data de nascimento. Por favor, tente nov msgid "We were unable to load your configured labelers at this time." msgstr "Não foi possível carregar seus rotuladores." -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Não conseguimos conectar. Por favor, tente novamente para continuar configurando a sua conta. Se continuar falhando, você pode pular este fluxo." @@ -5697,7 +5885,7 @@ msgstr "Não conseguimos conectar. Por favor, tente novamente para continuar con msgid "We will let you know when your account is ready." msgstr "Avisaremos quando sua conta estiver pronta." -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "Usaremos isto para customizar a sua experiência." @@ -5730,7 +5918,7 @@ msgstr "Sentimos muito! Você só pode se inscrever em até dez rotuladores e vo #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Bem-vindo ao <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "Do que você gosta?" @@ -5753,23 +5941,31 @@ msgstr "Quais idiomas você gostaria de ver nos seus feeds?" msgid "Who can reply" msgstr "Quem pode responder" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "Por que este conteúdo deve ser revisado?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "Por que este feed deve ser revisado?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "Por que esta lista deve ser revisada?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "Por que este post deve ser revisado?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "Por que este usuário deve ser revisado?" @@ -5777,8 +5973,8 @@ msgstr "Por que este usuário deve ser revisado?" msgid "Wide" msgstr "Largo" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -5791,21 +5987,21 @@ msgstr "Escrever post" msgid "Write your reply" msgstr "Escreva sua resposta" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "Escritores" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Sim" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -5839,15 +6035,15 @@ msgstr "Ninguém segue você ainda." msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Você ainda não tem nenhum convite! Nós lhe enviaremos alguns quando você estiver há mais tempo no Bluesky." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "Você não tem feeds fixados." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "Você não tem feeds salvos!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "Você não tem feeds salvos!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "Você não tem feeds salvos." @@ -5894,7 +6090,7 @@ msgstr "Você não tem feeds." msgid "You have no lists." msgstr "Você não tem listas." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -5914,7 +6110,11 @@ msgstr "Você ainda não silenciou nenhuma conta. Para silenciar uma conta, aces msgid "You haven't muted any words or tags yet" msgstr "Você não silenciou nenhuma palavra ou tag ainda" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Você pode contestar estes rótulos se você acha que estão errados." @@ -5942,7 +6142,7 @@ msgstr "Você vai receber notificações desta thread" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Você receberá um e-mail com um \"código de redefinição\". Digite esse código aqui, e então digite sua nova senha." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -5956,7 +6156,7 @@ msgstr "Você está no controle" msgid "You're in line" msgstr "Você está na fila" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "Tudo pronto!" @@ -5977,7 +6177,7 @@ msgstr "Sua conta" msgid "Your account has been deleted" msgstr "Sua conta foi excluída" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "O repositório da sua conta, contendo todos os seus dados públicos, pode ser baixado como um arquivo \"CAR\". Este arquivo não inclui imagens ou dados privados, estes devem ser exportados separadamente." @@ -5994,16 +6194,16 @@ msgid "Your default feed is \"Following\"" msgstr "Seu feed inicial é o \"Seguindo\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "Seu e-mail parece ser inválido." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "Seu e-mail foi atualizado mas não foi verificado. Como próximo passo, por favor verifique seu novo e-mail." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Seu e-mail ainda não foi verificado. Esta é uma etapa importante de segurança que recomendamos." @@ -6015,7 +6215,7 @@ msgstr "Seu feed inicial está vazio! Siga mais usuários para acompanhar o que msgid "Your full handle will be" msgstr "Seu identificador completo será" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "Seu usuário completo será <0>@{0}" @@ -6031,7 +6231,7 @@ msgstr "Sua senha foi alterada com sucesso!" msgid "Your post has been published" msgstr "Seu post foi publicado" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Suas postagens, curtidas e bloqueios são públicos. Silenciamentos são privados." @@ -6043,6 +6243,10 @@ msgstr "Seu perfil" msgid "Your reply has been published" msgstr "Sua resposta foi publicada" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Seu identificador de usuário" diff --git a/src/locale/locales/tr/messages.po b/src/locale/locales/tr/messages.po index 438025122c..0b227db43e 100644 --- a/src/locale/locales/tr/messages.po +++ b/src/locale/locales/tr/messages.po @@ -13,7 +13,7 @@ msgstr "" "Plural-Forms: \n" "X-Generator: Poedit 3.4.2\n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(e-posta yok)" @@ -25,15 +25,15 @@ msgstr "" #~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" #~ msgstr "{0, plural, one {# davet kodu mevcut} other {# davet kodları mevcut}}" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -55,7 +55,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -75,6 +75,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -106,15 +110,15 @@ msgstr "{following} takip ediliyor" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} okunmamış" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -122,11 +126,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> üyeleri" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -151,7 +155,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>Önerilen<1>Kullanıcıları Takip Et<2>Seç" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -163,7 +167,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Geçersiz Kullanıcı Adı" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "" @@ -202,7 +206,7 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -253,15 +257,15 @@ msgstr "Hesap susturulması kaldırıldı" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "Ekle" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Bir içerik uyarısı ekleyin" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "Bu listeye bir kullanıcı ekleyin" @@ -273,6 +277,7 @@ msgstr "Hesap ekle" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -280,8 +285,8 @@ msgid "Add alt text" msgstr "Alternatif metin ekle" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -314,7 +319,15 @@ msgstr "" msgid "Add muted words and tags" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Alan adınıza aşağıdaki DNS kaydını ekleyin:" @@ -323,7 +336,7 @@ msgstr "Alan adınıza aşağıdaki DNS kaydını ekleyin:" msgid "Add to Lists" msgstr "Listelere Ekle" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "Beslemelerime ekle" @@ -336,17 +349,17 @@ msgstr "Beslemelerime ekle" msgid "Added to list" msgstr "Listeye eklendi" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "Beslemelerime eklendi" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Bir yanıtın beslemenizde gösterilmesi için sahip olması gereken beğeni sayısını ayarlayın." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Yetişkin İçerik" @@ -363,7 +376,7 @@ msgstr "" msgid "Advanced" msgstr "Gelişmiş" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "" @@ -396,12 +409,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "Alternatif metin, görme engelli ve düşük görme yeteneğine sahip kullanıcılar için resimleri tanımlar ve herkes için bağlam sağlamaya yardımcı olur." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "{0} adresine bir e-posta gönderildi. Aşağıda girebileceğiniz bir onay kodu içerir." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Önceki adresinize, {0} bir e-posta gönderildi. Aşağıda girebileceğiniz bir onay kodu içerir." @@ -409,11 +422,11 @@ msgstr "Önceki adresinize, {0} bir e-posta gönderildi. Aşağıda girebileceğ msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "" @@ -426,7 +439,7 @@ msgstr "" msgid "An issue occurred, please try again." msgstr "Bir sorun oluştu, lütfen tekrar deneyin." -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -435,7 +448,7 @@ msgstr "" msgid "and" msgstr "ve" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "Hayvanlar" @@ -443,7 +456,7 @@ msgstr "Hayvanlar" msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "" @@ -473,12 +486,12 @@ msgstr "Uygulama şifresi ayarları" msgid "App Passwords" msgstr "Uygulama Şifreleri" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "" @@ -490,7 +503,7 @@ msgstr "" #~ msgid "Appeal Content Warning" #~ msgstr "İçerik Uyarısını İtiraz Et" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -510,19 +523,24 @@ msgstr "" msgid "Appearance" msgstr "Görünüm" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "\"{name}\" uygulama şifresini silmek istediğinizden emin misiniz?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "" @@ -542,11 +560,11 @@ msgstr "Emin misiniz?" msgid "Are you writing in <0>{0}?" msgstr "<0>{0} dilinde mi yazıyorsunuz?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "Sanat" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Sanatsal veya erotik olmayan çıplaklık." @@ -554,17 +572,17 @@ msgstr "Sanatsal veya erotik olmayan çıplaklık." msgid "At least 3 characters" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -597,8 +615,8 @@ msgstr "Doğum günü:" msgid "Block" msgstr "" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -611,15 +629,15 @@ msgstr "Hesabı Engelle" msgid "Block Account?" msgstr "" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "Hesapları engelle" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "Listeyi engelle" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "Bu hesapları engelle?" @@ -657,7 +675,7 @@ msgstr "Engellenen gönderi." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "" -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Engelleme herkese açıktır. Engellenen hesaplar, konularınıza yanıt veremez, sizi bahsedemez veya başka şekilde sizinle etkileşime giremez." @@ -713,10 +731,15 @@ msgstr "" msgid "Blur images and filter from feeds" msgstr "" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "Kitaplar" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/screens/Settings.tsx:841 #~ msgid "Build version {0} {1}" #~ msgstr "Sürüm {0} {1}" @@ -771,9 +794,9 @@ msgstr "Yalnızca harfler, sayılar, boşluklar, tireler ve alt çizgiler içere #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -785,26 +808,26 @@ msgstr "Yalnızca harfler, sayılar, boşluklar, tireler ve alt çizgiler içere #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "İptal" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "İptal" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "Hesap silmeyi iptal et" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "Kullanıcı adı değişikliğini iptal et" @@ -833,7 +856,7 @@ msgstr "Aramayı iptal et" msgid "Cancels opening the linked website" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "" @@ -846,12 +869,12 @@ msgstr "Değiştir" msgid "Change handle" msgstr "Kullanıcı adını değiştir" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "Kullanıcı Adını Değiştir" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "E-postamı değiştir" @@ -872,7 +895,7 @@ msgstr "Gönderi dilini {0} olarak değiştir" #~ msgid "Change your Bluesky password" #~ msgstr "Bluesky şifrenizi değiştirin" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "E-postanızı Değiştirin" @@ -880,11 +903,11 @@ msgstr "E-postanızı Değiştirin" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -910,11 +933,11 @@ msgstr "Durumumu kontrol et" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Bazı önerilen kullanıcılara göz atın. Benzer kullanıcıları görmek için onları takip edin." -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Aşağıya gireceğiniz onay kodu içeren bir e-posta için gelen kutunuzu kontrol edin:" @@ -930,7 +953,7 @@ msgstr "\"Herkes\" veya \"Hiç kimse\" seçin" msgid "Choose Service" msgstr "Hizmet Seç" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "Özel beslemelerinizi destekleyen algoritmaları seçin." @@ -939,6 +962,10 @@ msgstr "Özel beslemelerinizi destekleyen algoritmaları seçin." #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "Özel beslemelerle deneyiminizi destekleyen algoritmaları seçin." +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "Ana beslemelerinizi seçin" @@ -980,6 +1007,10 @@ msgstr "" msgid "click here" msgstr "buraya tıklayın" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "" @@ -988,7 +1019,7 @@ msgstr "" #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "İklim" @@ -1057,11 +1088,11 @@ msgstr "Başlık resmi görüntüleyicisini kapatır" msgid "Collapses list of users for a given notification" msgstr "Belirli bir bildirim için kullanıcı listesini daraltır" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "Komedi" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "Çizgi romanlar" @@ -1070,7 +1101,7 @@ msgstr "Çizgi romanlar" msgid "Community Guidelines" msgstr "Topluluk Kuralları" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "Onboarding'i tamamlayın ve hesabınızı kullanmaya başlayın" @@ -1100,13 +1131,13 @@ msgstr "" #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Onayla" @@ -1115,8 +1146,8 @@ msgstr "Onayla" #~ msgid "Confirm" #~ msgstr "Onayla" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "Değişikliği Onayla" @@ -1124,7 +1155,7 @@ msgstr "Değişikliği Onayla" msgid "Confirm content language settings" msgstr "İçerik dil ayarlarını onayla" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "Hesabı silmeyi onayla" @@ -1140,13 +1171,13 @@ msgstr "" msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Onay kodu" @@ -1154,7 +1185,7 @@ msgstr "Onay kodu" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "{email} adresinin bekleme listesine kaydını onaylar" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "Bağlanıyor..." @@ -1209,8 +1240,9 @@ msgstr "" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "Devam et" @@ -1220,8 +1252,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1235,7 +1268,7 @@ msgstr "Sonraki adıma devam et" msgid "Continue to the next step without following any accounts" msgstr "Herhangi bir hesabı takip etmeden sonraki adıma devam et" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "Yemek pişirme" @@ -1248,9 +1281,9 @@ msgstr "Kopyalandı" msgid "Copied build version to clipboard" msgstr "Sürüm numarası panoya kopyalandı" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1268,7 +1301,7 @@ msgstr "Uygulama şifresini kopyalar" msgid "Copy" msgstr "Kopyala" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "" @@ -1277,7 +1310,7 @@ msgstr "" msgid "Copy code" msgstr "" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "Liste bağlantısını kopyala" @@ -1305,15 +1338,15 @@ msgstr "Gönderi metnini kopyala" msgid "Copyright Policy" msgstr "Telif Hakkı Politikası" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Besleme yüklenemedi" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "Liste yüklenemedi" @@ -1321,13 +1354,13 @@ msgstr "Liste yüklenemedi" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/create/Step2.tsx:91 #~ msgid "Country" @@ -1351,6 +1384,10 @@ msgstr "Hesap Oluştur" msgid "Create an account" msgstr "" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "Uygulama Şifresi Oluştur" @@ -1360,7 +1397,7 @@ msgstr "Uygulama Şifresi Oluştur" msgid "Create new account" msgstr "Yeni hesap oluştur" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "" @@ -1380,7 +1417,7 @@ msgstr "{0} oluşturuldu" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Küçük resimli bir kart oluşturur. Kart, {url} bağlantısına gider" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "Kültür" @@ -1389,12 +1426,12 @@ msgstr "Kültür" msgid "Custom" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "Özel alan adı" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Topluluk tarafından oluşturulan özel beslemeler size yeni deneyimler sunar ve sevdiğiniz içeriği bulmanıza yardımcı olur." @@ -1427,10 +1464,10 @@ msgstr "" msgid "Debug panel" msgstr "Hata ayıklama paneli" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "" @@ -1442,7 +1479,7 @@ msgstr "Hesabı sil" #~ msgid "Delete Account" #~ msgstr "Hesabı Sil" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1458,11 +1495,11 @@ msgstr "" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "Listeyi Sil" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1470,7 +1507,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "Hesabımı sil" @@ -1483,7 +1520,7 @@ msgstr "Hesabımı Sil…" msgid "Delete post" msgstr "Gönderiyi sil" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "" @@ -1526,7 +1563,7 @@ msgstr "Karart" msgid "Disable autoplay for GIFs" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "" @@ -1575,7 +1612,7 @@ msgstr "Yeni özel beslemeler keşfet" #~ msgid "Discover new feeds" #~ msgstr "Yeni beslemeler keşfet" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "" @@ -1587,7 +1624,7 @@ msgstr "Görünen ad" msgid "Display Name" msgstr "Görünen Ad" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "" @@ -1599,11 +1636,11 @@ msgstr "" msgid "Doesn't begin or end with a hyphen" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "Alan adı doğrulandı!" @@ -1615,6 +1652,8 @@ msgstr "Alan adı doğrulandı!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1623,15 +1662,13 @@ msgstr "Alan adı doğrulandı!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "Tamam" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1649,8 +1686,8 @@ msgstr "Tamam{extraText}" #~ msgid "Double tap to sign in" #~ msgstr "Oturum açmak için çift dokunun" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "" @@ -1662,7 +1699,7 @@ msgstr "Resim eklemek için bırakın" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Apple politikaları gereği, yetişkin içeriği yalnızca kaydı tamamladıktan sonra web üzerinde etkinleştirilebilir." -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "" @@ -1670,7 +1707,7 @@ msgstr "" msgid "e.g. Alice Roberts" msgstr "örn: Alice Roberts" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "" @@ -1717,7 +1754,7 @@ msgstr "" msgid "Edit image" msgstr "Resmi düzenle" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "Liste ayrıntılarını düzenle" @@ -1726,8 +1763,8 @@ msgid "Edit Moderation List" msgstr "Düzenleme Listesini Düzenle" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "Beslemelerimi Düzenle" @@ -1746,7 +1783,7 @@ msgid "Edit Profile" msgstr "Profil Düzenle" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "Kayıtlı Beslemeleri Düzenle" @@ -1762,16 +1799,16 @@ msgstr "Görünen adınızı düzenleyin" msgid "Edit your profile description" msgstr "Profil açıklamanızı düzenleyin" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "Eğitim" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "E-posta" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "" @@ -1779,16 +1816,16 @@ msgstr "" msgid "Email address" msgstr "E-posta adresi" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "E-posta güncellendi" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "E-posta Güncellendi" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "E-posta doğrulandı" @@ -1840,7 +1877,7 @@ msgstr "" msgid "Enable media players for" msgstr "Medya oynatıcılarını etkinleştir" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "Bu ayarı yalnızca takip ettiğiniz kişiler arasındaki yanıtları görmek için etkinleştirin." @@ -1869,7 +1906,7 @@ msgstr "" msgid "Enter a word or tag" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "Onay Kodunu Girin" @@ -1877,7 +1914,7 @@ msgstr "Onay Kodunu Girin" msgid "Enter the code you received to change your password." msgstr "Şifrenizi değiştirmek için aldığınız kodu girin." -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "Kullanmak istediğiniz alan adını girin" @@ -1898,11 +1935,11 @@ msgstr "Doğum tarihinizi girin" msgid "Enter your email address" msgstr "E-posta adresinizi girin" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "Yeni e-postanızı yukarıya girin" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "Yeni e-posta adresinizi aşağıya girin." @@ -1914,11 +1951,15 @@ msgstr "Yeni e-posta adresinizi aşağıya girin." msgid "Enter your username and password" msgstr "Kullanıcı adınızı ve şifrenizi girin" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "Hata:" @@ -1927,15 +1968,19 @@ msgstr "Hata:" msgid "Everybody" msgstr "Herkes" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "Kullanıcı adı değişikliği sürecinden çıkar" @@ -1977,7 +2022,7 @@ msgstr "" msgid "Export my data" msgstr "" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "" @@ -2011,7 +2056,7 @@ msgstr "Uygulama şifresi oluşturulamadı." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Liste oluşturulamadı. İnternet bağlantınızı kontrol edin ve tekrar deneyin." -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -2023,7 +2068,7 @@ msgstr "Gönderi silinemedi, lütfen tekrar deneyin" msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -2032,19 +2077,23 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "Önerilen beslemeler yüklenemedi" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "Besleme" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "{0} tarafından besleme" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "Besleme çevrimdışı" @@ -2053,18 +2102,18 @@ msgstr "Besleme çevrimdışı" #~ msgstr "Besleme Tercihleri" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "Geribildirim" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "Beslemeler" @@ -2072,7 +2121,7 @@ msgstr "Beslemeler" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Beslemeler, içerikleri düzenlemek için kullanıcılar tarafından oluşturulur. İlginizi çeken bazı beslemeler seçin." -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Beslemeler, kullanıcıların biraz kodlama uzmanlığı ile oluşturduğu özel algoritmalardır. Daha fazla bilgi için <0/>." @@ -2080,15 +2129,19 @@ msgstr "Beslemeler, kullanıcıların biraz kodlama uzmanlığı ile oluşturdu msgid "Feeds can be topical as well!" msgstr "Beslemeler aynı zamanda konusal olabilir!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "Tamamlanıyor" @@ -2114,7 +2167,7 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "Benzer hesaplar bulunuyor..." -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "" @@ -2126,11 +2179,11 @@ msgstr "" msgid "Fine-tune the discussion threads." msgstr "Tartışma konularını ayarlayın." -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "Fitness" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "Esnek" @@ -2192,7 +2245,7 @@ msgstr "{0} tarafından takip ediliyor" msgid "Followed users" msgstr "Takip edilen kullanıcılar" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "Yalnızca takip edilen kullanıcılar" @@ -2210,7 +2263,9 @@ msgstr "Takipçiler" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "Takip edilenler" @@ -2225,7 +2280,7 @@ msgstr "" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "" @@ -2238,11 +2293,11 @@ msgstr "Sizi takip ediyor" msgid "Follows You" msgstr "Sizi Takip Ediyor" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "Yiyecek" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Güvenlik nedeniyle, e-posta adresinize bir onay kodu göndermemiz gerekecek." @@ -2263,15 +2318,15 @@ msgstr "Güvenlik nedeniyle, bunu tekrar göremezsiniz. Bu şifreyi kaybederseni msgid "Forgot Password" msgstr "Şifremi Unuttum" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "" @@ -2288,12 +2343,16 @@ msgstr "<0/> tarafından" msgid "Gallery" msgstr "Galeri" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Başlayın" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "" @@ -2302,9 +2361,9 @@ msgstr "" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "Geri git" @@ -2312,12 +2371,13 @@ msgstr "Geri git" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "Geri Git" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2343,11 +2403,11 @@ msgstr "" msgid "Go to next" msgstr "Sonrakine git" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2355,7 +2415,7 @@ msgstr "" msgid "Graphic Media" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Kullanıcı adı" @@ -2363,7 +2423,7 @@ msgstr "Kullanıcı adı" msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "" @@ -2371,7 +2431,7 @@ msgstr "" msgid "Hashtag" msgstr "" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "" @@ -2380,10 +2440,14 @@ msgid "Having trouble?" msgstr "Sorun mu yaşıyorsunuz?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "Yardım" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "Takip etmeniz için size bazı hesaplar" @@ -2440,23 +2504,23 @@ msgstr "Kullanıcı listesini gizle" #~ msgid "Hides posts from {0} in your feed" #~ msgstr "Beslemenizdeki {0} gönderilerini gizler" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Hmm, besleme sunucusuna ulaşırken bir tür sorun oluştu. Lütfen bu konuda besleme sahibini bilgilendirin." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Hmm, besleme sunucusunun yanlış yapılandırılmış görünüyor. Lütfen bu konuda besleme sahibini bilgilendirin." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Hmm, besleme sunucusunun çevrimdışı görünüyor. Lütfen bu konuda besleme sahibini bilgilendirin." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Hmm, besleme sunucusu kötü bir yanıt verdi. Lütfen bu konuda besleme sahibini bilgilendirin." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, bu beslemeyi bulmakta sorun yaşıyoruz. Silinmiş olabilir." @@ -2469,10 +2533,10 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "" #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "Ana Sayfa" @@ -2482,14 +2546,14 @@ msgstr "Ana Sayfa" #~ msgid "Home Feed Preferences" #~ msgstr "Ana Sayfa Besleme Tercihleri" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Barındırma sağlayıcısı" @@ -2497,25 +2561,29 @@ msgstr "Barındırma sağlayıcısı" msgid "How should we open this link?" msgstr "Bu bağlantıyı nasıl açmalıyız?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "Bir kodum var" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "Bir onay kodum var" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "Kendi alan adım var" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Alternatif metin uzunsa, alternatif metin genişletme durumunu değiştirir" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "Hiçbiri seçilmezse, tüm yaşlar için uygun." @@ -2523,7 +2591,7 @@ msgstr "Hiçbiri seçilmezse, tüm yaşlar için uygun." msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "" -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "" @@ -2535,7 +2603,7 @@ msgstr "" msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Şifrenizi değiştirmek istiyorsanız, size hesabınızın sizin olduğunu doğrulamak için bir kod göndereceğiz." -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "" @@ -2551,7 +2619,7 @@ msgstr "Resim alternatif metni" #~ msgid "Image options" #~ msgstr "Resim seçenekleri" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "" @@ -2559,7 +2627,7 @@ msgstr "" msgid "Input code sent to your email for password reset" msgstr "Şifre sıfırlama için e-postanıza gönderilen kodu girin" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "Hesap silme için onay kodunu girin" @@ -2579,7 +2647,7 @@ msgstr "Uygulama şifresi için ad girin" msgid "Input new password" msgstr "Yeni şifre girin" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "Hesap silme için şifre girin" @@ -2587,15 +2655,15 @@ msgstr "Hesap silme için şifre girin" #~ msgid "Input phone number for SMS verification" #~ msgstr "SMS doğrulaması için telefon numarası girin" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "{identifier} ile ilişkili şifreyi girin" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Kaydolurken kullandığınız kullanıcı adını veya e-posta adresini girin" @@ -2607,11 +2675,11 @@ msgstr "Kaydolurken kullandığınız kullanıcı adını veya e-posta adresini #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Bluesky bekleme listesine girmek için e-postanızı girin" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "Şifrenizi girin" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "" @@ -2619,8 +2687,8 @@ msgstr "" msgid "Input your user handle" msgstr "Kullanıcı adınızı girin" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" @@ -2628,7 +2696,7 @@ msgstr "" msgid "Invalid or unsupported post record" msgstr "Geçersiz veya desteklenmeyen gönderi kaydı" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "Geçersiz kullanıcı adı veya şifre" @@ -2644,7 +2712,7 @@ msgstr "Arkadaşını Davet Et" msgid "Invite code" msgstr "Davet kodu" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Davet kodu kabul edilmedi. Doğru girdiğinizden emin olun ve tekrar deneyin." @@ -2681,7 +2749,7 @@ msgstr "İşler" #~ msgid "Join Waitlist" #~ msgstr "Bekleme Listesine Katıl" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "Gazetecilik" @@ -2709,11 +2777,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "" @@ -2769,13 +2837,13 @@ msgstr "Bluesky'da neyin herkese açık olduğu hakkında daha fazla bilgi edini msgid "Learn more." msgstr "" -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2800,7 +2868,7 @@ msgstr "Eski depolama temizlendi, şimdi uygulamayı yeniden başlatmanız gerek msgid "Let's get your password reset!" msgstr "Şifrenizi sıfırlamaya başlayalım!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "Hadi gidelim!" @@ -2817,7 +2885,7 @@ msgstr "Açık" #~ msgstr "Beğen" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Bu beslemeyi beğen" @@ -2871,19 +2939,19 @@ msgstr "Liste" msgid "List Avatar" msgstr "Liste Avatarı" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "Liste engellendi" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "{0} tarafından liste" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "Liste silindi" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "Liste sessize alındı" @@ -2891,20 +2959,20 @@ msgstr "Liste sessize alındı" msgid "List Name" msgstr "Liste Adı" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "Liste engeli kaldırıldı" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "Liste sessizden çıkarıldı" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "Listeler" @@ -2918,9 +2986,9 @@ msgid "Load new notifications" msgstr "Yeni bildirimleri yükle" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "Yeni gönderileri yükle" @@ -2951,7 +3019,7 @@ msgstr "Çıkış yapan görünürlüğü" msgid "Login to account that is not listed" msgstr "Listelenmeyen hesaba giriş yap" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -2959,6 +3027,18 @@ msgstr "" msgid "Looks like XXXXX-XXXXX" msgstr "" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "Bu gitmek istediğiniz yer olduğundan emin olun!" @@ -2967,6 +3047,11 @@ msgstr "Bu gitmek istediğiniz yer olduğundan emin olun!" msgid "Manage your muted words and tags" msgstr "" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2985,30 +3070,35 @@ msgstr "Bahsedilen kullanıcılar" msgid "Menu" msgstr "Menü" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Sunucudan mesaj: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -3016,7 +3106,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "" @@ -3035,13 +3125,13 @@ msgstr "" msgid "Moderation list by {0}" msgstr "{0} tarafından moderasyon listesi" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "<0/> tarafından moderasyon listesi" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "Sizin tarafınızdan moderasyon listesi" @@ -3083,11 +3173,11 @@ msgstr "Moderatör, içeriğe genel bir uyarı koymayı seçti." msgid "More" msgstr "" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Daha fazla besleme" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "Daha fazla seçenek" @@ -3112,7 +3202,7 @@ msgstr "" msgid "Mute Account" msgstr "Hesabı Sessize Al" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "Hesapları sessize al" @@ -3128,16 +3218,16 @@ msgstr "" msgid "Mute in text & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "Listeyi sessize al" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "Bu hesapları sessize al?" @@ -3188,7 +3278,7 @@ msgstr "" msgid "Muted words & tags" msgstr "" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Sessizlik özeldir. Sessize alınan hesaplar sizinle etkileşime geçebilir, ancak gönderilerini görmeyecek ve onlardan bildirim almayacaksınız." @@ -3197,11 +3287,11 @@ msgstr "Sessizlik özeldir. Sessize alınan hesaplar sizinle etkileşime geçebi msgid "My Birthday" msgstr "Doğum Günüm" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "Beslemelerim" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "Profilim" @@ -3222,27 +3312,27 @@ msgstr "Ad" msgid "Name is required" msgstr "Ad gerekli" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "Doğa" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Sonraki ekrana yönlendirir" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "Profilinize yönlendirir" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "" @@ -3256,11 +3346,11 @@ msgstr "" #~ msgid "Never lose access to your followers and data." #~ msgstr "Takipçilerinize ve verilerinize asla erişimi kaybetmeyin." -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "Takipçilerinize veya verilerinize asla erişimi kaybetmeyin." -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "" @@ -3274,8 +3364,8 @@ msgid "New" msgstr "Yeni" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -3291,22 +3381,22 @@ msgstr "Yeni şifre" msgid "New Password" msgstr "Yeni Şifre" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "Yeni gönderi" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "Yeni gönderi" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "Yeni Gönderi" @@ -3319,14 +3409,14 @@ msgstr "Yeni Kullanıcı Listesi" msgid "Newest replies first" msgstr "En yeni yanıtlar önce" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "Haberler" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3344,21 +3434,21 @@ msgstr "İleri" msgid "Next image" msgstr "Sonraki resim" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "Hayır" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "Açıklama yok" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "" @@ -3374,8 +3464,8 @@ msgstr "{0} artık takip edilmiyor" msgid "No longer than 253 characters" msgstr "" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3392,7 +3482,7 @@ msgstr "Sonuç yok" msgid "No results found" msgstr "" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "\"{query}\" için sonuç bulunamadı" @@ -3437,8 +3527,8 @@ msgstr "" msgid "Not Found" msgstr "Bulunamadı" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "Şu anda değil" @@ -3455,22 +3545,22 @@ msgstr "Not: Bluesky açık ve kamusal bir ağdır. Bu ayar yalnızca içeriğin #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "Bildirimler" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Çıplaklık" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "" @@ -3487,7 +3577,7 @@ msgstr "" msgid "Oh no!" msgstr "Oh hayır!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "Oh hayır! Bir şeyler yanlış gitti." @@ -3512,6 +3602,10 @@ msgstr "Onboarding sıfırlama" msgid "One or more images is missing alt text." msgstr "Bir veya daha fazla resimde alternatif metin eksik." +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "Yalnızca {0} yanıtlayabilir." @@ -3530,16 +3624,20 @@ msgstr "" msgid "Oops!" msgstr "Hata!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "Aç" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "Emoji seçiciyi aç" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "" @@ -3662,7 +3760,7 @@ msgstr "" msgid "Opens modal for email verification" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "Özel alan adı kullanımı için modalı açar" @@ -3670,12 +3768,12 @@ msgstr "Özel alan adı kullanımı için modalı açar" msgid "Opens moderation settings" msgstr "Moderasyon ayarlarını açar" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "Şifre sıfırlama formunu açar" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "Kayıtlı Beslemeleri düzenlemek için ekranı açar" @@ -3703,7 +3801,7 @@ msgstr "" msgid "Opens the linked website" msgstr "" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3724,6 +3822,7 @@ msgstr "Konu tercihlerini açar" msgid "Option {0} of {numItems}" msgstr "{0} seçeneği, {numItems} seçenekten" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "" @@ -3732,7 +3831,7 @@ msgstr "" msgid "Or combine these options:" msgstr "Veya bu seçenekleri birleştirin:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "" @@ -3757,10 +3856,10 @@ msgstr "Sayfa bulunamadı" msgid "Page Not Found" msgstr "Sayfa Bulunamadı" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "Şifre" @@ -3792,15 +3891,15 @@ msgstr "@{0} tarafından takip edilenler" msgid "People following @{0}" msgstr "@{0} tarafından takip edilenler" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "Kamera rulosuna erişim izni gerekiyor." -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Kamera rulosuna erişim izni reddedildi. Lütfen sistem ayarlarınızda etkinleştirin." -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "Evcil Hayvanlar" @@ -3808,20 +3907,20 @@ msgstr "Evcil Hayvanlar" #~ msgid "Phone number" #~ msgstr "Telefon numarası" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Yetişkinler için resimler." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "Ana ekrana sabitle" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "Sabitleme Beslemeleri" @@ -3846,19 +3945,19 @@ msgstr "Videoyu Oynat" msgid "Plays the GIF" msgstr "GIF'i oynatır" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "Kullanıcı adınızı seçin." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "Şifrenizi seçin." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "E-postanızı değiştirmeden önce onaylayın. Bu, e-posta güncelleme araçları eklenirken geçici bir gerekliliktir ve yakında kaldırılacaktır." @@ -3886,15 +3985,15 @@ msgstr "" #~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." #~ msgstr "{phoneNumberFormatted} numarasına gönderilen doğrulama kodunu girin." -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "E-postanızı girin." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "Lütfen şifrenizi de girin:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -3907,7 +4006,7 @@ msgstr "" #~ msgid "Please tell us why you think this content warning was incorrectly applied!" #~ msgstr "Lütfen bu içerik uyarısının yanlış uygulandığını düşündüğünüz nedeni bize bildirin!" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Lütfen E-postanızı Doğrulayın" @@ -3915,11 +4014,11 @@ msgstr "Lütfen E-postanızı Doğrulayın" msgid "Please wait for your link card to finish loading" msgstr "Bağlantı kartınızın yüklenmesini bekleyin" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "Politika" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "Pornografi" @@ -3987,7 +4086,7 @@ msgstr "Gönderiler" msgid "Posts can be muted based on their text, their tags, or both." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "Gönderiler gizlendi" @@ -4001,15 +4100,15 @@ msgstr "" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -4032,7 +4131,7 @@ msgstr "Gizlilik" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Gizlilik Politikası" @@ -4045,11 +4144,11 @@ msgstr "İşleniyor..." msgid "profile" msgstr "" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "Profil" @@ -4061,7 +4160,7 @@ msgstr "Profil güncellendi" msgid "Protect your account by verifying your email." msgstr "E-postanızı doğrulayarak hesabınızı koruyun." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "Herkese Açık" @@ -4103,6 +4202,10 @@ msgstr "Rastgele (yani \"Gönderenin Ruleti\")" msgid "Ratios" msgstr "Oranlar" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "" @@ -4116,11 +4219,11 @@ msgstr "" #~ msgstr "Önerilen Kullanıcılar" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Kaldır" @@ -4140,22 +4243,25 @@ msgstr "" msgid "Remove Banner" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "Beslemeyi kaldır" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "Beslemelerimden kaldır" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "" @@ -4183,7 +4289,7 @@ msgstr "Yeniden göndermeyi kaldır" #~ msgid "Remove this feed from my feeds?" #~ msgstr "Bu beslemeyi beslemelerimden kaldırsın mı?" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "" @@ -4196,11 +4302,13 @@ msgstr "" msgid "Removed from list" msgstr "Listeden kaldırıldı" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "Beslemelerimden kaldırıldı" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "" @@ -4212,6 +4320,11 @@ msgstr "{0} adresinden varsayılan küçük resmi kaldırır" msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "Yanıtlar" @@ -4225,7 +4338,7 @@ msgctxt "action" msgid "Reply" msgstr "Yanıtla" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "Yanıt Filtreleri" @@ -4251,24 +4364,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Hesabı Raporla" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "Beslemeyi raporla" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "Listeyi Raporla" @@ -4281,30 +4400,36 @@ msgstr "" msgid "Report post" msgstr "Gönderiyi raporla" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "Yeniden gönder" @@ -4342,8 +4467,8 @@ msgstr "gönderinizi yeniden gönderdi" msgid "Reposts of this post" msgstr "Bu gönderinin yeniden gönderilmesi" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "Değişiklik İste" @@ -4360,7 +4485,7 @@ msgstr "Kod İste" msgid "Require alt text before posting" msgstr "Göndermeden önce alternatif metin gerektir" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "" @@ -4368,8 +4493,8 @@ msgstr "" msgid "Required for this provider" msgstr "Bu sağlayıcı için gereklidir" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "" @@ -4411,7 +4536,7 @@ msgstr "Onboarding durumunu sıfırlar" msgid "Resets the preferences state" msgstr "Tercih durumunu sıfırlar" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "Giriş tekrar denemesi" @@ -4420,13 +4545,14 @@ msgstr "Giriş tekrar denemesi" msgid "Retries the last action, which errored out" msgstr "Son hataya neden olan son eylemi tekrarlar" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4434,11 +4560,11 @@ msgid "Retry" msgstr "Tekrar dene" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "Tekrar dene." +#~ msgid "Retry." +#~ msgstr "Tekrar dene." #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "Önceki sayfaya dön" @@ -4447,7 +4573,7 @@ msgid "Returns to home page" msgstr "" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "" @@ -4458,13 +4584,13 @@ msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Kaydet" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4482,7 +4608,7 @@ msgstr "" msgid "Save Changes" msgstr "Değişiklikleri Kaydet" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "Kullanıcı adı değişikliğini kaydet" @@ -4490,16 +4616,16 @@ msgstr "Kullanıcı adı değişikliğini kaydet" msgid "Save image crop" msgstr "Resim kırpma kaydet" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "Kayıtlı Beslemeler" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4507,7 +4633,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "" @@ -4515,7 +4642,7 @@ msgstr "" msgid "Saves any changes to your profile" msgstr "Profilinizdeki herhangi bir değişikliği kaydeder" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "{handle} kullanıcı adı değişikliğini kaydeder" @@ -4523,11 +4650,11 @@ msgstr "{handle} kullanıcı adı değişikliğini kaydeder" msgid "Saves image crop settings" msgstr "" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "Bilim" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "Başa kaydır" @@ -4540,12 +4667,12 @@ msgstr "Başa kaydır" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "Ara" @@ -4587,7 +4714,7 @@ msgstr "" msgid "Search Tenor" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "Güvenlik Adımı Gerekli" @@ -4612,7 +4739,7 @@ msgstr "" msgid "See profile" msgstr "" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "Bu kılavuzu gör" @@ -4624,10 +4751,22 @@ msgstr "Bu kılavuzu gör" msgid "Select {item}" msgstr "{item} seç" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/view/com/modals/ServerInput.tsx:75 #~ msgid "Select Bluesky Social" #~ msgstr "Bluesky Social seç" @@ -4665,6 +4804,10 @@ msgstr "{i} seçeneği, {numItems} seçenekten" msgid "Select some accounts below to follow" msgstr "Aşağıdaki hesaplardan bazılarını takip et" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4697,7 +4840,7 @@ msgstr "" msgid "Select your date of birth" msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "Aşağıdaki seçeneklerden ilgi alanlarınızı seçin" @@ -4717,30 +4860,32 @@ msgstr "Birincil algoritmik beslemelerinizi seçin" msgid "Select your secondary algorithmic feeds" msgstr "İkincil algoritmik beslemelerinizi seçin" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Onay E-postası Gönder" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "E-posta gönder" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "E-posta Gönder" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "Geribildirim gönder" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4754,12 +4899,12 @@ msgstr "" msgid "Send report to {0}" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "Hesap silme için onay kodu içeren e-posta gönderir" @@ -4809,15 +4954,15 @@ msgstr "Yeni şifre ayarla" #~ msgid "Set password" #~ msgstr "Şifre ayarla" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Bu ayarı \"Hayır\" olarak ayarlayarak beslemenizden tüm alıntı gönderileri gizleyebilirsiniz. Yeniden göndermeler hala görünür olacaktır." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Bu ayarı \"Hayır\" olarak ayarlayarak beslemenizden tüm yanıtları gizleyebilirsiniz." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Bu ayarı \"Hayır\" olarak ayarlayarak beslemenizden tüm yeniden göndermeleri gizleyebilirsiniz." @@ -4829,7 +4974,7 @@ msgstr "Bu ayarı \"Evet\" olarak ayarlayarak yanıtları konu tabanlı görünt #~ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." #~ msgstr "Bu ayarı \"Evet\" olarak ayarlayarak kayıtlı beslemelerinizin örneklerini takip ettiğiniz beslemede göstermek için ayarlayın. Bu deneysel bir özelliktir." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "" @@ -4837,7 +4982,7 @@ msgstr "" msgid "Set up your account" msgstr "Hesabınızı ayarlayın" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Bluesky kullanıcı adını ayarlar" @@ -4889,13 +5034,13 @@ msgstr "" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "Ayarlar" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "Cinsel aktivite veya erotik çıplaklık." @@ -4903,7 +5048,7 @@ msgstr "Cinsel aktivite veya erotik çıplaklık." msgid "Sexually Suggestive" msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "Paylaş" @@ -4913,7 +5058,7 @@ msgstr "Paylaş" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "Paylaş" @@ -4923,8 +5068,8 @@ msgstr "Paylaş" msgid "Share anyway" msgstr "" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "Beslemeyi paylaş" @@ -4991,11 +5136,11 @@ msgstr "Daha Fazla Göster" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Beslemelerimden Gönderileri Göster" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "Alıntı Gönderileri Göster" @@ -5011,7 +5156,7 @@ msgstr "Takip etme beslemesinde alıntıları göster" msgid "Show re-posts in Following feed" msgstr "Yeniden göndermeleri takip etme beslemesinde göster" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "Yanıtları Göster" @@ -5031,7 +5176,7 @@ msgstr "Takip etme beslemesinde yanıtları göster" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "En az {value} {0} olan yanıtları göster" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "Yeniden Göndermeleri Göster" @@ -5068,17 +5213,17 @@ msgstr "Beslemenizde {0} adresinden gönderileri gösterir" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -5116,12 +5261,12 @@ msgstr "" msgid "Sign out" msgstr "Çıkış yap" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -5150,12 +5295,12 @@ msgstr "@{0} olarak giriş yapıldı" #~ msgid "Signs {0} out of Bluesky" #~ msgstr "{0} adresini Bluesky'den çıkarır" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "Atla" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "Bu akışı atla" @@ -5163,10 +5308,14 @@ msgstr "Bu akışı atla" #~ msgid "SMS verification" #~ msgstr "SMS doğrulama" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "Yazılım Geliştirme" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/view/com/modals/ProfilePreview.tsx:62 #~ msgid "Something went wrong and we're not sure what." #~ msgstr "Bir şeyler yanlış gitti ve ne olduğundan emin değiliz." @@ -5181,8 +5330,8 @@ msgstr "" #~ msgid "Something went wrong. Check your email and try again." #~ msgstr "Bir şeyler yanlış gitti. E-postanızı kontrol edin ve tekrar deneyin." -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "Üzgünüz! Oturumunuzun süresi doldu. Lütfen tekrar giriş yapın." @@ -5194,19 +5343,20 @@ msgstr "Yanıtları Sırala" msgid "Sort replies to the same post by:" msgstr "Aynı gönderiye verilen yanıtları şuna göre sırala:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "Spor" @@ -5251,12 +5401,12 @@ msgstr "Depolama temizlendi, şimdi uygulamayı yeniden başlatmanız gerekiyor. msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Submit" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "Abone ol" @@ -5277,7 +5427,7 @@ msgstr "{0} beslemesine abone ol" msgid "Subscribe to this labeler" msgstr "" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "Bu listeye abone ol" @@ -5289,7 +5439,7 @@ msgstr "Önerilen Takipçiler" msgid "Suggested for you" msgstr "Sana önerilenler" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "Tehlikeli" @@ -5340,7 +5490,7 @@ msgstr "Uzun" msgid "Tap to view fully" msgstr "Tamamen görüntülemek için dokunun" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "Teknoloji" @@ -5352,13 +5502,13 @@ msgstr "Şartlar" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Hizmet Şartları" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "" @@ -5366,15 +5516,16 @@ msgstr "" msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "Metin giriş alanı" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "" @@ -5399,11 +5550,15 @@ msgstr "Topluluk Kuralları <0/> konumuna taşındı" msgid "The Copyright Policy has been moved to <0/>" msgstr "Telif Hakkı Politikası <0/> konumuna taşındı" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "" @@ -5433,15 +5588,17 @@ msgid "There are many feeds to try:" msgstr "Denemek için birçok besleme var:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Sunucuya ulaşma konusunda bir sorun oluştu, lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Bu beslemeyi kaldırma konusunda bir sorun oluştu. Lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Beslemelerinizi güncelleme konusunda bir sorun oluştu, lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." @@ -5453,16 +5610,17 @@ msgstr "" msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "Sunucuya ulaşma konusunda bir sorun oluştu" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "Sunucunuza ulaşma konusunda bir sorun oluştu" @@ -5470,7 +5628,7 @@ msgstr "Sunucunuza ulaşma konusunda bir sorun oluştu" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Bildirimleri almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Gönderileri almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." @@ -5483,6 +5641,7 @@ msgstr "Listeyi almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Listelerinizi almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" @@ -5509,10 +5668,10 @@ msgstr "Uygulama şifrelerinizi almakta bir sorun oluştu" msgid "There was an issue! {0}" msgstr "Bir sorun oluştu! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "Bir sorun oluştu. Lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." @@ -5541,7 +5700,7 @@ msgstr "Bu {screenDescription} işaretlendi:" msgid "This account has requested that users sign in to view their profile." msgstr "Bu hesap, kullanıcıların profilini görüntülemek için giriş yapmalarını istedi." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -5566,21 +5725,21 @@ msgstr "Bu içerik {0} tarafından barındırılıyor. Harici medyayı etkinleş msgid "This content is not available because one of the users involved has blocked the other." msgstr "Bu içerik, içerikte yer alan kullanıcılardan biri diğerini engellediği için mevcut değil." -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "Bu içerik, bir Bluesky hesabı olmadan görüntülenemez." -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Bu besleme şu anda yüksek trafik alıyor ve geçici olarak kullanılamıyor. Lütfen daha sonra tekrar deneyin." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "Bu besleme boş!" @@ -5588,11 +5747,15 @@ msgstr "Bu besleme boş!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Bu besleme boş! Daha fazla kullanıcı takip etmeniz veya dil ayarlarınızı ayarlamanız gerekebilir." +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Bu bilgi diğer kullanıcılarla paylaşılmaz." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "Bu, e-postanızı değiştirmeniz veya şifrenizi sıfırlamanız gerektiğinde önemlidir." @@ -5608,6 +5771,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "" @@ -5616,7 +5783,7 @@ msgstr "" msgid "This link is taking you to the following website:" msgstr "Bu bağlantı sizi aşağıdaki web sitesine götürüyor:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "Bu liste boş!" @@ -5649,7 +5816,7 @@ msgstr "" msgid "This service has not provided terms of service or a privacy policy." msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "" @@ -5715,10 +5882,14 @@ msgstr "Konu Tabanlı Mod" msgid "Threads Preferences" msgstr "Konu Tercihleri" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "" @@ -5760,25 +5931,25 @@ msgstr "Tekrar dene" msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "Listeyi engeli kaldır" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "Listeyi sessizden çıkar" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5788,7 +5959,7 @@ msgstr "Hizmetinize ulaşılamıyor. Lütfen internet bağlantınızı kontrol e #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "Engeli kaldır" @@ -5809,7 +5980,7 @@ msgstr "" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Yeniden göndermeyi geri al" @@ -5840,12 +6011,12 @@ msgstr "" #~ msgid "Unlike" #~ msgstr "Beğenmeyi geri al" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "Sessizden çıkar" @@ -5862,7 +6033,7 @@ msgstr "Hesabın sessizliğini kaldır" msgid "Unmute all {displayTag} posts" msgstr "" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5871,16 +6042,16 @@ msgstr "" msgid "Unmute thread" msgstr "Konunun sessizliğini kaldır" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "Sabitlemeyi kaldır" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "Moderasyon listesini sabitlemeyi kaldır" @@ -5896,7 +6067,12 @@ msgstr "" msgid "Unsubscribe from this labeler" msgstr "" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "" @@ -5908,7 +6084,7 @@ msgstr "Listelerde {displayName} güncelle" #~ msgid "Update Available" #~ msgstr "Güncelleme Mevcut" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "" @@ -5916,7 +6092,11 @@ msgstr "" msgid "Updating..." msgstr "Güncelleniyor..." -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Bir metin dosyası yükleyin:" @@ -5939,7 +6119,7 @@ msgstr "" msgid "Upload from Library" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "" @@ -5947,11 +6127,11 @@ msgstr "" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Uygulama şifrelerini kullanarak hesabınızın veya şifrenizin tam erişimini vermeden diğer Bluesky istemcilerine giriş yapın." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "Varsayılan sağlayıcıyı kullan" @@ -5965,7 +6145,11 @@ msgstr "Uygulama içi tarayıcıyı kullan" msgid "Use my default browser" msgstr "Varsayılan tarayıcımı kullan" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "" @@ -6011,13 +6195,13 @@ msgstr "Kullanıcı Sizi Engelledi" msgid "User list by {0}" msgstr "{0} tarafından oluşturulan kullanıcı listesi" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "<0/> tarafından oluşturulan kullanıcı listesi" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "Sizin tarafınızdan oluşturulan kullanıcı listesi" @@ -6033,11 +6217,11 @@ msgstr "Kullanıcı listesi güncellendi" msgid "User Lists" msgstr "Kullanıcı Listeleri" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "Kullanıcı adı veya e-posta adresi" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "Kullanıcılar" @@ -6053,7 +6237,7 @@ msgstr "\"{0}\" içindeki kullanıcılar" msgid "Users that have liked this content or profile" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "" @@ -6065,7 +6249,7 @@ msgstr "" #~ msgid "Verify {0}" #~ msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -6081,16 +6265,16 @@ msgstr "E-postamı doğrula" msgid "Verify My Email" msgstr "E-postamı Doğrula" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "Yeni E-postayı Doğrula" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "E-postanızı Doğrulayın" @@ -6102,7 +6286,7 @@ msgstr "E-postanızı Doğrulayın" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "Video Oyunları" @@ -6114,11 +6298,11 @@ msgstr "{0}'ın avatarını görüntüle" msgid "View debug entry" msgstr "Hata ayıklama girişini görüntüle" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "" @@ -6126,13 +6310,13 @@ msgstr "" msgid "View full thread" msgstr "Tam konuyu görüntüle" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Profili görüntüle" @@ -6144,7 +6328,7 @@ msgstr "Avatarı görüntüle" msgid "View the labeling service provided by @{0}" msgstr "" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "" @@ -6176,11 +6360,15 @@ msgstr "" msgid "We couldn't find any results for that hashtag." msgstr "" +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Hesabınızın hazır olmasına {estimatedTime} tahmin ediyoruz." -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Harika vakit geçirmenizi umuyoruz. Unutmayın, Bluesky:" @@ -6204,7 +6392,7 @@ msgstr "" msgid "We were unable to load your configured labelers at this time." msgstr "" -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Bağlantı kuramadık. Hesabınızı kurmaya devam etmek için tekrar deneyin. Başarısız olmaya devam ederse bu akışı atlayabilirsiniz." @@ -6216,7 +6404,7 @@ msgstr "Hesabınız hazır olduğunda size bildireceğiz." #~ msgid "We'll look into your appeal promptly." #~ msgstr "İtirazınıza hızlı bir şekilde bakacağız." -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "Bu, deneyiminizi özelleştirmenize yardımcı olmak için kullanılacak." @@ -6249,7 +6437,7 @@ msgstr "" #~ msgid "Welcome to <0>Bluesky" #~ msgstr "<0>Bluesky'e hoş geldiniz" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "İlgi alanlarınız nelerdir?" @@ -6276,23 +6464,31 @@ msgstr "Algoritmik beslemelerinizde hangi dilleri görmek istersiniz?" msgid "Who can reply" msgstr "Kimler yanıtlayabilir" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "" @@ -6300,8 +6496,8 @@ msgstr "" msgid "Wide" msgstr "Geniş" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -6314,7 +6510,7 @@ msgstr "Gönderi yaz" msgid "Write your reply" msgstr "Yanıtınızı yazın" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "Yazarlar" @@ -6323,16 +6519,16 @@ msgstr "Yazarlar" #~ msgstr "XXXXXX" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Evet" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -6366,15 +6562,15 @@ msgstr "" msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "Henüz hiç davet kodunuz yok! Bluesky'de biraz daha uzun süre kaldıktan sonra size bazı kodlar göndereceğiz." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "Sabitlemiş beslemeniz yok." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "Kaydedilmiş beslemeniz yok!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "Kaydedilmiş beslemeniz yok!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "Kaydedilmiş beslemeniz yok." @@ -6425,7 +6621,7 @@ msgstr "Beslemeniz yok." msgid "You have no lists." msgstr "Listeniz yok." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -6453,7 +6649,11 @@ msgstr "" msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" @@ -6485,7 +6685,7 @@ msgstr "Artık bu konu için bildirim alacaksınız" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Bir \"sıfırlama kodu\" içeren bir e-posta alacaksınız. Bu kodu buraya girin, ardından yeni şifrenizi girin." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -6499,7 +6699,7 @@ msgstr "Siz kontrol ediyorsunuz" msgid "You're in line" msgstr "Sıradasınız" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "Hazırsınız!" @@ -6520,7 +6720,7 @@ msgstr "Hesabınız" msgid "Your account has been deleted" msgstr "Hesabınız silindi" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "" @@ -6537,7 +6737,7 @@ msgid "Your default feed is \"Following\"" msgstr "Varsayılan beslemeniz \"Takip Edilenler\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "E-postanız geçersiz gibi görünüyor." @@ -6546,11 +6746,11 @@ msgstr "E-postanız geçersiz gibi görünüyor." #~ msgid "Your email has been saved! We'll be in touch soon." #~ msgstr "E-postanız kaydedildi! Yakında sizinle iletişime geçeceğiz." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "E-postanız güncellendi ancak doğrulanmadı. Bir sonraki adım olarak, lütfen yeni e-postanızı doğrulayın." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "E-postanız henüz doğrulanmadı. Bu, önerdiğimiz önemli bir güvenlik adımıdır." @@ -6562,7 +6762,7 @@ msgstr "Takip ettiğiniz besleme boş! Neler olduğunu görmek için daha fazla msgid "Your full handle will be" msgstr "Tam kullanıcı adınız" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "Tam kullanıcı adınız <0>@{0} olacak" @@ -6583,7 +6783,7 @@ msgstr "Şifreniz başarıyla değiştirildi!" msgid "Your post has been published" msgstr "Gönderiniz yayınlandı" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Gönderileriniz, beğenileriniz ve engellemeleriniz herkese açıktır. Sessizlikleriniz özeldir." @@ -6595,6 +6795,10 @@ msgstr "Profiliniz" msgid "Your reply has been published" msgstr "Yanıtınız yayınlandı" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Kullanıcı adınız" diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po index 430ceaaee9..591cfa87fd 100644 --- a/src/locale/locales/uk/messages.po +++ b/src/locale/locales/uk/messages.po @@ -18,7 +18,7 @@ msgstr "" "X-Crowdin-File: /main/src/locale/locales/en/messages.po\n" "X-Crowdin-File-ID: 14\n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(немає ел. адреси)" @@ -26,15 +26,15 @@ msgstr "(немає ел. адреси)" msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -56,7 +56,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -76,6 +76,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -95,15 +99,15 @@ msgstr "{following} підписок" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} непрочитаних" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -111,11 +115,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> учасників" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -140,7 +144,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>Підпишіться на деяких <1>рекомендованих <2>користувачів" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -152,7 +156,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Недопустимий псевдонім" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "" @@ -183,7 +187,7 @@ msgstr "" #~ msgid "account" #~ msgstr "обліковий запис" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -234,15 +238,15 @@ msgstr "Обліковий запис більше не ігнорується" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "Додати" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "Додати попередження про вміст" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "Додати користувача до списку" @@ -254,6 +258,7 @@ msgstr "Додати обліковий запис" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -261,8 +266,8 @@ msgid "Add alt text" msgstr "Додати альтернативний текст" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -286,7 +291,15 @@ msgstr "Додати слово до ігнорування з обраними msgid "Add muted words and tags" msgstr "Додати ігноровані слова та теги" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "Додайте наступний DNS-запис до вашого домену:" @@ -295,7 +308,7 @@ msgstr "Додайте наступний DNS-запис до вашого до msgid "Add to Lists" msgstr "Додати до списку" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "Додати до моїх стрічок" @@ -308,17 +321,17 @@ msgstr "Додати до моїх стрічок" msgid "Added to list" msgstr "Додано до списку" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "Додано до моїх стрічок" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Налаштуйте мінімальну кількість вподобань для того щоб відповідь відобразилася у вашій стрічці." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "Вміст для дорослих" @@ -331,7 +344,7 @@ msgstr "Контент для дорослих вимкнено." msgid "Advanced" msgstr "Розширені" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "Усі збережені стрічки в одному місці." @@ -364,12 +377,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "Альтернативний текст описує зображення для незрячих та користувачів із вадами зору, та надає додатковий контекст для всіх." -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "Було надіслано лист на адресу {0}. Він містить код підтвердження, який можна ввести нижче." -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Було надіслано лист на вашу попередню адресу, {0}. Він містить код підтвердження, який ви можете ввести нижче." @@ -377,11 +390,11 @@ msgstr "Було надіслано лист на вашу попередню а msgid "An error occured" msgstr "" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "Проблема не включена до цих варіантів" @@ -394,7 +407,7 @@ msgstr "Проблема не включена до цих варіантів" msgid "An issue occurred, please try again." msgstr "Виникла проблема, будь ласка, спробуйте ще раз." -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -403,7 +416,7 @@ msgstr "" msgid "and" msgstr "та" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "Тварини" @@ -411,7 +424,7 @@ msgstr "Тварини" msgid "Animated GIF" msgstr "" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "Антисоціальна поведінка" @@ -441,16 +454,16 @@ msgstr "Налаштування пароля застосунків" msgid "App Passwords" msgstr "Паролі для застосунків" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "Звернення" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "Оскаржити мітку \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -462,19 +475,24 @@ msgstr "" msgid "Appearance" msgstr "Оформлення" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Ви дійсно хочете видалити пароль для застосунку \"{name}\"?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Ви впевнені, що бажаєте видалити {0} зі стрічки?" @@ -490,11 +508,11 @@ msgstr "Ви впевнені?" msgid "Are you writing in <0>{0}?" msgstr "Ви пишете <0>{0}?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "Мистецтво" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "Художня або нееротична оголеність." @@ -502,17 +520,17 @@ msgstr "Художня або нееротична оголеність." msgid "At least 3 characters" msgstr "Не менше 3-х символів" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -540,8 +558,8 @@ msgstr "Дата народження:" msgid "Block" msgstr "Заблокувати" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -554,15 +572,15 @@ msgstr "Заблокувати" msgid "Block Account?" msgstr "Заблокувати обліковий запис?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "Заблокувати облікові записи" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "Заблокувати список" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "Заблокувати ці облікові записи?" @@ -596,7 +614,7 @@ msgstr "Заблокований пост." msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "Блокування не заважає цьому маркувальнику додавати мітку до вашого облікового запису." -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Блокування - це відкрита інформація. Заблоковані користувачі не можуть відповісти у ваших темах, згадувати вас або іншим чином взаємодіяти з вами." @@ -644,10 +662,15 @@ msgstr "Розмити зображення" msgid "Blur images and filter from feeds" msgstr "Розмити зображення і фільтрувати їх зі стрічки" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "Книги" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "Організація" @@ -694,9 +717,9 @@ msgstr "Може містити лише літери, цифри, пробіл #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -708,26 +731,26 @@ msgstr "Може містити лише літери, цифри, пробіл #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "Скасувати" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "Скасувати" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "Скасувати видалення облікового запису" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "Скасувати зміну псевдоніма" @@ -752,7 +775,7 @@ msgstr "Скасувати пошук" msgid "Cancels opening the linked website" msgstr "Скасовує відкриття посилання" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "Змінити" @@ -765,12 +788,12 @@ msgstr "Змінити" msgid "Change handle" msgstr "Змінити псевдонім" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "Змінити псевдонім" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "Змінити адресу електронної пошти" @@ -787,7 +810,7 @@ msgstr "Зміна пароля" msgid "Change post language to {0}" msgstr "Змінити мову поста на {0}" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "Змінити адресу електронної пошти" @@ -795,11 +818,11 @@ msgstr "Змінити адресу електронної пошти" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -825,11 +848,11 @@ msgstr "Перевірити мій статус" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Ознайомтеся з деякими рекомендованими користувачами. Слідкуйте за ними, щоб побачити дописи від подібних користувачів." -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Перевірте свою поштову скриньку на наявність електронного листа з кодом підтвердження та введіть його нижче:" @@ -841,7 +864,7 @@ msgstr "Виберіть \"Усі\" або \"Ніхто\"" msgid "Choose Service" msgstr "Оберіть хостинг-провайдера" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "Оберіть алгоритми, що наповнюватимуть ваші стрічки." @@ -850,6 +873,10 @@ msgstr "Оберіть алгоритми, що наповнюватимуть #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "Автори стрічок можуть обирати будь-які алгоритми для формування стрічки саме для вас." +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "Виберіть ваші основні стрічки" @@ -891,6 +918,10 @@ msgstr "Видаляє всі дані зі сховища" msgid "click here" msgstr "натисніть тут" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "Натисніть тут, щоб відкрити меню тегів для {tag}" @@ -899,7 +930,7 @@ msgstr "Натисніть тут, щоб відкрити меню тегів #~ msgid "Click here to open tag menu for #{tag}" #~ msgstr "Натисніть тут, щоб відкрити меню тегів для #{tag}" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "Клімат" @@ -968,11 +999,11 @@ msgstr "Закриває перегляд зображення" msgid "Collapses list of users for a given notification" msgstr "Згортає список користувачів для даного сповіщення" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "Комедія" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "Комікси" @@ -981,7 +1012,7 @@ msgstr "Комікси" msgid "Community Guidelines" msgstr "Правила спільноти" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "Завершіть ознайомлення та розпочніть користуватися вашим обліковим записом" @@ -1011,18 +1042,18 @@ msgstr "Налаштовано <0>у налаштуваннях модераці #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "Підтвердити" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "Підтвердити" @@ -1030,7 +1061,7 @@ msgstr "Підтвердити" msgid "Confirm content language settings" msgstr "Підтвердити налаштування мови вмісту" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "Підтвердити видалення облікового запису" @@ -1042,17 +1073,17 @@ msgstr "Підтвердіть ваш вік:" msgid "Confirm your birthdate" msgstr "Підтвердіть вашу дату народження" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "Код підтвердження" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "З’єднання..." @@ -1099,8 +1130,9 @@ msgstr "Тло контекстного меню натисніть, щоб за #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "Далі" @@ -1110,8 +1142,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "Продовжити як {0} (поточний користувач)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1125,7 +1158,7 @@ msgstr "Перейти до наступного кроку" msgid "Continue to the next step without following any accounts" msgstr "Перейдіть до наступного кроку, ні на кого не підписуючись" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "Кухарство" @@ -1138,9 +1171,9 @@ msgstr "Скопійовано" msgid "Copied build version to clipboard" msgstr "Версію збірки скопійовано до буфера обміну" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1158,7 +1191,7 @@ msgstr "Копіює пароль застосунку" msgid "Copy" msgstr "Скопіювати" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "Копіювати {0}" @@ -1167,7 +1200,7 @@ msgstr "Копіювати {0}" msgid "Copy code" msgstr "Скопіювати код" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "Копіювати посилання на список" @@ -1191,15 +1224,15 @@ msgstr "Копіювати текст повідомлення" msgid "Copyright Policy" msgstr "Політика захисту авторського права" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "Не вдалося завантажити стрічку" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "Не вдалося завантажити список" @@ -1207,13 +1240,13 @@ msgstr "Не вдалося завантажити список" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1233,6 +1266,10 @@ msgstr "Створити обліковий запис" msgid "Create an account" msgstr "Створити обліковий запис" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "Створити пароль застосунку" @@ -1242,7 +1279,7 @@ msgstr "Створити пароль застосунку" msgid "Create new account" msgstr "Створити новий обліковий запис" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "Створити звіт для {0}" @@ -1254,7 +1291,7 @@ msgstr "Створено: {0}" #~ msgid "Creates a card with a thumbnail. The card links to {url}" #~ msgstr "Створює картку з мініатюрою. Посилання картки: {url}" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "Культура" @@ -1263,12 +1300,12 @@ msgstr "Культура" msgid "Custom" msgstr "Користувацький" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "Власний домен" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "Кастомні стрічки, створені спільнотою, подарують вам нові враження та допоможуть знайти контент, який ви любите." @@ -1301,10 +1338,10 @@ msgstr "Налагодження модерації" msgid "Debug panel" msgstr "Панель налагодження" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "Видалити" @@ -1316,7 +1353,7 @@ msgstr "Видалити обліковий запис" #~ msgid "Delete Account" #~ msgstr "Видалити обліковий запис" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1332,11 +1369,11 @@ msgstr "Видалити пароль для застосунку?" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "Видалити список" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1344,7 +1381,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "Видалити мій обліковий запис" @@ -1357,7 +1394,7 @@ msgstr "Видалити мій обліковий запис..." msgid "Delete post" msgstr "Видалити пост" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "Видалити цей список?" @@ -1396,7 +1433,7 @@ msgstr "Тьмяний" msgid "Disable autoplay for GIFs" msgstr "" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "" @@ -1437,7 +1474,7 @@ msgstr "Попросити застосунки не показувати мій msgid "Discover new custom feeds" msgstr "Відкрийте для себе нові стрічки" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "Відкрийте для себе нові стрічки" @@ -1449,7 +1486,7 @@ msgstr "Ім'я" msgid "Display Name" msgstr "Ім'я" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "Панель DNS" @@ -1461,11 +1498,11 @@ msgstr "Не містить оголеності." msgid "Doesn't begin or end with a hyphen" msgstr "Не починається або закінчується дефісом" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "Значення домену" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "Домен перевірено!" @@ -1473,6 +1510,8 @@ msgstr "Домен перевірено!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1481,15 +1520,13 @@ msgstr "Домен перевірено!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "Готово" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1503,8 +1540,8 @@ msgstr "Готово" msgid "Done{extraText}" msgstr "Готово{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "Завантажити CAR файл" @@ -1516,7 +1553,7 @@ msgstr "Перетягніть і відпустіть, щоб додати зо msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Через політику компанії Apple, перегляд вмісту для дорослих можна ввімкнути лише в інтернеті після реєстрації." -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "для прикладу, olenka" @@ -1524,7 +1561,7 @@ msgstr "для прикладу, olenka" msgid "e.g. Alice Roberts" msgstr "напр. Тарас Шевченко" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "для прикладу, olenka.ua" @@ -1571,7 +1608,7 @@ msgstr "Змінити фото профілю" msgid "Edit image" msgstr "Редагувати зображення" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "Редагувати опис списку" @@ -1580,8 +1617,8 @@ msgid "Edit Moderation List" msgstr "Редагування списку" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "Редагувати мої стрічки" @@ -1600,7 +1637,7 @@ msgid "Edit Profile" msgstr "Редагувати профіль" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "Редагувати збережені стрічки" @@ -1616,16 +1653,16 @@ msgstr "Редагувати ваш псевдонім для показу" msgid "Edit your profile description" msgstr "Редагувати опис вашого профілю" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "Освіта" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "Ел. адреса" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "" @@ -1633,16 +1670,16 @@ msgstr "" msgid "Email address" msgstr "Адреса електронної пошти" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "Електронну адресу змінено" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "Ел. адресу оновлено" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "Електронну адресу перевірено" @@ -1690,7 +1727,7 @@ msgstr "Увімкнути зовнішні медіа" msgid "Enable media players for" msgstr "Увімкнути медіапрогравачі для" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "Увімкніть цей параметр, щоб бачити відповіді тільки від людей, на яких ви підписані." @@ -1719,7 +1756,7 @@ msgstr "Введіть пароль" msgid "Enter a word or tag" msgstr "Введіть слово або тег" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "Введіть код підтвердження" @@ -1727,7 +1764,7 @@ msgstr "Введіть код підтвердження" msgid "Enter the code you received to change your password." msgstr "Введіть код, який ви отримали, щоб змінити пароль." -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "Введіть домен, який ви хочете використовувати" @@ -1744,11 +1781,11 @@ msgstr "Введіть вашу дату народження" msgid "Enter your email address" msgstr "Введіть адресу електронної пошти" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "Введіть вашу нову електронну пошту вище" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "Введіть нову адресу електронної пошти." @@ -1756,11 +1793,15 @@ msgstr "Введіть нову адресу електронної пошти." msgid "Enter your username and password" msgstr "Введіть псевдонім та пароль" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Помилка отримання відповіді Captcha." -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "Помилка:" @@ -1769,15 +1810,19 @@ msgstr "Помилка:" msgid "Everybody" msgstr "Усі" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "Спам; надмірні згадки або відповіді" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "Виходить з процесу видалення облікового запису" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "Вихід з процесу зміни псевдоніму користувача" @@ -1815,7 +1860,7 @@ msgstr "Відверті сексуальні зображення." msgid "Export my data" msgstr "Експорт моїх даних" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "Експорт моїх даних" @@ -1849,7 +1894,7 @@ msgstr "Не вдалося створити пароль застосунку." msgid "Failed to create the list. Check your internet connection and try again." msgstr "Не вдалося створити список. Перевірте інтернет-з'єднання і спробуйте ще раз." -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -1861,7 +1906,7 @@ msgstr "Не вдалося видалити пост, спробуйте ще msgid "Failed to load GIFs" msgstr "" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -1870,35 +1915,39 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "Не вдалося завантажити рекомендації стрічок" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "Не вдалося зберегти зображення: {0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "Стрічка" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "Стрічка від {0}" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "Стрічка не працює" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "Зворотний зв'язок" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "Стрічки" @@ -1906,7 +1955,7 @@ msgstr "Стрічки" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "Стрічки створюються користувачами для відбору постів. Оберіть стрічки, що вас цікавлять." -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Стрічки – це алгоритми, створені користувачами з деяким досвідом програмування. <0/> для додаткової інформації." @@ -1914,15 +1963,19 @@ msgstr "Стрічки – це алгоритми, створені корис msgid "Feeds can be topical as well!" msgstr "Стрічки також можуть бути тематичними!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "Вміст файлу" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "Фільтрувати зі стрічок" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "Завершення" @@ -1948,7 +2001,7 @@ msgstr "" #~ msgid "Finding similar accounts..." #~ msgstr "Пошук подібних облікових записів..." -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "Оберіть, що ви хочете бачити у своїй стрічці підписок." @@ -1956,11 +2009,11 @@ msgstr "Оберіть, що ви хочете бачити у своїй стр msgid "Fine-tune the discussion threads." msgstr "Налаштуйте відображення обговорень." -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "Фітнес" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "Гнучкий" @@ -2022,7 +2075,7 @@ msgstr "Підписані {0}" msgid "Followed users" msgstr "Ваші підписки" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "Тільки ваші підписки" @@ -2040,7 +2093,9 @@ msgstr "Підписники" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "Підписані" @@ -2055,7 +2110,7 @@ msgstr "Налаштування стрічки підписок" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "Налаштування стрічки підписок" @@ -2068,11 +2123,11 @@ msgstr "Підписаний(-на) на вас" msgid "Follows You" msgstr "Підписаний(-на) на вас" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "Їжа" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "З міркувань безпеки нам потрібно буде відправити код підтвердження на вашу електронну адресу." @@ -2085,15 +2140,15 @@ msgstr "З міркувань безпеки цей пароль відобра msgid "Forgot Password" msgstr "Забули пароль" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "Забули пароль?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "Забули пароль?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "Часто публікує неприйнятний контент" @@ -2110,12 +2165,16 @@ msgstr "Зі стрічки \"<0/>\"" msgid "Gallery" msgstr "Галерея" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "Почати" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "Грубі порушення закону чи умов використання" @@ -2124,9 +2183,9 @@ msgstr "Грубі порушення закону чи умов викорис #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "Назад" @@ -2134,12 +2193,13 @@ msgstr "Назад" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "Назад" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2165,11 +2225,11 @@ msgstr "Повернутися на головну" msgid "Go to next" msgstr "Далі" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2177,7 +2237,7 @@ msgstr "" msgid "Graphic Media" msgstr "Графічний медіаконтент" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "Псевдонім" @@ -2185,7 +2245,7 @@ msgstr "Псевдонім" msgid "Haptics" msgstr "" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "Домагання, тролінг або нетерпимість" @@ -2193,7 +2253,7 @@ msgstr "Домагання, тролінг або нетерпимість" msgid "Hashtag" msgstr "Хештег" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "Хештег: #{tag}" @@ -2202,10 +2262,14 @@ msgid "Having trouble?" msgstr "Виникли проблеми?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "Довідка" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "Ось деякі облікові записи, на які ви підписані" @@ -2258,23 +2322,23 @@ msgstr "Сховати цей пост?" msgid "Hide user list" msgstr "Сховати список користувачів" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "Хм, при зв'язку з сервером стрічки виникла якась проблема. Будь ласка, повідомте про це її власника." -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "Хм, здається сервер стрічки налаштовано неправильно. Будь ласка, повідомте про це її власника." -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "Хм, здається сервер стрічки зараз не працює. Будь ласка, повідомте про це її власника." -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "Хм, сервер стрічки надіслав нам незрозумілу відповідь. Будь ласка, повідомте про це її власника." -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Хм, ми не можемо знайти цю стрічку. Можливо вона була видалена." @@ -2287,21 +2351,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "Хм, ми не змогли завантажити цей сервіс модерації." #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "Головна" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "Host:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "Хостинг-провайдер" @@ -2309,25 +2373,29 @@ msgstr "Хостинг-провайдер" msgid "How should we open this link?" msgstr "Як ви хочете відкрити це посилання?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "У мене є код" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "У мене є код підтвердження" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "Я маю власний домен" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "Розкриває альтернативний текст, якщо текст задовгий" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "Якщо не вибрано жодного варіанту - підходить для всіх." @@ -2335,7 +2403,7 @@ msgstr "Якщо не вибрано жодного варіанту - підх msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "Якщо ви ще не досягли повноліття відповідно до законів вашої країни, ваш батьківський або юридичний опікун повинен прочитати ці Умови від вашого імені." -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "Якщо ви видалите цей список, ви не зможете його відновити." @@ -2347,7 +2415,7 @@ msgstr "Якщо ви видалите цей пост, ви не зможете msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "Якщо ви хочете змінити пароль, ми надішлемо вам код, щоб переконатися, що це ваш обліковий запис." -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "Незаконний та невідкладний" @@ -2359,7 +2427,7 @@ msgstr "Зображення" msgid "Image alt text" msgstr "Опис зображення" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "Видавання себе за іншу особу або неправдиві твердження про особу чи приналежність" @@ -2367,7 +2435,7 @@ msgstr "Видавання себе за іншу особу або неправ msgid "Input code sent to your email for password reset" msgstr "Введіть код, надісланий на вашу електронну пошту для скидання пароля" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "Введіть код підтвердження для видалення облікового запису" @@ -2379,27 +2447,27 @@ msgstr "Введіть ім'я для пароля застосунку" msgid "Input new password" msgstr "Введіть новий пароль" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "Введіть пароль для видалення облікового запису" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "Введіть пароль, прив'язаний до {identifier}" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "Введіть псевдонім або ел. адресу, які ви використовували для реєстрації" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "Введіть ваш пароль" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "Введіть бажаного хостинг-провайдера" @@ -2407,8 +2475,8 @@ msgstr "Введіть бажаного хостинг-провайдера" msgid "Input your user handle" msgstr "Введіть ваш псевдонім" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" @@ -2416,7 +2484,7 @@ msgstr "" msgid "Invalid or unsupported post record" msgstr "Невірний або непідтримуваний пост" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "Невірне ім'я користувача або пароль" @@ -2428,7 +2496,7 @@ msgstr "Запросити друга" msgid "Invite code" msgstr "Код запрошення" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Код запрошення не прийнято. Переконайтеся в його правильності та повторіть спробу." @@ -2448,7 +2516,7 @@ msgstr "Ми показуємо пости людей, за якими ви сл msgid "Jobs" msgstr "Вакансії" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "Журналістика" @@ -2476,11 +2544,11 @@ msgstr "Мітки є анотаціями для користувачів і к #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "мітка була розміщена на {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "Мітки на вашому обліковому записі" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "Мітки на вашому контенті" @@ -2528,13 +2596,13 @@ msgstr "Дізнатися більше про те, що є публічним msgid "Learn more." msgstr "Дізнатися більше." -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2559,7 +2627,7 @@ msgstr "Старе сховище очищено, тепер вам потріб msgid "Let's get your password reset!" msgstr "Давайте відновимо ваш пароль!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "Злітаємо!" @@ -2572,7 +2640,7 @@ msgstr "Світла" #~ msgstr "Вподобати" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Вподобати цю стрічку" @@ -2626,19 +2694,19 @@ msgstr "Список" msgid "List Avatar" msgstr "Аватар списку" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "Список заблоковано" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "Список від {0}" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "Список видалено" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "Список ігнорується" @@ -2646,20 +2714,20 @@ msgstr "Список ігнорується" msgid "List Name" msgstr "Назва списку" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "Список розблоковано" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "Список більше не ігнорується" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "Списки" @@ -2668,9 +2736,9 @@ msgid "Load new notifications" msgstr "Завантажити нові сповіщення" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "Завантажити нові пости" @@ -2697,7 +2765,7 @@ msgstr "Видимість для користувачів без обліков msgid "Login to account that is not listed" msgstr "Увійти до облікового запису, якого немає в списку" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "" @@ -2705,6 +2773,18 @@ msgstr "" msgid "Looks like XXXXX-XXXXX" msgstr "Виглядає як XXXXX-XXXXXXX" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "Переконайтеся, що це дійсно той сайт, що ви збираєтеся відвідати!" @@ -2713,6 +2793,11 @@ msgstr "Переконайтеся, що це дійсно той сайт, що msgid "Manage your muted words and tags" msgstr "Налаштовуйте ваші ігноровані слова та теги" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2731,30 +2816,35 @@ msgstr "Згадані користувачі" msgid "Menu" msgstr "Меню" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "Повідомлення від сервера: {0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -2762,7 +2852,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "Оманливий обліковий запис" @@ -2781,13 +2871,13 @@ msgstr "Деталі модерації" msgid "Moderation list by {0}" msgstr "Список модерації від {0}" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "Список модерації від <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "Список модерації від вас" @@ -2829,11 +2919,11 @@ msgstr "Модератор вирішив встановити загальне msgid "More" msgstr "Більше" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "Більше стрічок" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "Додаткові опції" @@ -2854,7 +2944,7 @@ msgstr "Ігнорувати {truncatedTag}" msgid "Mute Account" msgstr "Ігнорувати обліковий запис" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "Ігнорувати облікові записи" @@ -2870,16 +2960,16 @@ msgstr "Ігнорувати лише в тегах" msgid "Mute in text & tags" msgstr "Ігнорувати в тексті та тегах" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "Ігнорувати список" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "Ігнорувати ці облікові записи?" @@ -2926,7 +3016,7 @@ msgstr "Проігноровано списком \"{0}\"" msgid "Muted words & tags" msgstr "Ігноровані слова та теги" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Ігнорування є приватним. Ігноровані користувачі можуть взаємодіяти з вами, але ви не бачитимете їх пости і не отримуватимете від них сповіщень." @@ -2935,11 +3025,11 @@ msgstr "Ігнорування є приватним. Ігноровані ко msgid "My Birthday" msgstr "Мій день народження" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "Мої стрічки" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "Мій профіль" @@ -2960,27 +3050,27 @@ msgstr "Ім'я" msgid "Name is required" msgstr "Необхідна назва" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "Ім'я чи Опис порушують стандарти спільноти" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "Природа" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Переходить до наступного екрана" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "Переходить до вашого профілю" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "Хочете повідомити про порушення авторських прав?" @@ -2989,11 +3079,11 @@ msgstr "Хочете повідомити про порушення авторс #~ msgid "Never lose access to your followers and data." #~ msgstr "Ніколи не втрачайте доступ до ваших даних та підписників." -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "Ніколи не втрачайте доступ до ваших підписників та даних." -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "Неважливо, створіть для мене псевдонім" @@ -3007,8 +3097,8 @@ msgid "New" msgstr "Новий" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -3024,22 +3114,22 @@ msgstr "Новий пароль" msgid "New Password" msgstr "Новий Пароль" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "Новий пост" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "Новий пост" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "Новий пост" @@ -3052,14 +3142,14 @@ msgstr "Новий список користувачів" msgid "Newest replies first" msgstr "Спочатку найновіші" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "Новини" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3077,21 +3167,21 @@ msgstr "Далі" msgid "Next image" msgstr "Наступне зображення" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "Ні" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "Опис відсутній" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "Немає панелі DNS" @@ -3107,8 +3197,8 @@ msgstr "Ви більше не підписані на {0}" msgid "No longer than 253 characters" msgstr "Не може бути довшим за 253 символи" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3125,7 +3215,7 @@ msgstr "Результати відсутні" msgid "No results found" msgstr "Нічого не знайдено" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "Нічого не знайдено за запитом «{query}»" @@ -3170,8 +3260,8 @@ msgstr "Несексуальна оголеність" msgid "Not Found" msgstr "Не знайдено" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "Пізніше" @@ -3188,22 +3278,22 @@ msgstr "Примітка: Bluesky є відкритою і публічною м #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "Сповіщення" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "Оголеність" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "Нагота чи матеріали для дорослих не позначені відповідним чином" @@ -3220,7 +3310,7 @@ msgstr "Вимкнено" msgid "Oh no!" msgstr "О, ні!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "Ой! Щось пішло не так." @@ -3245,6 +3335,10 @@ msgstr "Скинути ознайомлення" msgid "One or more images is missing alt text." msgstr "Для одного або кількох зображень відсутній опис." +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "Тільки {0} можуть відповідати." @@ -3263,16 +3357,20 @@ msgstr "Ой, щось пішло не так!" msgid "Oops!" msgstr "Ой!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "Відкрити" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "Емоджі" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "Відкрити меню налаштувань стрічки" @@ -3375,7 +3473,7 @@ msgstr "Відкриває модальне вікно для завантаже msgid "Opens modal for email verification" msgstr "Відкриває модальне вікно для перевірки електронної пошти" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "Відкриває діалог налаштування власного домену як псевдоніму" @@ -3383,12 +3481,12 @@ msgstr "Відкриває діалог налаштування власног msgid "Opens moderation settings" msgstr "Відкриває налаштування модерації" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "Відкриває форму скидання пароля" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "Відкриває сторінку з усіма збереженими стрічками" @@ -3408,7 +3506,7 @@ msgstr "Відкриває налаштування стрічки підпис msgid "Opens the linked website" msgstr "Відкриває посилання" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3429,6 +3527,7 @@ msgstr "Відкриває налаштування гілок" msgid "Option {0} of {numItems}" msgstr "Опція {0} з {numItems}" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "За бажанням надайте додаткову інформацію нижче:" @@ -3437,7 +3536,7 @@ msgstr "За бажанням надайте додаткову інформац msgid "Or combine these options:" msgstr "Або якісь із наступних варіантів:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "Інше" @@ -3458,10 +3557,10 @@ msgstr "Сторінку не знайдено" msgid "Page Not Found" msgstr "Сторінку не знайдено" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "Пароль" @@ -3493,32 +3592,32 @@ msgstr "Люди, на яких підписаний(-на) @{0}" msgid "People following @{0}" msgstr "Люди, які підписані на @{0}" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "Потрібен дозвіл на доступ до камери." -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "Дозвіл на доступ до камери був заборонений. Будь ласка, включіть його в налаштуваннях системи." -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "Домашні улюбленці" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "Зображення, призначені для дорослих." -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "Закріпити" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "Закріпити на головній" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "Закріплені стрічки" @@ -3543,19 +3642,19 @@ msgstr "Відтворити відео" msgid "Plays the GIF" msgstr "Відтворює GIF" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "Будь ласка, оберіть псевдонім." -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "Будь ласка, оберіть ваш пароль." -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "Будь ласка, завершіть перевірку Captcha." -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Будь ласка, підтвердіть вашу електронну адресу, перш ніж змінити її. Це тимчасова вимога під час додавання інструментів оновлення електронної адреси, незабаром її видалять." @@ -3571,15 +3670,15 @@ msgstr "Будь ласка, введіть унікальну назву для msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Будь ласка, введіть допустиме слово, тег або фразу для ігнорування" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "Будь ласка, введіть адресу ел. пошти." -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "Будь ласка, також введіть ваш пароль:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Будь ласка, поясніть, чому ви вважаєте, що ця позначка була помилково додана до {0}" @@ -3587,7 +3686,7 @@ msgstr "Будь ласка, поясніть, чому ви вважаєте, msgid "Please sign in as @{0}" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "Підтвердьте свою адресу електронної пошти" @@ -3595,11 +3694,11 @@ msgstr "Підтвердьте свою адресу електронної по msgid "Please wait for your link card to finish loading" msgstr "Будь ласка, зачекайте доки завершиться створення попереднього перегляду для посилання" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "Політика" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "Порнографія" @@ -3667,7 +3766,7 @@ msgstr "Пости" msgid "Posts can be muted based on their text, their tags, or both." msgstr "Пости можуть бути ігноровані за їхнім текстом, тегами чи за обома." -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "Пости приховано" @@ -3681,15 +3780,15 @@ msgstr "Змінити хостинг-провайдера" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "Натисніть, щоб повторити спробу" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3712,7 +3811,7 @@ msgstr "Конфіденційність" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Політика конфіденційності" @@ -3725,11 +3824,11 @@ msgstr "Обробка..." msgid "profile" msgstr "профіль" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "Профіль" @@ -3741,7 +3840,7 @@ msgstr "Профіль оновлено" msgid "Protect your account by verifying your email." msgstr "Захистіть свій обліковий запис, підтвердивши свою електронну адресу." -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "Публічний" @@ -3783,6 +3882,10 @@ msgstr "У випадковому порядку" msgid "Ratios" msgstr "Співвідношення сторін" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "Останні запити" @@ -3796,11 +3899,11 @@ msgstr "Останні запити" #~ msgstr "Рекомендовані користувачі" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "Видалити" @@ -3816,22 +3919,25 @@ msgstr "Видалити аватар" msgid "Remove Banner" msgstr "Видалити банер" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "Видалити стрічку" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "Видалити стрічку?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "Вилучити з моїх стрічок" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "Видалити з моїх стрічок?" @@ -3855,7 +3961,7 @@ msgstr "" msgid "Remove repost" msgstr "Видалити репост" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "Вилучити цю стрічку зі збережених стрічок" @@ -3864,11 +3970,13 @@ msgstr "Вилучити цю стрічку зі збережених стрі msgid "Removed from list" msgstr "Вилучено зі списку" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "Вилучено з моїх стрічок" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "Видалено з моїх стрічок" @@ -3880,6 +3988,11 @@ msgstr "Видаляє мініатюру за замовчуванням з {0} msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "Відповіді" @@ -3893,7 +4006,7 @@ msgctxt "action" msgid "Reply" msgstr "Відповісти" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "Які відповіді показувати" @@ -3915,24 +4028,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "Поскаржитись на обліковий запис" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "Діалогове вікно для скарг" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "Поскаржитись на стрічку" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "Поскаржитись на список" @@ -3945,30 +4064,36 @@ msgstr "" msgid "Report post" msgstr "Поскаржитись на пост" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "Повідомити про цей вміст" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "Повідомити про цю стрічку" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "Поскаржитись на цей список" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "Поскаржитись на цей пост" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "Поскаржитись на цього користувача" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "Репост" @@ -4006,8 +4131,8 @@ msgstr "зробив(-ла) репост вашого допису" msgid "Reposts of this post" msgstr "Репости цього поста" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "Змінити" @@ -4020,7 +4145,7 @@ msgstr "Надіслати запит на код" msgid "Require alt text before posting" msgstr "Вимагати опис зображень перед публікацією" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "" @@ -4028,8 +4153,8 @@ msgstr "" msgid "Required for this provider" msgstr "Вимагається цим хостинг-провайдером" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "" @@ -4063,7 +4188,7 @@ msgstr "" msgid "Resets the preferences state" msgstr "" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "Повторити спробу" @@ -4072,13 +4197,14 @@ msgstr "Повторити спробу" msgid "Retries the last action, which errored out" msgstr "Повторити останню дію, яка спричинила помилку" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4086,11 +4212,11 @@ msgid "Retry" msgstr "Повторити спробу" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "Повернутися до попередньої сторінки" @@ -4099,20 +4225,20 @@ msgid "Returns to home page" msgstr "Повертає до головної сторінки" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "Повертає до попередньої сторінки" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "Зберегти" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4130,7 +4256,7 @@ msgstr "Зберегти день народження" msgid "Save Changes" msgstr "Зберегти зміни" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "Зберегти новий псевдонім" @@ -4138,16 +4264,16 @@ msgstr "Зберегти новий псевдонім" msgid "Save image crop" msgstr "Обрізати зображення" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "Зберегти до моїх стрічок" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "Збережені стрічки" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4155,7 +4281,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "Збережено до галереї." -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "Збережено до ваших стрічок" @@ -4163,7 +4290,7 @@ msgstr "Збережено до ваших стрічок" msgid "Saves any changes to your profile" msgstr "Зберігає зміни вашого профілю" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "Зберігає зміню псевдоніму на {handle}" @@ -4171,11 +4298,11 @@ msgstr "Зберігає зміню псевдоніму на {handle}" msgid "Saves image crop settings" msgstr "Зберігає налаштування обрізання зображення" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "Наука" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "Прогорнути вгору" @@ -4188,12 +4315,12 @@ msgstr "Прогорнути вгору" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "Пошук" @@ -4235,7 +4362,7 @@ msgstr "" msgid "Search Tenor" msgstr "" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "Потрібен код підтвердження" @@ -4260,7 +4387,7 @@ msgstr "Переглянути пости цього користувача з < msgid "See profile" msgstr "Переглянути профіль" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "Перегляньте цей посібник" @@ -4272,10 +4399,22 @@ msgstr "Перегляньте цей посібник" msgid "Select {item}" msgstr "Обрати {item}" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "Обрати обліковий запис" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "Вибрати існуючий обліковий запис" @@ -4304,6 +4443,10 @@ msgstr "Обрати варіант {i} із {numItems}" msgid "Select some accounts below to follow" msgstr "Оберіть деякі облікові записи, щоб підписатися" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "Оберіть сервіс модерації для скарги" @@ -4332,7 +4475,7 @@ msgstr "Оберіть мову застосунку для відображен msgid "Select your date of birth" msgstr "Оберіть дату народження" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "Виберіть ваші інтереси із нижченаведених варіантів" @@ -4348,30 +4491,32 @@ msgstr "Оберіть ваші основні алгоритмічні стрі msgid "Select your secondary algorithmic feeds" msgstr "Оберіть ваші другорядні алгоритмічні стрічки" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "Надіслати лист із кодом підтвердження" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "Надіслати ел. листа" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "Надіслати ел. лист" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "Надіслати відгук" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4381,12 +4526,12 @@ msgstr "Поскаржитись" msgid "Send report to {0}" msgstr "Надіслати скаргу до {0}" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "Надсилає електронний лист з кодом підтвердження видалення облікового запису" @@ -4402,15 +4547,15 @@ msgstr "Додати дату народження" msgid "Set new password" msgstr "Зміна пароля" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Вимкніть цей параметр, щоб приховати всі цитовані пости у вашій стрічці. Не впливає на репости без цитування." -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Вимкніть цей параметр, щоб приховати всі відповіді у вашій стрічці." -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Вимкніть цей параметр, щоб приховати всі репости у вашій стрічці." @@ -4418,7 +4563,7 @@ msgstr "Вимкніть цей параметр, щоб приховати вс msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Увімкніть це налаштування, щоб показувати відповіді у вигляді гілок. Це експериментальна функція." -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "Увімкніть це налаштування, щоб іноді бачити пости зі збережених стрічок у вашій домашній стрічці. Це експериментальна функція." @@ -4426,7 +4571,7 @@ msgstr "Увімкніть це налаштування, щоб іноді ба msgid "Set up your account" msgstr "Налаштуйте ваш обліковий запис" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "Встановлює псевдонім Bluesky" @@ -4469,13 +4614,13 @@ msgstr "Встановлює співвідношення сторін зобр #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "Налаштування" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "Сексуальна активність або еротична оголеність." @@ -4483,7 +4628,7 @@ msgstr "Сексуальна активність або еротична ого msgid "Sexually Suggestive" msgstr "З сексуальним підтекстом" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "Поширити" @@ -4493,7 +4638,7 @@ msgstr "Поширити" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "Поширити" @@ -4503,8 +4648,8 @@ msgstr "Поширити" msgid "Share anyway" msgstr "Все одно поширити" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "Поширити стрічку" @@ -4567,11 +4712,11 @@ msgstr "Показати більше" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Показувати пости зі збережених стрічок" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "Показувати цитати" @@ -4587,7 +4732,7 @@ msgstr "Показувати цитування у стрічці \"Following\"" msgid "Show re-posts in Following feed" msgstr "Показувати репости у стрічці \"Following\"" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "Показувати відповіді" @@ -4607,7 +4752,7 @@ msgstr "Показувати відповіді у стрічці \"Following\"" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "Показувати відповіді від {value} {0}" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "Показувати репости" @@ -4640,17 +4785,17 @@ msgstr "Показує дописи з {0} у вашій стрічці" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4678,12 +4823,12 @@ msgstr "Увійдіть у Bluesky або створіть новий облі msgid "Sign out" msgstr "Вийти" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4708,27 +4853,31 @@ msgstr "Ви увійшли як" msgid "Signed in as @{0}" msgstr "Ви увійшли як @{0}" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "Пропустити" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "Пропустити цей процес" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "Розробка П/З" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "Щось пішло не так. Будь ласка, спробуйте ще раз." -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "Даруйте! Ваш сеанс вичерпався. Будь ласка, увійдіть знову." @@ -4740,19 +4889,20 @@ msgstr "Сортувати відповіді" msgid "Sort replies to the same post by:" msgstr "Оберіть, як сортувати відповіді до постів:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "Джерело:" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "Спам" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "Спам; надмірні згадки або відповіді" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "Спорт" @@ -4789,12 +4939,12 @@ msgstr "Сховище очищено, тепер вам треба переза msgid "Storybook" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "Надіслати" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "Підписатися" @@ -4815,7 +4965,7 @@ msgstr "Підписатися на {0} стрічку" msgid "Subscribe to this labeler" msgstr "Підписатися на цього маркувальника" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "Підписатися на цей список" @@ -4827,7 +4977,7 @@ msgstr "Пропоновані підписки" msgid "Suggested for you" msgstr "Пропозиції для вас" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "Непристойний" @@ -4874,7 +5024,7 @@ msgstr "Високе" msgid "Tap to view fully" msgstr "Торкніться, щоб переглянути повністю" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "Технології" @@ -4886,13 +5036,13 @@ msgstr "Умови" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "Умови Використання" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "Використані терміни порушують стандарти спільноти" @@ -4900,15 +5050,16 @@ msgstr "Використані терміни порушують стандар msgid "text" msgstr "текст" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "Поле вводу тексту" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "Дякуємо. Вашу скаргу було надіслано." -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "Що містить наступне:" @@ -4933,11 +5084,15 @@ msgstr "Правила Спільноти переміщено до <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "Політику захисту авторського права переміщено до <0/>" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "Наступні мітки були додано до вашого облікового запису." -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "Наступні мітки були додано до вашого контенту." @@ -4967,15 +5122,17 @@ msgid "There are many feeds to try:" msgstr "Також є багато інших стрічок, щоб спробувати:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Виникла проблема з доступом до сервера. Перевірте підключення до Інтернету і повторіть спробу знову." -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "Виникла проблема при видаленні цієї стрічки. Перевірте підключення до Інтернету і повторіть спробу." -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "Виникла проблема з оновленням ваших стрічок. Перевірте підключення до Інтернету і повторіть спробу." @@ -4987,16 +5144,17 @@ msgstr "" msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "При з'єднанні з сервером виникла проблема" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "При з'єднанні з вашим сервером виникла проблема" @@ -5004,7 +5162,7 @@ msgstr "При з'єднанні з вашим сервером виникла msgid "There was an issue fetching notifications. Tap here to try again." msgstr "Виникла проблема з завантаженням сповіщень. Натисніть тут, щоб повторити спробу." -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "Виникла проблема з завантаженням постів. Натисніть тут, щоб повторити спробу." @@ -5017,6 +5175,7 @@ msgstr "Виникла проблема з завантаженням списк msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Виникла проблема з завантаженням ваших списків. Натисніть тут, щоб повторити спробу." +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Виникла проблема з надсиланням вашої скарги. Будь ласка, перевірте підключення до Інтернету." @@ -5043,10 +5202,10 @@ msgstr "Виникла проблема з завантаженням ваших msgid "There was an issue! {0}" msgstr "Виникла проблема! {0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "Виникла проблема. Перевірте підключення до Інтернету і повторіть спробу." @@ -5071,7 +5230,7 @@ msgstr "Цей {screenDescription} був позначений:" msgid "This account has requested that users sign in to view their profile." msgstr "Цей користувач вказав, що не хоче, аби його профіль бачили відвідувачі без облікового запису." -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "Це звернення буде надіслано до <0>{0}." @@ -5096,21 +5255,21 @@ msgstr "Цей вміст розміщено {0}. Увімкнути зовні msgid "This content is not available because one of the users involved has blocked the other." msgstr "Цей контент недоступний, оскільки один із залучених користувачів заблокував іншого." -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "Цей вміст не доступний для перегляду без облікового запису Bluesky." -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "Ця функція знаходиться в беті. Ви можете дізнатися більше про експорт репозиторіїв у <0>цьому блозі.." -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "Ця стрічка зараз отримує забагато запитів і тимчасово недоступна. Спробуйте ще раз пізніше." #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "Стрічка порожня!" @@ -5118,11 +5277,15 @@ msgstr "Стрічка порожня!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "Ця стрічка порожня! Можливо, вам треба підписатися на більшу кількість користувачів або змінити ваші налаштування мови." +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "Ця інформація не розкривається іншим користувачам." -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "Це важливо для випадку, якщо вам коли-небудь потрібно буде змінити адресу електронної пошти або відновити пароль." @@ -5138,6 +5301,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "Цей маркувальник ще не заявив, які мітки він публікує, і може бути неактивним." @@ -5146,7 +5313,7 @@ msgstr "Цей маркувальник ще не заявив, які мітк msgid "This link is taking you to the following website:" msgstr "Це посилання веде на сайт:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "Список порожній!" @@ -5179,7 +5346,7 @@ msgstr "Цей профіль видно лише користувачам, як msgid "This service has not provided terms of service or a privacy policy." msgstr "Цей сервіс не надав умови обслуговування або політики конфіденційності." -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "Це має створити обліковий запис домену:" @@ -5233,10 +5400,14 @@ msgstr "Режим гілок" msgid "Threads Preferences" msgstr "Налаштування обговорень" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "" +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "Кому ви хотіли б відправити цю скаргу?" @@ -5278,25 +5449,25 @@ msgstr "Спробувати ще раз" msgid "Two-factor authentication" msgstr "" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "Тип:" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "Розблокувати список" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "Перестати ігнорувати" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5306,7 +5477,7 @@ msgstr "Не вдалося зв'язатися з вашим хостинг-п #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "Розблокувати" @@ -5327,7 +5498,7 @@ msgstr "Розблокувати обліковий запис?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "Скасувати репост" @@ -5354,12 +5525,12 @@ msgstr "Відписатися від облікового запису" #~ msgid "Unlike" #~ msgstr "Прибрати вподобання" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "Видалити вподобання цієї стрічки" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "Не ігнорувати" @@ -5376,7 +5547,7 @@ msgstr "Перестати ігнорувати" msgid "Unmute all {displayTag} posts" msgstr "Перестати ігнорувати всі пости {displayTag}" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5385,16 +5556,16 @@ msgstr "" msgid "Unmute thread" msgstr "Перестати ігнорувати" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "Відкріпити" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "Відкріпити від головної сторінки" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "Відкріпити список модерації" @@ -5406,7 +5577,12 @@ msgstr "Відписатися" msgid "Unsubscribe from this labeler" msgstr "Відписатися від цього маркувальника" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "Небажаний сексуальний вміст" @@ -5414,7 +5590,7 @@ msgstr "Небажаний сексуальний вміст" msgid "Update {displayName} in Lists" msgstr "Змінити належність {displayName} до списків" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "Оновити до {handle}" @@ -5422,7 +5598,11 @@ msgstr "Оновити до {handle}" msgid "Updating..." msgstr "Оновлення..." -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "Завантажити текстовий файл до:" @@ -5445,7 +5625,7 @@ msgstr "Завантажити з файлів" msgid "Upload from Library" msgstr "Завантажити з бібліотеки" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "Використовувати файл на вашому сервері" @@ -5453,11 +5633,11 @@ msgstr "Використовувати файл на вашому сервері msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Використовуйте паролі для застосунків для входу в інших застосунках для Bluesky. Це дозволить використовувати їх, не надаючи повний доступ до вашого облікового запису і вашого основного пароля." -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "Використовувати bsky.social як хостинг-провайдер" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "Використовувати провайдера за замовчуванням" @@ -5471,7 +5651,11 @@ msgstr "У вбудованому браузері" msgid "Use my default browser" msgstr "У звичайному браузері" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "Використати панель DNS" @@ -5509,13 +5693,13 @@ msgstr "Користувач заблокував вас" msgid "User list by {0}" msgstr "Список користувачів від {0}" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "Список користувачів від <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "Список користувачів від вас" @@ -5531,11 +5715,11 @@ msgstr "Список користувачів оновлено" msgid "User Lists" msgstr "Списки користувачів" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "Ім'я користувача або електронна адреса" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "Користувачі" @@ -5551,7 +5735,7 @@ msgstr "Користувачі в «{0}»" msgid "Users that have liked this content or profile" msgstr "Користувачі, які вподобали цей контент і профіль" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "Значення:" @@ -5559,7 +5743,7 @@ msgstr "Значення:" #~ msgid "Verify {0}" #~ msgstr "Верифікувати {0}" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -5575,16 +5759,16 @@ msgstr "Підтвердити мою електронну адресу" msgid "Verify My Email" msgstr "Підтвердити мою електронну адресу" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "Підтвердити нову адресу електронної пошти" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "Підтвердьте адресу вашої електронної пошти" @@ -5596,7 +5780,7 @@ msgstr "Підтвердьте адресу вашої електронної п msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "Відеоігри" @@ -5608,11 +5792,11 @@ msgstr "Переглянути аватар {0}" msgid "View debug entry" msgstr "Переглянути запис для налагодження" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "Переглянути деталі" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "Переглянути деталі як надіслати скаргу про порушення авторських прав" @@ -5620,13 +5804,13 @@ msgstr "Переглянути деталі як надіслати скаргу msgid "View full thread" msgstr "Переглянути обговорення" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "Переглянути інформацію про мітки" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Переглянути профіль" @@ -5638,7 +5822,7 @@ msgstr "Переглянути аватар" msgid "View the labeling service provided by @{0}" msgstr "Переглянути послуги маркування, який надає @{0}" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "Переглянути користувачів, які вподобали цю стрічку" @@ -5666,11 +5850,15 @@ msgstr "Попереджувати про вміст і фільтрувати msgid "We couldn't find any results for that hashtag." msgstr "Ми не змогли знайти жодних результатів для цього хештегу." +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "Ми оцінюємо {estimatedTime} до готовності вашого облікового запису." -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "Ми сподіваємося, що ви проведете чудово свій час. Пам'ятайте, Bluesky — це:" @@ -5694,7 +5882,7 @@ msgstr "Не вдалося завантажити ваші налаштуван msgid "We were unable to load your configured labelers at this time." msgstr "Наразі ми не змогли завантажити список ваших маркувальників." -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "Ми не змогли під'єднатися. Будь ласка, спробуйте ще раз, щоб продовжити налаштування свого облікового запису. Якщо помилка повторюється, то ви можете пропустити цей процес." @@ -5702,7 +5890,7 @@ msgstr "Ми не змогли під'єднатися. Будь ласка, с msgid "We will let you know when your account is ready." msgstr "Ми повідомимо вас, коли ваш обліковий запис буде готовий." -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "Ми скористаємося цим, щоб підлаштувати Ваш досвід." @@ -5735,7 +5923,7 @@ msgstr "На жаль, ви можете підписатися тільки н #~ msgid "Welcome to <0>Bluesky" #~ msgstr "Ласкаво просимо до <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "Чим ви цікавитесь?" @@ -5758,23 +5946,31 @@ msgstr "Якими мовами ви хочете бачити пости у а msgid "Who can reply" msgstr "Хто може відповідати" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "Чому слід переглянути цей контент?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "Чому слід переглянути цю стрічку?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "Чому слід переглянути цей список?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "Чому слід переглянути цей пост?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "Чому слід переглянути цього користувача?" @@ -5782,8 +5978,8 @@ msgstr "Чому слід переглянути цього користувач msgid "Wide" msgstr "Широке" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -5796,21 +5992,21 @@ msgstr "Написати пост" msgid "Write your reply" msgstr "Написати відповідь" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "Письменники" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Так" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -5844,15 +6040,15 @@ msgstr "У вас немає жодного підписника." msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "У вас ще немає кодів запрошення! З часом ми надамо вам декілька." -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "У вас немає закріплених стрічок." #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "У вас немає збережених стрічок!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "У вас немає збережених стрічок!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "У вас немає збережених стрічок." @@ -5899,7 +6095,7 @@ msgstr "У вас немає стрічок." msgid "You have no lists." msgstr "У вас немає списків." -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -5919,7 +6115,11 @@ msgstr "Ви ще не ігноруєте жодного облікового з msgid "You haven't muted any words or tags yet" msgstr "У вас ще немає ігнорованих слів чи тегів" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Ви можете оскаржувати мітки, якщо вважаєте, що вони були розміщені помилково." @@ -5947,7 +6147,7 @@ msgstr "Ви будете отримувати сповіщення з цьог msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Ви отримаєте електронний лист із кодом підтвердження. Введіть цей код тут, а потім введіть новий пароль." -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -5961,7 +6161,7 @@ msgstr "Все під вашим контролем" msgid "You're in line" msgstr "Ви в черзі" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "Все готово!" @@ -5982,7 +6182,7 @@ msgstr "Ваш акаунт" msgid "Your account has been deleted" msgstr "Ваш обліковий запис видалено" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "Дані з вашого облікового запису, які містять усі загальнодоступні записи, можна завантажити як \"CAR\" файл. Цей файл не містить медіафайлів, таких як зображення, або особисті дані, які необхідно отримати окремо." @@ -5999,16 +6199,16 @@ msgid "Your default feed is \"Following\"" msgstr "Ваша стрічка за замовчуванням \"Following\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "Не вдалося розпізнати адресу електронної пошти." -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "Вашу адресу електронної пошти було змінено, але ще не підтверджено. Для підтвердження, будь ласка, перевірте вашу поштову скриньку за новою адресою." -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "Ваша електронна пошта ще не підтверджена. Це важливий крок для безпеки вашого облікового запису, який ми рекомендуємо вам зробити." @@ -6020,7 +6220,7 @@ msgstr "Ваша домашня стрічка порожня! Підпишіт msgid "Your full handle will be" msgstr "Ваш повний псевдонім буде" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "Вашим повним псевдонімом буде <0>@{0}" @@ -6036,7 +6236,7 @@ msgstr "Ваш пароль успішно змінено!" msgid "Your post has been published" msgstr "Пост опубліковано" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "Ваші повідомлення, вподобання і блоки є публічними. Ігнорування - приватні." @@ -6048,6 +6248,10 @@ msgstr "Ваш профіль" msgid "Your reply has been published" msgstr "Відповідь опубліковано" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Ваш псевдонім" diff --git a/src/locale/locales/zh-CN/messages.po b/src/locale/locales/zh-CN/messages.po index 77dfdde445..7cbeb2526d 100644 --- a/src/locale/locales/zh-CN/messages.po +++ b/src/locale/locales/zh-CN/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: Frudrax Cheng, Simon Chan, U2FsdGVkX1, Mikan Harada, IceCodeNew\n" "Plural-Forms: \n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(没有邮件)" @@ -21,15 +21,15 @@ msgstr "(没有邮件)" msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -51,7 +51,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -71,6 +71,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -90,15 +94,15 @@ msgstr "{following} 个正在关注" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} 个未读" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -106,11 +110,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> 个成员" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -135,7 +139,7 @@ msgstr "" #~ msgid "<0>Follow some<1>Recommended<2>Users" #~ msgstr "<0>关注一些<1>推荐的<2>用户" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠无效的用户识别符" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "两步验证" @@ -178,7 +182,7 @@ msgstr "无障碍设置" #~ msgid "account" #~ msgstr "账户" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -229,15 +233,15 @@ msgstr "已取消隐藏账户" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "添加" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "新增内容警告" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "将用户添加至列表" @@ -249,6 +253,7 @@ msgstr "添加账户" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -256,8 +261,8 @@ msgid "Add alt text" msgstr "新增替代文字" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -273,7 +278,15 @@ msgstr "为配置的设置添加隐藏词汇" msgid "Add muted words and tags" msgstr "添加隐藏词和标签" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "将以下 DNS 记录新增到你的域名:" @@ -282,7 +295,7 @@ msgstr "将以下 DNS 记录新增到你的域名:" msgid "Add to Lists" msgstr "添加至列表" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "添加至自定义信息流" @@ -295,17 +308,17 @@ msgstr "添加至自定义信息流" msgid "Added to list" msgstr "已添加至列表" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "已添加至自定义信息流" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "调整回复中需要具有的喜欢数才会在你的信息流中显示。" #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "成人内容" @@ -318,7 +331,7 @@ msgstr "成人内容显示已被禁用。" msgid "Advanced" msgstr "详细设置" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "你保存的所有信息流都集中在一处。" @@ -351,12 +364,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "为图片新增替代文字,以帮助盲人及视障群体了解图片内容。" -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "一封电子邮件已发送至 {0}。请查阅邮件内容并复制验证码至下方。" -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "一封电子邮件已发送至先前填写的邮箱 {0}。请查阅邮件内容并复制验证码至下方。" @@ -364,11 +377,11 @@ msgstr "一封电子邮件已发送至先前填写的邮箱 {0}。请查阅邮 msgid "An error occured" msgstr "发生错误" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "不在这些选项中的问题" @@ -381,7 +394,7 @@ msgstr "不在这些选项中的问题" msgid "An issue occurred, please try again." msgstr "出现问题,请重试。" -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -390,7 +403,7 @@ msgstr "" msgid "and" msgstr "和" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "动物" @@ -398,7 +411,7 @@ msgstr "动物" msgid "Animated GIF" msgstr "GIF 动画" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "反社会行为" @@ -428,16 +441,16 @@ msgstr "应用专用密码设置" msgid "App Passwords" msgstr "应用专用密码" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "申诉" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "申诉 \"{0}\" 标记" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -449,19 +462,24 @@ msgstr "" msgid "Appearance" msgstr "外观" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "你确定要删除这条应用专用密码 \"{name}\" 吗?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "你确定要从你的信息流中删除 {0} 吗?" @@ -477,11 +495,11 @@ msgstr "你确定吗?" msgid "Are you writing in <0>{0}?" msgstr "你是用 <0>{0} 编写的吗?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "艺术" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "艺术作品或非色情的裸体。" @@ -489,17 +507,17 @@ msgstr "艺术作品或非色情的裸体。" msgid "At least 3 characters" msgstr "至少 3 个字符" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -527,8 +545,8 @@ msgstr "生日:" msgid "Block" msgstr "屏蔽" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -541,15 +559,15 @@ msgstr "屏蔽账户" msgid "Block Account?" msgstr "屏蔽账户?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "屏蔽账户" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "屏蔽列表" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "屏蔽这些账户?" @@ -583,7 +601,7 @@ msgstr "已屏蔽帖子。" msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "屏蔽这个用户不能阻止他继续标记你的账户。" -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "屏蔽是公开的。被屏蔽的账户无法在你的帖子中回复、提及你或以其他方式与你互动。" @@ -631,10 +649,15 @@ msgstr "模糊化图片" msgid "Blur images and filter from feeds" msgstr "模糊化图片并从信息流中过滤" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "书籍" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "商务" @@ -681,9 +704,9 @@ msgstr "只能包含字母、数字、空格、破折号及下划线。 长度 #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -695,26 +718,26 @@ msgstr "只能包含字母、数字、空格、破折号及下划线。 长度 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "取消" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "取消" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "取消账户删除申请" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "取消修改用户识别符" @@ -739,7 +762,7 @@ msgstr "取消搜索" msgid "Cancels opening the linked website" msgstr "取消打开链接的网站" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "更改" @@ -752,12 +775,12 @@ msgstr "更改" msgid "Change handle" msgstr "更改用户识别符" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "更改用户识别符" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "更改我的邮箱地址" @@ -774,7 +797,7 @@ msgstr "更改密码" msgid "Change post language to {0}" msgstr "更改帖子的发布语言至 {0}" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "更改你的邮箱地址" @@ -782,11 +805,11 @@ msgstr "更改你的邮箱地址" msgid "Chat" msgstr "" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -812,11 +835,11 @@ msgstr "检查我的状态" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "查看一些推荐的用户。关注他们还将推荐相似的用户。" -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "在这里输入刚才发送到你电子邮箱里的验证码" -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "查看发送至你电子邮箱的确认邮件,并在下方输入收到的验证码:" @@ -828,7 +851,7 @@ msgstr "选择 \"所有人\" 或是 \"没有人\"" msgid "Choose Service" msgstr "选择服务" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "选择支持你的自定义信息流的算法。" @@ -837,6 +860,10 @@ msgstr "选择支持你的自定义信息流的算法。" #~ msgid "Choose the algorithms that power your experience with custom feeds." #~ msgstr "选择可改进你自定义信息流的算法。" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "选择你的主要信息流" @@ -878,11 +905,15 @@ msgstr "清除所有数据" msgid "click here" msgstr "点击这里" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "点击这里打开 {tag} 的标签菜单" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "气象" @@ -951,11 +982,11 @@ msgstr "关闭标题图片查看器" msgid "Collapses list of users for a given notification" msgstr "折叠给定通知的用户列表" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "喜剧" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "漫画" @@ -964,7 +995,7 @@ msgstr "漫画" msgid "Community Guidelines" msgstr "社群准则" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "完成引导并开始使用你的账户" @@ -994,18 +1025,18 @@ msgstr "在 <0>限制设置 中配置。" #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "确认" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "确认更改" @@ -1013,7 +1044,7 @@ msgstr "确认更改" msgid "Confirm content language settings" msgstr "确认内容语言设置" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "确认删除账户" @@ -1025,17 +1056,17 @@ msgstr "确认你的年龄:" msgid "Confirm your birthdate" msgstr "确认你的出生日期" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "验证码" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "连接中..." @@ -1082,8 +1113,9 @@ msgstr "上下文菜单背景,点击关闭菜单。" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "继续" @@ -1093,8 +1125,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "以 {0} 继续(已登录)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1108,7 +1141,7 @@ msgstr "继续下一步" msgid "Continue to the next step without following any accounts" msgstr "继续下一步,不关注任何账户" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "烹饪" @@ -1121,9 +1154,9 @@ msgstr "已复制" msgid "Copied build version to clipboard" msgstr "已复制构建版本号至剪贴板" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1141,7 +1174,7 @@ msgstr "已复制应用专用密码" msgid "Copy" msgstr "复制" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "复制 {0}" @@ -1150,7 +1183,7 @@ msgstr "复制 {0}" msgid "Copy code" msgstr "复制代码" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "复制列表链接" @@ -1174,15 +1207,15 @@ msgstr "复制帖子文字" msgid "Copyright Policy" msgstr "版权许可" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "无法加载信息流" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "无法加载列表" @@ -1190,13 +1223,13 @@ msgstr "无法加载列表" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1216,6 +1249,10 @@ msgstr "创建账户" msgid "Create an account" msgstr "创建一个账户" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "创建应用专用密码" @@ -1225,7 +1262,7 @@ msgstr "创建应用专用密码" msgid "Create new account" msgstr "创建新的账户" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "创建 {0} 的举报" @@ -1233,7 +1270,7 @@ msgstr "创建 {0} 的举报" msgid "Created {0}" msgstr "{0} 已创建" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "文化" @@ -1242,12 +1279,12 @@ msgstr "文化" msgid "Custom" msgstr "自定义" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "自定义域名" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "由社群构建的自定义信息流能为你带来新的体验,并帮助你找到你喜欢的内容。" @@ -1280,10 +1317,10 @@ msgstr "调试限制" msgid "Debug panel" msgstr "调试面板" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "删除" @@ -1295,7 +1332,7 @@ msgstr "删除账户" #~ msgid "Delete Account" #~ msgstr "删除账户" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1311,11 +1348,11 @@ msgstr "删除应用专用密码?" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "删除列表" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1323,7 +1360,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "删除我的账户" @@ -1336,7 +1373,7 @@ msgstr "删除我的账户…" msgid "Delete post" msgstr "删除帖子" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "删除这个列表?" @@ -1375,7 +1412,7 @@ msgstr "暗淡" msgid "Disable autoplay for GIFs" msgstr "关闭 GIF 自动播放" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "关闭电子邮件两步验证" @@ -1408,7 +1445,7 @@ msgstr "阻止应用向未登录用户显示我的账户" msgid "Discover new custom feeds" msgstr "探索新的自定义信息流" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "探索新的信息流" @@ -1420,7 +1457,7 @@ msgstr "显示名称" msgid "Display Name" msgstr "显示名称" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "DNS 面板" @@ -1432,11 +1469,11 @@ msgstr "不包含裸露内容。" msgid "Doesn't begin or end with a hyphen" msgstr "不以连字符开头或结尾" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "域名记录" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "域名已认证!" @@ -1444,6 +1481,8 @@ msgstr "域名已认证!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1452,15 +1491,13 @@ msgstr "域名已认证!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "完成" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1474,8 +1511,8 @@ msgstr "完成" msgid "Done{extraText}" msgstr "完成{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "下载 CAR 文件" @@ -1487,7 +1524,7 @@ msgstr "拖放即可新增图片" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "受 Apple 政策限制,显示成人内容只能在完成注册后在网页端设置中启用。" -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "例如:alice" @@ -1495,7 +1532,7 @@ msgstr "例如:alice" msgid "e.g. Alice Roberts" msgstr "例如:爱丽丝·罗伯特" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "例如:alice.com" @@ -1542,7 +1579,7 @@ msgstr "编辑头像" msgid "Edit image" msgstr "编辑图片" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "编辑列表详情" @@ -1551,8 +1588,8 @@ msgid "Edit Moderation List" msgstr "编辑限制列表" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "编辑自定义信息流" @@ -1571,7 +1608,7 @@ msgid "Edit Profile" msgstr "编辑个人资料" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "编辑保存的信息流" @@ -1587,16 +1624,16 @@ msgstr "编辑你的显示名称" msgid "Edit your profile description" msgstr "编辑你的账户描述" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "教育" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "电子邮箱" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "电子邮件两步验证已关闭" @@ -1604,16 +1641,16 @@ msgstr "电子邮件两步验证已关闭" msgid "Email address" msgstr "邮箱地址" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "电子邮箱已更新" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "电子邮箱已更新" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "电子邮箱已验证" @@ -1661,7 +1698,7 @@ msgstr "启用外部媒体" msgid "Enable media players for" msgstr "启用媒体播放器" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "启用此设置以便仅查看你关注的用户的回复。" @@ -1690,7 +1727,7 @@ msgstr "输入密码" msgid "Enter a word or tag" msgstr "输入一个词或标签" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "输入验证码" @@ -1698,7 +1735,7 @@ msgstr "输入验证码" msgid "Enter the code you received to change your password." msgstr "输入你收到的确认码以更改密码。" -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "输入你想使用的域名" @@ -1715,11 +1752,11 @@ msgstr "输入你的出生日期" msgid "Enter your email address" msgstr "输入你的电子邮箱" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "请在上方输入你新的电子邮箱" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "请在下方输入你新的电子邮箱。" @@ -1727,11 +1764,15 @@ msgstr "请在下方输入你新的电子邮箱。" msgid "Enter your username and password" msgstr "输入你的用户名和密码" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Captcha 响应错误。" -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "错误:" @@ -1740,15 +1781,19 @@ msgstr "错误:" msgid "Everybody" msgstr "所有人" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "过多的提及或回复" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "退出账户删除流程" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "退出修改用户识别符流程" @@ -1786,7 +1831,7 @@ msgstr "明确的性暗示图片。" msgid "Export my data" msgstr "导出账户数据" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "导出账户数据" @@ -1820,7 +1865,7 @@ msgstr "创建应用专用密码失败。" msgid "Failed to create the list. Check your internet connection and try again." msgstr "无法创建列表。请检查你的互联网连接并重试。" -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -1832,7 +1877,7 @@ msgstr "无法删除帖子,请重试" msgid "Failed to load GIFs" msgstr "无法加载 GIF" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" @@ -1841,35 +1886,39 @@ msgstr "" #~ msgid "Failed to load recommended feeds" #~ msgstr "无法加载推荐信息流" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "无法保存此图片:{0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "信息流" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "由 {0} 创建的信息流" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "信息流已离线" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "反馈" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "信息流" @@ -1877,7 +1926,7 @@ msgstr "信息流" #~ msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." #~ msgstr "信息流由用户创建并管理。选择一些你感兴趣的信息流。" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "创建信息流要求一些编程基础。查看 <0/> 以获取详情。" @@ -1885,15 +1934,19 @@ msgstr "创建信息流要求一些编程基础。查看 <0/> 以获取详情。 msgid "Feeds can be topical as well!" msgstr "信息流也可以围绕某些话题!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "文件内容" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "从信息流中过滤" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "最终确定" @@ -1911,7 +1964,7 @@ msgstr "在 Bluesky 寻找帖子和用户" #~ msgid "Finding similar accounts..." #~ msgstr "正在寻找类似的账户..." -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "调整你在关注信息流上所看到的内容。" @@ -1919,11 +1972,11 @@ msgstr "调整你在关注信息流上所看到的内容。" msgid "Fine-tune the discussion threads." msgstr "调整讨论主题。" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "健康" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "灵活" @@ -1985,7 +2038,7 @@ msgstr "由 {0} 关注" msgid "Followed users" msgstr "已关注的用户" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "仅限已关注的用户" @@ -2003,7 +2056,9 @@ msgstr "关注者" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "正在关注" @@ -2018,7 +2073,7 @@ msgstr "关注信息流首选项" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "关注信息流首选项" @@ -2031,11 +2086,11 @@ msgstr "关注了你" msgid "Follows You" msgstr "关注了你" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "食物" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "出于安全原因,我们需要向你的电子邮箱发送验证码。" @@ -2048,15 +2103,15 @@ msgstr "出于安全原因,你将无法再次查看此内容。如果你丢失 msgid "Forgot Password" msgstr "忘记密码" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "忘记密码?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "忘记?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "频繁发布不受欢迎的内容" @@ -2073,12 +2128,16 @@ msgstr "来自 <0/>" msgid "Gallery" msgstr "相册" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "开始" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "明显违反法律或服务条款" @@ -2087,9 +2146,9 @@ msgstr "明显违反法律或服务条款" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "返回" @@ -2097,12 +2156,13 @@ msgstr "返回" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "返回" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2128,11 +2188,11 @@ msgstr "返回主页" msgid "Go to next" msgstr "前往下一步" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2140,7 +2200,7 @@ msgstr "" msgid "Graphic Media" msgstr "图形媒体" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "用户识别符" @@ -2148,7 +2208,7 @@ msgstr "用户识别符" msgid "Haptics" msgstr "触感" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "骚扰、恶作剧或其他无法容忍的行为" @@ -2156,7 +2216,7 @@ msgstr "骚扰、恶作剧或其他无法容忍的行为" msgid "Hashtag" msgstr "标签" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "标签:#{tag}" @@ -2165,10 +2225,14 @@ msgid "Having trouble?" msgstr "任何疑问?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "帮助" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "这里有一些推荐关注的用户" @@ -2221,23 +2285,23 @@ msgstr "隐藏这条帖子?" msgid "Hide user list" msgstr "隐藏用户列表" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "连接信息流服务器出现问题,请联系信息流的维护者反馈此问题。" -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "信息流服务器似乎配置错误,请联系信息流的维护者反馈此问题。" -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "信息流服务器似乎已下线,请联系信息流的维护者反馈此问题。" -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "信息流服务器返回错误的响应,请联系信息流的维护者反馈此问题。" -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "无法找到该信息流,似乎已被删除。" @@ -2250,21 +2314,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "无法加载该限制提供服务。" #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "主页" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "主机:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "托管服务提供商" @@ -2272,25 +2336,29 @@ msgstr "托管服务提供商" msgid "How should we open this link?" msgstr "我们该如何打开此链接?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "我有验证码" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "我有验证码" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "我拥有自己的域名" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "若替代文本过长,则切换替代文本的展开状态" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "若不勾选,则默认为全年龄向。" @@ -2298,7 +2366,7 @@ msgstr "若不勾选,则默认为全年龄向。" msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "如果你根据你所在国家的法律定义还不是成年人,则你的父母或法定监护人必须代表你阅读这些条款。" -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "该列表删除后将无法恢复。" @@ -2310,7 +2378,7 @@ msgstr "该列表删除后将无法恢复。" msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "如果你想要更改密码,我们将向你发送一个验证码以验证这是你的账户。" -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "违法" @@ -2322,7 +2390,7 @@ msgstr "图片" msgid "Image alt text" msgstr "图片替代文本" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "冒充或虚假身份及从属关系" @@ -2330,7 +2398,7 @@ msgstr "冒充或虚假身份及从属关系" msgid "Input code sent to your email for password reset" msgstr "输入发送到你电子邮箱的验证码以重置密码" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "输入删除用户的验证码" @@ -2342,27 +2410,27 @@ msgstr "输入应用专用密码名称" msgid "Input new password" msgstr "输入新的密码" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "输入密码以删除账户" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "输入发送至你电子邮箱的验证码" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "输入与 {identifier} 关联的密码" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "输入注册时使用的用户名或电子邮箱" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "输入你的密码" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "输入你首选的托管服务提供商" @@ -2370,8 +2438,8 @@ msgstr "输入你首选的托管服务提供商" msgid "Input your user handle" msgstr "输入你的用户识别符" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "无效的两步验证码。" @@ -2379,7 +2447,7 @@ msgstr "无效的两步验证码。" msgid "Invalid or unsupported post record" msgstr "帖子记录无效或不受支持" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "用户名或密码无效" @@ -2391,7 +2459,7 @@ msgstr "邀请朋友" msgid "Invite code" msgstr "邀请码" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "邀请码无效,请检查你输入的邀请码并重试。" @@ -2411,7 +2479,7 @@ msgstr "这将会显示你所关注的用户所发布的帖子。" msgid "Jobs" msgstr "工作" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "新闻学" @@ -2439,11 +2507,11 @@ msgstr "标记是对特定内容及用户的提示。可以针对特定内容默 #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "标记已放置在 {labelTarget} 上" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "你账户上的标记" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "你内容上的标记" @@ -2491,13 +2559,13 @@ msgstr "了解有关 Bluesky 公开内容的更多详情。" msgid "Learn more." msgstr "了解详情。" -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2522,7 +2590,7 @@ msgstr "旧存储数据已清除,你需要立即重新启动应用。" msgid "Let's get your password reset!" msgstr "让我们来重置你的密码!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "让我们开始!" @@ -2535,7 +2603,7 @@ msgstr "亮色" #~ msgstr "喜欢" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "喜欢这个信息流" @@ -2589,19 +2657,19 @@ msgstr "列表" msgid "List Avatar" msgstr "列表头像" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "列表已屏蔽" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "列表由 {0} 创建" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "列表已删除" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "列表已隐藏" @@ -2609,20 +2677,20 @@ msgstr "列表已隐藏" msgid "List Name" msgstr "列表名称" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "解除对列表的屏蔽" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "解除对列表的隐藏" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "列表" @@ -2631,9 +2699,9 @@ msgid "Load new notifications" msgstr "加载新的通知" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "加载新的帖子" @@ -2660,7 +2728,7 @@ msgstr "未登录用户可见性" msgid "Login to account that is not listed" msgstr "登录未列出的账户" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "长按来打开 #{tag} 标签菜单" @@ -2668,6 +2736,18 @@ msgstr "长按来打开 #{tag} 标签菜单" msgid "Looks like XXXXX-XXXXX" msgstr "看起来像是 XXXXX-XXXXX" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "请确认目标页面地址是否正确!" @@ -2676,6 +2756,11 @@ msgstr "请确认目标页面地址是否正确!" msgid "Manage your muted words and tags" msgstr "管理你的隐藏词和标签" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2694,30 +2779,35 @@ msgstr "提到的用户" msgid "Menu" msgstr "菜单" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "来自服务器的信息:{0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "" @@ -2725,7 +2815,7 @@ msgstr "" msgid "Messaging settings" msgstr "" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "误导性账户" @@ -2744,13 +2834,13 @@ msgstr "限制详情" msgid "Moderation list by {0}" msgstr "由 {0} 创建的限制列表" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "由 创建的限制列表" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "你创建的限制列表" @@ -2792,11 +2882,11 @@ msgstr "由限制者对内容设置的一般警告。" msgid "More" msgstr "更多" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "更多信息流" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "更多选项" @@ -2817,7 +2907,7 @@ msgstr "隐藏 {truncatedTag}" msgid "Mute Account" msgstr "隐藏账户" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "隐藏账户" @@ -2833,16 +2923,16 @@ msgstr "仅隐藏标签" msgid "Mute in text & tags" msgstr "隐藏词汇和标签" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "隐藏列表" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "隐藏这些账户?" @@ -2889,7 +2979,7 @@ msgstr "被 \"{0}\" 隐藏" msgid "Muted words & tags" msgstr "隐藏词汇和标签" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "被隐藏的账户将不会得知你已将他隐藏,已隐藏的账户将不会在你的通知或时间线中显示。" @@ -2898,11 +2988,11 @@ msgstr "被隐藏的账户将不会得知你已将他隐藏,已隐藏的账户 msgid "My Birthday" msgstr "我的生日" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "自定义信息流" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "我的个人资料" @@ -2923,27 +3013,27 @@ msgstr "名称" msgid "Name is required" msgstr "名称是必填项" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "名称或描述违反了社群准则" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "自然" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "转到下一页" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "转到个人资料" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "需要举报侵犯版权行为吗?" @@ -2952,11 +3042,11 @@ msgstr "需要举报侵犯版权行为吗?" #~ msgid "Never lose access to your followers and data." #~ msgstr "永远不会失去对你的关注者和数据的访问。" -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "永远不会失去对你的关注者或数据的访问。" -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "没关系,为我创建一个用户识别符" @@ -2970,8 +3060,8 @@ msgid "New" msgstr "新建" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -2987,22 +3077,22 @@ msgstr "新密码" msgid "New Password" msgstr "新密码" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "新帖子" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "新帖子" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "新帖子" @@ -3015,14 +3105,14 @@ msgstr "新的用户列表" msgid "Newest replies first" msgstr "优先显示最新回复" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "新闻" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3040,21 +3130,21 @@ msgstr "下一步" msgid "Next image" msgstr "下一张图片" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "停用" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "没有描述" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "没有 DNS 面板" @@ -3070,8 +3160,8 @@ msgstr "不再关注 {0}" msgid "No longer than 253 characters" msgstr "不超过 253 个字符" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3088,7 +3178,7 @@ msgstr "没有结果" msgid "No results found" msgstr "未找到结果" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "未找到\"{query}\"的结果" @@ -3133,8 +3223,8 @@ msgstr "非性暗示裸露" msgid "Not Found" msgstr "未找到" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "暂时不需要" @@ -3151,22 +3241,22 @@ msgstr "注意:Bluesky 是一个开放的公共网络。此设置项仅限制 #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "通知" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "裸露" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "未标记的裸露或成人内容" @@ -3183,7 +3273,7 @@ msgstr "显示" msgid "Oh no!" msgstr "糟糕!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "糟糕!发生了一些错误。" @@ -3208,6 +3298,10 @@ msgstr "重新开始引导流程" msgid "One or more images is missing alt text." msgstr "至少有一张图片缺失了替代文字。" +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "只有 {0} 可以回复。" @@ -3226,16 +3320,20 @@ msgstr "糟糕,发生了一些错误!" msgid "Oops!" msgstr "Oops!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "开启" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "开启表情符号选择器" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "开启信息流选项菜单" @@ -3338,7 +3436,7 @@ msgstr "开启你的 Bluesky 用户资料(存储库)下载页面" msgid "Opens modal for email verification" msgstr "开启电子邮箱确认界面" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "开启使用自定义域名的模式" @@ -3346,12 +3444,12 @@ msgstr "开启使用自定义域名的模式" msgid "Opens moderation settings" msgstr "开启限制设置" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "开启密码重置申请" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "开启用于编辑已保存信息流的界面" @@ -3371,7 +3469,7 @@ msgstr "开启关注信息流首选项" msgid "Opens the linked website" msgstr "开启链接的网页" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "" @@ -3392,6 +3490,7 @@ msgstr "开启讨论串首选项" msgid "Option {0} of {numItems}" msgstr "第 {0} 个选项,共 {numItems} 个" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "可选在下方提供额外信息:" @@ -3400,7 +3499,7 @@ msgstr "可选在下方提供额外信息:" msgid "Or combine these options:" msgstr "或者选择组合这些选项:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "其他" @@ -3421,10 +3520,10 @@ msgstr "无法找到此页面" msgid "Page Not Found" msgstr "无法找到此页面" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "密码" @@ -3456,32 +3555,32 @@ msgstr "@{0} 关注的用户" msgid "People following @{0}" msgstr "关注 @{0} 的用户" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "需要相机的访问权限。" -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "相机的访问权限已被拒绝,请在系统设置中启用。" -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "宠物" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "适合成年人的图像。" -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "固定到主页" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "固定到主页" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "固定信息流列表" @@ -3506,19 +3605,19 @@ msgstr "播放视频" msgid "Plays the GIF" msgstr "播放 GIF" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "请设置你的用户识别符。" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "请设置你的密码。" -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "请完成 Captcha 验证。" -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "更改前请先确认你的电子邮箱。这是新增电子邮箱更新工具的临时要求,此限制将很快被移除。" @@ -3534,15 +3633,15 @@ msgstr "请输入此应用专用密码的唯一名称,或使用我们提供的 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "请输入一个有效的词、标签或短语" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "请输入你的电子邮箱。" -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "请输入你的密码:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "请解释为什么你认为此标记是由 {0} 错误应用的" @@ -3550,7 +3649,7 @@ msgstr "请解释为什么你认为此标记是由 {0} 错误应用的" msgid "Please sign in as @{0}" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "请验证你的电子邮箱" @@ -3558,11 +3657,11 @@ msgstr "请验证你的电子邮箱" msgid "Please wait for your link card to finish loading" msgstr "请等待你的链接卡片加载完毕" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "政治" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "色情内容" @@ -3630,7 +3729,7 @@ msgstr "帖子" msgid "Posts can be muted based on their text, their tags, or both." msgstr "帖子可以根据其文本、标签或两者来隐藏。" -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "帖子已隐藏" @@ -3644,15 +3743,15 @@ msgstr "点击以变更托管提供商" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "点按重试" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3675,7 +3774,7 @@ msgstr "隐私" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "隐私政策" @@ -3688,11 +3787,11 @@ msgstr "处理中..." msgid "profile" msgstr "个人资料" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "个人资料" @@ -3704,7 +3803,7 @@ msgstr "个人资料已更新" msgid "Protect your account by verifying your email." msgstr "通过验证电子邮箱来保护你的账户。" -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "公开内容" @@ -3746,6 +3845,10 @@ msgstr "随机显示 (手气不错)" msgid "Ratios" msgstr "比率" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "最近的搜索" @@ -3759,11 +3862,11 @@ msgstr "最近的搜索" #~ msgstr "推荐的用户" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "移除" @@ -3779,22 +3882,25 @@ msgstr "删除头像" msgid "Remove Banner" msgstr "删除横幅图片" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "删除信息流" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "删除信息流?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "从自定义信息流中删除" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "从自定义信息流中删除?" @@ -3818,7 +3924,7 @@ msgstr "" msgid "Remove repost" msgstr "删除转发" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "从保存的信息流列表中删除这个信息流" @@ -3827,11 +3933,13 @@ msgstr "从保存的信息流列表中删除这个信息流" msgid "Removed from list" msgstr "从列表中删除" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "从自定义信息流中删除" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "从你的自定义信息流中删除" @@ -3843,6 +3951,11 @@ msgstr "从 {0} 中删除默认缩略图" msgid "Removes quoted post" msgstr "" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "回复" @@ -3856,7 +3969,7 @@ msgctxt "action" msgid "Reply" msgstr "回复" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "回复过滤器" @@ -3872,24 +3985,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "举报账户" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "举报页面" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "举报信息流" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "举报列表" @@ -3902,30 +4021,36 @@ msgstr "" msgid "Report post" msgstr "举报帖子" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "举报此内容" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "举报此信息流" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "举报此列表" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "举报此帖子" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "举报此用户" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "转发" @@ -3959,8 +4084,8 @@ msgstr "转发你的帖子" msgid "Reposts of this post" msgstr "转发这条帖子" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "请求变更" @@ -3973,7 +4098,7 @@ msgstr "确认码" msgid "Require alt text before posting" msgstr "发布时检查媒体是否存在替代文本" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "需要电子邮件验证码才能登录到你的账户" @@ -3981,8 +4106,8 @@ msgstr "需要电子邮件验证码才能登录到你的账户" msgid "Required for this provider" msgstr "服务提供者要求" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "重新发送电子邮件" @@ -4016,7 +4141,7 @@ msgstr "重置引导流程状态" msgid "Resets the preferences state" msgstr "重置首选项状态" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "重试登录" @@ -4025,13 +4150,14 @@ msgstr "重试登录" msgid "Retries the last action, which errored out" msgstr "重试上次出错的操作" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -4039,11 +4165,11 @@ msgid "Retry" msgstr "重试" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "回到上一页" @@ -4052,20 +4178,20 @@ msgid "Returns to home page" msgstr "回到主页" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "回到上一页" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "保存" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -4083,7 +4209,7 @@ msgstr "保存生日" msgid "Save Changes" msgstr "保存更改" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "保存用户识别符更改" @@ -4091,16 +4217,16 @@ msgstr "保存用户识别符更改" msgid "Save image crop" msgstr "保存图片裁切" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "保存到自定义信息流" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "已保存信息流" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4108,7 +4234,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "已保存到相机胶卷。" -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "已保存到你的自定义信息流" @@ -4116,7 +4243,7 @@ msgstr "已保存到你的自定义信息流" msgid "Saves any changes to your profile" msgstr "保存个人资料中所做的变更" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "保存用户识别符更改至 {handle}" @@ -4124,11 +4251,11 @@ msgstr "保存用户识别符更改至 {handle}" msgid "Saves image crop settings" msgstr "保存图片裁剪设置" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "科学" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "滚动到顶部" @@ -4141,12 +4268,12 @@ msgstr "滚动到顶部" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "搜索" @@ -4188,7 +4315,7 @@ msgstr "" msgid "Search Tenor" msgstr "搜索 Tenor" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "所需的安全步骤" @@ -4213,7 +4340,7 @@ msgstr "查看该用户 <0>{displayTag} 的帖子" msgid "See profile" msgstr "查看个人资料" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "查看指南" @@ -4221,10 +4348,22 @@ msgstr "查看指南" msgid "Select {item}" msgstr "选择 {item}" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "选择账户" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "从现有账户中选择" @@ -4253,6 +4392,10 @@ msgstr "选择 {numItems} 项中的第 {i} 项" msgid "Select some accounts below to follow" msgstr "选择以下一些账户进行关注" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "请选择你要向哪位限制服务提供者提交举报" @@ -4281,7 +4424,7 @@ msgstr "选择你的应用语言,以显示应用中的默认文本。" msgid "Select your date of birth" msgstr "输入你的出生日期" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "下面选择你感兴趣的选项" @@ -4297,30 +4440,32 @@ msgstr "选择你的信息流主要算法" msgid "Select your secondary algorithmic feeds" msgstr "选择你的信息流次要算法" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "发送确认电子邮件" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "发送电子邮件" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "发送电子邮件" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "提交反馈" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4330,12 +4475,12 @@ msgstr "提交举报" msgid "Send report to {0}" msgstr "给 {0} 提交举报" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "发送验证电子邮件" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "发送包含账户删除验证码的电子邮件" @@ -4351,15 +4496,15 @@ msgstr "设置生日" msgid "Set new password" msgstr "设置新密码" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "停用此设置项以隐藏来自订阅信息流的所有引用帖子,转发仍将可见。" -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "停用此设置项以隐藏来自订阅信息流的所有回复。" -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "停用此设置项以隐藏来自订阅信息流的所有转发。" @@ -4367,7 +4512,7 @@ msgstr "停用此设置项以隐藏来自订阅信息流的所有转发。" msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "启用此设置项以在分层视图中显示回复。这是一个实验性功能。" -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "启用此设置项以在关注信息流中显示已保存信息流的样例。这是一个实验性功能。" @@ -4375,7 +4520,7 @@ msgstr "启用此设置项以在关注信息流中显示已保存信息流的样 msgid "Set up your account" msgstr "设置你的账户" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "设置 Bluesky 用户名" @@ -4418,13 +4563,13 @@ msgstr "将图片纵横比设置为宽" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "设置" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "性行为或性暗示裸露。" @@ -4432,7 +4577,7 @@ msgstr "性行为或性暗示裸露。" msgid "Sexually Suggestive" msgstr "性暗示" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "分享" @@ -4442,7 +4587,7 @@ msgstr "分享" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "分享" @@ -4452,8 +4597,8 @@ msgstr "分享" msgid "Share anyway" msgstr "仍然分享" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "分享信息流" @@ -4516,11 +4661,11 @@ msgstr "显示更多" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "在自定义信息流中显示帖子" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "显示引用帖子" @@ -4536,7 +4681,7 @@ msgstr "在关注中显示引用" msgid "Show re-posts in Following feed" msgstr "在关注信息流中显示转发" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "显示回复" @@ -4556,7 +4701,7 @@ msgstr "在关注信息流中显示回复" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "显示至少包含 {value} 个 {0} 的回复" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "显示转发" @@ -4589,17 +4734,17 @@ msgstr "在你的信息流中显示来自 {0} 的帖子" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4627,12 +4772,12 @@ msgstr "登录 Bluesky 或创建新帐户" msgid "Sign out" msgstr "登出" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4657,27 +4802,31 @@ msgstr "登录身份" msgid "Signed in as @{0}" msgstr "以 @{0} 身份登录" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "跳过" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "跳过此流程" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "程序开发" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "出了点问题,请重试。" -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "很抱歉,你的登录会话已过期,请重新登录。" @@ -4689,19 +4838,20 @@ msgstr "回复排序" msgid "Sort replies to the same post by:" msgstr "对同一帖子的回复进行排序:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "来源:" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "垃圾内容" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "垃圾内容;过多的提及或回复" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "运动" @@ -4738,12 +4888,12 @@ msgstr "已清除存储,请立即重启应用。" msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "提交" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "订阅" @@ -4764,7 +4914,7 @@ msgstr "订阅 {0} 信息流" msgid "Subscribe to this labeler" msgstr "订阅这个标记者" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "订阅这个列表" @@ -4776,7 +4926,7 @@ msgstr "推荐的关注者" msgid "Suggested for you" msgstr "为你推荐" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "建议" @@ -4823,7 +4973,7 @@ msgstr "高" msgid "Tap to view fully" msgstr "点击查看完整内容" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "科技" @@ -4835,13 +4985,13 @@ msgstr "条款" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "服务条款" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "用词违反了社群准则" @@ -4849,15 +4999,16 @@ msgstr "用词违反了社群准则" msgid "text" msgstr "文本" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "文本输入框" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "谢谢,你的举报已提交。" -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "其中包含以下内容:" @@ -4882,11 +5033,15 @@ msgstr "社群准则已迁移至 <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "版权许可已迁移至 <0/>" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "以下标记已应用到你的账户。" -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "以下标记已应用到你的内容。" @@ -4916,15 +5071,17 @@ msgid "There are many feeds to try:" msgstr "这里有些信息流你可以尝试:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "连接至服务器时出现问题,请检查你的互联网连接并重试。" -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "删除信息流时出现问题,请检查你的互联网连接并重试。" -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "更新信息流时出现问题,请检查你的互联网连接并重试。" @@ -4936,16 +5093,17 @@ msgstr "连接 Tenor 时出现问题。" msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "连接服务器时出现问题" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "连接服务器时出现问题" @@ -4953,7 +5111,7 @@ msgstr "连接服务器时出现问题" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "刷新通知时出现问题,点击重试。" -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "刷新帖子时出现问题,点击重试。" @@ -4966,6 +5124,7 @@ msgstr "刷新列表时出现问题,点击重试。" msgid "There was an issue fetching your lists. Tap here to try again." msgstr "刷新列表时出现问题,点击重试。" +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "提交举报时出现问题,请检查你的网络连接。" @@ -4992,10 +5151,10 @@ msgstr "获取应用专用密码时出现问题" msgid "There was an issue! {0}" msgstr "出现问题了!{0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "出现问题了,请检查你的互联网连接并重试。" @@ -5020,7 +5179,7 @@ msgstr "{screenDescription} 已被标记:" msgid "This account has requested that users sign in to view their profile." msgstr "此账户要求登录后才能查看其个人资料。" -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "此申诉将发送至 <0>{0}。" @@ -5045,21 +5204,21 @@ msgstr "此内容由 {0} 托管。是否要启用外部媒体?" msgid "This content is not available because one of the users involved has blocked the other." msgstr "由于其中一个用户屏蔽了另一个用户,此内容不可用。" -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "没有 Bluesky 账户,无法查看此内容。" -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "该功能正在测试,你可以在<0>这篇博客文章中获得关于导出数据的更多信息。" -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "该信息流当前使用人数较多,服务暂时不可用。请稍后再试。" #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "该信息流为空!" @@ -5067,11 +5226,15 @@ msgstr "该信息流为空!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "信息流为空!你或许需要先关注更多的用户,或检查你的语言设置。" +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "此信息不会分享给其他用户。" -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "这很重要,以防你将来需要更改电子邮箱或重置密码。" @@ -5087,6 +5250,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "此标记者尚未声明他发布的标记,并且可能处于非活跃状态。" @@ -5095,7 +5262,7 @@ msgstr "此标记者尚未声明他发布的标记,并且可能处于非活跃 msgid "This link is taking you to the following website:" msgstr "此链接将带你到以下网站:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "此列表为空!" @@ -5128,7 +5295,7 @@ msgstr "此个人资料只对已登录用户可见,未登录的用户将无法 msgid "This service has not provided terms of service or a privacy policy." msgstr "此服务没有提供服务条款或隐私政策。" -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "应该在以下位置创建一个域名记录:" @@ -5182,10 +5349,14 @@ msgstr "讨论串模式" msgid "Threads Preferences" msgstr "讨论串首选项" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "在关闭电子邮件两步验证前,请先验证你的电子邮箱地址。" +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "你想将举报提交给谁?" @@ -5227,25 +5398,25 @@ msgstr "重试" msgid "Two-factor authentication" msgstr "两步验证" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "类型:" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "取消屏蔽列表" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "取消隐藏列表" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5255,7 +5426,7 @@ msgstr "无法连接到服务,请检查互联网连接。" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "取消屏蔽" @@ -5276,7 +5447,7 @@ msgstr "取消屏蔽账户?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "取消转发" @@ -5303,12 +5474,12 @@ msgstr "取消关注账户" #~ msgid "Unlike" #~ msgstr "取消喜欢" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "取消喜欢这个信息流" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "取消隐藏" @@ -5325,7 +5496,7 @@ msgstr "取消隐藏账户" msgid "Unmute all {displayTag} posts" msgstr "取消隐藏所有 {displayTag} 帖子" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5334,16 +5505,16 @@ msgstr "" msgid "Unmute thread" msgstr "取消隐藏讨论串" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "取消固定" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "从主页取消固定" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "取消固定限制列表" @@ -5355,7 +5526,12 @@ msgstr "取消订阅" msgid "Unsubscribe from this labeler" msgstr "取消订阅此标记者" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "不受欢迎的性内容" @@ -5363,7 +5539,7 @@ msgstr "不受欢迎的性内容" msgid "Update {displayName} in Lists" msgstr "更新列表中的 {displayName}" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "更新至 {handle}" @@ -5371,7 +5547,11 @@ msgstr "更新至 {handle}" msgid "Updating..." msgstr "更新中..." -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "将文本文件上传至:" @@ -5394,7 +5574,7 @@ msgstr "从文件上传" msgid "Upload from Library" msgstr "从媒体库上传" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "使用你服务器上的文件" @@ -5402,11 +5582,11 @@ msgstr "使用你服务器上的文件" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "使用应用专用密码登录到其他 Bluesky 客户端,而无需对其授予你账户或密码的完全访问权限。" -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "使用 bsky.social 作为域名提供商" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "使用默认提供商" @@ -5420,7 +5600,11 @@ msgstr "使用内置浏览器" msgid "Use my default browser" msgstr "使用系统默认浏览器" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "使用 DNS 面板" @@ -5458,13 +5642,13 @@ msgstr "用户屏蔽了你" msgid "User list by {0}" msgstr "{0} 的用户列表" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "<0/> 的用户列表" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "你的用户列表" @@ -5480,11 +5664,11 @@ msgstr "用户列表已更新" msgid "User Lists" msgstr "用户列表" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "用户名或电子邮箱" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "用户" @@ -5500,7 +5684,7 @@ msgstr "\"{0}\"中的用户" msgid "Users that have liked this content or profile" msgstr "已喜欢此内容或个人资料的账户" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "值:" @@ -5508,7 +5692,7 @@ msgstr "值:" #~ msgid "Verify {0}" #~ msgstr "验证 {0}" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -5524,16 +5708,16 @@ msgstr "验证我的邮箱" msgid "Verify My Email" msgstr "验证我的邮箱" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "验证新的邮箱" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "验证你的邮箱" @@ -5545,7 +5729,7 @@ msgstr "验证你的邮箱" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "电子游戏" @@ -5557,11 +5741,11 @@ msgstr "查看{0}的头像" msgid "View debug entry" msgstr "查看调试入口" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "查看详情" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "查看举报版权侵权的详情" @@ -5569,13 +5753,13 @@ msgstr "查看举报版权侵权的详情" msgid "View full thread" msgstr "查看整个讨论串" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "查看此标记的详情" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "查看个人资料" @@ -5587,7 +5771,7 @@ msgstr "查看头像" msgid "View the labeling service provided by @{0}" msgstr "查看 @{0} 提供的标记服务。" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "查看此信息流被谁喜欢" @@ -5615,11 +5799,15 @@ msgstr "警告内容并从信息流中过滤" msgid "We couldn't find any results for that hashtag." msgstr "找不到任何与该标签相关的结果。" +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "我们估计还需要 {estimatedTime} 才能完成你的账户准备。" -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "我们希望你在此度过愉快的时光。请记住,Bluesky 是:" @@ -5643,7 +5831,7 @@ msgstr "我们无法加载你的生日首选项,请重试。" msgid "We were unable to load your configured labelers at this time." msgstr "我们暂时无法记载你已配置的标记者。" -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "我们无法连接到互联网,请重试以继续设置你的账户。如果仍继续失败,你可以选择跳过此流程。" @@ -5651,7 +5839,7 @@ msgstr "我们无法连接到互联网,请重试以继续设置你的账户。 msgid "We will let you know when your account is ready." msgstr "我们会在你的账户准备好时通知你。" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "我们将使用这些信息来帮助定制你的体验。" @@ -5684,7 +5872,7 @@ msgstr "很抱歉!你目前只能订阅 10 个标记者,你已达到 10 个 #~ msgid "Welcome to <0>Bluesky" #~ msgstr "欢迎来到 <0>Bluesky" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "你感兴趣的是什么?" @@ -5707,23 +5895,31 @@ msgstr "你想在算法信息流中看到哪些语言?" msgid "Who can reply" msgstr "谁可以回复" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "为什么应该审核此内容?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "为什么应该审核此信息流?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "为什么应该审核此列表?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "为什么应该审核此帖子?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "为什么应该审核此用户?" @@ -5731,8 +5927,8 @@ msgstr "为什么应该审核此用户?" msgid "Wide" msgstr "宽" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -5745,21 +5941,21 @@ msgstr "撰写帖子" msgid "Write your reply" msgstr "撰写你的回复" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "作家" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "启用" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -5793,15 +5989,15 @@ msgstr "你目前还没有任何关注者。" msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "你目前还没有邀请码!当你持续使用 Bluesky 一段时间后,我们将提供一些新的邀请码给你。" -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "你目前还没有任何固定的信息流。" #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "你目前还没有任何保存的信息流!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "你目前还没有任何保存的信息流!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "你目前还没有任何保存的信息流。" @@ -5848,7 +6044,7 @@ msgstr "你没有订阅信息流。" msgid "You have no lists." msgstr "你没有列表。" -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "" @@ -5868,7 +6064,11 @@ msgstr "你还没有隐藏任何账户。要隐藏账户,请转到其个人资 msgid "You haven't muted any words or tags yet" msgstr "你还没有隐藏任何词或标签" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "如果你认为这些标记是错误的,你可以申诉这些标记。" @@ -5896,7 +6096,7 @@ msgstr "你将收到这条讨论串的通知" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "你将收到一封带有确认码的电子邮件。请在此输入该确认码,然后输入你的新密码。" -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -5910,7 +6110,7 @@ msgstr "你尽在掌控" msgid "You're in line" msgstr "轮到你了" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "你已设置完成!" @@ -5931,7 +6131,7 @@ msgstr "你的账户" msgid "Your account has been deleted" msgstr "你的账户已删除" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "你的帐户数据库包含所有公共数据记录,它们将被导出为“CAR”文件。此文件不包括帖子中的媒体,例如图像或你的隐私数据,这些数据需要另外获取。" @@ -5948,16 +6148,16 @@ msgid "Your default feed is \"Following\"" msgstr "你的默认信息流为\"关注\"" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "你的电子邮箱似乎无效。" -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "你的电子邮箱已更新但尚未验证。作为下一步,请验证你的新电子邮件。" -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "你的电子邮箱尚未验证。这是一个重要的安全步骤,我们建议你完成验证。" @@ -5969,7 +6169,7 @@ msgstr "你的关注信息流为空!关注更多用户去看看他们发了什 msgid "Your full handle will be" msgstr "你的完整用户识别符将修改为" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "你的完整用户识别符将修改为 <0>@{0}" @@ -5985,7 +6185,7 @@ msgstr "你的密码已成功更改!" msgid "Your post has been published" msgstr "你的帖子已发布" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "你的帖子、喜欢和屏蔽是公开可见的,而隐藏不可见。" @@ -5997,6 +6197,10 @@ msgstr "你的个人资料" msgid "Your reply has been published" msgstr "你的回复已发布" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "你的用户识别符" diff --git a/src/locale/locales/zh-TW/messages.po b/src/locale/locales/zh-TW/messages.po index 83aa37c5bf..a1284501b7 100644 --- a/src/locale/locales/zh-TW/messages.po +++ b/src/locale/locales/zh-TW/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: Frudrax Cheng, Kuwa Lee, noeFly, snowleo208, Kisaragi Hiu, Yi-Jyun Pan, toto6038, cirx1e\n" "Plural-Forms: \n" -#: src/view/com/modals/VerifyEmail.tsx:151 +#: src/view/com/modals/VerifyEmail.tsx:150 msgid "(no email)" msgstr "(沒有電子郵件)" @@ -21,15 +21,15 @@ msgstr "(沒有電子郵件)" msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:57 +#: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" msgstr "" -#: src/components/moderation/LabelsOnMe.tsx:63 +#: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" msgstr "" -#: src/view/com/util/post-ctrls/RepostButton.tsx:61 +#: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" @@ -51,7 +51,7 @@ msgstr "" msgid "{0, plural, one {like} other {likes}}" msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:267 +#: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -71,6 +71,10 @@ msgstr "" msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" msgstr "" +#: src/view/screens/ProfileList.tsx:286 +msgid "{0} your feeds" +msgstr "" + #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -90,15 +94,15 @@ msgstr "{following} 個跟隨中" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 -#: src/view/screens/ProfileFeed.tsx:604 +#: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" -#: src/view/shell/Drawer.tsx:464 +#: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} 個未讀通知" -#: src/view/screens/PreferencesFollowingFeed.tsx:66 +#: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" msgstr "" @@ -106,11 +110,11 @@ msgstr "" msgid "<0/> members" msgstr "<0/> 個成員" -#: src/view/shell/Drawer.tsx:92 +#: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" msgstr "" -#: src/view/shell/Drawer.tsx:103 +#: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" msgstr "" @@ -127,7 +131,7 @@ msgstr "" #~ msgid "<0>{following} <1>following" #~ msgstr "<0>{following} <1>個跟隨中" -#: src/view/com/modals/SelfLabel.tsx:134 +#: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." msgstr "" @@ -135,7 +139,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠無效的帳號代碼" -#: src/screens/Login/LoginForm.tsx:238 +#: src/screens/Login/LoginForm.tsx:241 msgid "2FA Confirmation" msgstr "雙重驗證" @@ -166,7 +170,7 @@ msgstr "無障礙設定" #~ msgid "account" #~ msgstr "帳號" -#: src/screens/Login/LoginForm.tsx:161 +#: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:336 #: src/view/screens/Settings/index.tsx:718 msgid "Account" @@ -217,15 +221,15 @@ msgstr "已取消靜音帳號" #: src/components/dialogs/MutedWords.tsx:164 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:823 +#: src/view/screens/ProfileList.tsx:876 msgid "Add" msgstr "新增" -#: src/view/com/modals/SelfLabel.tsx:56 +#: src/view/com/modals/SelfLabel.tsx:57 msgid "Add a content warning" msgstr "新增內容警告" -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:866 msgid "Add a user to this list" msgstr "將用戶新增至此列表" @@ -237,6 +241,7 @@ msgstr "新增帳號" #: src/view/com/composer/GifAltText.tsx:69 #: src/view/com/composer/GifAltText.tsx:135 +#: src/view/com/composer/GifAltText.tsx:175 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 #: src/view/com/modals/AltImage.tsx:117 @@ -244,8 +249,8 @@ msgid "Add alt text" msgstr "新增替代文字" #: src/view/com/composer/GifAltText.tsx:175 -msgid "Add ALT text" -msgstr "" +#~ msgid "Add ALT text" +#~ msgstr "" #: src/view/screens/AppPasswords.tsx:104 #: src/view/screens/AppPasswords.tsx:145 @@ -261,7 +266,15 @@ msgstr "在已配置的設定中新增靜音文字" msgid "Add muted words and tags" msgstr "新增靜音文字及標籤" -#: src/view/com/modals/ChangeHandle.tsx:417 +#: src/screens/Home/NoFeedsPinned.tsx:112 +msgid "Add recommended feeds" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:43 +msgid "Add the default feed of only people you follow" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" msgstr "將以下 DNS 記錄新增到您的網域:" @@ -270,7 +283,7 @@ msgstr "將以下 DNS 記錄新增到您的網域:" msgid "Add to Lists" msgstr "新增至列表" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:235 msgid "Add to my feeds" msgstr "加入到我的動態源" @@ -279,17 +292,17 @@ msgstr "加入到我的動態源" msgid "Added to list" msgstr "新增至列表" -#: src/view/com/feeds/FeedSourceCard.tsx:107 +#: src/view/com/feeds/FeedSourceCard.tsx:112 msgid "Added to my feeds" msgstr "加入到我的動態源" -#: src/view/screens/PreferencesFollowingFeed.tsx:171 +#: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "調整在「Following」動態中顯示屬於回復貼文的最低喜歡數門檻。" #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 -#: src/view/com/modals/SelfLabel.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:76 msgid "Adult Content" msgstr "成人內容" @@ -302,7 +315,7 @@ msgstr "成人內容已停用。" msgid "Advanced" msgstr "詳細設定" -#: src/view/screens/Feeds.tsx:691 +#: src/view/screens/Feeds.tsx:797 msgid "All the feeds you've saved, right in one place." msgstr "以下是您保存的動態源。" @@ -335,12 +348,12 @@ msgstr "" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "替代文字為盲人和視障人士描述圖片及提供情境。" -#: src/view/com/modals/VerifyEmail.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:97 +#: src/view/com/modals/VerifyEmail.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:96 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "一封電子郵件已發送至 {0}。請查閱郵件並在下方輸入驗證碼。" -#: src/view/com/modals/ChangeEmail.tsx:121 +#: src/view/com/modals/ChangeEmail.tsx:114 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "一封電子郵件已發送至先前填寫的電子郵件地址 {0}。請查閱郵件並在下方輸入驗證碼。" @@ -348,11 +361,11 @@ msgstr "一封電子郵件已發送至先前填寫的電子郵件地址 {0}。 msgid "An error occured" msgstr "發生錯誤" -#: src/components/dms/MessageMenu.tsx:132 +#: src/components/dms/MessageMenu.tsx:134 msgid "An error occurred while trying to delete the message. Please try again." msgstr "" -#: src/lib/moderation/useReportOptions.ts:26 +#: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" msgstr "問題不在上述選項" @@ -365,7 +378,7 @@ msgstr "問題不在上述選項" msgid "An issue occurred, please try again." msgstr "出現問題,請再試一次。" -#: src/screens/Onboarding/StepInterests/index.tsx:194 +#: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" msgstr "" @@ -374,7 +387,7 @@ msgstr "" msgid "and" msgstr "和" -#: src/screens/Onboarding/index.tsx:32 +#: src/screens/Onboarding/index.tsx:44 msgid "Animals" msgstr "動物" @@ -382,7 +395,7 @@ msgstr "動物" msgid "Animated GIF" msgstr "GIF 動畫" -#: src/lib/moderation/useReportOptions.ts:31 +#: src/lib/moderation/useReportOptions.ts:32 msgid "Anti-Social Behavior" msgstr "反社會行為" @@ -412,16 +425,16 @@ msgstr "應用程式專用密碼設定" msgid "App Passwords" msgstr "應用程式專用密碼" -#: src/components/moderation/LabelsOnMeDialog.tsx:133 -#: src/components/moderation/LabelsOnMeDialog.tsx:136 +#: src/components/moderation/LabelsOnMeDialog.tsx:150 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 msgid "Appeal" msgstr "申訴" -#: src/components/moderation/LabelsOnMeDialog.tsx:202 +#: src/components/moderation/LabelsOnMeDialog.tsx:228 msgid "Appeal \"{0}\" label" msgstr "申訴「{0}」標記" -#: src/components/moderation/LabelsOnMeDialog.tsx:193 +#: src/components/moderation/LabelsOnMeDialog.tsx:219 msgid "Appeal submitted" msgstr "" @@ -433,19 +446,24 @@ msgstr "" msgid "Appearance" msgstr "外觀" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 +#: src/screens/Home/NoFeedsPinned.tsx:106 +msgid "Apply default recommended feeds" +msgstr "" + #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "您確定要刪除這個應用程式專用密碼「{name}」嗎?" -#: src/components/dms/MessageMenu.tsx:121 +#: src/components/dms/MessageMenu.tsx:123 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." msgstr "" -#: src/components/dms/ConvoMenu.tsx:173 +#: src/components/dms/ConvoMenu.tsx:189 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." msgstr "" -#: src/view/com/feeds/FeedSourceCard.tsx:280 +#: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "您確定要從您的動態源中移除 {0} 嗎?" @@ -461,11 +479,11 @@ msgstr "您確定嗎?" msgid "Are you writing in <0>{0}?" msgstr "您正在使用 <0>{0} 書寫嗎?" -#: src/screens/Onboarding/index.tsx:26 +#: src/screens/Onboarding/index.tsx:38 msgid "Art" msgstr "藝術" -#: src/view/com/modals/SelfLabel.tsx:123 +#: src/view/com/modals/SelfLabel.tsx:124 msgid "Artistic or non-erotic nudity." msgstr "藝術作品或非情色的裸露。" @@ -473,17 +491,17 @@ msgstr "藝術作品或非情色的裸露。" msgid "At least 3 characters" msgstr "至少 3 個字元" -#: src/components/moderation/LabelsOnMeDialog.tsx:247 -#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/components/moderation/LabelsOnMeDialog.tsx:273 +#: src/components/moderation/LabelsOnMeDialog.tsx:274 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:269 -#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:272 +#: src/screens/Login/LoginForm.tsx:278 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 -#: src/screens/Messages/Conversation/index.tsx:115 +#: src/screens/Messages/Conversation/index.tsx:179 #: src/screens/Profile/Header/Shell.tsx:99 #: src/screens/Signup/index.tsx:193 #: src/view/com/util/ViewHeader.tsx:89 @@ -511,8 +529,8 @@ msgstr "生日:" msgid "Block" msgstr "封鎖" -#: src/components/dms/ConvoMenu.tsx:135 -#: src/components/dms/ConvoMenu.tsx:139 +#: src/components/dms/ConvoMenu.tsx:152 +#: src/components/dms/ConvoMenu.tsx:156 msgid "Block account" msgstr "" @@ -525,15 +543,15 @@ msgstr "封鎖帳號" msgid "Block Account?" msgstr "封鎖帳號?" -#: src/view/screens/ProfileList.tsx:526 +#: src/view/screens/ProfileList.tsx:579 msgid "Block accounts" msgstr "封鎖帳號" -#: src/view/screens/ProfileList.tsx:630 +#: src/view/screens/ProfileList.tsx:683 msgid "Block list" msgstr "封鎖列表" -#: src/view/screens/ProfileList.tsx:625 +#: src/view/screens/ProfileList.tsx:678 msgid "Block these accounts?" msgstr "封鎖這些帳號?" @@ -567,7 +585,7 @@ msgstr "已封鎖貼文。" msgid "Blocking does not prevent this labeler from placing labels on your account." msgstr "封鎖此帳戶不會阻止被貼上標記。" -#: src/view/screens/ProfileList.tsx:627 +#: src/view/screens/ProfileList.tsx:680 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "封鎖資訊是公開的。被封鎖的帳號無法在您的討論串中回覆、提及您,或以其他方式與您互動。" @@ -600,10 +618,15 @@ msgstr "模糊圖片" msgid "Blur images and filter from feeds" msgstr "從動態中模糊圖片並過濾" -#: src/screens/Onboarding/index.tsx:33 +#: src/screens/Onboarding/index.tsx:45 msgid "Books" msgstr "書籍" +#: src/screens/Home/NoFeedsPinned.tsx:116 +#: src/screens/Home/NoFeedsPinned.tsx:123 +msgid "Browse other feeds" +msgstr "" + #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" msgstr "商務" @@ -646,9 +669,9 @@ msgstr "只能包含字母、數字、空格、破折號及底線。長度必須 #: src/components/TagMenu/index.tsx:268 #: src/view/com/composer/Composer.tsx:387 #: src/view/com/composer/Composer.tsx:392 -#: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeEmail.tsx:222 -#: src/view/com/modals/ChangeHandle.tsx:155 +#: src/view/com/modals/ChangeEmail.tsx:213 +#: src/view/com/modals/ChangeEmail.tsx:215 +#: src/view/com/modals/ChangeHandle.tsx:148 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/modals/CreateOrEditList.tsx:358 @@ -660,26 +683,26 @@ msgstr "只能包含字母、數字、空格、破折號及底線。長度必須 #: src/view/com/modals/LinkWarning.tsx:105 #: src/view/com/modals/LinkWarning.tsx:107 #: src/view/com/modals/Repost.tsx:88 -#: src/view/com/modals/VerifyEmail.tsx:256 -#: src/view/com/modals/VerifyEmail.tsx:262 +#: src/view/com/modals/VerifyEmail.tsx:255 +#: src/view/com/modals/VerifyEmail.tsx:261 #: src/view/screens/Search/Search.tsx:674 #: src/view/shell/desktop/Search.tsx:218 msgid "Cancel" msgstr "取消" #: src/view/com/modals/CreateOrEditList.tsx:363 -#: src/view/com/modals/DeleteAccount.tsx:156 -#: src/view/com/modals/DeleteAccount.tsx:234 +#: src/view/com/modals/DeleteAccount.tsx:155 +#: src/view/com/modals/DeleteAccount.tsx:233 msgctxt "action" msgid "Cancel" msgstr "取消" -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:230 +#: src/view/com/modals/DeleteAccount.tsx:151 +#: src/view/com/modals/DeleteAccount.tsx:229 msgid "Cancel account deletion" msgstr "取消刪除帳號" -#: src/view/com/modals/ChangeHandle.tsx:151 +#: src/view/com/modals/ChangeHandle.tsx:144 msgid "Cancel change handle" msgstr "取消修改帳號代碼" @@ -704,7 +727,7 @@ msgstr "取消搜尋" msgid "Cancels opening the linked website" msgstr "取消開啟網站連結" -#: src/view/com/modals/VerifyEmail.tsx:161 +#: src/view/com/modals/VerifyEmail.tsx:160 msgid "Change" msgstr "變更" @@ -717,12 +740,12 @@ msgstr "變更" msgid "Change handle" msgstr "變更帳號代碼" -#: src/view/com/modals/ChangeHandle.tsx:163 +#: src/view/com/modals/ChangeHandle.tsx:156 #: src/view/screens/Settings/index.tsx:695 msgid "Change Handle" msgstr "變更帳號代碼" -#: src/view/com/modals/VerifyEmail.tsx:156 +#: src/view/com/modals/VerifyEmail.tsx:155 msgid "Change my email" msgstr "變更我的電子郵件地址" @@ -739,7 +762,7 @@ msgstr "變更密碼" msgid "Change post language to {0}" msgstr "變更貼文的發佈語言為 {0}" -#: src/view/com/modals/ChangeEmail.tsx:111 +#: src/view/com/modals/ChangeEmail.tsx:104 msgid "Change Your Email" msgstr "變更您的電子郵件地址" @@ -747,11 +770,11 @@ msgstr "變更您的電子郵件地址" msgid "Chat" msgstr "私訊" -#: src/components/dms/ConvoMenu.tsx:55 +#: src/components/dms/ConvoMenu.tsx:63 msgid "Chat muted" msgstr "" -#: src/components/dms/ConvoMenu.tsx:87 +#: src/components/dms/ConvoMenu.tsx:89 #: src/components/dms/MessageMenu.tsx:69 msgid "Chat settings" msgstr "" @@ -769,11 +792,11 @@ msgstr "" msgid "Check my status" msgstr "檢查我的狀態" -#: src/screens/Login/LoginForm.tsx:262 +#: src/screens/Login/LoginForm.tsx:265 msgid "Check your email for a login code and enter it here." msgstr "在此輸入寄送至您電子郵件地址的驗證碼。" -#: src/view/com/modals/DeleteAccount.tsx:169 +#: src/view/com/modals/DeleteAccount.tsx:168 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "在下方輸入寄送至您電子郵件地址的驗證碼:" @@ -785,10 +808,14 @@ msgstr "選擇「所有人」或「沒有人」" msgid "Choose Service" msgstr "選擇服務" -#: src/screens/Onboarding/StepFinished.tsx:141 +#: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." msgstr "選擇提供您自定義動態的演算法。" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 +msgid "Choose this color as your avatar" +msgstr "" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" msgstr "選擇您的主要動態源" @@ -830,11 +857,15 @@ msgstr "清除所有資料" msgid "click here" msgstr "點擊這裡" +#: src/screens/Feeds/NoFollowingFeed.tsx:46 +msgid "Click here to add one." +msgstr "" + #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" msgstr "點擊這裡以開啟 {tag} 的標籤選單" -#: src/screens/Onboarding/index.tsx:35 +#: src/screens/Onboarding/index.tsx:47 msgid "Climate" msgstr "氣象" @@ -903,11 +934,11 @@ msgstr "關閉標題圖片檢視器" msgid "Collapses list of users for a given notification" msgstr "折疊指定通知的用戶清單" -#: src/screens/Onboarding/index.tsx:41 +#: src/screens/Onboarding/index.tsx:53 msgid "Comedy" msgstr "喜劇" -#: src/screens/Onboarding/index.tsx:27 +#: src/screens/Onboarding/index.tsx:39 msgid "Comics" msgstr "漫畫" @@ -916,7 +947,7 @@ msgstr "漫畫" msgid "Community Guidelines" msgstr "社群守則" -#: src/screens/Onboarding/StepFinished.tsx:154 +#: src/screens/Onboarding/StepFinished.tsx:251 msgid "Complete onboarding and start using your account" msgstr "完成初始設定並開始使用您的帳號" @@ -946,18 +977,18 @@ msgstr "已在<0>限制設定中配置。" #: src/components/Prompt.tsx:159 #: src/components/Prompt.tsx:162 -#: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:240 -#: src/view/com/modals/VerifyEmail.tsx:242 -#: src/view/screens/PreferencesFollowingFeed.tsx:306 +#: src/view/com/modals/SelfLabel.tsx:155 +#: src/view/com/modals/VerifyEmail.tsx:239 +#: src/view/com/modals/VerifyEmail.tsx:241 +#: src/view/screens/PreferencesFollowingFeed.tsx:307 #: src/view/screens/PreferencesThreads.tsx:159 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:181 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:184 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:180 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:183 msgid "Confirm" msgstr "確認" -#: src/view/com/modals/ChangeEmail.tsx:195 -#: src/view/com/modals/ChangeEmail.tsx:197 +#: src/view/com/modals/ChangeEmail.tsx:188 +#: src/view/com/modals/ChangeEmail.tsx:190 msgid "Confirm Change" msgstr "確認更改" @@ -965,7 +996,7 @@ msgstr "確認更改" msgid "Confirm content language settings" msgstr "確認內容語言設定" -#: src/view/com/modals/DeleteAccount.tsx:220 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Confirm delete account" msgstr "確認刪除帳號" @@ -977,17 +1008,17 @@ msgstr "確認您的年齡:" msgid "Confirm your birthdate" msgstr "確認您的出生日期" -#: src/screens/Login/LoginForm.tsx:244 -#: src/view/com/modals/ChangeEmail.tsx:159 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/DeleteAccount.tsx:182 -#: src/view/com/modals/VerifyEmail.tsx:174 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:144 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:150 +#: src/screens/Login/LoginForm.tsx:247 +#: src/view/com/modals/ChangeEmail.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:175 +#: src/view/com/modals/DeleteAccount.tsx:181 +#: src/view/com/modals/VerifyEmail.tsx:173 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:143 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:149 msgid "Confirmation code" msgstr "驗證碼" -#: src/screens/Login/LoginForm.tsx:296 +#: src/screens/Login/LoginForm.tsx:299 msgid "Connecting..." msgstr "連線中…" @@ -1034,8 +1065,9 @@ msgstr "彈出式選單背景,點擊以關閉選單。" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 -#: src/screens/Onboarding/StepInterests/index.tsx:253 +#: src/screens/Onboarding/StepInterests/index.tsx:263 #: src/screens/Onboarding/StepModeration/index.tsx:103 +#: src/screens/Onboarding/StepProfile/index.tsx:272 #: src/screens/Onboarding/StepTopicalFeeds.tsx:118 msgid "Continue" msgstr "繼續" @@ -1045,8 +1077,9 @@ msgid "Continue as {0} (currently signed in)" msgstr "以 {0} 繼續 (目前已登入)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 -#: src/screens/Onboarding/StepInterests/index.tsx:250 +#: src/screens/Onboarding/StepInterests/index.tsx:260 #: src/screens/Onboarding/StepModeration/index.tsx:100 +#: src/screens/Onboarding/StepProfile/index.tsx:269 #: src/screens/Onboarding/StepTopicalFeeds.tsx:115 #: src/screens/Signup/index.tsx:213 msgid "Continue to next step" @@ -1060,7 +1093,7 @@ msgstr "繼續下一步" msgid "Continue to the next step without following any accounts" msgstr "繼續下一步,不跟隨任何帳號" -#: src/screens/Onboarding/index.tsx:44 +#: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "烹飪" @@ -1073,9 +1106,9 @@ msgstr "已複製" msgid "Copied build version to clipboard" msgstr "已複製建構版本號至剪貼簿" -#: src/components/dms/MessageMenu.tsx:47 +#: src/components/dms/MessageMenu.tsx:53 #: src/view/com/modals/AddAppPasswords.tsx:77 -#: src/view/com/modals/ChangeHandle.tsx:327 +#: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 msgid "Copied to clipboard" @@ -1093,7 +1126,7 @@ msgstr "複製應用程式專用密碼" msgid "Copy" msgstr "複製" -#: src/view/com/modals/ChangeHandle.tsx:481 +#: src/view/com/modals/ChangeHandle.tsx:474 msgid "Copy {0}" msgstr "複製 {0}" @@ -1102,7 +1135,7 @@ msgstr "複製 {0}" msgid "Copy code" msgstr "複製程式碼" -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Copy link to list" msgstr "複製列表連結" @@ -1126,15 +1159,15 @@ msgstr "複製貼文文字" msgid "Copyright Policy" msgstr "著作權政策" -#: src/components/dms/ConvoMenu.tsx:79 +#: src/components/dms/ConvoMenu.tsx:80 msgid "Could not leave chat" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "無法加載動態" -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:956 msgid "Could not load list" msgstr "無法載入列表" @@ -1142,13 +1175,13 @@ msgstr "無法載入列表" msgid "Could not load profiles. Please try again later." msgstr "" -#: src/components/dms/ConvoMenu.tsx:58 +#: src/components/dms/ConvoMenu.tsx:69 msgid "Could not mute chat" msgstr "" #: src/components/dms/ConvoMenu.tsx:68 -msgid "Could not unmute chat" -msgstr "" +#~ msgid "Could not unmute chat" +#~ msgstr "" #: src/view/com/auth/SplashScreen.tsx:57 #: src/view/com/auth/SplashScreen.web.tsx:106 @@ -1168,6 +1201,10 @@ msgstr "建立帳號" msgid "Create an account" msgstr "建立一個帳號" +#: src/screens/Onboarding/StepProfile/index.tsx:286 +msgid "Create an avatar instead" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" msgstr "建立應用程式專用密碼" @@ -1177,7 +1214,7 @@ msgstr "建立應用程式專用密碼" msgid "Create new account" msgstr "建立新帳號" -#: src/components/ReportDialog/SelectReportOptionView.tsx:94 +#: src/components/ReportDialog/SelectReportOptionView.tsx:100 msgid "Create report for {0}" msgstr "建立 {0} 的檢舉" @@ -1185,7 +1222,7 @@ msgstr "建立 {0} 的檢舉" msgid "Created {0}" msgstr "{0} 已建立" -#: src/screens/Onboarding/index.tsx:29 +#: src/screens/Onboarding/index.tsx:41 msgid "Culture" msgstr "文化" @@ -1194,12 +1231,12 @@ msgstr "文化" msgid "Custom" msgstr "自訂" -#: src/view/com/modals/ChangeHandle.tsx:389 +#: src/view/com/modals/ChangeHandle.tsx:382 msgid "Custom domain" msgstr "自訂網域" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 -#: src/view/screens/Feeds.tsx:717 +#: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." msgstr "由社群打造的自訂動態帶來全新體驗,協助您找到所愛的內容。" @@ -1232,10 +1269,10 @@ msgstr "限制偵錯" msgid "Debug panel" msgstr "偵錯面板" -#: src/components/dms/MessageMenu.tsx:123 +#: src/components/dms/MessageMenu.tsx:125 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 #: src/view/screens/AppPasswords.tsx:268 -#: src/view/screens/ProfileList.tsx:609 +#: src/view/screens/ProfileList.tsx:662 msgid "Delete" msgstr "刪除" @@ -1247,7 +1284,7 @@ msgstr "刪除帳號" #~ msgid "Delete Account" #~ msgstr "刪除帳號" -#: src/view/com/modals/DeleteAccount.tsx:87 +#: src/view/com/modals/DeleteAccount.tsx:86 msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" @@ -1263,11 +1300,11 @@ msgstr "刪除應用程式專用密碼?" msgid "Delete for me" msgstr "" -#: src/view/screens/ProfileList.tsx:417 +#: src/view/screens/ProfileList.tsx:466 msgid "Delete List" msgstr "刪除列表" -#: src/components/dms/MessageMenu.tsx:119 +#: src/components/dms/MessageMenu.tsx:121 msgid "Delete message" msgstr "" @@ -1275,7 +1312,7 @@ msgstr "" msgid "Delete message for me" msgstr "" -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/DeleteAccount.tsx:222 msgid "Delete my account" msgstr "刪除我的帳號" @@ -1288,7 +1325,7 @@ msgstr "刪除我的帳號…" msgid "Delete post" msgstr "刪除貼文" -#: src/view/screens/ProfileList.tsx:604 +#: src/view/screens/ProfileList.tsx:657 msgid "Delete this list?" msgstr "刪除此列表?" @@ -1327,7 +1364,7 @@ msgstr "昏暗" msgid "Disable autoplay for GIFs" msgstr "關閉 GIF 自動播放" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:91 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" msgstr "關閉電子郵件雙重驗證" @@ -1360,7 +1397,7 @@ msgstr "阻撓應用程式向未登入用戶顯示我的帳號" msgid "Discover new custom feeds" msgstr "探索新的自訂動態源" -#: src/view/screens/Feeds.tsx:714 +#: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" msgstr "探索新的動態源" @@ -1372,7 +1409,7 @@ msgstr "顯示名稱" msgid "Display Name" msgstr "顯示名稱" -#: src/view/com/modals/ChangeHandle.tsx:398 +#: src/view/com/modals/ChangeHandle.tsx:391 msgid "DNS Panel" msgstr "DNS 控制台" @@ -1384,11 +1421,11 @@ msgstr "不包含裸露內容。" msgid "Doesn't begin or end with a hyphen" msgstr "不以連字符開頭或結尾" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "Domain Value" msgstr "網域設定值" -#: src/view/com/modals/ChangeHandle.tsx:489 +#: src/view/com/modals/ChangeHandle.tsx:482 msgid "Domain verified!" msgstr "網域已驗證!" @@ -1396,6 +1433,8 @@ msgstr "網域已驗證!" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/components/forms/DateField/index.tsx:74 #: src/components/forms/DateField/index.tsx:80 +#: src/screens/Onboarding/StepProfile/index.tsx:325 +#: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 #: src/view/com/modals/AddAppPasswords.tsx:227 @@ -1404,15 +1443,13 @@ msgstr "網域已驗證!" #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: src/view/screens/PreferencesFollowingFeed.tsx:309 -#: src/view/screens/Settings/ExportCarDialog.tsx:95 -#: src/view/screens/Settings/ExportCarDialog.tsx:97 +#: src/view/screens/PreferencesFollowingFeed.tsx:310 msgid "Done" msgstr "完成" #: src/view/com/modals/EditImage.tsx:334 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/SelfLabel.tsx:158 #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:95 @@ -1426,8 +1463,8 @@ msgstr "完成" msgid "Done{extraText}" msgstr "完成{extraText}" -#: src/view/screens/Settings/ExportCarDialog.tsx:60 -#: src/view/screens/Settings/ExportCarDialog.tsx:64 +#: src/view/screens/Settings/ExportCarDialog.tsx:78 +#: src/view/screens/Settings/ExportCarDialog.tsx:82 msgid "Download CAR file" msgstr "下載 CAR 檔案" @@ -1439,7 +1476,7 @@ msgstr "拖放即可新增圖片" msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "受 Apple 政策限制,成人內容只能在完成註冊後在網頁端啟用。" -#: src/view/com/modals/ChangeHandle.tsx:259 +#: src/view/com/modals/ChangeHandle.tsx:252 msgid "e.g. alice" msgstr "例如:alice" @@ -1447,7 +1484,7 @@ msgstr "例如:alice" msgid "e.g. Alice Roberts" msgstr "例如:張藍天" -#: src/view/com/modals/ChangeHandle.tsx:381 +#: src/view/com/modals/ChangeHandle.tsx:374 msgid "e.g. alice.com" msgstr "例如:alice.com" @@ -1494,7 +1531,7 @@ msgstr "編輯頭像" msgid "Edit image" msgstr "編輯圖片" -#: src/view/screens/ProfileList.tsx:405 +#: src/view/screens/ProfileList.tsx:454 msgid "Edit list details" msgstr "編輯列表詳情" @@ -1503,8 +1540,8 @@ msgid "Edit Moderation List" msgstr "編輯限制列表" #: src/Navigation.tsx:263 -#: src/view/screens/Feeds.tsx:459 -#: src/view/screens/SavedFeeds.tsx:85 +#: src/view/screens/Feeds.tsx:494 +#: src/view/screens/SavedFeeds.tsx:92 msgid "Edit My Feeds" msgstr "編輯我的動態源" @@ -1523,7 +1560,7 @@ msgid "Edit Profile" msgstr "編輯個人資料" #: src/view/com/home/HomeHeaderLayout.web.tsx:76 -#: src/view/screens/Feeds.tsx:380 +#: src/view/screens/Feeds.tsx:415 msgid "Edit Saved Feeds" msgstr "編輯已儲存的動態源" @@ -1539,16 +1576,16 @@ msgstr "編輯您的顯示名稱" msgid "Edit your profile description" msgstr "編輯您的帳號描述" -#: src/screens/Onboarding/index.tsx:34 +#: src/screens/Onboarding/index.tsx:46 msgid "Education" msgstr "教育" #: src/screens/Signup/StepInfo/index.tsx:80 -#: src/view/com/modals/ChangeEmail.tsx:143 +#: src/view/com/modals/ChangeEmail.tsx:136 msgid "Email" msgstr "電子郵件" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:65 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:64 msgid "Email 2FA disabled" msgstr "已關閉電子郵件雙重驗證" @@ -1556,16 +1593,16 @@ msgstr "已關閉電子郵件雙重驗證" msgid "Email address" msgstr "電子郵件地址" -#: src/view/com/modals/ChangeEmail.tsx:58 -#: src/view/com/modals/ChangeEmail.tsx:90 +#: src/view/com/modals/ChangeEmail.tsx:54 +#: src/view/com/modals/ChangeEmail.tsx:83 msgid "Email updated" msgstr "電子郵件已更新" -#: src/view/com/modals/ChangeEmail.tsx:113 +#: src/view/com/modals/ChangeEmail.tsx:106 msgid "Email Updated" msgstr "電子郵件已更新" -#: src/view/com/modals/VerifyEmail.tsx:86 +#: src/view/com/modals/VerifyEmail.tsx:85 msgid "Email verified" msgstr "電子郵件已驗證" @@ -1613,7 +1650,7 @@ msgstr "啟用外部媒體" msgid "Enable media players for" msgstr "啟用媒體播放器" -#: src/view/screens/PreferencesFollowingFeed.tsx:145 +#: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." msgstr "啟用此設定將只顯示您跟隨的人之間的回覆。" @@ -1642,7 +1679,7 @@ msgstr "輸入密碼" msgid "Enter a word or tag" msgstr "輸入文字或標籤" -#: src/view/com/modals/VerifyEmail.tsx:114 +#: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" msgstr "輸入驗證碼" @@ -1650,7 +1687,7 @@ msgstr "輸入驗證碼" msgid "Enter the code you received to change your password." msgstr "輸入您收到的驗證碼以更改密碼。" -#: src/view/com/modals/ChangeHandle.tsx:371 +#: src/view/com/modals/ChangeHandle.tsx:364 msgid "Enter the domain you want to use" msgstr "輸入您想使用的網域" @@ -1667,11 +1704,11 @@ msgstr "輸入您的出生日期" msgid "Enter your email address" msgstr "輸入您的電子郵件地址" -#: src/view/com/modals/ChangeEmail.tsx:43 +#: src/view/com/modals/ChangeEmail.tsx:42 msgid "Enter your new email above" msgstr "請在上方輸入您的新電子郵件地址" -#: src/view/com/modals/ChangeEmail.tsx:119 +#: src/view/com/modals/ChangeEmail.tsx:112 msgid "Enter your new email address below." msgstr "請在下方輸入您的新電子郵件地址。" @@ -1679,11 +1716,15 @@ msgstr "請在下方輸入您的新電子郵件地址。" msgid "Enter your username and password" msgstr "輸入您的用戶名稱和密碼" +#: src/view/screens/Settings/ExportCarDialog.tsx:47 +msgid "Error occurred while saving file" +msgstr "" + #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." msgstr "Captcha 給出了錯誤的回應。" -#: src/screens/Onboarding/StepInterests/index.tsx:192 +#: src/screens/Onboarding/StepInterests/index.tsx:202 #: src/view/screens/Search/Search.tsx:108 msgid "Error:" msgstr "錯誤:" @@ -1692,15 +1733,19 @@ msgstr "錯誤:" msgid "Everybody" msgstr "所有人" -#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" msgstr "過多的提及或回覆" -#: src/view/com/modals/DeleteAccount.tsx:231 +#: src/lib/moderation/useReportOptions.ts:80 +msgid "Excessive or unwanted messages" +msgstr "" + +#: src/view/com/modals/DeleteAccount.tsx:230 msgid "Exits account deletion process" msgstr "離開刪除帳號流程" -#: src/view/com/modals/ChangeHandle.tsx:152 +#: src/view/com/modals/ChangeHandle.tsx:145 msgid "Exits handle change process" msgstr "離開修改帳號代碼流程" @@ -1738,7 +1783,7 @@ msgstr "露骨的情色圖片。" msgid "Export my data" msgstr "匯出我的資料" -#: src/view/screens/Settings/ExportCarDialog.tsx:45 +#: src/view/screens/Settings/ExportCarDialog.tsx:63 #: src/view/screens/Settings/index.tsx:763 msgid "Export My Data" msgstr "匯出我的資料" @@ -1772,7 +1817,7 @@ msgstr "建立應用程式專用密碼失敗。" msgid "Failed to create the list. Check your internet connection and try again." msgstr "無法建立列表。請檢查您的網路連線並重試。" -#: src/components/dms/MessageMenu.tsx:130 +#: src/components/dms/MessageMenu.tsx:132 msgid "Failed to delete message" msgstr "" @@ -1784,43 +1829,47 @@ msgstr "無法刪除貼文,請重試" msgid "Failed to load GIFs" msgstr "無法載入 GIF" -#: src/screens/Messages/Conversation/MessageListError.tsx:21 +#: src/screens/Messages/Conversation/MessageListError.tsx:28 msgid "Failed to load past messages." msgstr "" -#: src/view/com/lightbox/Lightbox.tsx:83 +#: src/view/com/lightbox/Lightbox.tsx:84 msgid "Failed to save image: {0}" msgstr "無法儲存圖片:{0}" +#: src/screens/Messages/Conversation/MessageListError.tsx:29 +msgid "Failed to send message(s)." +msgstr "" + #: src/Navigation.tsx:203 msgid "Feed" msgstr "動態" -#: src/view/com/feeds/FeedSourceCard.tsx:217 +#: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" msgstr "{0} 建立的動態源" -#: src/view/screens/Feeds.tsx:630 +#: src/view/screens/Feeds.tsx:735 msgid "Feed offline" msgstr "動態源已離線" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:335 +#: src/view/shell/Drawer.tsx:344 msgid "Feedback" msgstr "意見回饋" #: src/Navigation.tsx:507 -#: src/view/screens/Feeds.tsx:444 -#: src/view/screens/Feeds.tsx:549 +#: src/view/screens/Feeds.tsx:479 +#: src/view/screens/Feeds.tsx:595 #: src/view/screens/Profile.tsx:197 -#: src/view/shell/bottom-bar/BottomBar.tsx:212 -#: src/view/shell/desktop/LeftNav.tsx:379 -#: src/view/shell/Drawer.tsx:500 -#: src/view/shell/Drawer.tsx:501 +#: src/view/shell/bottom-bar/BottomBar.tsx:245 +#: src/view/shell/desktop/LeftNav.tsx:361 +#: src/view/shell/Drawer.tsx:492 +#: src/view/shell/Drawer.tsx:493 msgid "Feeds" msgstr "動態源" -#: src/view/screens/SavedFeeds.tsx:157 +#: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "動態源是一種自訂演算法,使用者只需掌握一點開發技巧即可輕鬆構建。更多資訊請見 <0/>。" @@ -1828,15 +1877,19 @@ msgstr "動態源是一種自訂演算法,使用者只需掌握一點開發技 msgid "Feeds can be topical as well!" msgstr "動態源也可以圍繞某些話題!" -#: src/view/com/modals/ChangeHandle.tsx:482 +#: src/view/com/modals/ChangeHandle.tsx:475 msgid "File Contents" msgstr "檔案內容" +#: src/view/screens/Settings/ExportCarDialog.tsx:43 +msgid "File saved successfully!" +msgstr "" + #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" msgstr "從動態源中篩選" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Finalizing" msgstr "正在完成" @@ -1850,7 +1903,7 @@ msgstr "尋找一些帳號來跟隨" msgid "Find posts and users on Bluesky" msgstr "在 Bluesky 上尋找貼文和用戶" -#: src/view/screens/PreferencesFollowingFeed.tsx:109 +#: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." msgstr "對跟隨的動態源中的內容進行微調。" @@ -1858,11 +1911,11 @@ msgstr "對跟隨的動態源中的內容進行微調。" msgid "Fine-tune the discussion threads." msgstr "微調討論串。" -#: src/screens/Onboarding/index.tsx:38 +#: src/screens/Onboarding/index.tsx:50 msgid "Fitness" msgstr "健康" -#: src/screens/Onboarding/StepFinished.tsx:137 +#: src/screens/Onboarding/StepFinished.tsx:234 msgid "Flexible" msgstr "靈活" @@ -1920,7 +1973,7 @@ msgstr "由 {0} 跟隨" msgid "Followed users" msgstr "已跟隨的用戶" -#: src/view/screens/PreferencesFollowingFeed.tsx:152 +#: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" msgstr "僅限已跟隨的用戶" @@ -1938,7 +1991,9 @@ msgstr "跟隨者" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:233 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 +#: src/view/screens/Feeds.tsx:682 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/screens/SavedFeeds.tsx:413 msgid "Following" msgstr "跟隨中" @@ -1953,7 +2008,7 @@ msgstr "跟隨動態源偏好" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 -#: src/view/screens/PreferencesFollowingFeed.tsx:102 +#: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:573 msgid "Following Feed Preferences" msgstr "跟隨動態源偏好" @@ -1966,11 +2021,11 @@ msgstr "跟隨您" msgid "Follows You" msgstr "跟隨您" -#: src/screens/Onboarding/index.tsx:43 +#: src/screens/Onboarding/index.tsx:55 msgid "Food" msgstr "食物" -#: src/view/com/modals/DeleteAccount.tsx:111 +#: src/view/com/modals/DeleteAccount.tsx:110 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "為了保護您的帳號安全,我們需要將驗證碼發送到您的電子郵件地址。" @@ -1983,15 +2038,15 @@ msgstr "為了保護您的帳號安全,您將無法再次查看此內容。如 msgid "Forgot Password" msgstr "忘記密碼" -#: src/screens/Login/LoginForm.tsx:218 +#: src/screens/Login/LoginForm.tsx:221 msgid "Forgot password?" msgstr "忘記密碼?" -#: src/screens/Login/LoginForm.tsx:229 +#: src/screens/Login/LoginForm.tsx:232 msgid "Forgot?" msgstr "忘記?" -#: src/lib/moderation/useReportOptions.ts:52 +#: src/lib/moderation/useReportOptions.ts:53 msgid "Frequently Posts Unwanted Content" msgstr "頻繁發佈不當內容" @@ -2008,12 +2063,16 @@ msgstr "來自 <0/>" msgid "Gallery" msgstr "相簿" -#: src/view/com/modals/VerifyEmail.tsx:198 -#: src/view/com/modals/VerifyEmail.tsx:200 +#: src/view/com/modals/VerifyEmail.tsx:197 +#: src/view/com/modals/VerifyEmail.tsx:199 msgid "Get Started" msgstr "開始" -#: src/lib/moderation/useReportOptions.ts:37 +#: src/screens/Onboarding/StepProfile/index.tsx:228 +msgid "Give your profile a face" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" msgstr "明顯違反法律或服務條款" @@ -2022,9 +2081,9 @@ msgstr "明顯違反法律或服務條款" #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/auth/LoggedOut.tsx:83 #: src/view/screens/NotFound.tsx:55 -#: src/view/screens/ProfileFeed.tsx:112 -#: src/view/screens/ProfileList.tsx:912 -#: src/view/shell/desktop/LeftNav.tsx:111 +#: src/view/screens/ProfileFeed.tsx:111 +#: src/view/screens/ProfileList.tsx:965 +#: src/view/shell/desktop/LeftNav.tsx:126 msgid "Go back" msgstr "返回" @@ -2032,12 +2091,13 @@ msgstr "返回" #: src/screens/Profile/ErrorState.tsx:62 #: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/NotFound.tsx:54 -#: src/view/screens/ProfileFeed.tsx:117 -#: src/view/screens/ProfileList.tsx:917 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:970 msgid "Go Back" msgstr "返回" -#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/dms/MessageReportDialog.tsx:130 +#: src/components/ReportDialog/SelectReportOptionView.tsx:79 #: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 @@ -2058,11 +2118,11 @@ msgstr "前往首頁" msgid "Go to next" msgstr "前往下一步" -#: src/components/dms/ConvoMenu.tsx:114 +#: src/components/dms/ConvoMenu.tsx:131 msgid "Go to profile" msgstr "" -#: src/components/dms/ConvoMenu.tsx:111 +#: src/components/dms/ConvoMenu.tsx:128 msgid "Go to user's profile" msgstr "" @@ -2070,7 +2130,7 @@ msgstr "" msgid "Graphic Media" msgstr "影像媒體" -#: src/view/com/modals/ChangeHandle.tsx:267 +#: src/view/com/modals/ChangeHandle.tsx:260 msgid "Handle" msgstr "帳號代碼" @@ -2078,7 +2138,7 @@ msgstr "帳號代碼" msgid "Haptics" msgstr "觸覺" -#: src/lib/moderation/useReportOptions.ts:32 +#: src/lib/moderation/useReportOptions.ts:33 msgid "Harassment, trolling, or intolerance" msgstr "騷擾、惡作劇或其他無法容忍的行為" @@ -2086,7 +2146,7 @@ msgstr "騷擾、惡作劇或其他無法容忍的行為" msgid "Hashtag" msgstr "標籤" -#: src/components/RichText.tsx:206 +#: src/components/RichText.tsx:217 msgid "Hashtag: #{tag}" msgstr "標籤:#{tag}" @@ -2095,10 +2155,14 @@ msgid "Having trouble?" msgstr "遇到問題?" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:345 +#: src/view/shell/Drawer.tsx:354 msgid "Help" msgstr "幫助" +#: src/screens/Onboarding/StepProfile/index.tsx:231 +msgid "Help people know you're not a bot by uploading a picture or creating an avatar." +msgstr "" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" msgstr "這裡有一些您可以跟隨的帳號" @@ -2151,23 +2215,23 @@ msgstr "隱藏這則貼文?" msgid "Hide user list" msgstr "隱藏用戶列表" -#: src/view/com/posts/FeedErrorMessage.tsx:111 +#: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "唔,與動態源的伺服器連線時發生了某種問題。請告訴該動態源的擁有者這個問題。" -#: src/view/com/posts/FeedErrorMessage.tsx:99 +#: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." msgstr "唔,動態源的伺服器似乎設定錯誤。請告訴該動態源的擁有者這個問題。" -#: src/view/com/posts/FeedErrorMessage.tsx:105 +#: src/view/com/posts/FeedErrorMessage.tsx:112 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." msgstr "唔,動態源的伺服器似乎已離線。請告訴該動態源的擁有者這個問題。" -#: src/view/com/posts/FeedErrorMessage.tsx:102 +#: src/view/com/posts/FeedErrorMessage.tsx:109 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." msgstr "唔,動態源的伺服器給出了錯誤的回應。請告訴該動態源的擁有者這個問題。" -#: src/view/com/posts/FeedErrorMessage.tsx:96 +#: src/view/com/posts/FeedErrorMessage.tsx:103 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "唔,我們無法找到這個動態源,它可能已被刪除。" @@ -2180,21 +2244,21 @@ msgid "Hmmmm, we couldn't load that moderation service." msgstr "唔,我們無法載入該限制服務。" #: src/Navigation.tsx:497 -#: src/view/shell/bottom-bar/BottomBar.tsx:168 -#: src/view/shell/desktop/LeftNav.tsx:314 -#: src/view/shell/Drawer.tsx:422 -#: src/view/shell/Drawer.tsx:423 +#: src/view/shell/bottom-bar/BottomBar.tsx:176 +#: src/view/shell/desktop/LeftNav.tsx:321 +#: src/view/shell/Drawer.tsx:424 +#: src/view/shell/Drawer.tsx:425 msgid "Home" msgstr "首頁" -#: src/view/com/modals/ChangeHandle.tsx:421 +#: src/view/com/modals/ChangeHandle.tsx:414 msgid "Host:" msgstr "主機:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/screens/Signup/StepInfo/index.tsx:40 -#: src/view/com/modals/ChangeHandle.tsx:282 +#: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" msgstr "託管服務供應商" @@ -2202,25 +2266,29 @@ msgstr "託管服務供應商" msgid "How should we open this link?" msgstr "我們該如何開啟此連結?" -#: src/view/com/modals/VerifyEmail.tsx:223 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:133 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:136 +#: src/view/com/modals/VerifyEmail.tsx:222 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:132 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:135 msgid "I have a code" msgstr "我有驗證碼" -#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:224 msgid "I have a confirmation code" msgstr "我有驗證碼" -#: src/view/com/modals/ChangeHandle.tsx:285 +#: src/view/com/modals/ChangeHandle.tsx:278 msgid "I have my own domain" msgstr "我擁有自己的網域" +#: src/components/dms/ConvoMenu.tsx:202 +msgid "I understand" +msgstr "" + #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" msgstr "替代文字過長時,切換替代文字的展開狀態" -#: src/view/com/modals/SelfLabel.tsx:127 +#: src/view/com/modals/SelfLabel.tsx:128 msgid "If none are selected, suitable for all ages." msgstr "若不勾選,則預設為全年齡向。" @@ -2228,7 +2296,7 @@ msgstr "若不勾選,則預設為全年齡向。" msgid "If you are not yet an adult according to the laws of your country, your parent or legal guardian must read these Terms on your behalf." msgstr "如果根據您所在國家的法律,您尚未成年,則您的父母或法定監護人必須代表您閱讀這些條款。" -#: src/view/screens/ProfileList.tsx:606 +#: src/view/screens/ProfileList.tsx:659 msgid "If you delete this list, you won't be able to recover it." msgstr "如果刪除這個列表,您將無法恢復它。" @@ -2240,7 +2308,7 @@ msgstr "如果刪除這則貼文,您將無法恢復它。" msgid "If you want to change your password, we will send you a code to verify that this is your account." msgstr "如果您想更改密碼,我們將向您發送一個驗證碼以確認這是您的帳號。" -#: src/lib/moderation/useReportOptions.ts:36 +#: src/lib/moderation/useReportOptions.ts:37 msgid "Illegal and Urgent" msgstr "違法" @@ -2252,7 +2320,7 @@ msgstr "圖片" msgid "Image alt text" msgstr "圖片替代文字" -#: src/lib/moderation/useReportOptions.ts:47 +#: src/lib/moderation/useReportOptions.ts:48 msgid "Impersonation or false claims about identity or affiliation" msgstr "冒充或虛假聲明身份或隸屬關係" @@ -2260,7 +2328,7 @@ msgstr "冒充或虛假聲明身份或隸屬關係" msgid "Input code sent to your email for password reset" msgstr "輸入發送到您電子郵件地址的重設碼以重設密碼" -#: src/view/com/modals/DeleteAccount.tsx:184 +#: src/view/com/modals/DeleteAccount.tsx:183 msgid "Input confirmation code for account deletion" msgstr "輸入刪除帳號的驗證碼" @@ -2272,27 +2340,27 @@ msgstr "輸入應用程式專用密碼名稱" msgid "Input new password" msgstr "輸入新密碼" -#: src/view/com/modals/DeleteAccount.tsx:203 +#: src/view/com/modals/DeleteAccount.tsx:202 msgid "Input password for account deletion" msgstr "輸入密碼以刪除帳號" -#: src/screens/Login/LoginForm.tsx:257 +#: src/screens/Login/LoginForm.tsx:260 msgid "Input the code which has been emailed to you" msgstr "輸入寄送至您電子郵件地址的驗證碼" -#: src/screens/Login/LoginForm.tsx:212 +#: src/screens/Login/LoginForm.tsx:215 msgid "Input the password tied to {identifier}" msgstr "輸入與 {identifier} 關聯的密碼" -#: src/screens/Login/LoginForm.tsx:185 +#: src/screens/Login/LoginForm.tsx:188 msgid "Input the username or email address you used at signup" msgstr "輸入註冊時使用的用戶名稱或電子郵件地址" -#: src/screens/Login/LoginForm.tsx:211 +#: src/screens/Login/LoginForm.tsx:214 msgid "Input your password" msgstr "輸入您的密碼" -#: src/view/com/modals/ChangeHandle.tsx:390 +#: src/view/com/modals/ChangeHandle.tsx:383 msgid "Input your preferred hosting provider" msgstr "輸入您的託管服務供應商" @@ -2300,8 +2368,8 @@ msgstr "輸入您的託管服務供應商" msgid "Input your user handle" msgstr "輸入您的帳號代碼" -#: src/screens/Login/LoginForm.tsx:126 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:71 +#: src/screens/Login/LoginForm.tsx:129 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "無效的雙重驗證碼。" @@ -2309,7 +2377,7 @@ msgstr "無效的雙重驗證碼。" msgid "Invalid or unsupported post record" msgstr "無效或不支援的貼文紀錄" -#: src/screens/Login/LoginForm.tsx:131 +#: src/screens/Login/LoginForm.tsx:134 msgid "Invalid username or password" msgstr "用戶名稱或密碼無效" @@ -2321,7 +2389,7 @@ msgstr "邀請朋友" msgid "Invite code" msgstr "邀請碼" -#: src/screens/Signup/state.ts:282 +#: src/screens/Signup/state.ts:272 msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "邀請碼無效。請檢查您輸入的內容是否正確,然後重試。" @@ -2341,7 +2409,7 @@ msgstr "它會即時顯示您所跟隨的人發佈的貼文。" msgid "Jobs" msgstr "工作" -#: src/screens/Onboarding/index.tsx:24 +#: src/screens/Onboarding/index.tsx:36 msgid "Journalism" msgstr "新聞學" @@ -2369,11 +2437,11 @@ msgstr "標記是對用戶和內容的標註,可用於隱藏、警告和對網 #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "此標記已放置於 {labelTarget} 上" -#: src/components/moderation/LabelsOnMeDialog.tsx:62 +#: src/components/moderation/LabelsOnMeDialog.tsx:77 msgid "Labels on your account" msgstr "您帳戶上的標記" -#: src/components/moderation/LabelsOnMeDialog.tsx:64 +#: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your content" msgstr "您內容上的標記" @@ -2421,13 +2489,13 @@ msgstr "瞭解有關 Bluesky 上公開內容的更多資訊。" msgid "Learn more." msgstr "瞭解詳情。" -#: src/components/dms/ConvoMenu.tsx:175 +#: src/components/dms/ConvoMenu.tsx:191 msgid "Leave" msgstr "" -#: src/components/dms/ConvoMenu.tsx:158 -#: src/components/dms/ConvoMenu.tsx:161 -#: src/components/dms/ConvoMenu.tsx:171 +#: src/components/dms/ConvoMenu.tsx:174 +#: src/components/dms/ConvoMenu.tsx:177 +#: src/components/dms/ConvoMenu.tsx:187 msgid "Leave conversation" msgstr "" @@ -2452,7 +2520,7 @@ msgstr "遺留資料已清除,您需要立即重新啟動應用程式。" msgid "Let's get your password reset!" msgstr "讓我們來重設您的密碼吧!" -#: src/screens/Onboarding/StepFinished.tsx:157 +#: src/screens/Onboarding/StepFinished.tsx:254 msgid "Let's go!" msgstr "讓我們開始吧!" @@ -2465,7 +2533,7 @@ msgstr "亮色" #~ msgstr "喜歡" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "對這個動態源按喜歡" @@ -2519,19 +2587,19 @@ msgstr "列表" msgid "List Avatar" msgstr "列表頭像" -#: src/view/screens/ProfileList.tsx:313 +#: src/view/screens/ProfileList.tsx:353 msgid "List blocked" msgstr "列表已封鎖" -#: src/view/com/feeds/FeedSourceCard.tsx:219 +#: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" msgstr "列表由 {0} 建立" -#: src/view/screens/ProfileList.tsx:357 +#: src/view/screens/ProfileList.tsx:392 msgid "List deleted" msgstr "列表已刪除" -#: src/view/screens/ProfileList.tsx:285 +#: src/view/screens/ProfileList.tsx:325 msgid "List muted" msgstr "列表已靜音" @@ -2539,20 +2607,20 @@ msgstr "列表已靜音" msgid "List Name" msgstr "列表名稱" -#: src/view/screens/ProfileList.tsx:327 +#: src/view/screens/ProfileList.tsx:367 msgid "List unblocked" msgstr "已解除封鎖的列表" -#: src/view/screens/ProfileList.tsx:299 +#: src/view/screens/ProfileList.tsx:339 msgid "List unmuted" msgstr "已解除靜音的列表" #: src/Navigation.tsx:121 #: src/view/screens/Profile.tsx:192 #: src/view/screens/Profile.tsx:198 -#: src/view/shell/desktop/LeftNav.tsx:397 -#: src/view/shell/Drawer.tsx:516 -#: src/view/shell/Drawer.tsx:517 +#: src/view/shell/desktop/LeftNav.tsx:367 +#: src/view/shell/Drawer.tsx:508 +#: src/view/shell/Drawer.tsx:509 msgid "Lists" msgstr "列表" @@ -2561,9 +2629,9 @@ msgid "Load new notifications" msgstr "載入新的通知" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:138 -#: src/view/screens/ProfileFeed.tsx:511 -#: src/view/screens/ProfileList.tsx:691 +#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/screens/ProfileFeed.tsx:492 +#: src/view/screens/ProfileList.tsx:744 msgid "Load new posts" msgstr "載入新的貼文" @@ -2590,7 +2658,7 @@ msgstr "登出可見性" msgid "Login to account that is not listed" msgstr "登入未列出的帳號" -#: src/components/RichText.tsx:207 +#: src/components/RichText.tsx:218 msgid "Long press to open tag menu for #{tag}" msgstr "長按開啟 #{tag} 的標籤選單" @@ -2598,6 +2666,18 @@ msgstr "長按開啟 #{tag} 的標籤選單" msgid "Looks like XXXXX-XXXXX" msgstr "看起來像是 XXXXX-XXXXX" +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 +msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." +msgstr "" + +#: src/screens/Home/NoFeedsPinned.tsx:96 +msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" +msgstr "" + +#: src/screens/Feeds/NoFollowingFeed.tsx:38 +msgid "Looks like you're missing a following feed." +msgstr "" + #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" msgstr "請確認這是您想要去的的地方!" @@ -2606,6 +2686,11 @@ msgstr "請確認這是您想要去的的地方!" msgid "Manage your muted words and tags" msgstr "管理您靜音的文字和標籤" +#: src/components/dms/ConvoMenu.tsx:115 +#: src/components/dms/ConvoMenu.tsx:122 +msgid "Mark as read" +msgstr "" + #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 msgid "Media" @@ -2624,30 +2709,35 @@ msgstr "被提及的用戶" msgid "Menu" msgstr "選單" -#: src/components/dms/MessageMenu.tsx:56 -#: src/screens/Messages/List/index.tsx:245 +#: src/components/dms/MessageMenu.tsx:60 +#: src/screens/Messages/List/ChatListItem.tsx:44 msgid "Message deleted" msgstr "" -#: src/view/com/posts/FeedErrorMessage.tsx:192 +#: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" msgstr "來自伺服器的訊息:{0}" -#: src/screens/Messages/Conversation/MessageInput.tsx:79 +#: src/screens/Messages/Conversation/MessageInput.tsx:93 msgid "Message input field" msgstr "" -#: src/screens/Messages/List/index.tsx:62 -#: src/screens/Messages/List/index.tsx:374 +#: src/screens/Messages/Conversation/MessageInput.tsx:50 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:33 +msgid "Message is too long" +msgstr "" + +#: src/screens/Messages/List/index.tsx:85 +#: src/screens/Messages/List/index.tsx:283 msgid "Message settings" msgstr "訊息設定" #: src/Navigation.tsx:517 -#: src/screens/Messages/List/index.tsx:163 -#: src/screens/Messages/List/index.tsx:190 -#: src/screens/Messages/List/index.tsx:370 -#: src/view/shell/bottom-bar/BottomBar.tsx:261 -#: src/view/shell/desktop/LeftNav.tsx:360 +#: src/screens/Messages/List/index.tsx:187 +#: src/screens/Messages/List/index.tsx:214 +#: src/screens/Messages/List/index.tsx:279 +#: src/view/shell/bottom-bar/BottomBar.tsx:219 +#: src/view/shell/desktop/LeftNav.tsx:344 msgid "Messages" msgstr "訊息" @@ -2655,7 +2745,7 @@ msgstr "訊息" msgid "Messaging settings" msgstr "訊息設定" -#: src/lib/moderation/useReportOptions.ts:45 +#: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" msgstr "誤導性帳戶" @@ -2674,13 +2764,13 @@ msgstr "限制詳情" msgid "Moderation list by {0}" msgstr "由 {0} 建立的限制列表" -#: src/view/screens/ProfileList.tsx:785 +#: src/view/screens/ProfileList.tsx:838 msgid "Moderation list by <0/>" msgstr "由 建立的限制列表" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 -#: src/view/screens/ProfileList.tsx:783 +#: src/view/screens/ProfileList.tsx:836 msgid "Moderation list by you" msgstr "您建立的限制列表" @@ -2722,11 +2812,11 @@ msgstr "限制者已選擇對內容設定普通警告。" msgid "More" msgstr "更多" -#: src/view/shell/desktop/Feeds.tsx:65 +#: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" msgstr "更多動態源" -#: src/view/screens/ProfileList.tsx:595 +#: src/view/screens/ProfileList.tsx:648 msgid "More options" msgstr "更多選項" @@ -2747,7 +2837,7 @@ msgstr "靜音 {truncatedTag}" msgid "Mute Account" msgstr "靜音帳號" -#: src/view/screens/ProfileList.tsx:514 +#: src/view/screens/ProfileList.tsx:567 msgid "Mute accounts" msgstr "靜音帳號" @@ -2763,16 +2853,16 @@ msgstr "僅靜音標籤" msgid "Mute in text & tags" msgstr "靜音文字和標籤" -#: src/view/screens/ProfileList.tsx:620 +#: src/view/screens/ProfileList.tsx:673 msgid "Mute list" msgstr "靜音列表" -#: src/components/dms/ConvoMenu.tsx:119 -#: src/components/dms/ConvoMenu.tsx:125 +#: src/components/dms/ConvoMenu.tsx:136 +#: src/components/dms/ConvoMenu.tsx:142 msgid "Mute notifications" msgstr "" -#: src/view/screens/ProfileList.tsx:615 +#: src/view/screens/ProfileList.tsx:668 msgid "Mute these accounts?" msgstr "靜音這些帳號?" @@ -2819,7 +2909,7 @@ msgstr "被「{0}」靜音" msgid "Muted words & tags" msgstr "靜音文字和標籤" -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:670 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "封鎖是私人的。被封鎖的帳號可以與您互動,但您將無法看到他們的貼文或收到來自他們的通知。" @@ -2828,11 +2918,11 @@ msgstr "封鎖是私人的。被封鎖的帳號可以與您互動,但您將無 msgid "My Birthday" msgstr "我的生日" -#: src/view/screens/Feeds.tsx:688 +#: src/view/screens/Feeds.tsx:794 msgid "My Feeds" msgstr "我的動態源" -#: src/view/shell/desktop/LeftNav.tsx:68 +#: src/view/shell/desktop/LeftNav.tsx:83 msgid "My Profile" msgstr "我的個人資料" @@ -2853,35 +2943,35 @@ msgstr "名稱" msgid "Name is required" msgstr "名稱是必填項" -#: src/lib/moderation/useReportOptions.ts:57 -#: src/lib/moderation/useReportOptions.ts:78 -#: src/lib/moderation/useReportOptions.ts:86 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:92 +#: src/lib/moderation/useReportOptions.ts:100 msgid "Name or Description Violates Community Standards" msgstr "名稱或描述違反社群標準" -#: src/screens/Onboarding/index.tsx:25 +#: src/screens/Onboarding/index.tsx:37 msgid "Nature" msgstr "自然" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:303 +#: src/screens/Login/LoginForm.tsx:306 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "切換到下一畫面" -#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:79 msgid "Navigates to your profile" msgstr "切換到您的個人檔案" -#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +#: src/components/ReportDialog/SelectReportOptionView.tsx:129 msgid "Need to report a copyright violation?" msgstr "需要檢舉侵權嗎?" -#: src/screens/Onboarding/StepFinished.tsx:125 +#: src/screens/Onboarding/StepFinished.tsx:222 msgid "Never lose access to your followers or data." msgstr "永遠不會失去對您的跟隨者或資料的存取權。" -#: src/view/com/modals/ChangeHandle.tsx:522 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Nevermind, create a handle for me" msgstr "沒關係,為我創建一個帳號代碼" @@ -2895,8 +2985,8 @@ msgid "New" msgstr "新增" #: src/components/dms/NewChat.tsx:60 -#: src/screens/Messages/List/index.tsx:384 -#: src/screens/Messages/List/index.tsx:392 +#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:301 msgid "New chat" msgstr "" @@ -2912,22 +3002,22 @@ msgstr "新密碼" msgid "New Password" msgstr "新密碼" -#: src/view/com/feeds/FeedPage.tsx:149 +#: src/view/com/feeds/FeedPage.tsx:153 msgctxt "action" msgid "New post" msgstr "新貼文" -#: src/view/screens/Feeds.tsx:580 +#: src/view/screens/Feeds.tsx:626 #: src/view/screens/Notifications.tsx:168 #: src/view/screens/Profile.tsx:464 -#: src/view/screens/ProfileFeed.tsx:445 +#: src/view/screens/ProfileFeed.tsx:426 #: src/view/screens/ProfileList.tsx:200 #: src/view/screens/ProfileList.tsx:228 -#: src/view/shell/desktop/LeftNav.tsx:255 +#: src/view/shell/desktop/LeftNav.tsx:270 msgid "New post" msgstr "新貼文" -#: src/view/shell/desktop/LeftNav.tsx:265 +#: src/view/shell/desktop/LeftNav.tsx:276 msgctxt "action" msgid "New Post" msgstr "新貼文" @@ -2940,14 +3030,14 @@ msgstr "新的用戶列表" msgid "Newest replies first" msgstr "最新回覆優先" -#: src/screens/Onboarding/index.tsx:23 +#: src/screens/Onboarding/index.tsx:35 msgid "News" msgstr "新聞" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:302 -#: src/screens/Login/LoginForm.tsx:309 +#: src/screens/Login/LoginForm.tsx:305 +#: src/screens/Login/LoginForm.tsx:312 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -2960,21 +3050,21 @@ msgstr "下一個" msgid "Next image" msgstr "下一張圖片" -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:198 -#: src/view/screens/PreferencesFollowingFeed.tsx:233 -#: src/view/screens/PreferencesFollowingFeed.tsx:270 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:199 +#: src/view/screens/PreferencesFollowingFeed.tsx:234 +#: src/view/screens/PreferencesFollowingFeed.tsx:271 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "關" -#: src/view/screens/ProfileFeed.tsx:578 -#: src/view/screens/ProfileList.tsx:765 +#: src/view/screens/ProfileFeed.tsx:559 +#: src/view/screens/ProfileList.tsx:818 msgid "No description" msgstr "沒有描述" -#: src/view/com/modals/ChangeHandle.tsx:406 +#: src/view/com/modals/ChangeHandle.tsx:399 msgid "No DNS Panel" msgstr "無 DNS 控制台" @@ -2990,8 +3080,8 @@ msgstr "不再跟隨 {0}" msgid "No longer than 253 characters" msgstr "不超過 253 個字符" -#: src/screens/Messages/List/index.tsx:174 -#: src/screens/Messages/List/index.tsx:234 +#: src/screens/Messages/List/ChatListItem.tsx:33 +#: src/screens/Messages/List/index.tsx:198 msgid "No messages yet" msgstr "" @@ -3008,7 +3098,7 @@ msgstr "沒有結果" msgid "No results found" msgstr "未找到結果" -#: src/view/screens/Feeds.tsx:520 +#: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" msgstr "未找到「{query}」的結果" @@ -3053,8 +3143,8 @@ msgstr "非情色內容裸體" msgid "Not Found" msgstr "未找到" -#: src/view/com/modals/VerifyEmail.tsx:255 -#: src/view/com/modals/VerifyEmail.tsx:261 +#: src/view/com/modals/VerifyEmail.tsx:254 +#: src/view/com/modals/VerifyEmail.tsx:260 msgid "Not right now" msgstr "暫時不需要" @@ -3071,22 +3161,22 @@ msgstr "注意:Bluesky 是一個開放且公開的網路。此設定僅限制 #: src/Navigation.tsx:512 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:236 -#: src/view/shell/desktop/LeftNav.tsx:351 -#: src/view/shell/Drawer.tsx:459 -#: src/view/shell/Drawer.tsx:460 +#: src/view/shell/bottom-bar/BottomBar.tsx:268 +#: src/view/shell/desktop/LeftNav.tsx:336 +#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:457 msgid "Notifications" msgstr "通知" -#: src/components/dms/MessageItem.tsx:139 +#: src/components/dms/MessageItem.tsx:145 msgid "Now" msgstr "" -#: src/view/com/modals/SelfLabel.tsx:103 +#: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" msgstr "裸露" -#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:72 msgid "Nudity or adult content not labeled as such" msgstr "未貼上此類標記的裸露或成人內容" @@ -3103,7 +3193,7 @@ msgstr "顯示" msgid "Oh no!" msgstr "糟糕!" -#: src/screens/Onboarding/StepInterests/index.tsx:133 +#: src/screens/Onboarding/StepInterests/index.tsx:143 msgid "Oh no! Something went wrong." msgstr "糟糕!發生了一些錯誤。" @@ -3128,6 +3218,10 @@ msgstr "重新開始引導流程" msgid "One or more images is missing alt text." msgstr "至少有一張圖片缺失了替代文字。" +#: src/screens/Onboarding/StepProfile/index.tsx:120 +msgid "Only .jpg and .png files are supported" +msgstr "" + #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." msgstr "只有 {0} 可以回覆。" @@ -3146,16 +3240,20 @@ msgstr "糟糕,發生了錯誤!" msgid "Oops!" msgstr "糟糕!" -#: src/screens/Onboarding/StepFinished.tsx:121 +#: src/screens/Onboarding/StepFinished.tsx:218 msgid "Open" msgstr "開啟" +#: src/screens/Onboarding/StepProfile/index.tsx:280 +msgid "Open avatar creator" +msgstr "" + #: src/view/com/composer/Composer.tsx:555 #: src/view/com/composer/Composer.tsx:556 msgid "Open emoji picker" msgstr "開啟表情符號選擇器" -#: src/view/screens/ProfileFeed.tsx:311 +#: src/view/screens/ProfileFeed.tsx:295 msgid "Open feed options menu" msgstr "開啟動態選項選單" @@ -3258,7 +3356,7 @@ msgstr "開啟下載 Bluesky 帳戶數據(存儲庫)的彈窗" msgid "Opens modal for email verification" msgstr "開啟驗證電子郵件的彈窗" -#: src/view/com/modals/ChangeHandle.tsx:283 +#: src/view/com/modals/ChangeHandle.tsx:276 msgid "Opens modal for using custom domain" msgstr "開啟使用自訂網域的彈窗" @@ -3266,12 +3364,12 @@ msgstr "開啟使用自訂網域的彈窗" msgid "Opens moderation settings" msgstr "開啟限制設定" -#: src/screens/Login/LoginForm.tsx:219 +#: src/screens/Login/LoginForm.tsx:222 msgid "Opens password reset form" msgstr "開啟密碼重設表單" #: src/view/com/home/HomeHeaderLayout.web.tsx:77 -#: src/view/screens/Feeds.tsx:381 +#: src/view/screens/Feeds.tsx:416 msgid "Opens screen to edit Saved Feeds" msgstr "開啟編輯已儲存動態源的畫面" @@ -3291,7 +3389,7 @@ msgstr "開啟跟隨動態源設定偏好" msgid "Opens the linked website" msgstr "開啟網站連結" -#: src/screens/Messages/List/index.tsx:63 +#: src/screens/Messages/List/index.tsx:86 msgid "Opens the message settings page" msgstr "打開私訊設定頁面" @@ -3312,6 +3410,7 @@ msgstr "開啟對話串偏好" msgid "Option {0} of {numItems}" msgstr "{0} 選項,共 {numItems} 個" +#: src/components/dms/MessageReportDialog.tsx:156 #: src/components/ReportDialog/SubmitView.tsx:162 msgid "Optionally provide additional information below:" msgstr "在以下提供額外訊息(可選):" @@ -3320,7 +3419,7 @@ msgstr "在以下提供額外訊息(可選):" msgid "Or combine these options:" msgstr "或者組合這些選項:" -#: src/lib/moderation/useReportOptions.ts:25 +#: src/lib/moderation/useReportOptions.ts:26 msgid "Other" msgstr "其他" @@ -3341,10 +3440,10 @@ msgstr "頁面不存在" msgid "Page Not Found" msgstr "頁面不存在" -#: src/screens/Login/LoginForm.tsx:195 +#: src/screens/Login/LoginForm.tsx:198 #: src/screens/Signup/StepInfo/index.tsx:102 -#: src/view/com/modals/DeleteAccount.tsx:195 -#: src/view/com/modals/DeleteAccount.tsx:202 +#: src/view/com/modals/DeleteAccount.tsx:194 +#: src/view/com/modals/DeleteAccount.tsx:201 msgid "Password" msgstr "密碼" @@ -3376,32 +3475,32 @@ msgstr "被 @{0} 跟隨的人" msgid "People following @{0}" msgstr "跟隨 @{0} 的人" -#: src/view/com/lightbox/Lightbox.tsx:66 +#: src/view/com/lightbox/Lightbox.tsx:67 msgid "Permission to access camera roll is required." msgstr "需要相機權限。" -#: src/view/com/lightbox/Lightbox.tsx:72 +#: src/view/com/lightbox/Lightbox.tsx:73 msgid "Permission to access camera roll was denied. Please enable it in your system settings." msgstr "相機權限已遭拒絕,請在系統設定中啟用。" -#: src/screens/Onboarding/index.tsx:31 +#: src/screens/Onboarding/index.tsx:43 msgid "Pets" msgstr "寵物" -#: src/view/com/modals/SelfLabel.tsx:121 +#: src/view/com/modals/SelfLabel.tsx:122 msgid "Pictures meant for adults." msgstr "適合成年人的圖像。" -#: src/view/screens/ProfileFeed.tsx:303 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:287 +#: src/view/screens/ProfileList.tsx:612 msgid "Pin to home" msgstr "釘選到首頁" -#: src/view/screens/ProfileFeed.tsx:306 +#: src/view/screens/ProfileFeed.tsx:290 msgid "Pin to Home" msgstr "釘選到首頁" -#: src/view/screens/SavedFeeds.tsx:89 +#: src/view/screens/SavedFeeds.tsx:102 msgid "Pinned Feeds" msgstr "釘選的動態源列表" @@ -3426,19 +3525,19 @@ msgstr "播放影片" msgid "Plays the GIF" msgstr "播放 GIF" -#: src/screens/Signup/state.ts:241 +#: src/screens/Signup/state.ts:234 msgid "Please choose your handle." msgstr "請設定您的帳號代碼。" -#: src/screens/Signup/state.ts:234 +#: src/screens/Signup/state.ts:227 msgid "Please choose your password." msgstr "請設定您的密碼。" -#: src/screens/Signup/state.ts:255 +#: src/screens/Signup/state.ts:248 msgid "Please complete the verification captcha." msgstr "請完成 Captcha 驗證。" -#: src/view/com/modals/ChangeEmail.tsx:69 +#: src/view/com/modals/ChangeEmail.tsx:65 msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "更改前請先確認您的電子郵件地址。這是電子郵件更新工具的臨時要求,此限制將很快被移除。" @@ -3454,15 +3553,15 @@ msgstr "請輸入此應用程式專用密碼的唯一名稱,或使用我們提 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "請輸入有效的文字或標籤進行靜音" -#: src/screens/Signup/state.ts:220 +#: src/screens/Signup/state.ts:213 msgid "Please enter your email." msgstr "請輸入您的電子郵件。" -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:190 msgid "Please enter your password as well:" msgstr "請輸入您的密碼:" -#: src/components/moderation/LabelsOnMeDialog.tsx:222 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "請解釋您認為 {0} 不正確套用此標記的原因" @@ -3470,7 +3569,7 @@ msgstr "請解釋您認為 {0} 不正確套用此標記的原因" msgid "Please sign in as @{0}" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:110 +#: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" msgstr "請驗證您的電子郵件地址" @@ -3478,11 +3577,11 @@ msgstr "請驗證您的電子郵件地址" msgid "Please wait for your link card to finish loading" msgstr "請等待您的連結預覽載入完畢" -#: src/screens/Onboarding/index.tsx:37 +#: src/screens/Onboarding/index.tsx:49 msgid "Politics" msgstr "政治" -#: src/view/com/modals/SelfLabel.tsx:111 +#: src/view/com/modals/SelfLabel.tsx:112 msgid "Porn" msgstr "情色內容" @@ -3550,7 +3649,7 @@ msgstr "貼文" msgid "Posts can be muted based on their text, their tags, or both." msgstr "可以靜音貼文所包含的文字和標籤。" -#: src/view/com/posts/FeedErrorMessage.tsx:64 +#: src/view/com/posts/FeedErrorMessage.tsx:69 msgid "Posts hidden" msgstr "貼文已隱藏" @@ -3564,15 +3663,15 @@ msgstr "按下以更改託管服務供應商" #: src/components/Error.tsx:85 #: src/components/Lists.tsx:83 -#: src/screens/Messages/Conversation/MessageListError.tsx:48 +#: src/screens/Messages/Conversation/MessageListError.tsx:59 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" msgstr "按下以重試" #: src/screens/Messages/Conversation/MessagesList.tsx:47 #: src/screens/Messages/Conversation/MessagesList.tsx:53 -msgid "Press to Retry" -msgstr "" +#~ msgid "Press to Retry" +#~ msgstr "" #: src/view/com/lightbox/Lightbox.web.tsx:150 msgid "Previous image" @@ -3595,7 +3694,7 @@ msgstr "隱私" #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 #: src/view/screens/Settings/index.tsx:890 -#: src/view/shell/Drawer.tsx:275 +#: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "隱私政策" @@ -3608,11 +3707,11 @@ msgstr "處理中…" msgid "profile" msgstr "個人檔案" -#: src/view/shell/bottom-bar/BottomBar.tsx:303 -#: src/view/shell/desktop/LeftNav.tsx:415 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:551 -#: src/view/shell/Drawer.tsx:552 +#: src/view/shell/bottom-bar/BottomBar.tsx:313 +#: src/view/shell/desktop/LeftNav.tsx:373 +#: src/view/shell/Drawer.tsx:78 +#: src/view/shell/Drawer.tsx:541 +#: src/view/shell/Drawer.tsx:542 msgid "Profile" msgstr "個人檔案" @@ -3624,7 +3723,7 @@ msgstr "個人檔案已更新" msgid "Protect your account by verifying your email." msgstr "通過驗證電子郵件地址來保護您的帳號。" -#: src/screens/Onboarding/StepFinished.tsx:107 +#: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" msgstr "公開內容" @@ -3666,16 +3765,20 @@ msgstr "隨機顯示 (又名試試手氣)" msgid "Ratios" msgstr "比率" +#: src/components/dms/MessageReportDialog.tsx:149 +msgid "Reason: {0}" +msgstr "" + #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" msgstr "最近的搜尋結果" #: src/components/dialogs/MutedWords.tsx:286 -#: src/view/com/feeds/FeedSourceCard.tsx:283 +#: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 -#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/SelfLabel.tsx:84 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/posts/FeedErrorMessage.tsx:204 +#: src/view/com/posts/FeedErrorMessage.tsx:213 msgid "Remove" msgstr "移除" @@ -3691,22 +3794,25 @@ msgstr "刪除頭像" msgid "Remove Banner" msgstr "刪除橫幅" -#: src/view/com/posts/FeedErrorMessage.tsx:160 +#: src/view/com/posts/FeedErrorMessage.tsx:169 +#: src/view/com/posts/FeedShutdownMsg.tsx:113 +#: src/view/com/posts/FeedShutdownMsg.tsx:117 msgid "Remove feed" msgstr "刪除動態源" -#: src/view/com/posts/FeedErrorMessage.tsx:201 +#: src/view/com/posts/FeedErrorMessage.tsx:210 msgid "Remove feed?" msgstr "刪除動態源?" -#: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/com/feeds/FeedSourceCard.tsx:232 -#: src/view/screens/ProfileFeed.tsx:346 -#: src/view/screens/ProfileFeed.tsx:352 +#: src/view/com/feeds/FeedSourceCard.tsx:174 +#: src/view/com/feeds/FeedSourceCard.tsx:234 +#: src/view/screens/ProfileFeed.tsx:330 +#: src/view/screens/ProfileFeed.tsx:336 +#: src/view/screens/ProfileList.tsx:438 msgid "Remove from my feeds" msgstr "從我的動態源中刪除" -#: src/view/com/feeds/FeedSourceCard.tsx:278 +#: src/view/com/feeds/FeedSourceCard.tsx:280 msgid "Remove from my feeds?" msgstr "從我的動態源中刪除?" @@ -3730,7 +3836,7 @@ msgstr "刪除引用貼文" msgid "Remove repost" msgstr "刪除轉貼貼文" -#: src/view/com/posts/FeedErrorMessage.tsx:202 +#: src/view/com/posts/FeedErrorMessage.tsx:211 msgid "Remove this feed from your saved feeds" msgstr "將這個動態源從儲存的動態源列表中刪除" @@ -3739,11 +3845,13 @@ msgstr "將這個動態源從儲存的動態源列表中刪除" msgid "Removed from list" msgstr "從列表中刪除" -#: src/view/com/feeds/FeedSourceCard.tsx:120 +#: src/view/com/feeds/FeedSourceCard.tsx:125 msgid "Removed from my feeds" msgstr "從我的動態源中刪除" -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/com/posts/FeedShutdownMsg.tsx:44 +#: src/view/screens/ProfileFeed.tsx:191 +#: src/view/screens/ProfileList.tsx:315 msgid "Removed from your feeds" msgstr "從您的動態源中刪除" @@ -3755,6 +3863,11 @@ msgstr "從 {0} 中刪除預設縮圖" msgid "Removes quoted post" msgstr "刪除已轉貼貼文" +#: src/view/com/posts/FeedShutdownMsg.tsx:126 +#: src/view/com/posts/FeedShutdownMsg.tsx:130 +msgid "Replace with Discover" +msgstr "" + #: src/view/screens/Profile.tsx:194 msgid "Replies" msgstr "回覆" @@ -3768,7 +3881,7 @@ msgctxt "action" msgid "Reply" msgstr "回覆" -#: src/view/screens/PreferencesFollowingFeed.tsx:142 +#: src/view/screens/PreferencesFollowingFeed.tsx:143 msgid "Reply Filters" msgstr "回覆過濾器" @@ -3784,24 +3897,30 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 -msgid "Report account" -msgstr "" +#~ msgid "Report account" +#~ msgstr "" #: src/view/com/profile/ProfileMenu.tsx:319 #: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "檢舉帳號" +#: src/components/dms/ConvoMenu.tsx:163 +#: src/components/dms/ConvoMenu.tsx:166 +#: src/components/dms/ConvoMenu.tsx:198 +msgid "Report conversation" +msgstr "" + #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" msgstr "檢舉對話框" -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileFeed.tsx:365 +#: src/view/screens/ProfileFeed.tsx:347 +#: src/view/screens/ProfileFeed.tsx:349 msgid "Report feed" msgstr "檢舉動態源" -#: src/view/screens/ProfileList.tsx:431 +#: src/view/screens/ProfileList.tsx:480 msgid "Report List" msgstr "檢舉列表" @@ -3814,30 +3933,36 @@ msgstr "" msgid "Report post" msgstr "檢舉貼文" -#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +#: src/components/ReportDialog/SelectReportOptionView.tsx:45 msgid "Report this content" msgstr "檢舉這個內容" -#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +#: src/components/ReportDialog/SelectReportOptionView.tsx:58 msgid "Report this feed" msgstr "檢舉這個動態源" -#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 msgid "Report this list" msgstr "檢舉這個列表" -#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +#: src/components/dms/MessageReportDialog.tsx:41 +#: src/components/dms/MessageReportDialog.tsx:137 +#: src/components/ReportDialog/SelectReportOptionView.tsx:61 +msgid "Report this message" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 msgid "Report this post" msgstr "檢舉這則貼文" -#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 msgid "Report this user" msgstr "檢舉這個用戶" #: src/view/com/modals/Repost.tsx:44 #: src/view/com/modals/Repost.tsx:49 #: src/view/com/modals/Repost.tsx:54 -#: src/view/com/util/post-ctrls/RepostButton.tsx:60 +#: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" msgstr "轉貼" @@ -3871,8 +3996,8 @@ msgstr "轉貼您的貼文" msgid "Reposts of this post" msgstr "轉貼這則貼文" -#: src/view/com/modals/ChangeEmail.tsx:183 -#: src/view/com/modals/ChangeEmail.tsx:185 +#: src/view/com/modals/ChangeEmail.tsx:176 +#: src/view/com/modals/ChangeEmail.tsx:178 msgid "Request Change" msgstr "請求變更" @@ -3885,7 +4010,7 @@ msgstr "請求代碼" msgid "Require alt text before posting" msgstr "要求發佈前提供替代文字" -#: src/view/screens/Settings/Email2FAToggle.tsx:54 +#: src/view/screens/Settings/Email2FAToggle.tsx:51 msgid "Require email code to log into your account" msgstr "需要電子郵件驗證碼才能登入您的帳戶" @@ -3893,8 +4018,8 @@ msgstr "需要電子郵件驗證碼才能登入您的帳戶" msgid "Required for this provider" msgstr "此供應商要求必填" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:169 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:172 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:168 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:171 msgid "Resend email" msgstr "重發 email" @@ -3928,7 +4053,7 @@ msgstr "重設初始設定狀態" msgid "Resets the preferences state" msgstr "重設偏好狀態" -#: src/screens/Login/LoginForm.tsx:283 +#: src/screens/Login/LoginForm.tsx:286 msgid "Retries login" msgstr "重試登入" @@ -3937,13 +4062,14 @@ msgstr "重試登入" msgid "Retries the last action, which errored out" msgstr "重試上次出錯的操作" -#: src/components/dms/MessageMenu.tsx:134 +#: src/components/dms/MessageMenu.tsx:136 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:94 -#: src/screens/Login/LoginForm.tsx:282 -#: src/screens/Login/LoginForm.tsx:289 -#: src/screens/Onboarding/StepInterests/index.tsx:226 -#: src/screens/Onboarding/StepInterests/index.tsx:229 +#: src/screens/Login/LoginForm.tsx:285 +#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Messages/Conversation/MessageListError.tsx:68 +#: src/screens/Onboarding/StepInterests/index.tsx:236 +#: src/screens/Onboarding/StepInterests/index.tsx:239 #: src/screens/Signup/index.tsx:207 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:72 @@ -3951,11 +4077,11 @@ msgid "Retry" msgstr "重試" #: src/screens/Messages/Conversation/MessageListError.tsx:54 -msgid "Retry." -msgstr "" +#~ msgid "Retry." +#~ msgstr "" #: src/components/Error.tsx:98 -#: src/view/screens/ProfileList.tsx:913 +#: src/view/screens/ProfileList.tsx:966 msgid "Return to previous page" msgstr "返回上一頁" @@ -3964,20 +4090,20 @@ msgid "Returns to home page" msgstr "返回首頁" #: src/view/screens/NotFound.tsx:58 -#: src/view/screens/ProfileFeed.tsx:113 +#: src/view/screens/ProfileFeed.tsx:112 msgid "Returns to previous page" msgstr "返回上一頁" #: src/components/dialogs/BirthDateSettings.tsx:125 #: src/view/com/composer/GifAltText.tsx:162 #: src/view/com/composer/GifAltText.tsx:168 -#: src/view/com/modals/ChangeHandle.tsx:175 +#: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 msgid "Save" msgstr "儲存" -#: src/view/com/lightbox/Lightbox.tsx:132 +#: src/view/com/lightbox/Lightbox.tsx:133 #: src/view/com/modals/CreateOrEditList.tsx:348 msgctxt "action" msgid "Save" @@ -3995,7 +4121,7 @@ msgstr "儲存生日" msgid "Save Changes" msgstr "儲存更改" -#: src/view/com/modals/ChangeHandle.tsx:172 +#: src/view/com/modals/ChangeHandle.tsx:165 msgid "Save handle change" msgstr "儲存帳號代碼更改" @@ -4003,16 +4129,16 @@ msgstr "儲存帳號代碼更改" msgid "Save image crop" msgstr "儲存圖片裁剪" -#: src/view/screens/ProfileFeed.tsx:347 -#: src/view/screens/ProfileFeed.tsx:353 +#: src/view/screens/ProfileFeed.tsx:331 +#: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" msgstr "儲存到我的動態源" -#: src/view/screens/SavedFeeds.tsx:123 +#: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" msgstr "已儲存動態源" -#: src/view/com/lightbox/Lightbox.tsx:81 +#: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" msgstr "" @@ -4020,7 +4146,8 @@ msgstr "" #~ msgid "Saved to your camera roll." #~ msgstr "儲存到您的圖片庫。" -#: src/view/screens/ProfileFeed.tsx:214 +#: src/view/screens/ProfileFeed.tsx:200 +#: src/view/screens/ProfileList.tsx:295 msgid "Saved to your feeds" msgstr "儲存到您的動態源" @@ -4028,7 +4155,7 @@ msgstr "儲存到您的動態源" msgid "Saves any changes to your profile" msgstr "儲存個人資料中所做的變更" -#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/ChangeHandle.tsx:166 msgid "Saves handle change to {handle}" msgstr "儲存帳號代碼更改至 {handle}" @@ -4036,11 +4163,11 @@ msgstr "儲存帳號代碼更改至 {handle}" msgid "Saves image crop settings" msgstr "保存圖片裁剪設定" -#: src/screens/Onboarding/index.tsx:36 +#: src/screens/Onboarding/index.tsx:48 msgid "Science" msgstr "科學" -#: src/view/screens/ProfileList.tsx:869 +#: src/view/screens/ProfileList.tsx:922 msgid "Scroll to top" msgstr "滾動到頂部" @@ -4053,12 +4180,12 @@ msgstr "滾動到頂部" #: src/view/screens/Search/Search.tsx:444 #: src/view/screens/Search/Search.tsx:757 #: src/view/screens/Search/Search.tsx:785 -#: src/view/shell/bottom-bar/BottomBar.tsx:190 -#: src/view/shell/desktop/LeftNav.tsx:332 +#: src/view/shell/bottom-bar/BottomBar.tsx:196 +#: src/view/shell/desktop/LeftNav.tsx:329 #: src/view/shell/desktop/Search.tsx:194 #: src/view/shell/desktop/Search.tsx:203 -#: src/view/shell/Drawer.tsx:386 -#: src/view/shell/Drawer.tsx:387 +#: src/view/shell/Drawer.tsx:393 +#: src/view/shell/Drawer.tsx:394 msgid "Search" msgstr "搜尋" @@ -4100,7 +4227,7 @@ msgstr "" msgid "Search Tenor" msgstr "搜尋 Tenor" -#: src/view/com/modals/ChangeEmail.tsx:112 +#: src/view/com/modals/ChangeEmail.tsx:105 msgid "Security Step Required" msgstr "所需的安全步驟" @@ -4125,7 +4252,7 @@ msgstr "查看這個用戶的 <0>{displayTag} 貼文" msgid "See profile" msgstr "查看個人檔案" -#: src/view/screens/SavedFeeds.tsx:164 +#: src/view/screens/SavedFeeds.tsx:186 msgid "See this guide" msgstr "查看指南" @@ -4133,10 +4260,22 @@ msgstr "查看指南" msgid "Select {item}" msgstr "選擇 {item}" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 +msgid "Select a color" +msgstr "" + #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" msgstr "選擇帳號" +#: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 +msgid "Select an avatar" +msgstr "" + +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 +msgid "Select an emoji" +msgstr "" + #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" msgstr "從現有帳號中選擇" @@ -4165,6 +4304,10 @@ msgstr "選擇 {numItems} 個項目中的第 {i} 項" msgid "Select some accounts below to follow" msgstr "在下面選擇一些帳號來跟隨" +#: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 +msgid "Select the {emojiName} emoji as your avatar" +msgstr "" + #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" msgstr "選擇要檢舉的限制服務提供者" @@ -4193,7 +4336,7 @@ msgstr "選擇應用程式中的預設語言。" msgid "Select your date of birth" msgstr "選擇您的出生日期" -#: src/screens/Onboarding/StepInterests/index.tsx:201 +#: src/screens/Onboarding/StepInterests/index.tsx:211 msgid "Select your interests from the options below" msgstr "從下面選擇您感興趣的選項" @@ -4209,30 +4352,32 @@ msgstr "選擇您的動態的主要算法" msgid "Select your secondary algorithmic feeds" msgstr "選擇您的動態的次要算法" -#: src/view/com/modals/VerifyEmail.tsx:211 -#: src/view/com/modals/VerifyEmail.tsx:213 +#: src/view/com/modals/VerifyEmail.tsx:210 +#: src/view/com/modals/VerifyEmail.tsx:212 msgid "Send Confirmation Email" msgstr "發送確認電子郵件" -#: src/view/com/modals/DeleteAccount.tsx:131 +#: src/view/com/modals/DeleteAccount.tsx:130 msgid "Send email" msgstr "發送電子郵件" -#: src/view/com/modals/DeleteAccount.tsx:144 +#: src/view/com/modals/DeleteAccount.tsx:143 msgctxt "action" msgid "Send Email" msgstr "發送電子郵件" -#: src/view/shell/Drawer.tsx:319 -#: src/view/shell/Drawer.tsx:340 +#: src/view/shell/Drawer.tsx:328 +#: src/view/shell/Drawer.tsx:349 msgid "Send feedback" msgstr "提交意見" -#: src/screens/Messages/Conversation/MessageInput.tsx:96 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:95 msgid "Send message" msgstr "" +#: src/components/dms/MessageReportDialog.tsx:207 +#: src/components/dms/MessageReportDialog.tsx:210 #: src/components/ReportDialog/SubmitView.tsx:215 #: src/components/ReportDialog/SubmitView.tsx:219 msgid "Send report" @@ -4242,12 +4387,12 @@ msgstr "提交檢舉" msgid "Send report to {0}" msgstr "將檢舉提交至 {0}" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:120 -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:123 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:119 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:122 msgid "Send verification email" msgstr "發送驗證電子郵件" -#: src/view/com/modals/DeleteAccount.tsx:133 +#: src/view/com/modals/DeleteAccount.tsx:132 msgid "Sends email with confirmation code for account deletion" msgstr "發送包含帳號刪除確認碼的電子郵件" @@ -4263,15 +4408,15 @@ msgstr "設定生日" msgid "Set new password" msgstr "設定新密碼" -#: src/view/screens/PreferencesFollowingFeed.tsx:223 +#: src/view/screens/PreferencesFollowingFeed.tsx:224 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "將此設定設為「關」以隱藏動態中所有引用的貼文,但轉貼依然會顯示。" -#: src/view/screens/PreferencesFollowingFeed.tsx:120 +#: src/view/screens/PreferencesFollowingFeed.tsx:121 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "將此設定設為「關」以隱藏動態中所有回覆貼文。" -#: src/view/screens/PreferencesFollowingFeed.tsx:189 +#: src/view/screens/PreferencesFollowingFeed.tsx:190 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "將此設定設為「關」以隱藏動態的所有轉貼貼文。" @@ -4279,7 +4424,7 @@ msgstr "將此設定設為「關」以隱藏動態的所有轉貼貼文。" msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "將此設定項設為「開」以單頁顯示樹狀回覆,這是一項實驗性功能。" -#: src/view/screens/PreferencesFollowingFeed.tsx:259 +#: src/view/screens/PreferencesFollowingFeed.tsx:260 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." msgstr "將此設定為「是」以在「Following 動態源」中顯示您追蹤的動態源中的選錄貼文,這是一個實驗性功能。" @@ -4287,7 +4432,7 @@ msgstr "將此設定為「是」以在「Following 動態源」中顯示您追 msgid "Set up your account" msgstr "設定您的帳號" -#: src/view/com/modals/ChangeHandle.tsx:268 +#: src/view/com/modals/ChangeHandle.tsx:261 msgid "Sets Bluesky username" msgstr "設定 Bluesky 帳號代碼" @@ -4330,13 +4475,13 @@ msgstr "將圖像的寬高比設定為寬" #: src/Navigation.tsx:146 #: src/screens/Messages/Settings/index.tsx:21 #: src/view/screens/Settings/index.tsx:322 -#: src/view/shell/desktop/LeftNav.tsx:433 -#: src/view/shell/Drawer.tsx:572 -#: src/view/shell/Drawer.tsx:573 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:558 +#: src/view/shell/Drawer.tsx:559 msgid "Settings" msgstr "設定" -#: src/view/com/modals/SelfLabel.tsx:125 +#: src/view/com/modals/SelfLabel.tsx:126 msgid "Sexual activity or erotic nudity." msgstr "性行為或性暗示裸露。" @@ -4344,7 +4489,7 @@ msgstr "性行為或性暗示裸露。" msgid "Sexually Suggestive" msgstr "性暗示" -#: src/view/com/lightbox/Lightbox.tsx:141 +#: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" msgid "Share" msgstr "分享" @@ -4354,7 +4499,7 @@ msgstr "分享" #: src/view/com/util/forms/PostDropdownBtn.tsx:266 #: src/view/com/util/forms/PostDropdownBtn.tsx:275 #: src/view/com/util/post-ctrls/PostCtrls.tsx:288 -#: src/view/screens/ProfileList.tsx:390 +#: src/view/screens/ProfileList.tsx:423 msgid "Share" msgstr "分享" @@ -4364,8 +4509,8 @@ msgstr "分享" msgid "Share anyway" msgstr "仍然分享" -#: src/view/screens/ProfileFeed.tsx:373 -#: src/view/screens/ProfileFeed.tsx:375 +#: src/view/screens/ProfileFeed.tsx:357 +#: src/view/screens/ProfileFeed.tsx:359 msgid "Share feed" msgstr "分享動態源" @@ -4428,11 +4573,11 @@ msgstr "顯示更多" msgid "Show more like this" msgstr "" -#: src/view/screens/PreferencesFollowingFeed.tsx:256 +#: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "顯示來自已儲存動態源的貼文" -#: src/view/screens/PreferencesFollowingFeed.tsx:220 +#: src/view/screens/PreferencesFollowingFeed.tsx:221 msgid "Show Quote Posts" msgstr "顯示引用貼文" @@ -4448,7 +4593,7 @@ msgstr "在跟隨中顯示引用貼文" msgid "Show re-posts in Following feed" msgstr "在跟隨動態源中顯示轉貼貼文" -#: src/view/screens/PreferencesFollowingFeed.tsx:117 +#: src/view/screens/PreferencesFollowingFeed.tsx:118 msgid "Show Replies" msgstr "顯示回覆" @@ -4468,7 +4613,7 @@ msgstr "在跟隨動態源中顯示回覆" #~ msgid "Show replies with at least {value} {0}" #~ msgstr "顯示至少包含 {value} 個 {0} 的回覆" -#: src/view/screens/PreferencesFollowingFeed.tsx:186 +#: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" msgstr "顯示轉貼貼文" @@ -4501,17 +4646,17 @@ msgstr "在您的動態中顯示來自 {0} 的貼文" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:148 +#: src/screens/Login/LoginForm.tsx:151 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 #: src/view/com/auth/SplashScreen.web.tsx:121 -#: src/view/shell/bottom-bar/BottomBar.tsx:343 -#: src/view/shell/bottom-bar/BottomBar.tsx:344 -#: src/view/shell/bottom-bar/BottomBar.tsx:346 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:196 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:197 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:199 +#: src/view/shell/bottom-bar/BottomBar.tsx:353 +#: src/view/shell/bottom-bar/BottomBar.tsx:354 +#: src/view/shell/bottom-bar/BottomBar.tsx:356 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:201 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:202 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:204 #: src/view/shell/NavSignupCard.tsx:69 #: src/view/shell/NavSignupCard.tsx:70 #: src/view/shell/NavSignupCard.tsx:72 @@ -4539,12 +4684,12 @@ msgstr "登入 Bluesky 或建立新帳戶" msgid "Sign out" msgstr "登出" -#: src/view/shell/bottom-bar/BottomBar.tsx:333 -#: src/view/shell/bottom-bar/BottomBar.tsx:334 -#: src/view/shell/bottom-bar/BottomBar.tsx:336 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:186 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:187 -#: src/view/shell/bottom-bar/BottomBarWeb.tsx:189 +#: src/view/shell/bottom-bar/BottomBar.tsx:343 +#: src/view/shell/bottom-bar/BottomBar.tsx:344 +#: src/view/shell/bottom-bar/BottomBar.tsx:346 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:191 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:192 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:194 #: src/view/shell/NavSignupCard.tsx:60 #: src/view/shell/NavSignupCard.tsx:61 #: src/view/shell/NavSignupCard.tsx:63 @@ -4569,27 +4714,31 @@ msgstr "登入身分" msgid "Signed in as @{0}" msgstr "以 @{0} 身分登入" -#: src/screens/Onboarding/StepInterests/index.tsx:240 +#: src/screens/Onboarding/StepInterests/index.tsx:250 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:203 msgid "Skip" msgstr "跳過" -#: src/screens/Onboarding/StepInterests/index.tsx:237 +#: src/screens/Onboarding/StepInterests/index.tsx:247 msgid "Skip this flow" msgstr "跳過此流程" -#: src/screens/Onboarding/index.tsx:40 +#: src/screens/Onboarding/index.tsx:52 msgid "Software Dev" msgstr "軟體開發" +#: src/screens/Messages/Conversation/index.tsx:89 +msgid "Something went wrong" +msgstr "" + #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 #: src/screens/Profile/Sections/Labels.tsx:87 msgid "Something went wrong, please try again." msgstr "發生了一些問題,請重試。" -#: src/App.native.tsx:84 -#: src/App.web.tsx:71 +#: src/App.native.tsx:83 +#: src/App.web.tsx:72 msgid "Sorry! Your session expired. Please log in again." msgstr "抱歉!您的登入會話已過期。請重新登入。" @@ -4601,19 +4750,20 @@ msgstr "排序回覆" msgid "Sort replies to the same post by:" msgstr "對同一貼文的回覆進行排序:" -#: src/components/moderation/LabelsOnMeDialog.tsx:146 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "Source:" msgstr "來源:" -#: src/lib/moderation/useReportOptions.ts:65 +#: src/lib/moderation/useReportOptions.ts:66 +#: src/lib/moderation/useReportOptions.ts:79 msgid "Spam" msgstr "垃圾訊息" -#: src/lib/moderation/useReportOptions.ts:53 +#: src/lib/moderation/useReportOptions.ts:54 msgid "Spam; excessive mentions or replies" msgstr "垃圾訊息、過多的提及或回覆" -#: src/screens/Onboarding/index.tsx:30 +#: src/screens/Onboarding/index.tsx:42 msgid "Sports" msgstr "運動" @@ -4650,12 +4800,12 @@ msgstr "已清除儲存資料,您需要立即重啟應用程式。" msgid "Storybook" msgstr "故事書" -#: src/components/moderation/LabelsOnMeDialog.tsx:256 -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:282 +#: src/components/moderation/LabelsOnMeDialog.tsx:283 msgid "Submit" msgstr "提交" -#: src/view/screens/ProfileList.tsx:586 +#: src/view/screens/ProfileList.tsx:639 msgid "Subscribe" msgstr "訂閱" @@ -4676,7 +4826,7 @@ msgstr "訂閱 {0} 動態源" msgid "Subscribe to this labeler" msgstr "訂閱這個標記者" -#: src/view/screens/ProfileList.tsx:582 +#: src/view/screens/ProfileList.tsx:635 msgid "Subscribe to this list" msgstr "訂閱這個列表" @@ -4688,7 +4838,7 @@ msgstr "推薦的跟隨者" msgid "Suggested for you" msgstr "為您推薦" -#: src/view/com/modals/SelfLabel.tsx:95 +#: src/view/com/modals/SelfLabel.tsx:96 msgid "Suggestive" msgstr "暗示" @@ -4735,7 +4885,7 @@ msgstr "高" msgid "Tap to view fully" msgstr "點擊查看完整內容" -#: src/screens/Onboarding/index.tsx:39 +#: src/screens/Onboarding/index.tsx:51 msgid "Tech" msgstr "科技" @@ -4747,13 +4897,13 @@ msgstr "條款" #: src/screens/Signup/StepInfo/Policies.tsx:49 #: src/view/screens/Settings/index.tsx:884 #: src/view/screens/TermsOfService.tsx:29 -#: src/view/shell/Drawer.tsx:269 +#: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" msgstr "服務條款" -#: src/lib/moderation/useReportOptions.ts:58 -#: src/lib/moderation/useReportOptions.ts:79 -#: src/lib/moderation/useReportOptions.ts:87 +#: src/lib/moderation/useReportOptions.ts:59 +#: src/lib/moderation/useReportOptions.ts:93 +#: src/lib/moderation/useReportOptions.ts:101 msgid "Terms used violate community standards" msgstr "所使用的文字違反了社群標準" @@ -4761,15 +4911,16 @@ msgstr "所使用的文字違反了社群標準" msgid "text" msgstr "文字" -#: src/components/moderation/LabelsOnMeDialog.tsx:220 +#: src/components/moderation/LabelsOnMeDialog.tsx:246 msgid "Text input field" msgstr "文字輸入框" +#: src/components/dms/MessageReportDialog.tsx:118 #: src/components/ReportDialog/SubmitView.tsx:77 msgid "Thank you. Your report has been sent." msgstr "謝謝,您的檢舉已提交。" -#: src/view/com/modals/ChangeHandle.tsx:466 +#: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" msgstr "其中包含以下內容:" @@ -4794,11 +4945,15 @@ msgstr "社群準則已移動到 <0/>" msgid "The Copyright Policy has been moved to <0/>" msgstr "版權政策已移動到 <0/>" -#: src/components/moderation/LabelsOnMeDialog.tsx:48 +#: src/view/com/posts/FeedShutdownMsg.tsx:66 +msgid "The feed has been replaced with Discover." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:63 msgid "The following labels were applied to your account." msgstr "以下標記已套用到您的帳戶。" -#: src/components/moderation/LabelsOnMeDialog.tsx:49 +#: src/components/moderation/LabelsOnMeDialog.tsx:64 msgid "The following labels were applied to your content." msgstr "以下標記已套用到您的內容。" @@ -4828,15 +4983,17 @@ msgid "There are many feeds to try:" msgstr "這裡有些動態源您可以嘗試:" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 -#: src/view/screens/ProfileFeed.tsx:560 +#: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "連線至伺服器時出現問題,請檢查您的網路連線並重試。" -#: src/view/com/posts/FeedErrorMessage.tsx:138 +#: src/view/com/posts/FeedErrorMessage.tsx:146 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "刪除動態源時出現問題,請檢查您的網路連線並重試。" -#: src/view/screens/ProfileFeed.tsx:219 +#: src/view/com/posts/FeedShutdownMsg.tsx:52 +#: src/view/com/posts/FeedShutdownMsg.tsx:70 +#: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "更新動態源時出現問題,請檢查您的網路連線並重試。" @@ -4848,16 +5005,17 @@ msgstr "連線到 Tenor 時出現問題。" msgid "There was an issue connecting to the chat." msgstr "" -#: src/view/screens/ProfileFeed.tsx:247 -#: src/view/screens/ProfileList.tsx:277 -#: src/view/screens/SavedFeeds.tsx:211 -#: src/view/screens/SavedFeeds.tsx:241 +#: src/view/screens/ProfileFeed.tsx:233 +#: src/view/screens/ProfileList.tsx:298 +#: src/view/screens/ProfileList.tsx:317 +#: src/view/screens/SavedFeeds.tsx:236 #: src/view/screens/SavedFeeds.tsx:262 +#: src/view/screens/SavedFeeds.tsx:288 msgid "There was an issue contacting the server" msgstr "連線伺服器時出現問題" -#: src/view/com/feeds/FeedSourceCard.tsx:109 -#: src/view/com/feeds/FeedSourceCard.tsx:122 +#: src/view/com/feeds/FeedSourceCard.tsx:114 +#: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "There was an issue contacting your server" msgstr "連線伺服器時出現問題" @@ -4865,7 +5023,7 @@ msgstr "連線伺服器時出現問題" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "取得通知時發生問題,點擊這裡重試。" -#: src/view/com/posts/Feed.tsx:289 +#: src/view/com/posts/Feed.tsx:298 msgid "There was an issue fetching posts. Tap here to try again." msgstr "取得貼文時發生問題,點擊這裡重試。" @@ -4878,6 +5036,7 @@ msgstr "取得列表時發生問題,點擊這裡重試。" msgid "There was an issue fetching your lists. Tap here to try again." msgstr "取得列表時發生問題,點擊這裡重試。" +#: src/components/dms/MessageReportDialog.tsx:195 #: src/components/ReportDialog/SubmitView.tsx:82 msgid "There was an issue sending your report. Please check your internet connection." msgstr "提交您的檢舉時出現問題,請檢查您的網路連線。" @@ -4904,10 +5063,10 @@ msgstr "取得應用程式專用密碼時發生問題" msgid "There was an issue! {0}" msgstr "發生問題了!{0}" -#: src/view/screens/ProfileList.tsx:290 -#: src/view/screens/ProfileList.tsx:304 -#: src/view/screens/ProfileList.tsx:318 -#: src/view/screens/ProfileList.tsx:332 +#: src/view/screens/ProfileList.tsx:330 +#: src/view/screens/ProfileList.tsx:344 +#: src/view/screens/ProfileList.tsx:358 +#: src/view/screens/ProfileList.tsx:372 msgid "There was an issue. Please check your internet connection and try again." msgstr "發生問題了。請檢查您的網路連線並重試。" @@ -4932,7 +5091,7 @@ msgstr "{screenDescription} 已被標記:" msgid "This account has requested that users sign in to view their profile." msgstr "此帳號要求使用者登入後才能查看其個人資料。" -#: src/components/moderation/LabelsOnMeDialog.tsx:205 +#: src/components/moderation/LabelsOnMeDialog.tsx:231 msgid "This appeal will be sent to <0>{0}." msgstr "此申訴將被提交至 <0>{0}。" @@ -4957,21 +5116,21 @@ msgstr "此內容由 {0} 託管。是否要啟用外部媒體?" msgid "This content is not available because one of the users involved has blocked the other." msgstr "由於其中一個用戶封鎖了另一個用戶,無法查看此內容。" -#: src/view/com/posts/FeedErrorMessage.tsx:108 +#: src/view/com/posts/FeedErrorMessage.tsx:115 msgid "This content is not viewable without a Bluesky account." msgstr "沒有 Bluesky 帳號,無法查看此內容。" -#: src/view/screens/Settings/ExportCarDialog.tsx:76 +#: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." msgstr "此功能目前為測試版本。您可以在<0>這篇部落格文章中了解更多有關資訊。" -#: src/view/com/posts/FeedErrorMessage.tsx:114 +#: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "此動態源由於目前使用人數眾多而暫時無法使用。請稍後再試。" #: src/screens/Profile/Sections/Feed.tsx:59 -#: src/view/screens/ProfileFeed.tsx:490 -#: src/view/screens/ProfileList.tsx:671 +#: src/view/screens/ProfileFeed.tsx:471 +#: src/view/screens/ProfileList.tsx:724 msgid "This feed is empty!" msgstr "這個動態源是空的!" @@ -4979,11 +5138,15 @@ msgstr "這個動態源是空的!" msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "這個動態源是空的!您或許需要先跟隨更多的人或檢查您的語言設定。" +#: src/view/com/posts/FeedShutdownMsg.tsx:97 +msgid "This feed is no longer online. We are showing <0>Discover instead." +msgstr "" + #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." msgstr "此資訊不會分享給其他用戶。" -#: src/view/com/modals/VerifyEmail.tsx:128 +#: src/view/com/modals/VerifyEmail.tsx:127 msgid "This is important in case you ever need to change your email or reset your password." msgstr "這很重要,以防您將來需要更改電子郵件地址或重設密碼。" @@ -4999,6 +5162,10 @@ msgstr "" msgid "This label was applied by the author." msgstr "" +#: src/components/moderation/LabelsOnMeDialog.tsx:165 +msgid "This label was applied by you" +msgstr "" + #: src/screens/Profile/Sections/Labels.tsx:181 msgid "This labeler hasn't declared what labels it publishes, and may not be active." msgstr "此標記者尚未宣告它發佈的標記,而且可能不會生效。" @@ -5007,7 +5174,7 @@ msgstr "此標記者尚未宣告它發佈的標記,而且可能不會生效。 msgid "This link is taking you to the following website:" msgstr "此連結將帶您到以下網站:" -#: src/view/screens/ProfileList.tsx:849 +#: src/view/screens/ProfileList.tsx:902 msgid "This list is empty!" msgstr "此列表為空!" @@ -5040,7 +5207,7 @@ msgstr "只有登入用戶能見到此個人資料。 未登入的人將看不 msgid "This service has not provided terms of service or a privacy policy." msgstr "此服務尚未提供服務條款或隱私政策。" -#: src/view/com/modals/ChangeHandle.tsx:446 +#: src/view/com/modals/ChangeHandle.tsx:439 msgid "This should create a domain record at:" msgstr "這應該在以下位置創建一個域記錄:" @@ -5094,10 +5261,14 @@ msgstr "樹狀顯示模式" msgid "Threads Preferences" msgstr "對話串偏好" -#: src/view/screens/Settings/DisableEmail2FADialog.tsx:103 +#: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." msgstr "若要關閉電子郵件雙重驗證,請驗證您的電子郵件地址。" +#: src/components/dms/ConvoMenu.tsx:200 +msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." +msgstr "" + #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "您希望向誰提交此檢舉?" @@ -5139,25 +5310,25 @@ msgstr "重試" msgid "Two-factor authentication" msgstr "雙重驗證" -#: src/screens/Messages/Conversation/MessageInput.tsx:80 +#: src/screens/Messages/Conversation/MessageInput.tsx:94 msgid "Type your message here" msgstr "" -#: src/view/com/modals/ChangeHandle.tsx:429 +#: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" msgstr "類型:" -#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:530 msgid "Un-block list" msgstr "取消封鎖列表" -#: src/view/screens/ProfileList.tsx:463 +#: src/view/screens/ProfileList.tsx:515 msgid "Un-mute list" msgstr "取消靜音列表" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:136 +#: src/screens/Login/LoginForm.tsx:139 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5167,7 +5338,7 @@ msgstr "無法連線到服務,請檢查您的網路連線。" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:286 #: src/view/com/profile/ProfileMenu.tsx:361 -#: src/view/screens/ProfileList.tsx:568 +#: src/view/screens/ProfileList.tsx:621 msgid "Unblock" msgstr "取消封鎖" @@ -5188,7 +5359,7 @@ msgstr "取消封鎖?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 -#: src/view/com/util/post-ctrls/RepostButton.tsx:59 +#: src/view/com/util/post-ctrls/RepostButton.tsx:60 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" msgstr "取消轉貼" @@ -5215,12 +5386,12 @@ msgstr "取消跟隨" #~ msgid "Unlike" #~ msgstr "取消喜歡" -#: src/view/screens/ProfileFeed.tsx:589 +#: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" msgstr "取消喜歡這個動態源" #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:628 msgid "Unmute" msgstr "取消靜音" @@ -5237,7 +5408,7 @@ msgstr "取消靜音帳號" msgid "Unmute all {displayTag} posts" msgstr "取消對所有 {displayTag} 貼文的靜音" -#: src/components/dms/ConvoMenu.tsx:123 +#: src/components/dms/ConvoMenu.tsx:140 msgid "Unmute notifications" msgstr "" @@ -5246,16 +5417,16 @@ msgstr "" msgid "Unmute thread" msgstr "取消靜音對話串" -#: src/view/screens/ProfileFeed.tsx:306 -#: src/view/screens/ProfileList.tsx:559 +#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileList.tsx:612 msgid "Unpin" msgstr "取消釘選" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" msgstr "取消釘選在首頁" -#: src/view/screens/ProfileList.tsx:446 +#: src/view/screens/ProfileList.tsx:495 msgid "Unpin moderation list" msgstr "取消釘選限制列表" @@ -5267,7 +5438,12 @@ msgstr "取消訂閱" msgid "Unsubscribe from this labeler" msgstr "取消訂閱這個標記者" -#: src/lib/moderation/useReportOptions.ts:70 +#: src/lib/moderation/useReportOptions.ts:85 +msgid "Unwanted sexual content" +msgstr "" + +#: src/lib/moderation/useReportOptions.ts:71 +#: src/lib/moderation/useReportOptions.ts:84 msgid "Unwanted Sexual Content" msgstr "無關情色的內容" @@ -5275,7 +5451,7 @@ msgstr "無關情色的內容" msgid "Update {displayName} in Lists" msgstr "更新列表中的 {displayName}" -#: src/view/com/modals/ChangeHandle.tsx:509 +#: src/view/com/modals/ChangeHandle.tsx:502 msgid "Update to {handle}" msgstr "更新至 {handle}" @@ -5283,7 +5459,11 @@ msgstr "更新至 {handle}" msgid "Updating..." msgstr "更新中…" -#: src/view/com/modals/ChangeHandle.tsx:455 +#: src/screens/Onboarding/StepProfile/index.tsx:284 +msgid "Upload a photo instead" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" msgstr "上傳文字檔案至:" @@ -5306,7 +5486,7 @@ msgstr "從檔案上傳" msgid "Upload from Library" msgstr "從圖片庫上傳" -#: src/view/com/modals/ChangeHandle.tsx:409 +#: src/view/com/modals/ChangeHandle.tsx:402 msgid "Use a file on your server" msgstr "使用您伺服器上的檔案" @@ -5314,11 +5494,11 @@ msgstr "使用您伺服器上的檔案" msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "使用應用程式專用密碼登入到其他 Bluesky 客戶端,而無需提供完整的帳戶權限和密碼。" -#: src/view/com/modals/ChangeHandle.tsx:520 +#: src/view/com/modals/ChangeHandle.tsx:513 msgid "Use bsky.social as hosting provider" msgstr "使用 bsky.social 作為託管服務供應商" -#: src/view/com/modals/ChangeHandle.tsx:519 +#: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" msgstr "使用預設託管服務供應商" @@ -5332,7 +5512,11 @@ msgstr "使用內建瀏覽器" msgid "Use my default browser" msgstr "使用我的預設瀏覽器" -#: src/view/com/modals/ChangeHandle.tsx:401 +#: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 +msgid "Use recommended" +msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" msgstr "使用 DNS 控制台" @@ -5370,13 +5554,13 @@ msgstr "用戶封鎖了您" msgid "User list by {0}" msgstr "{0} 的用戶列表" -#: src/view/screens/ProfileList.tsx:773 +#: src/view/screens/ProfileList.tsx:826 msgid "User list by <0/>" msgstr "<0/> 的用戶列表" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 -#: src/view/screens/ProfileList.tsx:771 +#: src/view/screens/ProfileList.tsx:824 msgid "User list by you" msgstr "您的用戶列表" @@ -5392,11 +5576,11 @@ msgstr "已更新用戶列表" msgid "User Lists" msgstr "用戶列表" -#: src/screens/Login/LoginForm.tsx:168 +#: src/screens/Login/LoginForm.tsx:171 msgid "Username or email address" msgstr "帳號代碼或電子郵件地址" -#: src/view/screens/ProfileList.tsx:807 +#: src/view/screens/ProfileList.tsx:860 msgid "Users" msgstr "用戶" @@ -5412,7 +5596,7 @@ msgstr "「{0}」中的用戶" msgid "Users that have liked this content or profile" msgstr "喜歡此內容或個人資料的用戶" -#: src/view/com/modals/ChangeHandle.tsx:437 +#: src/view/com/modals/ChangeHandle.tsx:430 msgid "Value:" msgstr "值:" @@ -5420,7 +5604,7 @@ msgstr "值:" #~ msgid "Verify {0}" #~ msgstr "驗證 {0}" -#: src/view/com/modals/ChangeHandle.tsx:511 +#: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" msgstr "" @@ -5436,16 +5620,16 @@ msgstr "驗證我的電子郵件" msgid "Verify My Email" msgstr "驗證我的電子郵件" -#: src/view/com/modals/ChangeEmail.tsx:207 -#: src/view/com/modals/ChangeEmail.tsx:209 +#: src/view/com/modals/ChangeEmail.tsx:200 +#: src/view/com/modals/ChangeEmail.tsx:202 msgid "Verify New Email" msgstr "驗證新的電子郵件" -#: src/view/com/modals/ChangeHandle.tsx:512 +#: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" msgstr "" -#: src/view/com/modals/VerifyEmail.tsx:112 +#: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" msgstr "驗證您的電子郵件" @@ -5457,7 +5641,7 @@ msgstr "驗證您的電子郵件" msgid "Version {appVersion} {bundleInfo}" msgstr "" -#: src/screens/Onboarding/index.tsx:42 +#: src/screens/Onboarding/index.tsx:54 msgid "Video Games" msgstr "電子遊戲" @@ -5469,11 +5653,11 @@ msgstr "查看{0}的頭貼" msgid "View debug entry" msgstr "查看偵錯項目" -#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +#: src/components/ReportDialog/SelectReportOptionView.tsx:138 msgid "View details" msgstr "查看詳細資訊" -#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +#: src/components/ReportDialog/SelectReportOptionView.tsx:133 msgid "View details for reporting a copyright violation" msgstr "查看詳細資訊以檢舉侵權" @@ -5481,13 +5665,13 @@ msgstr "查看詳細資訊以檢舉侵權" msgid "View full thread" msgstr "查看整個對話串" -#: src/components/moderation/LabelsOnMe.tsx:50 +#: src/components/moderation/LabelsOnMe.tsx:48 msgid "View information about these labels" msgstr "查看有關這些標記的資訊" #: src/components/ProfileHoverCard/index.web.tsx:393 #: src/components/ProfileHoverCard/index.web.tsx:426 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "查看資料" @@ -5499,7 +5683,7 @@ msgstr "查看頭像" msgid "View the labeling service provided by @{0}" msgstr "查看由 @{0} 提供的標籤服務" -#: src/view/screens/ProfileFeed.tsx:601 +#: src/view/screens/ProfileFeed.tsx:582 msgid "View users who like this feed" msgstr "查看喜歡此動態源的用戶" @@ -5527,11 +5711,15 @@ msgstr "警告內容並從動態源中過濾" msgid "We couldn't find any results for that hashtag." msgstr "我們找不到任何與該標籤相關的結果。" +#: src/screens/Messages/Conversation/index.tsx:90 +msgid "We couldn't load this conversation" +msgstr "" + #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." msgstr "我們估計還需要 {estimatedTime} 才能準備好您的帳號。" -#: src/screens/Onboarding/StepFinished.tsx:99 +#: src/screens/Onboarding/StepFinished.tsx:196 msgid "We hope you have a wonderful time. Remember, Bluesky is:" msgstr "我們希望您在此度過愉快的時光。請記住,Bluesky 是:" @@ -5555,7 +5743,7 @@ msgstr "我們無法載入您的出生日期偏好,請再試一次。" msgid "We were unable to load your configured labelers at this time." msgstr "我們目前無法載入您已設定的標籤者。" -#: src/screens/Onboarding/StepInterests/index.tsx:138 +#: src/screens/Onboarding/StepInterests/index.tsx:148 msgid "We weren't able to connect. Please try again to continue setting up your account. If it continues to fail, you can skip this flow." msgstr "我們無法連線到網際網路,請重試以繼續設定您的帳號。如果仍繼續失敗,您可以選擇跳過此流程。" @@ -5563,7 +5751,7 @@ msgstr "我們無法連線到網際網路,請重試以繼續設定您的帳號 msgid "We will let you know when your account is ready." msgstr "我們會在您的帳號準備好時通知您。" -#: src/screens/Onboarding/StepInterests/index.tsx:143 +#: src/screens/Onboarding/StepInterests/index.tsx:153 msgid "We'll use this to help customize your experience." msgstr "我們將使用這些資訊來幫助定制您的體驗。" @@ -5592,7 +5780,7 @@ msgstr "很抱歉!我們找不到您正在尋找的頁面。" msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "抱歉!您只能訂閱十個標籤者,您已達到十個的限制。" -#: src/screens/Onboarding/StepInterests/index.tsx:135 +#: src/screens/Onboarding/StepInterests/index.tsx:145 msgid "What are your interests?" msgstr "您感興趣的是什麼?" @@ -5615,23 +5803,31 @@ msgstr "您想在演算法動態源中看到哪些語言?" msgid "Who can reply" msgstr "誰可以回覆" -#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +#: src/screens/Home/NoFeedsPinned.tsx:92 +msgid "Whoops!" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 msgid "Why should this content be reviewed?" msgstr "為什麼應該審查這個內容?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +#: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Why should this feed be reviewed?" msgstr "為什麼應該審查這個動態源?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 msgid "Why should this list be reviewed?" msgstr "為什麼應該審查這個列表?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +#: src/components/ReportDialog/SelectReportOptionView.tsx:62 +msgid "Why should this message be reviewed?" +msgstr "" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 msgid "Why should this post be reviewed?" msgstr "為什麼應該審查這則貼文?" -#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Why should this user be reviewed?" msgstr "為什麼應該審查這個用戶?" @@ -5639,8 +5835,8 @@ msgstr "為什麼應該審查這個用戶?" msgid "Wide" msgstr "寬" -#: src/screens/Messages/Conversation/MessageInput.tsx:81 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:70 +#: src/screens/Messages/Conversation/MessageInput.tsx:95 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:85 msgid "Write a message" msgstr "" @@ -5653,21 +5849,21 @@ msgstr "撰寫貼文" msgid "Write your reply" msgstr "撰寫您的回覆" -#: src/screens/Onboarding/index.tsx:28 +#: src/screens/Onboarding/index.tsx:40 msgid "Writers" msgstr "作家" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 -#: src/view/screens/PreferencesFollowingFeed.tsx:127 -#: src/view/screens/PreferencesFollowingFeed.tsx:199 -#: src/view/screens/PreferencesFollowingFeed.tsx:234 -#: src/view/screens/PreferencesFollowingFeed.tsx:269 +#: src/view/screens/PreferencesFollowingFeed.tsx:128 +#: src/view/screens/PreferencesFollowingFeed.tsx:200 +#: src/view/screens/PreferencesFollowingFeed.tsx:235 +#: src/view/screens/PreferencesFollowingFeed.tsx:270 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "開" -#: src/components/dms/MessageItem.tsx:152 +#: src/components/dms/MessageItem.tsx:158 msgid "Yesterday, {time}" msgstr "" @@ -5701,15 +5897,15 @@ msgstr "您沒有任何跟隨者。" msgid "You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer." msgstr "您目前還沒有邀請碼!當您持續使用 Bluesky 一段時間後,我們將提供一些新的邀請碼給您。" -#: src/view/screens/SavedFeeds.tsx:103 +#: src/view/screens/SavedFeeds.tsx:116 msgid "You don't have any pinned feeds." msgstr "您目前還沒有任何釘選的動態源。" #: src/view/screens/Feeds.tsx:477 -msgid "You don't have any saved feeds!" -msgstr "您目前還沒有任何儲存的動態源!" +#~ msgid "You don't have any saved feeds!" +#~ msgstr "您目前還沒有任何儲存的動態源!" -#: src/view/screens/SavedFeeds.tsx:136 +#: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." msgstr "您目前還沒有任何儲存的動態源。" @@ -5756,7 +5952,7 @@ msgstr "您沒有訂閱動態源。" msgid "You have no lists." msgstr "您沒有列表。" -#: src/screens/Messages/List/index.tsx:176 +#: src/screens/Messages/List/index.tsx:200 msgid "You have no messages yet. Start a conversation with someone!" msgstr "您還沒有訊息。開始與其他人對話!" @@ -5776,7 +5972,11 @@ msgstr "您還沒有靜音任何帳號。要靜音帳號,請轉到其個人資 msgid "You haven't muted any words or tags yet" msgstr "您還沒有隱藏任何文字或標籤" -#: src/components/moderation/LabelsOnMeDialog.tsx:68 +#: src/components/moderation/LabelsOnMeDialog.tsx:84 +msgid "You may appeal non-self labels if you feel they were placed in error." +msgstr "" + +#: src/components/moderation/LabelsOnMeDialog.tsx:89 msgid "You may appeal these labels if you feel they were placed in error." msgstr "如果您覺得這些標籤是錯誤的,您可以申訴這些標籤。" @@ -5804,7 +6004,7 @@ msgstr "您將收到這條對話串的通知" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "您將收到一封包含重設碼的電子郵件。請在此輸入該「重設碼」,然後輸入您的新密碼。" -#: src/screens/Messages/List/index.tsx:238 +#: src/screens/Messages/List/ChatListItem.tsx:37 msgid "You: {0}" msgstr "" @@ -5818,7 +6018,7 @@ msgstr "盡在您的掌控" msgid "You're in line" msgstr "輪到您了" -#: src/screens/Onboarding/StepFinished.tsx:96 +#: src/screens/Onboarding/StepFinished.tsx:193 msgid "You're ready to go!" msgstr "您已設定完成!" @@ -5839,7 +6039,7 @@ msgstr "您的帳號" msgid "Your account has been deleted" msgstr "您的帳號已刪除" -#: src/view/screens/Settings/ExportCarDialog.tsx:48 +#: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." msgstr "您可以將您的帳號存放庫下載為一個「CAR」檔案。該檔案包含了所有公開的資料紀錄,但不包括嵌入媒體,例如圖片或您的私人資料,目前這些資料必須另外擷取。" @@ -5856,16 +6056,16 @@ msgid "Your default feed is \"Following\"" msgstr "您的預設動態源為「Following」" #: src/screens/Login/ForgotPasswordForm.tsx:57 -#: src/screens/Signup/state.ts:227 +#: src/screens/Signup/state.ts:220 #: src/view/com/modals/ChangePassword.tsx:56 msgid "Your email appears to be invalid." msgstr "您的電子郵件地址似乎無效。" -#: src/view/com/modals/ChangeEmail.tsx:127 +#: src/view/com/modals/ChangeEmail.tsx:120 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "您的電子郵件地址已更新但尚未驗證。作為下一步,請驗證您的新電子郵件地址。" -#: src/view/com/modals/VerifyEmail.tsx:123 +#: src/view/com/modals/VerifyEmail.tsx:122 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "您的電子郵件地址尚未驗證。這是一個我們建議的重要安全步驟。" @@ -5877,7 +6077,7 @@ msgstr "您的跟隨動態源是空的!跟隨更多用戶來看看發生了什 msgid "Your full handle will be" msgstr "您的完整帳號代碼將修改為" -#: src/view/com/modals/ChangeHandle.tsx:272 +#: src/view/com/modals/ChangeHandle.tsx:265 msgid "Your full handle will be <0>@{0}" msgstr "您的完整帳號代碼將修改為 <0>@{0}" @@ -5893,7 +6093,7 @@ msgstr "您的密碼已成功更改!" msgid "Your post has been published" msgstr "您的貼文已發佈" -#: src/screens/Onboarding/StepFinished.tsx:111 +#: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "您的貼文、按喜歡和封鎖是公開可見的,而靜音是私人的。" @@ -5905,6 +6105,10 @@ msgstr "您的個人資料" msgid "Your reply has been published" msgstr "您的回覆已發佈" +#: src/components/dms/MessageReportDialog.tsx:140 +msgid "Your report will be sent to the Bluesky Moderation Service" +msgstr "" + #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "您的帳號代碼" From 6b2635c87027331f82e0bb79b743f870458872ae Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 14 May 2024 19:17:53 +0100 Subject: [PATCH 055/277] 100vh settings screen (#4015) --- src/screens/Messages/Settings.tsx | 2 +- src/view/com/util/Views.d.ts | 11 ++++++++++- src/view/com/util/Views.web.tsx | 5 +++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/screens/Messages/Settings.tsx b/src/screens/Messages/Settings.tsx index 9faab41302..d3aa514c0c 100644 --- a/src/screens/Messages/Settings.tsx +++ b/src/screens/Messages/Settings.tsx @@ -46,7 +46,7 @@ export function MessagesSettingsScreen({}: Props) { if (!gate('dms')) return return ( - + diff --git a/src/view/com/util/Views.d.ts b/src/view/com/util/Views.d.ts index 16713921fb..3f4905574b 100644 --- a/src/view/com/util/Views.d.ts +++ b/src/view/com/util/Views.d.ts @@ -6,5 +6,14 @@ export function CenteredView({ sideBorders, ...props }: React.PropsWithChildren< - ViewProps & {sideBorders?: boolean; topBorder?: boolean} + ViewProps & { + /** + * @platform web + */ + sideBorders?: boolean + /** + * @platform web + */ + topBorder?: boolean + } >) diff --git a/src/view/com/util/Views.web.tsx b/src/view/com/util/Views.web.tsx index ae165077ca..04891806c4 100644 --- a/src/view/com/util/Views.web.tsx +++ b/src/view/com/util/Views.web.tsx @@ -20,10 +20,11 @@ import { View, ViewProps, } from 'react-native' -import {addStyle} from 'lib/styles' +import Animated from 'react-native-reanimated' + import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import Animated from 'react-native-reanimated' +import {addStyle} from 'lib/styles' interface AddedProps { desktopFixedHeight?: boolean | number From 08836ecbec9d47025fb1474ab772102df4ab0642 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 14 May 2024 19:18:08 +0100 Subject: [PATCH 056/277] =?UTF-8?q?[=F0=9F=90=B4]=20use=20"Chats"=20instea?= =?UTF-8?q?d=20of=20"Messages"=20(#4013)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * use "Chats" instead of "Messages" * chats to chat * use messages in the header --- src/Navigation.tsx | 2 +- src/screens/Messages/List/index.tsx | 4 ++-- src/view/shell/bottom-bar/BottomBar.tsx | 2 +- src/view/shell/desktop/LeftNav.tsx | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Navigation.tsx b/src/Navigation.tsx index c7ad40ed84..f68f8ed660 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -304,7 +304,7 @@ function commonScreens(Stack: typeof HomeTab, unreadCountLabel?: string) { MessagesSettingsScreen} - options={{title: title(msg`Messaging settings`), requireAuth: true}} + options={{title: title(msg`Chat settings`), requireAuth: true}} /> ) diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index 05559b7d19..5c9b93fcdb 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -195,9 +195,9 @@ export function MessagesScreen({navigation, route}: Props) { isLoading={isLoading} isError={isError} emptyType="results" - emptyTitle={_(msg`No messages yet`)} + emptyTitle={_(msg`No chats yet`)} emptyMessage={_( - msg`You have no messages yet. Start a conversation with someone!`, + msg`You have no chats yet. Start a conversation with someone!`, )} errorMessage={cleanError(error)} onRetry={isError ? refetch : undefined} diff --git a/src/view/shell/bottom-bar/BottomBar.tsx b/src/view/shell/bottom-bar/BottomBar.tsx index 212587e30b..7b74880c52 100644 --- a/src/view/shell/bottom-bar/BottomBar.tsx +++ b/src/view/shell/bottom-bar/BottomBar.tsx @@ -216,7 +216,7 @@ export function BottomBar({navigation}: BottomTabBarProps) { notificationCount={numUnreadMessages.numUnread} accessible={true} accessibilityRole="tab" - accessibilityLabel={_(msg`Messages`)} + accessibilityLabel={_(msg`Chat`)} accessibilityHint={ numUnreadMessages.count > 0 ? `${numUnreadMessages.numUnread} unread` diff --git a/src/view/shell/desktop/LeftNav.tsx b/src/view/shell/desktop/LeftNav.tsx index b1f58afedc..c0034e7bec 100644 --- a/src/view/shell/desktop/LeftNav.tsx +++ b/src/view/shell/desktop/LeftNav.tsx @@ -341,7 +341,7 @@ export function DesktopLeftNav() { count={numUnreadMessages.numUnread} icon={} iconFilled={} - label={_(msg`Messages`)} + label={_(msg`Chat`)} /> )} Date: Tue, 14 May 2024 11:42:54 -0700 Subject: [PATCH 057/277] =?UTF-8?q?[=F0=9F=90=B4]=20show=20deleted=20accou?= =?UTF-8?q?nt=20for=20`missing.invalid`=20(#4014)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * show deleted account for `missing.invalid` * sigh --- src/screens/Messages/Conversation/index.tsx | 15 +++++++++---- src/screens/Messages/List/ChatListItem.tsx | 25 ++++++++++++--------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/screens/Messages/Conversation/index.tsx b/src/screens/Messages/Conversation/index.tsx index 01c205ac82..f382647a5b 100644 --- a/src/screens/Messages/Conversation/index.tsx +++ b/src/screens/Messages/Conversation/index.tsx @@ -147,6 +147,11 @@ let Header = ({ const navigation = useNavigation() const convoState = useConvo() + const isDeletedAccount = profile?.handle === 'missing.invalid' + const displayName = isDeletedAccount + ? 'Deleted Account' + : profile?.displayName + const onPressBack = useCallback(() => { if (isWeb) { navigation.replace('Messages') @@ -197,11 +202,13 @@ let Header = ({ - {profile.displayName} - - - @{profile.handle} + {displayName} + {!isDeletedAccount && ( + + @{profile.handle} + + )} ) : ( <> diff --git a/src/screens/Messages/List/ChatListItem.tsx b/src/screens/Messages/List/ChatListItem.tsx index f7d115ed0b..57a8e03480 100644 --- a/src/screens/Messages/List/ChatListItem.tsx +++ b/src/screens/Messages/List/ChatListItem.tsx @@ -29,6 +29,13 @@ export function ChatListItem({ const {currentAccount} = useSession() const menuControl = useMenuControl() const {gtMobile} = useBreakpoints() + const otherUser = convo.members.find( + member => member.did !== currentAccount?.did, + ) + const isDeletedAccount = otherUser?.handle === 'missing.invalid' + const displayName = isDeletedAccount + ? 'Deleted Account' + : otherUser?.displayName || otherUser?.handle let lastMessage = _(msg`No messages yet`) let lastMessageSentAt: string | null = null @@ -44,10 +51,6 @@ export function ChatListItem({ lastMessage = _(msg`Message deleted`) } - const otherUser = convo.members.find( - member => member.did !== currentAccount?.did, - ) - const navigation = useNavigation() const [showActions, setShowActions] = React.useState(false) @@ -113,7 +116,7 @@ export function ChatListItem({ numberOfLines={1} style={[{maxWidth: '85%'}, web([a.leading_normal])]}> - {otherUser.displayName || otherUser.handle} + {displayName} {lastMessageSentAt && ( @@ -147,11 +150,13 @@ export function ChatListItem({ )} - - @{otherUser.handle} - + {!isDeletedAccount && ( + + @{otherUser.handle} + + )} Date: Tue, 14 May 2024 21:18:54 +0100 Subject: [PATCH 058/277] reword subtitle (#4017) --- src/lib/moderation/useReportOptions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/moderation/useReportOptions.ts b/src/lib/moderation/useReportOptions.ts index c96f302a63..ff12534c2f 100644 --- a/src/lib/moderation/useReportOptions.ts +++ b/src/lib/moderation/useReportOptions.ts @@ -82,7 +82,7 @@ export function useReportOptions(): ReportOptions { { reason: ComAtprotoModerationDefs.REASONSEXUAL, title: _(msg`Unwanted Sexual Content`), - description: _(msg`Unwanted sexual content`), + description: _(msg`Inappropriate messages or explicit links`), }, ...common, ], From 0e04b19627f163e36089caca78614bfa4c45403e Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 14 May 2024 21:19:22 +0100 Subject: [PATCH 059/277] remove serviceurl gate (#4019) --- src/screens/Messages/List/index.tsx | 42 ----------- .../Messages/Temp/useDmServiceUrlStorage.tsx | 70 ------------------- src/state/preferences/index.tsx | 5 +- 3 files changed, 1 insertion(+), 116 deletions(-) delete mode 100644 src/screens/Messages/Temp/useDmServiceUrlStorage.tsx diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index 5c9b93fcdb..6300a976be 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -4,7 +4,6 @@ import {ChatBskyConvoDefs} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {sha256} from 'js-sha256' import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' import {MessagesTabNavigatorParams} from '#/lib/routes/types' @@ -15,12 +14,10 @@ import {useListConvos} from '#/state/queries/messages/list-converations' import {List} from '#/view/com/util/List' import {ViewHeader} from '#/view/com/util/ViewHeader' import {CenteredView} from '#/view/com/util/Views' -import {ScrollView} from '#/view/com/util/Views' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {DialogControlProps, useDialogControl} from '#/components/Dialog' import {NewChat} from '#/components/dms/NewChat' -import * as TextField from '#/components/forms/TextField' import {useRefreshOnFocus} from '#/components/hooks/useRefreshOnFocus' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import {SettingsSliderVertical_Stroke2_Corner0_Rounded as SettingsSlider} from '#/components/icons/SettingsSlider' @@ -28,7 +25,6 @@ import {Link} from '#/components/Link' import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' import {Text} from '#/components/Typography' import {ClipClopGate} from '../gate' -import {useDmServiceUrlStorage} from '../Temp/useDmServiceUrlStorage' import {ChatListItem} from './ChatListItem' type Props = NativeStackScreenProps @@ -54,17 +50,6 @@ export function MessagesScreen({navigation, route}: Props) { const {gtMobile} = useBreakpoints() const pushToConversation = route.params?.pushToConversation - // TEMP - const {serviceUrl, setServiceUrl} = useDmServiceUrlStorage() - const [serviceUrlValue, setServiceUrlValue] = useState(serviceUrl) - const hasValidServiceUrl = useMemo(() => { - const hash = sha256(serviceUrl) - return ( - hash === - 'a32318b49dd3fe6aa6a35c66c13fcc4c1cb6202b24f5a852d9a2279acee4169f' - ) - }, [serviceUrl]) - // Whenever we have `pushToConversation` set, it means we pressed a notification for a chat without being on // this tab. We should immediately push to the conversation after pressing the notification. // After we push, reset with `setParams` so that this effect will fire next time we press a notification, even if @@ -145,33 +130,6 @@ export function MessagesScreen({navigation, route}: Props) { const gate = useGate() if (!gate('dms')) return - if (!hasValidServiceUrl) { - return ( - - - Service URL - - setServiceUrlValue(text)} - autoCapitalize="none" - keyboardType="url" - label="https://" - /> - - - - - ) - } - if (conversations.length < 1) { return ( diff --git a/src/screens/Messages/Temp/useDmServiceUrlStorage.tsx b/src/screens/Messages/Temp/useDmServiceUrlStorage.tsx deleted file mode 100644 index 0e3f876039..0000000000 --- a/src/screens/Messages/Temp/useDmServiceUrlStorage.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import React from 'react' -import {useAsyncStorage} from '@react-native-async-storage/async-storage' - -/** - * TEMP: REMOVE BEFORE RELEASE - * - * Clip clop trivia: - * - * A little known fact about the term "clip clop" is that it may refer to a unit of time. It is unknown what the exact - * length of a clip clop is, but it is generally agreed that it is approximately 9 minutes and 30 seconds, or 570 - * seconds. - * - * The term "clip clop" may also be used in other contexts, although it is unknown what all of these contexts may be. - * Recently, the term has been used among many young adults to refer to a type of social media functionality, although - * the exact nature of this functionality is also unknown. It is believed that the term may have originated from a - * popular video game, but this has not been confirmed. - * - */ - -const DmServiceUrlStorageContext = React.createContext<{ - serviceUrl: string - setServiceUrl: (value: string) => void -}>({ - serviceUrl: '', - setServiceUrl: () => {}, -}) - -export const useDmServiceUrlStorage = () => - React.useContext(DmServiceUrlStorageContext) - -export function DmServiceUrlProvider({children}: {children: React.ReactNode}) { - const [serviceUrl, setServiceUrl] = React.useState('') - const {getItem, setItem: setItemInner} = useAsyncStorage('dmServiceUrl') - - React.useEffect(() => { - ;(async () => { - const v = await getItem() - try { - if (v) { - new URL(v) - setServiceUrl(v) - } - } catch (e) { - console.error('Invalid service URL stored in async storage:', v) - } - })() - }, [getItem]) - - const setItem = React.useCallback( - (v: string) => { - setItemInner(v) - setServiceUrl(v) - }, - [setItemInner], - ) - - const value = React.useMemo( - () => ({ - serviceUrl, - setServiceUrl: setItem, - }), - [serviceUrl, setItem], - ) - - return ( - - {children} - - ) -} diff --git a/src/state/preferences/index.tsx b/src/state/preferences/index.tsx index 5bca354525..70c8efc805 100644 --- a/src/state/preferences/index.tsx +++ b/src/state/preferences/index.tsx @@ -1,6 +1,5 @@ import React from 'react' -import {DmServiceUrlProvider} from '#/screens/Messages/Temp/useDmServiceUrlStorage' import {Provider as AltTextRequiredProvider} from './alt-text-required' import {Provider as AutoplayProvider} from './autoplay' import {Provider as DisableHapticsProvider} from './disable-haptics' @@ -33,9 +32,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { - - {children} - + {children} From d390db0fa23d4e377e7351a869e11453a540c4fa Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 14 May 2024 18:02:57 -0700 Subject: [PATCH 060/277] =?UTF-8?q?[=F0=9F=90=B4]Add=20DM=20push=20notific?= =?UTF-8?q?ation=20sound=20(#4000)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add wav * add sound to config --- app.config.js | 1 + assets/blueskydm.wav | Bin 0 -> 33540 bytes 2 files changed, 1 insertion(+) create mode 100644 assets/blueskydm.wav diff --git a/app.config.js b/app.config.js index 66a453039a..4b54157c28 100644 --- a/app.config.js +++ b/app.config.js @@ -200,6 +200,7 @@ module.exports = function (config) { { icon: './assets/icon-android-notification.png', color: '#1185fe', + sounds: ['assets/blueskydm.wav'], }, ], './plugins/withAndroidManifestPlugin.js', diff --git a/assets/blueskydm.wav b/assets/blueskydm.wav new file mode 100644 index 0000000000000000000000000000000000000000..8d35258dd76dad52c98e68788a7ca1cd70b44c01 GIT binary patch literal 33540 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 bkxQzQf*52A-!A)L{CBkfGXwVD)XM(>@hMbq literal 0 HcmV?d00001 From 6efe90a5f5c213a02da9f906fc1f098db113d71d Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 14 May 2024 20:07:53 -0500 Subject: [PATCH 061/277] =?UTF-8?q?[=F0=9F=90=B4]=20Block=20states,=20read?= =?UTF-8?q?=20only=20(#4022)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refactor ChatListItem for mod state * Refactor Conversation Header for mod state * Invalidate query for list when blocking/unblocking * Remove unused prop, restore border * Add mutations, hook up profile shadow to list query, use shadow-aware query for convo (#4024) --- src/components/dms/ConvoMenu.tsx | 94 +++++++++++++-- src/screens/Messages/Conversation/index.tsx | 112 ++++++++++++------ src/screens/Messages/List/ChatListItem.tsx | 70 ++++++++--- src/screens/Messages/List/index.tsx | 12 +- src/state/cache/profile-shadow.ts | 2 + .../queries/messages/list-converations.ts | 33 +++++- 6 files changed, 250 insertions(+), 73 deletions(-) diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index 0a1d3f01cc..16e8d98c6c 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -1,19 +1,27 @@ import React, {useCallback} from 'react' import {Keyboard, Pressable, View} from 'react-native' -import {AppBskyActorDefs, ChatBskyConvoDefs} from '@atproto/api' +import { + AppBskyActorDefs, + ChatBskyConvoDefs, + ModerationDecision, +} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' import {NavigationProp} from '#/lib/routes/types' +import {listUriToHref} from '#/lib/strings/url-helpers' +import {Shadow} from '#/state/cache/types' import { useConvoQuery, useMarkAsReadMutation, } from '#/state/queries/messages/conversation' import {useLeaveConvo} from '#/state/queries/messages/leave-conversation' import {useMuteConvo} from '#/state/queries/messages/mute-conversation' +import {useProfileBlockMutationQueue} from '#/state/queries/profile' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' +import * as Dialog from '#/components/Dialog' import {ArrowBoxLeft_Stroke2_Corner0_Rounded as ArrowBoxLeft} from '#/components/icons/ArrowBoxLeft' import {DotGrid_Stroke2_Corner0_Rounded as DotsHorizontal} from '#/components/icons/DotGrid' import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag' @@ -22,8 +30,10 @@ import {Person_Stroke2_Corner0_Rounded as Person} from '#/components/icons/Perso import {PersonCheck_Stroke2_Corner0_Rounded as PersonCheck} from '#/components/icons/PersonCheck' import {PersonX_Stroke2_Corner0_Rounded as PersonX} from '#/components/icons/PersonX' import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' +import {InlineLinkText} from '#/components/Link' import * as Menu from '#/components/Menu' import * as Prompt from '#/components/Prompt' +import {Text} from '#/components/Typography' import {Bubble_Stroke2_Corner2_Rounded as Bubble} from '../icons/Bubble' let ConvoMenu = ({ @@ -34,22 +44,35 @@ let ConvoMenu = ({ showMarkAsRead, hideTrigger, triggerOpacity, + moderation, }: { convo: ChatBskyConvoDefs.ConvoView - profile: AppBskyActorDefs.ProfileViewBasic - onUpdateConvo?: (convo: ChatBskyConvoDefs.ConvoView) => void + profile: Shadow control?: Menu.MenuControlProps currentScreen: 'list' | 'conversation' showMarkAsRead?: boolean hideTrigger?: boolean triggerOpacity?: number + moderation: ModerationDecision }): React.ReactNode => { const navigation = useNavigation() const {_} = useLingui() const t = useTheme() const leaveConvoControl = Prompt.usePromptControl() const reportControl = Prompt.usePromptControl() + const blockedByListControl = Prompt.usePromptControl() const {mutate: markAsRead} = useMarkAsReadMutation() + const modui = moderation.ui('profileView') + const {listBlocks, userBlock} = React.useMemo(() => { + const blocks = modui.alerts.filter(alert => alert.type === 'blocking') + const listBlocks = blocks.filter(alert => alert.source.type === 'list') + const userBlock = blocks.find(alert => alert.source.type === 'user') + return { + listBlocks, + userBlock, + } + }, [modui]) + const isBlocking = !!userBlock || !!listBlocks.length const {data: convo} = useConvoQuery(initialConvo) @@ -70,6 +93,21 @@ let ConvoMenu = ({ }, }) + const [queueBlock, queueUnblock] = useProfileBlockMutationQueue(profile) + + const toggleBlock = React.useCallback(() => { + if (listBlocks.length) { + blockedByListControl.open() + return + } + + if (userBlock) { + queueUnblock() + } else { + queueBlock() + } + }, [userBlock, listBlocks, blockedByListControl, queueBlock, queueUnblock]) + const {mutate: leaveConvo} = useLeaveConvo(convo?.id, { onSuccess: () => { if (currentScreen === 'conversation') { @@ -146,18 +184,16 @@ let ConvoMenu = ({ - {/* TODO(samuel): implement this */} {}} - disabled> + label={ + isBlocking ? _(msg`Unblock account`) : _(msg`Block account`) + } + onPress={toggleBlock}> - Block account + {isBlocking ? _(msg`Unblock account`) : _(msg`Block account`)} - + + + + {_(msg`User blocked by list`)} + + + + {_( + msg`This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user.`, + )}{' '} + + + + {_(msg`Lists blocking this user:`)}{' '} + {listBlocks.map((block, i) => + block.source.type === 'list' ? ( + + {i === 0 ? null : ', '} + + {block.source.list.name} + + + ) : null, + )} + + + + + + + + + ) } diff --git a/src/screens/Messages/Conversation/index.tsx b/src/screens/Messages/Conversation/index.tsx index f382647a5b..05df3e23b0 100644 --- a/src/screens/Messages/Conversation/index.tsx +++ b/src/screens/Messages/Conversation/index.tsx @@ -3,7 +3,7 @@ import {TouchableOpacity, View} from 'react-native' import {KeyboardProvider} from 'react-native-keyboard-controller' import {KeyboardAvoidingView} from 'react-native-keyboard-controller' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {AppBskyActorDefs} from '@atproto/api' +import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -12,8 +12,12 @@ import {NativeStackScreenProps} from '@react-navigation/native-stack' import {CommonNavigatorParams, NavigationProp} from '#/lib/routes/types' import {useGate} from '#/lib/statsig/statsig' +import {useProfileShadow} from '#/state/cache/profile-shadow' import {useCurrentConvoId} from '#/state/messages/current-convo-id' +import {useModerationOpts} from '#/state/preferences/moderation-opts' +import {useProfileQuery} from '#/state/queries/profile' import {BACK_HITSLOP} from 'lib/constants' +import {sanitizeDisplayName} from 'lib/strings/display-names' import {isIOS, isWeb} from 'platform/detection' import {ConvoProvider, isConvoActive, useConvo} from 'state/messages/convo' import {ConvoStatus} from 'state/messages/convo/types' @@ -27,6 +31,7 @@ import {ListMaybePlaceholder} from '#/components/Lists' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' import {ClipClopGate} from '../gate' + type Props = NativeStackScreenProps< CommonNavigatorParams, 'MessagesConversation' @@ -137,7 +142,7 @@ function Inner() { } let Header = ({ - profile, + profile: initialProfile, }: { profile?: AppBskyActorDefs.ProfileViewBasic }): React.ReactNode => { @@ -145,12 +150,8 @@ let Header = ({ const {_} = useLingui() const {gtTablet} = useBreakpoints() const navigation = useNavigation() - const convoState = useConvo() - - const isDeletedAccount = profile?.handle === 'missing.invalid' - const displayName = isDeletedAccount - ? 'Deleted Account' - : profile?.displayName + const moderationOpts = useModerationOpts() + const {data: profile} = useProfileQuery({did: initialProfile?.did}) const onPressBack = useCallback(() => { if (isWeb) { @@ -195,23 +196,12 @@ let Header = ({ ) : ( )} - - {profile ? ( - - - - {displayName} - - {!isDeletedAccount && ( - - @{profile.handle} - - )} - - ) : ( - <> + + {profile && moderationOpts ? ( + + ) : ( + <> + - - )} - - {isConvoActive(convoState) && profile ? ( - - ) : ( - + + + + )} ) } Header = React.memo(Header) + +function HeaderReady({ + profile: profileUnshadowed, + moderationOpts, +}: { + profile: AppBskyActorDefs.ProfileViewBasic + moderationOpts: ModerationOpts +}) { + const t = useTheme() + const convoState = useConvo() + const profile = useProfileShadow(profileUnshadowed) + const moderation = React.useMemo( + () => moderateProfile(profile, moderationOpts), + [profile, moderationOpts], + ) + + const isDeletedAccount = profile?.handle === 'missing.invalid' + const displayName = isDeletedAccount + ? 'Deleted Account' + : sanitizeDisplayName( + profile.displayName || profile.handle, + moderation.ui('displayName'), + ) + + return ( + <> + + + + + {displayName} + + {!isDeletedAccount && ( + + @{profile.handle} + + )} + + + + {isConvoActive(convoState) && ( + + )} + + ) +} diff --git a/src/screens/Messages/List/ChatListItem.tsx b/src/screens/Messages/List/ChatListItem.tsx index 57a8e03480..aa47e95035 100644 --- a/src/screens/Messages/List/ChatListItem.tsx +++ b/src/screens/Messages/List/ChatListItem.tsx @@ -1,13 +1,21 @@ import React from 'react' import {View} from 'react-native' -import {ChatBskyConvoDefs} from '@atproto/api' +import { + AppBskyActorDefs, + ChatBskyConvoDefs, + moderateProfile, + ModerationOpts, +} from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' import {NavigationProp} from '#/lib/routes/types' import {isNative} from '#/platform/detection' +import {useProfileShadow} from '#/state/cache/profile-shadow' +import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useSession} from '#/state/session' +import {sanitizeDisplayName} from 'lib/strings/display-names' import {TimeElapsed} from '#/view/com/util/TimeElapsed' import {UserAvatar} from '#/view/com/util/UserAvatar' import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' @@ -17,25 +25,53 @@ import {Bell2Off_Filled_Corner0_Rounded as BellStroke} from '#/components/icons/ import {useMenuControl} from '#/components/Menu' import {Text} from '#/components/Typography' -export function ChatListItem({ +export function ChatListItem({convo}: {convo: ChatBskyConvoDefs.ConvoView}) { + const {currentAccount} = useSession() + const otherUser = convo.members.find( + member => member.did !== currentAccount?.did, + ) + const moderationOpts = useModerationOpts() + + if (!otherUser || !moderationOpts) { + return null + } + + return ( + + ) +} + +function ChatListItemReady({ convo, - index, + profile: profileUnshadowed, + moderationOpts, }: { convo: ChatBskyConvoDefs.ConvoView - index: number + profile: AppBskyActorDefs.ProfileViewBasic + moderationOpts: ModerationOpts }) { const t = useTheme() const {_} = useLingui() const {currentAccount} = useSession() const menuControl = useMenuControl() const {gtMobile} = useBreakpoints() - const otherUser = convo.members.find( - member => member.did !== currentAccount?.did, + const profile = useProfileShadow(profileUnshadowed) + const moderation = React.useMemo( + () => moderateProfile(profile, moderationOpts), + [profile, moderationOpts], ) - const isDeletedAccount = otherUser?.handle === 'missing.invalid' + + const isDeletedAccount = profile.handle === 'missing.invalid' const displayName = isDeletedAccount ? 'Deleted Account' - : otherUser?.displayName || otherUser?.handle + : sanitizeDisplayName( + profile.displayName || profile.handle, + moderation.ui('displayName'), + ) let lastMessage = _(msg`No messages yet`) let lastMessageSentAt: string | null = null @@ -73,10 +109,6 @@ export function ChatListItem({ }) }, [convo.id, navigation]) - if (!otherUser) { - return null - } - return ( - ))} - - ) -} - -function RadioIcon({selected}: {selected: boolean}) { - const t = useTheme() - return ( - - {selected && ( - - )} - - ) -} diff --git a/src/screens/Messages/Settings.tsx b/src/screens/Messages/Settings.tsx index 84b804b426..a9c35dba79 100644 --- a/src/screens/Messages/Settings.tsx +++ b/src/screens/Messages/Settings.tsx @@ -8,6 +8,7 @@ import {UseQueryResult} from '@tanstack/react-query' import {CommonNavigatorParams} from '#/lib/routes/types' import {useGate} from '#/lib/statsig/statsig' +import {isNative} from '#/platform/detection' import {useUpdateActorDeclaration} from '#/state/queries/messages/actor-declaration' import {useProfileQuery} from '#/state/queries/profile' import {useSession} from '#/state/session' @@ -15,8 +16,8 @@ import * as Toast from '#/view/com/util/Toast' import {ViewHeader} from '#/view/com/util/ViewHeader' import {CenteredView} from '#/view/com/util/Views' import {atoms as a} from '#/alf' +import {Divider} from '#/components/Divider' import * as Toggle from '#/components/forms/Toggle' -import {RadioGroup} from '#/components/RadioGroup' import {Text} from '#/components/Typography' import {useBackgroundNotificationPreferences} from '../../../modules/expo-background-notification-handler/src/BackgroundNotificationHandlerProvider' import {ClipClopGate} from './gate' @@ -39,7 +40,9 @@ export function MessagesSettingsScreen({}: Props) { }) const onSelectItem = useCallback( - (key: string) => { + (keys: string[]) => { + const key = keys[0] + if (!key) return updateDeclaration(key as AllowIncoming) }, [updateDeclaration], @@ -48,37 +51,70 @@ export function MessagesSettingsScreen({}: Props) { const gate = useGate() if (!gate('dms')) return + console.log(profile?.associated?.chat?.allowIncoming) + return ( - - + + Allow messages from - - value={ + - - - { - setPref('playSoundChat', !preferences.playSoundChat) - }}> - - Notification Sounds - + onChange={onSelectItem}> + + + + Everyone + + + + + + Users I follow + + + + + + No one + + + + + + {isNative && ( + <> + + { + setPref('playSoundChat', !preferences.playSoundChat) + }}> + + + Play notification sounds + + + + )} ) From b15b49a48f2d8242e31ba5fdde52123fa5e7ff64 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 16 May 2024 09:32:10 -0700 Subject: [PATCH 077/277] =?UTF-8?q?[=F0=9F=90=B4]=20Remove=20keyboard=20co?= =?UTF-8?q?ntroller=20lib=20(#4038)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * remove library * implement using just reanimated * always return false for `keyboardIsOpening` on web * undo comment * handle input focus scroll more elegantly * add back minimal shell toggle on mobile web * adjust initialnumtorender * oops * nit --- package.json | 1 - .../Messages/Conversation/MessageInput.tsx | 3 +- .../Messages/Conversation/MessagesList.tsx | 80 ++++++++++++++----- src/screens/Messages/Conversation/index.tsx | 74 +++++++---------- yarn.lock | 5 -- 5 files changed, 89 insertions(+), 74 deletions(-) diff --git a/package.json b/package.json index 9f1444d9d8..6cb83a3e59 100644 --- a/package.json +++ b/package.json @@ -171,7 +171,6 @@ "react-native-get-random-values": "~1.11.0", "react-native-image-crop-picker": "^0.38.1", "react-native-ios-context-menu": "^1.15.3", - "react-native-keyboard-controller": "^1.11.7", "react-native-pager-view": "6.2.3", "react-native-picker-select": "^8.1.0", "react-native-progress": "bluesky-social/react-native-progress", diff --git a/src/screens/Messages/Conversation/MessageInput.tsx b/src/screens/Messages/Conversation/MessageInput.tsx index 632544723c..d937cc3e1a 100644 --- a/src/screens/Messages/Conversation/MessageInput.tsx +++ b/src/screens/Messages/Conversation/MessageInput.tsx @@ -65,7 +65,7 @@ export function MessageInput({ const keyboardHeight = Keyboard.metrics()?.height ?? 0 const windowHeight = Dimensions.get('window').height - const max = windowHeight - keyboardHeight - topInset - 100 + const max = windowHeight - keyboardHeight - topInset - 150 const availableSpace = max - e.nativeEvent.contentSize.height setMaxHeight(max) @@ -108,7 +108,6 @@ export function MessageInput({ keyboardAppearance={t.name === 'light' ? 'light' : 'dark'} scrollEnabled={isInputScrollable} blurOnSubmit={false} - onFocus={scrollToEnd} onContentSizeChange={onInputLayout} ref={inputRef} hitSlop={HITSLOP_10} diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index 9c7774e578..ca5d448775 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -1,12 +1,17 @@ import React, {useCallback, useRef} from 'react' import {FlatList, View} from 'react-native' -import {useKeyboardHandler} from 'react-native-keyboard-controller' -import {runOnJS, useSharedValue} from 'react-native-reanimated' +import Animated, { + useAnimatedKeyboard, + useAnimatedReaction, + useAnimatedStyle, + useSharedValue, +} from 'react-native-reanimated' import {ReanimatedScrollEvent} from 'react-native-reanimated/lib/typescript/reanimated2/hook/commonTypes' +import {useSafeAreaInsets} from 'react-native-safe-area-context' import {AppBskyRichtextFacet, RichText} from '@atproto/api' import {shortenLinks} from '#/lib/strings/rich-text-manip' -import {isNative} from '#/platform/detection' +import {isIOS, isNative} from '#/platform/detection' import {useConvoActive} from '#/state/messages/convo' import {ConvoItem} from '#/state/messages/convo/types' import {useAgent} from '#/state/session' @@ -15,7 +20,7 @@ import {isWeb} from 'platform/detection' import {List} from 'view/com/util/List' import {MessageInput} from '#/screens/Messages/Conversation/MessageInput' import {MessageListError} from '#/screens/Messages/Conversation/MessageListError' -import {atoms as a} from '#/alf' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {MessageItem} from '#/components/dms/MessageItem' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' @@ -55,6 +60,7 @@ function onScrollToIndexFailed() { } export function MessagesList() { + const t = useTheme() const convo = useConvoActive() const {getAgent} = useAgent() const flatListRef = useRef(null) @@ -74,8 +80,8 @@ export function MessagesList() { // We don't want to call `scrollToEnd` again if we are already scolling to the end, because this creates a bit of jank // Instead, we use `onMomentumScrollEnd` and this value to determine if we need to start scrolling or not. const isMomentumScrolling = useSharedValue(false) - const hasInitiallyScrolled = useSharedValue(false) + const keyboardIsOpening = useSharedValue(false) // Every time the content size changes, that means one of two things is happening: // 1. New messages are being added from the log or from a message you have sent @@ -101,22 +107,23 @@ export function MessagesList() { contentHeight.value = height // This number _must_ be the height of the MaybeLoader component - if (height <= 50 || !isAtBottom.value) { + if (height <= 50 || (!isAtBottom.value && !keyboardIsOpening.value)) { return } flatListRef.current?.scrollToOffset({ - animated: hasInitiallyScrolled.value, + animated: hasInitiallyScrolled.value && !keyboardIsOpening.value, offset: height, }) isMomentumScrolling.value = true }, [ contentHeight, - hasInitiallyScrolled, + hasInitiallyScrolled.value, isAtBottom.value, isAtTop.value, isMomentumScrolling, + keyboardIsOpening.value, ], ) @@ -187,17 +194,46 @@ export function MessagesList() { }) }, [isMomentumScrolling]) - // This is only used inside the useKeyboardHandler because the worklet won't work with a ref directly. - const scrollToEndNow = React.useCallback(() => { - flatListRef.current?.scrollToEnd({animated: false}) - }, []) + // -- Keyboard animation handling + const animatedKeyboard = useAnimatedKeyboard() + const {gtMobile} = useBreakpoints() + const {bottom: bottomInset} = useSafeAreaInsets() + const nativeBottomBarHeight = isIOS ? 42 : 60 + const bottomOffset = + isWeb && gtMobile ? 0 : bottomInset + nativeBottomBarHeight - useKeyboardHandler({ - onMove: () => { - 'worklet' - runOnJS(scrollToEndNow)() + // We need to keep track of when the keyboard is animating and when it isn't, since we want our `onContentSizeChanged` + // callback to animate the scroll _only_ when the keyboard isn't animating. Any time the previous value of kb height + // is different, we know that it is animating. When it finally settles, now will be equal to prev. + useAnimatedReaction( + () => animatedKeyboard.height.value, + (now, prev) => { + // This never applies on web + if (isWeb) { + keyboardIsOpening.value = false + } else { + keyboardIsOpening.value = now !== prev + } }, - }) + ) + + // This changes the size of the `ListFooterComponent`. Whenever this changes, the content size will change and our + // `onContentSizeChange` function will handle scrolling to the appropriate offset. + const animatedFooterStyle = useAnimatedStyle(() => ({ + marginBottom: + animatedKeyboard.height.value > bottomOffset + ? animatedKeyboard.height.value + : bottomOffset, + })) + + // At a minimum we want the bottom to be whatever the height of our insets and bottom bar is. If the keyboard's height + // is greater than that however, we use that value. + const animatedInputStyle = useAnimatedStyle(() => ({ + bottom: + animatedKeyboard.height.value > bottomOffset + ? animatedKeyboard.height.value + : bottomOffset, + })) return ( <> @@ -211,8 +247,9 @@ export function MessagesList() { containWeb={true} contentContainerStyle={[a.px_md]} disableVirtualization={true} - initialNumToRender={isNative ? 30 : 60} - maxToRenderPerBatch={isWeb ? 30 : 60} + // The extra two items account for the header and the footer components + initialNumToRender={isNative ? 32 : 62} + maxToRenderPerBatch={isWeb ? 32 : 62} keyboardDismissMode="on-drag" keyboardShouldPersistTaps="handled" maintainVisibleContentPosition={{ @@ -227,9 +264,12 @@ export function MessagesList() { ListHeaderComponent={ } + ListFooterComponent={} /> - + + + ) } diff --git a/src/screens/Messages/Conversation/index.tsx b/src/screens/Messages/Conversation/index.tsx index 4a7c4ce9bc..070175d478 100644 --- a/src/screens/Messages/Conversation/index.tsx +++ b/src/screens/Messages/Conversation/index.tsx @@ -1,8 +1,5 @@ import React, {useCallback} from 'react' import {TouchableOpacity, View} from 'react-native' -import {KeyboardProvider} from 'react-native-keyboard-controller' -import {KeyboardAvoidingView} from 'react-native-keyboard-controller' -import {useSafeAreaInsets} from 'react-native-safe-area-context' import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg} from '@lingui/macro' @@ -18,7 +15,7 @@ import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useProfileQuery} from '#/state/queries/profile' import {BACK_HITSLOP} from 'lib/constants' import {sanitizeDisplayName} from 'lib/strings/display-names' -import {isIOS, isNative, isWeb} from 'platform/detection' +import {isWeb} from 'platform/detection' import {ConvoProvider, isConvoActive, useConvo} from 'state/messages/convo' import {ConvoStatus} from 'state/messages/convo/types' import {useSetMinimalShellMode} from 'state/shell' @@ -39,8 +36,8 @@ type Props = NativeStackScreenProps< > export function MessagesConversationScreen({route}: Props) { const gate = useGate() - const setMinimalShellMode = useSetMinimalShellMode() const {gtMobile} = useBreakpoints() + const setMinimalShellMode = useSetMinimalShellMode() const convoId = route.params.conversation const {setCurrentConvoId} = useCurrentConvoId() @@ -57,7 +54,7 @@ export function MessagesConversationScreen({route}: Props) { setCurrentConvoId(undefined) setMinimalShellMode(false) } - }, [convoId, gtMobile, setCurrentConvoId, setMinimalShellMode]), + }, [gtMobile, convoId, setCurrentConvoId, setMinimalShellMode]), ) if (!gate('dms')) return @@ -76,9 +73,6 @@ function Inner() { const [hasInitiallyRendered, setHasInitiallyRendered] = React.useState(false) - const {bottom: bottomInset, top: topInset} = useSafeAreaInsets() - const nativeBottomBarHeight = isIOS ? 42 : 60 - // HACK: Because we need to scroll to the bottom of the list once initial items are added to the list, we also have // to take into account that scrolling to the end of the list on native will happen asynchronously. This will cause // a little flicker when the items are first renedered at the top and immediately scrolled to the bottom. to prevent @@ -111,45 +105,33 @@ function Inner() { /* * Any other convo states (atm) are "ready" states */ - return ( - - - -

- - {isConvoActive(convoState) ? ( - - ) : ( - - )} - {!hasInitiallyRendered && ( - - - - - - )} + +
+ + {isConvoActive(convoState) ? ( + + ) : ( + + )} + {!hasInitiallyRendered && ( + + + + - - - + )} + + ) } diff --git a/yarn.lock b/yarn.lock index ca2ae379c2..1e7fd33bcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18496,11 +18496,6 @@ react-native-ios-context-menu@^1.15.3: dependencies: "@dominicstop/ts-event-emitter" "^1.1.0" -react-native-keyboard-controller@^1.11.7: - version "1.11.7" - resolved "https://registry.yarnpkg.com/react-native-keyboard-controller/-/react-native-keyboard-controller-1.11.7.tgz#85640374e4c3627c3b667256a1d308698ff80393" - integrity sha512-K2zlqVyWX4QO7r+dHMQgZT41G2dSEWtDYgBdht1WVyTaMQmwTMalZcHCWBVOnzyGaJq/hMKhF1kSPqJP1xqSFA== - react-native-pager-view@6.2.3: version "6.2.3" resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.2.3.tgz#698f6387fdf06cecc3d8d4792604419cb89cb775" From ef0ce951e7c95ce3374a3e49db16f72a344ef779 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 16 May 2024 10:40:12 -0700 Subject: [PATCH 078/277] =?UTF-8?q?[=F0=9F=90=B4]=20Only=20scroll=20down?= =?UTF-8?q?=20one=20"screen"=20in=20height=20when=20foregrounding=20(#4027?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * maintain position after foreground * one possibility * don't overscroll when content size changes. * ignore the rule on 1 item * fix * [🐴] Pill for additional unreads when coming from background (#4043) * create a pill with some animatons * add some basic styles to the pill * make the animations reusable * bit better styling * rm logs --------- Co-authored-by: Samuel Newman * import --------- Co-authored-by: Samuel Newman --- src/components/dms/NewMessagesPill.tsx | 47 ++++++++++++++ src/lib/custom-animations/ScaleAndFade.ts | 39 ++++++++++++ .../Messages/Conversation/MessagesList.tsx | 62 +++++++++++++++---- 3 files changed, 136 insertions(+), 12 deletions(-) create mode 100644 src/components/dms/NewMessagesPill.tsx create mode 100644 src/lib/custom-animations/ScaleAndFade.ts diff --git a/src/components/dms/NewMessagesPill.tsx b/src/components/dms/NewMessagesPill.tsx new file mode 100644 index 0000000000..4a0ba22c92 --- /dev/null +++ b/src/components/dms/NewMessagesPill.tsx @@ -0,0 +1,47 @@ +import React from 'react' +import {View} from 'react-native' +import Animated from 'react-native-reanimated' +import {Trans} from '@lingui/macro' + +import { + ScaleAndFadeIn, + ScaleAndFadeOut, +} from 'lib/custom-animations/ScaleAndFade' +import {atoms as a, useTheme} from '#/alf' +import {Text} from '#/components/Typography' + +export function NewMessagesPill() { + const t = useTheme() + + React.useEffect(() => {}, []) + + return ( + + + + New messages + + + + ) +} diff --git a/src/lib/custom-animations/ScaleAndFade.ts b/src/lib/custom-animations/ScaleAndFade.ts new file mode 100644 index 0000000000..ad2c15f8f6 --- /dev/null +++ b/src/lib/custom-animations/ScaleAndFade.ts @@ -0,0 +1,39 @@ +import {withTiming} from 'react-native-reanimated' + +export function ScaleAndFadeIn() { + 'worklet' + + const animations = { + opacity: withTiming(1), + transform: [{scale: withTiming(1)}], + } + + const initialValues = { + opacity: 0, + transform: [{scale: 0.7}], + } + + return { + animations, + initialValues, + } +} + +export function ScaleAndFadeOut() { + 'worklet' + + const animations = { + opacity: withTiming(0), + transform: [{scale: withTiming(0.7)}], + } + + const initialValues = { + opacity: 1, + transform: [{scale: 1}], + } + + return { + animations, + initialValues, + } +} diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index ca5d448775..a8f9d344dc 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -1,6 +1,7 @@ import React, {useCallback, useRef} from 'react' import {FlatList, View} from 'react-native' import Animated, { + runOnJS, useAnimatedKeyboard, useAnimatedReaction, useAnimatedStyle, @@ -22,6 +23,7 @@ import {MessageInput} from '#/screens/Messages/Conversation/MessageInput' import {MessageListError} from '#/screens/Messages/Conversation/MessageListError' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {MessageItem} from '#/components/dms/MessageItem' +import {NewMessagesPill} from '#/components/dms/NewMessagesPill' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' @@ -65,6 +67,8 @@ export function MessagesList() { const {getAgent} = useAgent() const flatListRef = useRef(null) + const [showNewMessagesPill, setShowNewMessagesPill] = React.useState(false) + // We need to keep track of when the scroll offset is at the bottom of the list to know when to scroll as new items // are added to the list. For example, if the user is scrolled up to 1iew older messages, we don't want to scroll to // the bottom. @@ -76,12 +80,14 @@ export function MessagesList() { // Used to keep track of the current content height. We'll need this in `onScroll` so we know when to start allowing // onStartReached to fire. const contentHeight = useSharedValue(0) + const prevItemCount = useRef(0) // We don't want to call `scrollToEnd` again if we are already scolling to the end, because this creates a bit of jank // Instead, we use `onMomentumScrollEnd` and this value to determine if we need to start scrolling or not. const isMomentumScrolling = useSharedValue(false) const hasInitiallyScrolled = useSharedValue(false) const keyboardIsOpening = useSharedValue(false) + const layoutHeight = useSharedValue(0) // Every time the content size changes, that means one of two things is happening: // 1. New messages are being added from the log or from a message you have sent @@ -96,7 +102,7 @@ export function MessagesList() { const onContentSizeChange = useCallback( (_: number, height: number) => { // Because web does not have `maintainVisibleContentPosition` support, we will need to manually scroll to the - // previous offset whenever we add new content to the previous offset whenever we add new content to the list. + // previous off whenever we add new content to the previous offset whenever we add new content to the list. if (isWeb && isAtTop.value && hasInitiallyScrolled.value) { flatListRef.current?.scrollToOffset({ animated: false, @@ -104,18 +110,31 @@ export function MessagesList() { }) } - contentHeight.value = height - // This number _must_ be the height of the MaybeLoader component - if (height <= 50 || (!isAtBottom.value && !keyboardIsOpening.value)) { - return - } + if (height > 50 && (isAtBottom.value || keyboardIsOpening.value)) { + let newOffset = height - flatListRef.current?.scrollToOffset({ - animated: hasInitiallyScrolled.value && !keyboardIsOpening.value, - offset: height, - }) - isMomentumScrolling.value = true + // If the size of the content is changing by more than the height of the screen, then we should only + // scroll 1 screen down, and let the user scroll the rest. However, because a single message could be + // really large - and the normal chat behavior would be to still scroll to the end if it's only one + // message - we ignore this rule if there's only one additional message + if ( + hasInitiallyScrolled.value && + height - contentHeight.value > layoutHeight.value - 50 && + convo.items.length - prevItemCount.current > 1 + ) { + newOffset = contentHeight.value - 50 + setShowNewMessagesPill(true) + } + + flatListRef.current?.scrollToOffset({ + animated: hasInitiallyScrolled.value && !keyboardIsOpening.value, + offset: newOffset, + }) + isMomentumScrolling.value = true + } + contentHeight.value = height + prevItemCount.current = convo.items.length }, [ contentHeight, @@ -123,6 +142,8 @@ export function MessagesList() { isAtBottom.value, isAtTop.value, isMomentumScrolling, + layoutHeight.value, + convo.items.length, keyboardIsOpening.value, ], ) @@ -163,8 +184,17 @@ export function MessagesList() { const onScroll = React.useCallback( (e: ReanimatedScrollEvent) => { 'worklet' + layoutHeight.value = e.layoutMeasurement.height + const bottomOffset = e.contentOffset.y + e.layoutMeasurement.height + if ( + showNewMessagesPill && + e.contentSize.height - e.layoutMeasurement.height / 3 < bottomOffset + ) { + runOnJS(setShowNewMessagesPill)(false) + } + // Most apps have a little bit of space the user can scroll past while still automatically scrolling ot the bottom // when a new message is added, hence the 100 pixel offset isAtBottom.value = e.contentSize.height - 100 < bottomOffset @@ -177,7 +207,14 @@ export function MessagesList() { hasInitiallyScrolled.value = true } }, - [contentHeight.value, hasInitiallyScrolled, isAtBottom, isAtTop], + [ + layoutHeight, + showNewMessagesPill, + isAtBottom, + isAtTop, + contentHeight.value, + hasInitiallyScrolled, + ], ) const onMomentumEnd = React.useCallback(() => { @@ -267,6 +304,7 @@ export function MessagesList() { ListFooterComponent={} /> + {showNewMessagesPill && } From dff6bd7c6542b62f1ba8325d2c0520b1665d412b Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 16 May 2024 11:58:45 -0700 Subject: [PATCH 079/277] =?UTF-8?q?[=F0=9F=90=B4]=20infinite=20stale=20tim?= =?UTF-8?q?e=20(#4051)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/state/queries/messages/conversation.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/state/queries/messages/conversation.ts b/src/state/queries/messages/conversation.ts index bd5b746f16..baf69223a5 100644 --- a/src/state/queries/messages/conversation.ts +++ b/src/state/queries/messages/conversation.ts @@ -4,6 +4,7 @@ import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' import {useOnMarkAsRead} from '#/state/queries/messages/list-converations' import {useAgent} from '#/state/session' +import {STALE} from 'state/queries' import {RQKEY as LIST_CONVOS_KEY} from './list-converations' const RQKEY_ROOT = 'convo' @@ -22,6 +23,7 @@ export function useConvoQuery(convo: ChatBskyConvoDefs.ConvoView) { return data.convo }, initialData: convo, + staleTime: STALE.INFINITY, }) } From 4bceabc21cacd865f5b10684142485faca2c9bb4 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 16 May 2024 14:01:39 -0500 Subject: [PATCH 080/277] =?UTF-8?q?[=F0=9F=90=B4]=20Error=20recovery=20(#4?= =?UTF-8?q?036)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Handle block state when sending messages * Handle different pending failures * Use existing profile data to handle blocks * Better cleanup, leave room for more * Attempt recover upon next send * Reset pending failure * Capture unexpected error * Gracefully handle network errors and recovery * Re-align error components and types * Include history fetching in recoverable states --- src/components/dms/MessageItem.tsx | 25 ++- .../Conversation/MessageListError.tsx | 78 ++++---- .../Messages/Conversation/MessagesList.tsx | 2 +- src/state/messages/convo/agent.ts | 180 +++++++++++++----- src/state/messages/convo/const.ts | 4 + src/state/messages/convo/index.tsx | 21 ++ src/state/messages/convo/types.ts | 19 +- 7 files changed, 216 insertions(+), 113 deletions(-) diff --git a/src/components/dms/MessageItem.tsx b/src/components/dms/MessageItem.tsx index cafd7ca5a5..f456fa4748 100644 --- a/src/components/dms/MessageItem.tsx +++ b/src/components/dms/MessageItem.tsx @@ -202,7 +202,7 @@ let MessageItemMetadata = ({ )} - {item.type === 'pending-message' && item.retry && ( + {item.type === 'pending-message' && item.failed && ( <> {' '} ·{' '} @@ -214,15 +214,20 @@ let MessageItemMetadata = ({ }, ]}> {_(msg`Failed to send`)} - {' '} - ·{' '} - - {_(msg`Retry`)} - + + {item.retry && ( + <> + {' '} + ·{' '} + + {_(msg`Retry`)} + + + )} )} diff --git a/src/screens/Messages/Conversation/MessageListError.tsx b/src/screens/Messages/Conversation/MessageListError.tsx index c6e246a3fb..6a6ce5e693 100644 --- a/src/screens/Messages/Conversation/MessageListError.tsx +++ b/src/screens/Messages/Conversation/MessageListError.tsx @@ -5,27 +5,25 @@ import {useLingui} from '@lingui/react' import {ConvoItem, ConvoItemError} from '#/state/messages/convo/types' import {atoms as a, useTheme} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Refresh} from '#/components/icons/ArrowRotateCounterClockwise' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {InlineLinkText} from '#/components/Link' import {Text} from '#/components/Typography' -export function MessageListError({ - item, -}: { - item: ConvoItem & {type: 'error-recoverable'} -}) { +export function MessageListError({item}: {item: ConvoItem & {type: 'error'}}) { const t = useTheme() const {_} = useLingui() - const message = React.useMemo(() => { + const {description, help, cta} = React.useMemo(() => { return { - [ConvoItemError.Network]: _( - msg`There was an issue connecting to the chat.`, - ), - [ConvoItemError.FirehoseFailed]: _( - msg`This chat was disconnected due to a network error.`, - ), - [ConvoItemError.HistoryFailed]: _(msg`Failed to load past messages.`), + [ConvoItemError.FirehoseFailed]: { + description: _(msg`This chat was disconnected`), + help: _(msg`Press to attempt reconnection`), + cta: _(msg`Reconnect`), + }, + [ConvoItemError.HistoryFailed]: { + description: _(msg`Failed to load past messages`), + help: _(msg`Press to retry`), + cta: _(msg`Retry`), + }, }[item.code] }, [_, item.code]) @@ -36,37 +34,31 @@ export function MessageListError({ a.flex_row, a.align_center, a.justify_between, - a.gap_lg, - a.py_md, - a.px_lg, - a.rounded_md, - t.atoms.bg_contrast_25, + a.gap_sm, + a.pb_lg, {maxWidth: 400}, ]}> - - - - {message} - - + - + + {description} ·{' '} + {item.retry && ( + { + e.preventDefault() + item.retry?.() + return false + }}> + {cta} + + )} + ) diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index a8f9d344dc..fd9368b493 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -46,7 +46,7 @@ function renderItem({item}: {item: ConvoItem}) { return } else if (item.type === 'deleted-message') { return Deleted message - } else if (item.type === 'error-recoverable') { + } else if (item.type === 'error') { return } diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index 94bb8dda44..8673c70adf 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -5,6 +5,8 @@ import { ChatBskyConvoGetLog, ChatBskyConvoSendMessage, } from '@atproto/api' +import {XRPCError} from '@atproto/xrpc' +import EventEmitter from 'eventemitter3' import {nanoid} from 'nanoid/non-secure' import {networkRetry} from '#/lib/async/retry' @@ -14,11 +16,14 @@ import { ACTIVE_POLL_INTERVAL, BACKGROUND_POLL_INTERVAL, INACTIVE_TIMEOUT, + NETWORK_FAILURE_STATUSES, } from '#/state/messages/convo/const' import { ConvoDispatch, ConvoDispatchEvent, + ConvoError, ConvoErrorCode, + ConvoEvent, ConvoItem, ConvoItemError, ConvoParams, @@ -51,13 +56,7 @@ export class Convo { private senderUserDid: string private status: ConvoStatus = ConvoStatus.Uninitialized - private error: - | { - code: ConvoErrorCode - exception?: Error - retry: () => void - } - | undefined + private error: ConvoError | undefined private oldestRev: string | undefined | null = undefined private isFetchingHistory = false private latestRev: string | undefined = undefined @@ -75,13 +74,13 @@ export class Convo { {id: string; message: ChatBskyConvoSendMessage.InputSchema['message']} > = new Map() private deletedMessages: Set = new Set() - private footerItems: Map = new Map() - private headerItems: Map = new Map() private isProcessingPendingMessages = false private lastActiveTimestamp: number | undefined + private emitter = new EventEmitter<{event: [ConvoEvent]}>() + convoId: string convo: ChatBskyConvoDefs.ConvoView | undefined sender: AppBskyActorDefs.ProfileViewBasic | undefined @@ -174,7 +173,7 @@ export class Convo { status: ConvoStatus.Error, items: [], convo: undefined, - error: this.error, + error: this.error!, sender: undefined, recipients: undefined, isFetchingHistory: false, @@ -282,6 +281,7 @@ export class Convo { if (this.convo) { this.status = ConvoStatus.Ready this.refreshConvo() + this.maybeRecoverFromNetworkError() } else { this.status = ConvoStatus.Initializing this.setup() @@ -379,12 +379,30 @@ export class Convo { this.newMessages = new Map() this.pendingMessages = new Map() this.deletedMessages = new Set() - this.footerItems = new Map() - this.headerItems = new Map() + + this.pendingMessageFailure = null + this.fetchMessageHistoryError = undefined + this.firehoseError = undefined this.dispatch({event: ConvoDispatchEvent.Init}) } + maybeRecoverFromNetworkError() { + if (this.firehoseError) { + this.firehoseError.retry() + this.firehoseError = undefined + this.commit() + } else { + this.batchRetryPendingMessages() + } + + if (this.fetchMessageHistoryError) { + this.fetchMessageHistoryError.retry() + this.fetchMessageHistoryError = undefined + this.commit() + } + } + private async setup() { try { const {convo, sender, recipients} = await this.fetchConvo() @@ -520,6 +538,11 @@ export class Convo { } } + private fetchMessageHistoryError: + | { + retry: () => void + } + | undefined async fetchMessageHistory() { logger.debug('Convo: fetch message history', {}, logger.DebugContext.convo) @@ -537,7 +560,7 @@ export class Convo { * If we've rendered a retry state for history fetching, exit. Upon retry, * this will be removed and we'll try again. */ - if (this.headerItems.has(ConvoItemError.HistoryFailed)) return + if (this.fetchMessageHistoryError) return try { this.isFetchingHistory = true @@ -586,15 +609,11 @@ export class Convo { } catch (e: any) { logger.error('Convo: failed to fetch message history') - this.headerItems.set(ConvoItemError.HistoryFailed, { - type: 'error-recoverable', - key: ConvoItemError.HistoryFailed, - code: ConvoItemError.HistoryFailed, + this.fetchMessageHistoryError = { retry: () => { - this.headerItems.delete(ConvoItemError.HistoryFailed) this.fetchMessageHistory() }, - }) + } } finally { this.isFetchingHistory = false this.commit() @@ -628,22 +647,16 @@ export class Convo { ) } + private firehoseError: MessagesEventBusError | undefined + onFirehoseConnect() { - this.footerItems.delete(ConvoItemError.FirehoseFailed) + this.firehoseError = undefined + this.batchRetryPendingMessages() this.commit() } onFirehoseError(error?: MessagesEventBusError) { - this.footerItems.set(ConvoItemError.FirehoseFailed, { - type: 'error-recoverable', - key: ConvoItemError.FirehoseFailed, - code: ConvoItemError.FirehoseFailed, - retry: () => { - this.footerItems.delete(ConvoItemError.FirehoseFailed) - this.commit() - error?.retry() - }, - }) + this.firehoseError = error this.commit() } @@ -724,7 +737,7 @@ export class Convo { } } - private pendingFailed = false + private pendingMessageFailure: 'recoverable' | 'unrecoverable' | null = null async sendMessage(message: ChatBskyConvoSendMessage.InputSchema['message']) { // Ignore empty messages for now since they have no other purpose atm @@ -734,13 +747,14 @@ export class Convo { const tempId = nanoid() + this.pendingMessageFailure = null this.pendingMessages.set(tempId, { id: tempId, message, }) this.commit() - if (!this.isProcessingPendingMessages && !this.pendingFailed) { + if (!this.isProcessingPendingMessages && !this.pendingMessageFailure) { this.processPendingMessages() } } @@ -765,7 +779,6 @@ export class Convo { try { this.isProcessingPendingMessages = true - // throw new Error('UNCOMMENT TO TEST RETRY') const {id, message} = pendingMessage const response = await networkRetry(2, () => { @@ -794,23 +807,65 @@ export class Convo { this.commit() } catch (e: any) { logger.error(e, {context: `Convo: failed to send message`}) - this.pendingFailed = true - this.commit() + this.handleSendMessageFailure(e) } finally { this.isProcessingPendingMessages = false } } + private handleSendMessageFailure(e: any) { + if (e instanceof XRPCError) { + if (NETWORK_FAILURE_STATUSES.includes(e.status)) { + this.pendingMessageFailure = 'recoverable' + } else { + switch (e.message) { + case 'block between recipient and sender': + this.pendingMessageFailure = 'unrecoverable' + this.emitter.emit('event', { + type: 'invalidate-block-state', + accountDids: [ + this.sender!.did, + ...this.recipients!.map(r => r.did), + ], + }) + break + default: + logger.warn( + `Convo handleSendMessageFailure could not handle error`, + { + status: e.status, + message: e.message, + }, + ) + break + } + } + } else { + logger.error(e, { + context: `Convo handleSendMessageFailure received unknown error`, + }) + } + + this.commit() + } + async batchRetryPendingMessages() { + if (this.pendingMessageFailure === null) return + + const messageArray = Array.from(this.pendingMessages.values()) + if (messageArray.length === 0) return + + this.pendingMessageFailure = null + this.commit() + logger.debug( - `Convo: retrying ${this.pendingMessages.size} pending messages`, + `Convo: batch retrying ${this.pendingMessages.size} pending messages`, {}, logger.DebugContext.convo, ) try { // throw new Error('UNCOMMENT TO TEST RETRY') - const messageArray = Array.from(this.pendingMessages.values()) const {data} = await networkRetry(2, () => { return this.agent.api.chat.bsky.convo.sendMessageBatch( { @@ -848,8 +903,7 @@ export class Convo { ) } catch (e: any) { logger.error(e, {context: `Convo: failed to batch retry messages`}) - this.pendingFailed = true - this.commit() + this.handleSendMessageFailure(e) } } @@ -877,6 +931,14 @@ export class Convo { } } + on(handler: (event: ConvoEvent) => void) { + this.emitter.on('event', handler) + + return () => { + this.emitter.off('event', handler) + } + } + /* * Items in reverse order, since FlatList inverts */ @@ -901,9 +963,16 @@ export class Convo { } }) - this.headerItems.forEach(item => { - items.unshift(item) - }) + if (this.fetchMessageHistoryError) { + items.unshift({ + type: 'error', + code: ConvoItemError.HistoryFailed, + key: ConvoItemError.HistoryFailed, + retry: () => { + this.maybeRecoverFromNetworkError() + }, + }) + } this.newMessages.forEach(m => { if (ChatBskyConvoDefs.isMessageView(m)) { @@ -940,19 +1009,26 @@ export class Convo { sender: this.sender!, }, nextMessage: null, - retry: this.pendingFailed - ? () => { - this.pendingFailed = false - this.commit() - this.batchRetryPendingMessages() - } - : undefined, + failed: this.pendingMessageFailure !== null, + retry: + this.pendingMessageFailure === 'recoverable' + ? () => { + this.maybeRecoverFromNetworkError() + } + : undefined, }) }) - this.footerItems.forEach(item => { - items.push(item) - }) + if (this.firehoseError) { + items.push({ + type: 'error', + code: ConvoItemError.FirehoseFailed, + key: ConvoItemError.FirehoseFailed, + retry: () => { + this.firehoseError?.retry() + }, + }) + } return items .filter(item => { diff --git a/src/state/messages/convo/const.ts b/src/state/messages/convo/const.ts index abea5205eb..6ce100d11e 100644 --- a/src/state/messages/convo/const.ts +++ b/src/state/messages/convo/const.ts @@ -1,3 +1,7 @@ export const ACTIVE_POLL_INTERVAL = 1e3 export const BACKGROUND_POLL_INTERVAL = 5e3 export const INACTIVE_TIMEOUT = 60e3 * 5 + +export const NETWORK_FAILURE_STATUSES = [ + 1, 408, 425, 429, 500, 502, 503, 504, 522, 524, +] diff --git a/src/state/messages/convo/index.tsx b/src/state/messages/convo/index.tsx index e955d41183..d6648f4800 100644 --- a/src/state/messages/convo/index.tsx +++ b/src/state/messages/convo/index.tsx @@ -1,6 +1,7 @@ import React, {useContext, useState, useSyncExternalStore} from 'react' import {AppState} from 'react-native' import {useFocusEffect, useIsFocused} from '@react-navigation/native' +import {useQueryClient} from '@tanstack/react-query' import {Convo} from '#/state/messages/convo/agent' import { @@ -13,6 +14,8 @@ import { import {isConvoActive} from '#/state/messages/convo/util' import {useMessagesEventBus} from '#/state/messages/events' import {useMarkAsReadMutation} from '#/state/queries/messages/conversation' +import {RQKEY as ListConvosQueryKey} from '#/state/queries/messages/list-converations' +import {RQKEY as createProfileQueryKey} from '#/state/queries/profile' import {useAgent} from '#/state/session' export * from '#/state/messages/convo/util' @@ -52,6 +55,7 @@ export function ConvoProvider({ children, convoId, }: Pick & {children: React.ReactNode}) { + const queryClient = useQueryClient() const isScreenFocused = useIsFocused() const {getAgent} = useAgent() const events = useMessagesEventBus() @@ -78,6 +82,23 @@ export function ConvoProvider({ }, [convo, convoId, markAsRead]), ) + React.useEffect(() => { + return convo.on(event => { + switch (event.type) { + case 'invalidate-block-state': { + for (const did of event.accountDids) { + queryClient.invalidateQueries({ + queryKey: createProfileQueryKey(did), + }) + } + queryClient.invalidateQueries({ + queryKey: ListConvosQueryKey, + }) + } + } + }) + }, [convo, queryClient]) + React.useEffect(() => { const handleAppStateChange = (nextAppState: string) => { if (isScreenFocused) { diff --git a/src/state/messages/convo/types.ts b/src/state/messages/convo/types.ts index 3fb0eb6ad3..25e79aba6d 100644 --- a/src/state/messages/convo/types.ts +++ b/src/state/messages/convo/types.ts @@ -23,10 +23,6 @@ export enum ConvoStatus { } export enum ConvoItemError { - /** - * Generic error - */ - Network = 'network', /** * Error connecting to event firehose */ @@ -95,6 +91,7 @@ export type ConvoItem = | ChatBskyConvoDefs.MessageView | ChatBskyConvoDefs.DeletedMessageView | null + failed: boolean /** * Retry sending the message. If present, the message is in a failed state. */ @@ -110,10 +107,13 @@ export type ConvoItem = | null } | { - type: 'error-recoverable' + type: 'error' key: string code: ConvoItemError - retry: () => void + /** + * If present, error is recoverable. + */ + retry?: () => void } type DeleteMessage = (messageId: string) => Promise @@ -186,7 +186,7 @@ export type ConvoStateError = { status: ConvoStatus.Error items: [] convo: undefined - error: any + error: ConvoError sender: undefined recipients: undefined isFetchingHistory: false @@ -201,3 +201,8 @@ export type ConvoState = | ConvoStateBackgrounded | ConvoStateSuspended | ConvoStateError + +export type ConvoEvent = { + type: 'invalidate-block-state' + accountDids: string[] +} From 5e8650a204cf4b52fa321e672801ce790b3cb554 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 16 May 2024 12:15:35 -0700 Subject: [PATCH 081/277] =?UTF-8?q?[=F0=9F=90=B4]=20Decrement=20app=20badg?= =?UTF-8?q?e=20when=20opening=20unread=20chat=20(#4040)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * decrement badge count for chats * handle decrement in `useMarkAsRead` * remove async * oops --- src/lib/hooks/useNotificationHandler.ts | 5 +++-- src/lib/notifications/notifications.ts | 12 ++++++++++++ src/state/queries/messages/list-converations.ts | 17 +++++++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/lib/hooks/useNotificationHandler.ts b/src/lib/hooks/useNotificationHandler.ts index 6f5fbd66bb..e288ac3ad4 100644 --- a/src/lib/hooks/useNotificationHandler.ts +++ b/src/lib/hooks/useNotificationHandler.ts @@ -169,10 +169,11 @@ export function useNotificationsHandler() { payload.reason === 'chat-message' && payload.recipientDid === currentAccount?.did ) { + const isCurrentConvo = payload.convoId === currentConvoId return { - shouldShowAlert: payload.convoId !== currentConvoId, + shouldShowAlert: !isCurrentConvo, shouldPlaySound: false, - shouldSetBadge: false, + shouldSetBadge: !isCurrentConvo, } } diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index 52f984a599..1182bfcbbe 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -1,5 +1,6 @@ import React from 'react' import * as Notifications from 'expo-notifications' +import {getBadgeCountAsync, setBadgeCountAsync} from 'expo-notifications' import {BskyAgent} from '@atproto/api' import {logger} from '#/logger' @@ -109,3 +110,14 @@ export function useRequestNotificationsPermission() { [gate], ) } + +export async function decrementBadgeCount(by = 1) { + if (!isNative) return + + const currCount = await getBadgeCountAsync() + let newCount = currCount - by + if (newCount < 0) { + newCount = 0 + } + await setBadgeCountAsync(newCount) +} diff --git a/src/state/queries/messages/list-converations.ts b/src/state/queries/messages/list-converations.ts index f2c277068a..4b4d50c493 100644 --- a/src/state/queries/messages/list-converations.ts +++ b/src/state/queries/messages/list-converations.ts @@ -10,6 +10,7 @@ import { import {useCurrentConvoId} from '#/state/messages/current-convo-id' import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' import {useAgent} from '#/state/session' +import {decrementBadgeCount} from 'lib/notifications/notifications' export const RQKEY = ['convo-list'] type RQPageParam = string | undefined @@ -116,10 +117,18 @@ export function useOnMarkAsRead() { return useCallback( (chatId: string) => { queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) => { - return optimisticUpdate(chatId, old, convo => ({ - ...convo, - unreadCount: 0, - })) + return optimisticUpdate(chatId, old, convo => { + // We only want to decrement the badge by one no matter the unread count, since we only increment once per + // sender regardless of message count + if (convo.unreadCount > 0) { + decrementBadgeCount(1) + } + + return { + ...convo, + unreadCount: 0, + } + }) }) }, [queryClient], From 72550df0e2c94bd17b86215d95ec1b7eb76fe30f Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 16 May 2024 12:21:29 -0700 Subject: [PATCH 082/277] Properly update badge for other unread notifications (#4052) * decrement badge count for chats * handle decrement in `useMarkAsRead` * remove async * remove setting badge count * oops * update the number correctly * nit --- src/state/queries/notifications/unread.tsx | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/state/queries/notifications/unread.tsx b/src/state/queries/notifications/unread.tsx index 80333b524f..9d35ee19fb 100644 --- a/src/state/queries/notifications/unread.tsx +++ b/src/state/queries/notifications/unread.tsx @@ -4,15 +4,14 @@ import React from 'react' import {AppState} from 'react-native' -import * as Notifications from 'expo-notifications' import {useQueryClient} from '@tanstack/react-query' import EventEmitter from 'eventemitter3' import BroadcastChannel from '#/lib/broadcast' import {logger} from '#/logger' -import {isNative} from '#/platform/detection' import {useMutedThreads} from '#/state/muted-threads' import {useAgent, useSession} from '#/state/session' +import {decrementBadgeCount} from 'lib/notifications/notifications' import {useModerationOpts} from '../../preferences/moderation-opts' import {truncateAndInvalidate} from '../util' import {RQKEY as RQKEY_NOTIFS} from './feed' @@ -120,9 +119,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { // update & broadcast setNumUnread('') broadcast.postMessage({event: ''}) - if (isNative) { - Notifications.setBadgeCountAsync(0) - } + decrementBadgeCount(Math.min(cacheRef.current.unreadCount, 30)) }, async checkUnread({ @@ -163,9 +160,6 @@ export function Provider({children}: React.PropsWithChildren<{}>) { : unreadCount === 0 ? '' : String(unreadCount) - if (isNative) { - Notifications.setBadgeCountAsync(Math.min(unreadCount, 30)) - } // track last sync const now = new Date() From 3a8baba129e609538e16e849d7cd7e3c2149ebca Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 16 May 2024 15:19:35 -0500 Subject: [PATCH 083/277] =?UTF-8?q?[=F0=9F=90=B4]=20Tweak=20header=20style?= =?UTF-8?q?s=20(#4053)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Tweak desktop header styles * Tweak mobile * Bump icon size * Remove unused else --- src/components/Button.tsx | 2 +- src/screens/Messages/List/index.tsx | 30 ++++++++++++++++------------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/components/Button.tsx b/src/components/Button.tsx index dc319eb5cb..a008c8605c 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -292,7 +292,7 @@ export function Button({ baseStyles.push({height: 50, width: 50}) } } else if (size === 'small') { - baseStyles.push({height: 40, width: 40}) + baseStyles.push({height: 34, width: 34}) } else if (size === 'tiny') { baseStyles.push({height: 20, width: 20}) } diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index 2ae17a1414..060dac6301 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -61,12 +61,16 @@ export function MessagesScreen({navigation, route}: Props) { return ( - + label={_(msg`Chat settings`)} + size="small" + variant="ghost" + color="secondary" + shape="square" + style={[a.justify_center]}> + ) - }, [_, t.atoms.text]) + }, [_, t]) const initialNumToRender = useInitialNumToRender() const [isPTRing, setIsPTRing] = useState(false) @@ -165,7 +169,7 @@ export function MessagesScreen({navigation, route}: Props) { )} @@ -225,32 +229,32 @@ function DesktopHeader({ a.justify_between, a.gap_lg, a.px_lg, - a.py_sm, + a.pr_md, + a.py_md, a.border_b, t.atoms.border_contrast_low, ]}> Messages - + {gtTablet && ( + + + + ) +} diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index 060dac6301..e36d1edf2d 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -17,6 +17,7 @@ import {CenteredView} from '#/view/com/util/Views' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {DialogControlProps, useDialogControl} from '#/components/Dialog' +import {MessagesNUX} from '#/components/dms/MessagesNUX' import {NewChat} from '#/components/dms/NewChat' import {useRefreshOnFocus} from '#/components/hooks/useRefreshOnFocus' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' @@ -131,6 +132,7 @@ export function MessagesScreen({navigation, route}: Props) { if (conversations.length < 1) { return ( + {gtMobile ? ( + {!gtMobile && ( + }) const {preferences, setPref} = useBackgroundNotificationPreferences() const {mutate: updateDeclaration} = useUpdateActorDeclaration({ diff --git a/src/state/queries/messages/actor-declaration.ts b/src/state/queries/messages/actor-declaration.ts index c8cc4acbdc..0886af3829 100644 --- a/src/state/queries/messages/actor-declaration.ts +++ b/src/state/queries/messages/actor-declaration.ts @@ -21,9 +21,9 @@ export function useUpdateActorDeclaration({ if (!currentAccount) throw new Error('Not logged in') // TODO(sam): remove validate: false once PDSes have the new lexicon const result = await getAgent().api.com.atproto.repo.putRecord({ + repo: currentAccount.did, collection: 'chat.bsky.actor.declaration', rkey: 'self', - repo: currentAccount.did, validate: false, record: { $type: 'chat.bsky.actor.declaration', @@ -62,3 +62,23 @@ export function useUpdateActorDeclaration({ }, }) } + +// for use in the settings screen for testing +export function useDeleteActorDeclaration() { + const {currentAccount} = useSession() + const {getAgent} = useAgent() + + return useMutation({ + mutationFn: async () => { + if (!currentAccount) throw new Error('Not logged in') + // TODO(sam): remove validate: false once PDSes have the new lexicon + const result = await getAgent().api.com.atproto.repo.deleteRecord({ + repo: currentAccount.did, + collection: 'chat.bsky.actor.declaration', + rkey: 'self', + validate: false, + }) + return result + }, + }) +} diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx index c3864e5a91..b3b937c615 100644 --- a/src/view/screens/Settings/index.tsx +++ b/src/view/screens/Settings/index.tsx @@ -26,6 +26,7 @@ import { useInAppBrowser, useSetInAppBrowser, } from '#/state/preferences/in-app-browser' +import {useDeleteActorDeclaration} from '#/state/queries/messages/actor-declaration' import {useClearPreferencesMutation} from '#/state/queries/preferences' import {RQKEY as RQKEY_PROFILE} from '#/state/queries/profile' import {useProfileQuery} from '#/state/queries/profile' @@ -305,6 +306,8 @@ export function SettingsScreen({}: Props) { Toast.show(_(msg`Legacy storage cleared, you need to restart the app now.`)) }, [_]) + const {mutate: onPressDeleteChatDeclaration} = useDeleteActorDeclaration() + return ( @@ -826,6 +829,16 @@ export function SettingsScreen({}: Props) { Reset preferences state + onPressDeleteChatDeclaration()} + accessibilityRole="button" + accessibilityLabel={_(msg`Delete chat declaration record`)} + accessibilityHint={_(msg`Deletes the chat declaration record`)}> + + Delete chat declaration record + + Date: Fri, 17 May 2024 20:46:01 +0100 Subject: [PATCH 099/277] =?UTF-8?q?[=F0=9F=90=B4]=20don't=20include=20bloc?= =?UTF-8?q?ked=20convos=20in=20unread=20count=20(#4082)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * don't include blocked convos in unread count * Use moderateProfile * Handle blocked state in chat list * Fix logic formatting, add todo --------- Co-authored-by: Eric Bailey --- src/screens/Messages/List/ChatListItem.tsx | 12 ++++++---- .../queries/messages/list-converations.ts | 24 ++++++++++++++++--- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/screens/Messages/List/ChatListItem.tsx b/src/screens/Messages/List/ChatListItem.tsx index 0a0f8c5755..a7b7e0680c 100644 --- a/src/screens/Messages/List/ChatListItem.tsx +++ b/src/screens/Messages/List/ChatListItem.tsx @@ -169,7 +169,7 @@ function ChatListItemReady({ )} )} - {convo.muted && ( + {(convo.muted || moderation.blocked) && ( 0 ? a.font_bold : t.atoms.text_contrast_high, - convo.muted && t.atoms.text_contrast_medium, + (convo.muted || moderation.blocked) && + t.atoms.text_contrast_medium, ]}> {lastMessage} @@ -211,9 +212,10 @@ function ChatListItemReady({ a.absolute, a.rounded_full, { - backgroundColor: convo.muted - ? t.palette.contrast_200 - : t.palette.primary_500, + backgroundColor: + convo.muted || moderation.blocked + ? t.palette.contrast_200 + : t.palette.primary_500, height: 7, width: 7, }, diff --git a/src/state/queries/messages/list-converations.ts b/src/state/queries/messages/list-converations.ts index 4b4d50c493..3939ab8e39 100644 --- a/src/state/queries/messages/list-converations.ts +++ b/src/state/queries/messages/list-converations.ts @@ -1,5 +1,9 @@ import {useCallback, useMemo} from 'react' -import {ChatBskyConvoDefs, ChatBskyConvoListConvos} from '@atproto/api' +import { + ChatBskyConvoDefs, + ChatBskyConvoListConvos, + moderateProfile, +} from '@atproto/api' import { InfiniteData, QueryClient, @@ -8,8 +12,9 @@ import { } from '@tanstack/react-query' import {useCurrentConvoId} from '#/state/messages/current-convo-id' +import {useModerationOpts} from '#/state/preferences/moderation-opts' import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' -import {useAgent} from '#/state/session' +import {useAgent, useSession} from '#/state/session' import {decrementBadgeCount} from 'lib/notifications/notifications' export const RQKEY = ['convo-list'] @@ -36,16 +41,29 @@ export function useListConvos({refetchInterval}: {refetchInterval: number}) { export function useUnreadMessageCount() { const {currentConvoId} = useCurrentConvoId() + const {currentAccount} = useSession() const convos = useListConvos({ refetchInterval: 30_000, }) + const moderationOpts = useModerationOpts() const count = convos.data?.pages .flatMap(page => page.convos) .filter(convo => convo.id !== currentConvoId) .reduce((acc, convo) => { - return acc + (!convo.muted && convo.unreadCount > 0 ? 1 : 0) + const otherMember = convo.members.find( + member => member.did !== currentAccount?.did, + ) + + if (!otherMember || !moderationOpts) return acc + + // TODO could shadow this outside this hook and get optimistic block state + const moderation = moderateProfile(otherMember, moderationOpts) + const shouldIgnore = convo.muted || moderation.blocked + const unreadCount = !shouldIgnore && convo.unreadCount > 0 ? 1 : 0 + + return acc + unreadCount }, 0) ?? 0 return useMemo(() => { From cef243bcf47235b16f0dba54c917fb8c37757c96 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 17 May 2024 20:53:51 +0100 Subject: [PATCH 100/277] =?UTF-8?q?[=F0=9F=90=B4]=20delete=20chat=20servic?= =?UTF-8?q?e=20account=20on=20account=20delete=20(#4056)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * delete chat service account on account delete * Add proxy header --------- Co-authored-by: Eric Bailey --- src/view/com/modals/DeleteAccount.tsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/view/com/modals/DeleteAccount.tsx b/src/view/com/modals/DeleteAccount.tsx index 0e3bb6a4b9..cab5dc289c 100644 --- a/src/view/com/modals/DeleteAccount.tsx +++ b/src/view/com/modals/DeleteAccount.tsx @@ -11,6 +11,7 @@ import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' +import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' import {useAgent, useSession, useSessionApi} from '#/state/session' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' @@ -61,6 +62,16 @@ export function Component({}: {}) { const token = confirmCode.replace(/\s/g, '') try { + // inform chat service of intent to delete account + const {success} = await getAgent().api.chat.bsky.actor.deleteAccount( + undefined, + { + headers: DM_SERVICE_HEADERS, + }, + ) + if (!success) { + throw new Error('Failed to inform chat service of account deletion') + } await getAgent().com.atproto.server.deleteAccount({ did: currentAccount.did, password, From 1b47ea7367c7d0f37557d8f07329c3b6f97a5e03 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 17 May 2024 15:38:47 -0500 Subject: [PATCH 101/277] Set chat declaration upon signup (#4084) --- src/screens/Messages/Settings.tsx | 2 -- src/state/queries/messages/actor-declaration.ts | 2 -- src/state/session/agent.ts | 10 ++++++++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/screens/Messages/Settings.tsx b/src/screens/Messages/Settings.tsx index 7dbf027f9d..7671239adf 100644 --- a/src/screens/Messages/Settings.tsx +++ b/src/screens/Messages/Settings.tsx @@ -49,8 +49,6 @@ export function MessagesSettingsScreen({}: Props) { const gate = useGate() if (!gate('dms')) return - console.log(profile?.associated?.chat?.allowIncoming) - return ( diff --git a/src/state/queries/messages/actor-declaration.ts b/src/state/queries/messages/actor-declaration.ts index 0886af3829..d6a86cf698 100644 --- a/src/state/queries/messages/actor-declaration.ts +++ b/src/state/queries/messages/actor-declaration.ts @@ -19,12 +19,10 @@ export function useUpdateActorDeclaration({ return useMutation({ mutationFn: async (allowIncoming: 'all' | 'none' | 'following') => { if (!currentAccount) throw new Error('Not logged in') - // TODO(sam): remove validate: false once PDSes have the new lexicon const result = await getAgent().api.com.atproto.repo.putRecord({ repo: currentAccount.did, collection: 'chat.bsky.actor.declaration', rkey: 'self', - validate: false, record: { $type: 'chat.bsky.actor.declaration', allowIncoming, diff --git a/src/state/session/agent.ts b/src/state/session/agent.ts index 9633dc0e3b..3de4cad261 100644 --- a/src/state/session/agent.ts +++ b/src/state/session/agent.ts @@ -9,6 +9,7 @@ import { TIMELINE_SAVED_FEED, } from '#/lib/constants' import {tryFetchGates} from '#/lib/statsig/statsig' +import {getAge} from '#/lib/strings/time' import {logger} from '#/logger' import { configureModerationForAccount, @@ -153,6 +154,15 @@ export async function createAgentAndCreateAccount( id: TID.nextStr(), }, ]) + await agent.api.com.atproto.repo.putRecord({ + repo: account.did, + collection: 'chat.bsky.actor.declaration', + rkey: 'self', + record: { + $type: 'chat.bsky.actor.declaration', + allowIncoming: getAge(birthDate) < 18 ? 'none' : 'following', + }, + }) }) } catch (e: any) { logger.error(e, { From d02e0884c40adebe3799254395d933205b104a86 Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 17 May 2024 14:21:15 -0700 Subject: [PATCH 102/277] =?UTF-8?q?[=F0=9F=90=B4]=20Block=20Info=20(#4068)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * get the damn thing in there 😮‍💨 * more cleanup and little fixes another nit nit small annoyance add a comment only use `scrollTo` when necessary remove now unnecessary styles * move padding out * add unblock function * rm need for moderationpts * ? * ?? * extract leaveconvoprompt * move `setHasScrolled` to `onContentSizeChanged` * account for block footer * wrap up nit make sure recipient is loaded before showing refactor to hide chat input typo squigglie add report dialog finalize delete implement custom animation add configurable replace animation add leave convo to block options * correct functionality for report * moev component to another file * maybe... * fix chat item * improve * remove unused gtmobile * nit * more cleanup * more cleanup * fix merge * fix header * few more changes * nit * remove old --- src/Navigation.tsx | 5 +- src/components/Prompt.tsx | 4 +- src/components/dms/BlockedByListDialog.tsx | 62 +++++ src/components/dms/ConvoMenu.tsx | 104 ++------ src/components/dms/LeaveConvoPrompt.tsx | 55 +++++ src/components/dms/MessageItem.tsx | 2 +- .../dms/MessagesListBlockedFooter.tsx | 131 ++++++++++ src/components/dms/MessagesListHeader.tsx | 194 +++++++++++++++ .../dms/ReportConversationPrompt.tsx | 27 +++ src/lib/routes/types.ts | 6 +- .../Messages/Conversation/MessagesList.tsx | 50 ++-- src/screens/Messages/Conversation/index.tsx | 226 +++++------------- src/screens/Messages/List/ChatListItem.tsx | 13 +- 13 files changed, 599 insertions(+), 280 deletions(-) create mode 100644 src/components/dms/BlockedByListDialog.tsx create mode 100644 src/components/dms/LeaveConvoPrompt.tsx create mode 100644 src/components/dms/MessagesListBlockedFooter.tsx create mode 100644 src/components/dms/MessagesListHeader.tsx create mode 100644 src/components/dms/ReportConversationPrompt.tsx diff --git a/src/Navigation.tsx b/src/Navigation.tsx index f68f8ed660..7abfaec08e 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -464,7 +464,10 @@ function MessagesTabNavigator() { MessagesScreen} - options={{requireAuth: true}} + options={({route}) => ({ + requireAuth: true, + animationTypeForReplace: route.params?.animation ?? 'push', + })} /> {commonScreens(MessagesTab as typeof HomeTab)} diff --git a/src/components/Prompt.tsx b/src/components/Prompt.tsx index 92e848e8eb..d05cab5ab6 100644 --- a/src/components/Prompt.tsx +++ b/src/components/Prompt.tsx @@ -172,6 +172,7 @@ export function Basic({ confirmButtonCta, onConfirm, confirmButtonColor, + showCancel = true, }: React.PropsWithChildren<{ control: Dialog.DialogOuterProps['control'] title: string @@ -187,6 +188,7 @@ export function Basic({ */ onConfirm: () => void confirmButtonColor?: ButtonColor + showCancel?: boolean }>) { return ( @@ -199,7 +201,7 @@ export function Basic({ color={confirmButtonColor} testID="confirmBtn" /> - + {showCancel && } ) diff --git a/src/components/dms/BlockedByListDialog.tsx b/src/components/dms/BlockedByListDialog.tsx new file mode 100644 index 0000000000..a277016053 --- /dev/null +++ b/src/components/dms/BlockedByListDialog.tsx @@ -0,0 +1,62 @@ +import React from 'react' +import {View} from 'react-native' +import {ModerationCause} from '@atproto/api' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {listUriToHref} from 'lib/strings/url-helpers' +import {atoms as a, useTheme} from '#/alf' +import * as Dialog from '#/components/Dialog' +import {DialogControlProps} from '#/components/Dialog' +import {InlineLinkText} from '#/components/Link' +import * as Prompt from '#/components/Prompt' +import {Text} from '#/components/Typography' + +export function BlockedByListDialog({ + control, + listBlocks, +}: { + control: DialogControlProps + listBlocks: ModerationCause[] +}) { + const {_} = useLingui() + const t = useTheme() + + return ( + + {_(msg`User blocked by list`)} + + + + {_( + msg`This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user.`, + )}{' '} + + + + {_(msg`Lists blocking this user:`)}{' '} + {listBlocks.map((block, i) => + block.source.type === 'list' ? ( + + {i === 0 ? null : ', '} + + {block.source.list.name} + + + ) : null, + )} + + + + + {}} /> + + + + + ) +} diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index cf1dbc171e..0e5cd12bf8 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -3,25 +3,25 @@ import {Keyboard, Pressable, View} from 'react-native' import { AppBskyActorDefs, ChatBskyConvoDefs, - ModerationDecision, + ModerationCause, } from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' import {NavigationProp} from '#/lib/routes/types' -import {listUriToHref} from '#/lib/strings/url-helpers' import {Shadow} from '#/state/cache/types' import { useConvoQuery, useMarkAsReadMutation, } from '#/state/queries/messages/conversation' -import {useLeaveConvo} from '#/state/queries/messages/leave-conversation' import {useMuteConvo} from '#/state/queries/messages/mute-conversation' import {useProfileBlockMutationQueue} from '#/state/queries/profile' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' -import * as Dialog from '#/components/Dialog' +import {BlockedByListDialog} from '#/components/dms/BlockedByListDialog' +import {LeaveConvoPrompt} from '#/components/dms/LeaveConvoPrompt' +import {ReportConversationPrompt} from '#/components/dms/ReportConversationPrompt' import {ArrowBoxLeft_Stroke2_Corner0_Rounded as ArrowBoxLeft} from '#/components/icons/ArrowBoxLeft' import {DotGrid_Stroke2_Corner0_Rounded as DotsHorizontal} from '#/components/icons/DotGrid' import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag' @@ -30,10 +30,8 @@ import {Person_Stroke2_Corner0_Rounded as Person} from '#/components/icons/Perso import {PersonCheck_Stroke2_Corner0_Rounded as PersonCheck} from '#/components/icons/PersonCheck' import {PersonX_Stroke2_Corner0_Rounded as PersonX} from '#/components/icons/PersonX' import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' -import {InlineLinkText} from '#/components/Link' import * as Menu from '#/components/Menu' import * as Prompt from '#/components/Prompt' -import {Text} from '#/components/Typography' import {Bubble_Stroke2_Corner2_Rounded as Bubble} from '../icons/Bubble' let ConvoMenu = ({ @@ -44,7 +42,7 @@ let ConvoMenu = ({ showMarkAsRead, hideTrigger, triggerOpacity, - moderation, + blockInfo, }: { convo: ChatBskyConvoDefs.ConvoView profile: Shadow @@ -53,7 +51,10 @@ let ConvoMenu = ({ showMarkAsRead?: boolean hideTrigger?: boolean triggerOpacity?: number - moderation: ModerationDecision + blockInfo: { + listBlocks: ModerationCause[] + userBlock?: ModerationCause + } }): React.ReactNode => { const navigation = useNavigation() const {_} = useLingui() @@ -62,17 +63,9 @@ let ConvoMenu = ({ const reportControl = Prompt.usePromptControl() const blockedByListControl = Prompt.usePromptControl() const {mutate: markAsRead} = useMarkAsReadMutation() - const modui = moderation.ui('profileView') - const {listBlocks, userBlock} = React.useMemo(() => { - const blocks = modui.alerts.filter(alert => alert.type === 'blocking') - const listBlocks = blocks.filter(alert => alert.source.type === 'list') - const userBlock = blocks.find(alert => alert.source.type === 'user') - return { - listBlocks, - userBlock, - } - }, [modui]) - const isBlocking = !!userBlock || !!listBlocks.length + + const {listBlocks, userBlock} = blockInfo + const isBlocking = userBlock || !!listBlocks.length const {data: convo} = useConvoQuery(initialConvo) @@ -108,17 +101,6 @@ let ConvoMenu = ({ } }, [userBlock, listBlocks, blockedByListControl, queueBlock, queueUnblock]) - const {mutate: leaveConvo} = useLeaveConvo(convo?.id, { - onSuccess: () => { - if (currentScreen === 'conversation') { - navigation.replace('Messages') - } - }, - onError: () => { - Toast.show(_(msg`Could not leave chat`)) - }, - }) - return ( <> @@ -218,67 +200,19 @@ let ConvoMenu = ({ - leaveConvo()} + convoId={convo.id} + currentScreen={currentScreen} /> - - + - - - {_(msg`User blocked by list`)} - - - - {_( - msg`This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user.`, - )}{' '} - - - - {_(msg`Lists blocking this user:`)}{' '} - {listBlocks.map((block, i) => - block.source.type === 'list' ? ( - - {i === 0 ? null : ', '} - - {block.source.list.name} - - - ) : null, - )} - - - - - - - - - ) } ConvoMenu = React.memo(ConvoMenu) export {ConvoMenu} - -function noop() {} diff --git a/src/components/dms/LeaveConvoPrompt.tsx b/src/components/dms/LeaveConvoPrompt.tsx new file mode 100644 index 0000000000..1c42dbca04 --- /dev/null +++ b/src/components/dms/LeaveConvoPrompt.tsx @@ -0,0 +1,55 @@ +import React from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' + +import {NavigationProp} from 'lib/routes/types' +import {isNative} from 'platform/detection' +import {useLeaveConvo} from 'state/queries/messages/leave-conversation' +import * as Toast from 'view/com/util/Toast' +import {DialogOuterProps} from '#/components/Dialog' +import * as Prompt from '#/components/Prompt' + +export function LeaveConvoPrompt({ + control, + convoId, + currentScreen, +}: { + control: DialogOuterProps['control'] + convoId: string + currentScreen: 'list' | 'conversation' +}) { + const {_} = useLingui() + const navigation = useNavigation() + + const {mutate: leaveConvo} = useLeaveConvo(convoId, { + onSuccess: () => { + if (currentScreen === 'conversation') { + navigation.replace( + 'Messages', + isNative + ? { + animation: 'pop', + } + : {}, + ) + } + }, + onError: () => { + Toast.show(_(msg`Could not leave chat`)) + }, + }) + + return ( + + ) +} diff --git a/src/components/dms/MessageItem.tsx b/src/components/dms/MessageItem.tsx index f456fa4748..c5ff810915 100644 --- a/src/components/dms/MessageItem.tsx +++ b/src/components/dms/MessageItem.tsx @@ -75,7 +75,7 @@ let MessageItem = ({ }, [message.text, message.facets]) return ( - + { + if (listBlocks.length) { + blockedByListControl.open() + } else { + queueUnblock() + } + }, [blockedByListControl, listBlocks, queueUnblock]) + + return ( + + + + {isBlocking ? ( + You have blocked this user + ) : ( + This user has blocked you + )} + + + + + + {isBlocking && gtMobile && ( + + )} + + {isBlocking && !gtMobile && ( + + + + )} + + + + + + + + ) +} diff --git a/src/components/dms/MessagesListHeader.tsx b/src/components/dms/MessagesListHeader.tsx new file mode 100644 index 0000000000..a6dff40326 --- /dev/null +++ b/src/components/dms/MessagesListHeader.tsx @@ -0,0 +1,194 @@ +import React, {useCallback} from 'react' +import {TouchableOpacity, View} from 'react-native' +import { + AppBskyActorDefs, + ModerationCause, + ModerationDecision, +} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useNavigation} from '@react-navigation/native' + +import {BACK_HITSLOP} from 'lib/constants' +import {makeProfileLink} from 'lib/routes/links' +import {NavigationProp} from 'lib/routes/types' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {isWeb} from 'platform/detection' +import {useProfileShadow} from 'state/cache/profile-shadow' +import {isConvoActive, useConvo} from 'state/messages/convo' +import {PreviewableUserAvatar} from 'view/com/util/UserAvatar' +import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' +import {ConvoMenu} from '#/components/dms/ConvoMenu' +import {Link} from '#/components/Link' +import {Text} from '#/components/Typography' + +const PFP_SIZE = isWeb ? 40 : 34 + +export let MessagesListHeader = ({ + profile, + moderation, + blockInfo, +}: { + profile?: AppBskyActorDefs.ProfileViewBasic + moderation?: ModerationDecision + blockInfo?: { + listBlocks: ModerationCause[] + userBlock?: ModerationCause + } +}): React.ReactNode => { + const t = useTheme() + const {_} = useLingui() + const {gtTablet} = useBreakpoints() + const navigation = useNavigation() + + const onPressBack = useCallback(() => { + if (isWeb) { + navigation.replace('Messages', {}) + } else { + navigation.goBack() + } + }, [navigation]) + + return ( + + {!gtTablet && ( + + + + )} + + {profile && moderation && blockInfo ? ( + + ) : ( + <> + + + + + + + + + + + )} + + ) +} +MessagesListHeader = React.memo(MessagesListHeader) + +function HeaderReady({ + profile: profileUnshadowed, + moderation, + blockInfo, +}: { + profile: AppBskyActorDefs.ProfileViewBasic + moderation: ModerationDecision + blockInfo: { + listBlocks: ModerationCause[] + userBlock?: ModerationCause + } +}) { + const t = useTheme() + const convoState = useConvo() + const profile = useProfileShadow(profileUnshadowed) + + const isDeletedAccount = profile?.handle === 'missing.invalid' + const displayName = isDeletedAccount + ? 'Deleted Account' + : sanitizeDisplayName( + profile.displayName || profile.handle, + moderation.ui('displayName'), + ) + + return ( + <> + + + + + {displayName} + + {!isDeletedAccount && ( + + @{profile.handle} + + )} + + + + {isConvoActive(convoState) && ( + + )} + + ) +} diff --git a/src/components/dms/ReportConversationPrompt.tsx b/src/components/dms/ReportConversationPrompt.tsx new file mode 100644 index 0000000000..610cfbcf96 --- /dev/null +++ b/src/components/dms/ReportConversationPrompt.tsx @@ -0,0 +1,27 @@ +import React from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {DialogControlProps} from '#/components/Dialog' +import * as Prompt from '#/components/Prompt' + +export function ReportConversationPrompt({ + control, +}: { + control: DialogControlProps +}) { + const {_} = useLingui() + + return ( + {}} + showCancel={false} + /> + ) +} diff --git a/src/lib/routes/types.ts b/src/lib/routes/types.ts index 31133cb1bd..5011aafd79 100644 --- a/src/lib/routes/types.ts +++ b/src/lib/routes/types.ts @@ -72,7 +72,7 @@ export type MyProfileTabNavigatorParams = CommonNavigatorParams & { } export type MessagesTabNavigatorParams = CommonNavigatorParams & { - Messages: {pushToConversation?: string} + Messages: {pushToConversation?: string; animation?: 'push' | 'pop'} } export type FlatNavigatorParams = CommonNavigatorParams & { @@ -81,7 +81,7 @@ export type FlatNavigatorParams = CommonNavigatorParams & { Feeds: undefined Notifications: undefined Hashtag: {tag: string; author?: string} - Messages: {pushToConversation?: string} + Messages: {pushToConversation?: string; animation?: 'push' | 'pop'} } export type AllNavigatorParams = CommonNavigatorParams & { @@ -96,7 +96,7 @@ export type AllNavigatorParams = CommonNavigatorParams & { MyProfileTab: undefined Hashtag: {tag: string; author?: string} MessagesTab: undefined - Messages: undefined + Messages: {animation?: 'push' | 'pop'} } // NOTE diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index d36fac8ae2..ef0cc55d20 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -23,7 +23,7 @@ import {isWeb} from 'platform/detection' import {List} from 'view/com/util/List' import {MessageInput} from '#/screens/Messages/Conversation/MessageInput' import {MessageListError} from '#/screens/Messages/Conversation/MessageListError' -import {atoms as a, useBreakpoints} from '#/alf' +import {atoms as a} from '#/alf' import {MessageItem} from '#/components/dms/MessageItem' import {NewMessagesPill} from '#/components/dms/NewMessagesPill' import {Loader} from '#/components/Loader' @@ -66,12 +66,17 @@ function onScrollToIndexFailed() { export function MessagesList({ hasScrolled, setHasScrolled, + blocked, + footer, }: { hasScrolled: boolean setHasScrolled: React.Dispatch> + blocked?: boolean + footer?: React.ReactNode }) { - const convo = useConvoActive() + const convoState = useConvoActive() const {getAgent} = useAgent() + const flatListRef = useAnimatedRef() const [showNewMessagesPill, setShowNewMessagesPill] = React.useState(false) @@ -81,7 +86,7 @@ export function MessagesList({ // the bottom. const isAtBottom = useSharedValue(true) - // This will be used on web to assist in determing if we need to maintain the content offset + // This will be used on web to assist in determining if we need to maintain the content offset const isAtTop = useSharedValue(true) // Used to keep track of the current content height. We'll need this in `onScroll` so we know when to start allowing @@ -126,11 +131,11 @@ export function MessagesList({ if ( hasScrolled && height - contentHeight.value > layoutHeight.value - 50 && - convo.items.length - prevItemCount.current > 1 + convoState.items.length - prevItemCount.current > 1 ) { newOffset = contentHeight.value - 50 setShowNewMessagesPill(true) - } else if (!hasScrolled && !convo.isFetchingHistory) { + } else if (!hasScrolled && !convoState.isFetchingHistory) { setHasScrolled(true) } @@ -141,12 +146,12 @@ export function MessagesList({ isMomentumScrolling.value = true } contentHeight.value = height - prevItemCount.current = convo.items.length + prevItemCount.current = convoState.items.length }, [ hasScrolled, - convo.items.length, - convo.isFetchingHistory, + convoState.items.length, + convoState.isFetchingHistory, setHasScrolled, // all of these are stable contentHeight, @@ -161,9 +166,9 @@ export function MessagesList({ const onStartReached = useCallback(() => { if (hasScrolled) { - convo.fetchMessageHistory() + convoState.fetchMessageHistory() } - }, [convo, hasScrolled]) + }, [convoState, hasScrolled]) const onSendMessage = useCallback( async (text: string) => { @@ -182,12 +187,12 @@ export function MessagesList({ return true }) - convo.sendMessage({ + convoState.sendMessage({ text: rt.text, facets: rt.facets, }) }, - [convo, getAgent], + [convoState, getAgent], ) const onScroll = React.useCallback( @@ -225,11 +230,9 @@ export function MessagesList({ // -- Keyboard animation handling const animatedKeyboard = useAnimatedKeyboard() - const {gtMobile} = useBreakpoints() const {bottom: bottomInset} = useSafeAreaInsets() const nativeBottomBarHeight = isIOS ? 42 : 60 - const bottomOffset = - isWeb && gtMobile ? 0 : bottomInset + nativeBottomBarHeight + const bottomOffset = isWeb ? 0 : bottomInset + nativeBottomBarHeight // On web, we don't want to do anything. // On native, we want to scroll the list to the bottom every frame that the keyboard is opening. `scrollTo` runs @@ -268,11 +271,10 @@ export function MessagesList({ + } /> - + {!blocked ? ( + + ) : ( + footer + )} {showNewMessagesPill && } ) diff --git a/src/screens/Messages/Conversation/index.tsx b/src/screens/Messages/Conversation/index.tsx index 2c42ed16da..0fe4138bbe 100644 --- a/src/screens/Messages/Conversation/index.tsx +++ b/src/screens/Messages/Conversation/index.tsx @@ -1,35 +1,28 @@ import React, {useCallback} from 'react' -import {TouchableOpacity, View} from 'react-native' +import {View} from 'react-native' import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useFocusEffect, useNavigation} from '@react-navigation/native' +import {useFocusEffect} from '@react-navigation/native' import {NativeStackScreenProps} from '@react-navigation/native-stack' -import {makeProfileLink} from '#/lib/routes/links' -import {CommonNavigatorParams, NavigationProp} from '#/lib/routes/types' +import {CommonNavigatorParams} from '#/lib/routes/types' import {useGate} from '#/lib/statsig/statsig' -import {useProfileShadow} from '#/state/cache/profile-shadow' import {useCurrentConvoId} from '#/state/messages/current-convo-id' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useProfileQuery} from '#/state/queries/profile' -import {BACK_HITSLOP} from 'lib/constants' -import {sanitizeDisplayName} from 'lib/strings/display-names' import {isWeb} from 'platform/detection' +import {useProfileShadow} from 'state/cache/profile-shadow' import {ConvoProvider, isConvoActive, useConvo} from 'state/messages/convo' import {ConvoStatus} from 'state/messages/convo/types' import {useSetMinimalShellMode} from 'state/shell' -import {PreviewableUserAvatar} from 'view/com/util/UserAvatar' import {CenteredView} from 'view/com/util/Views' import {MessagesList} from '#/screens/Messages/Conversation/MessagesList' -import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' -import {ConvoMenu} from '#/components/dms/ConvoMenu' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {MessagesListBlockedFooter} from '#/components/dms/MessagesListBlockedFooter' +import {MessagesListHeader} from '#/components/dms/MessagesListHeader' import {Error} from '#/components/Error' -import {Link} from '#/components/Link' -import {ListMaybePlaceholder} from '#/components/Lists' import {Loader} from '#/components/Loader' -import {Text} from '#/components/Typography' import {ClipClopGate} from '../gate' type Props = NativeStackScreenProps< @@ -73,6 +66,11 @@ function Inner() { const convoState = useConvo() const {_} = useLingui() + const moderationOpts = useModerationOpts() + const {data: recipient} = useProfileQuery({ + did: convoState.recipients?.[0].did, + }) + // Because we want to give the list a chance to asynchronously scroll to the end before it is visible to the user, // we use `hasScrolled` to determine when to render. With that said however, there is a chance that the chat will be // empty. So, we also check for that possible state as well and render once we can. @@ -86,7 +84,7 @@ function Inner() { if (convoState.status === ConvoStatus.Error) { return ( -
+ -
+ {!readyToShow && } - {isConvoActive(convoState) ? ( - ) : ( - + <> + + )} {!readyToShow && ( { - const t = useTheme() - const {_} = useLingui() - const {gtTablet} = useBreakpoints() - const navigation = useNavigation() - const moderationOpts = useModerationOpts() - const {data: profile} = useProfileQuery({did: initialProfile?.did}) - - const onPressBack = useCallback(() => { - if (isWeb) { - navigation.replace('Messages') - } else { - navigation.goBack() - } - }, [navigation]) - - return ( - - {!gtTablet && ( - - - - )} - - {profile && moderationOpts ? ( - - ) : ( - <> - - - - - - - - - - - )} - - ) -} -Header = React.memo(Header) - -function HeaderReady({ - profile: profileUnshadowed, +function InnerReady({ moderationOpts, + recipient: recipientUnshadowed, + hasScrolled, + setHasScrolled, }: { - profile: AppBskyActorDefs.ProfileViewBasic moderationOpts: ModerationOpts + recipient: AppBskyActorDefs.ProfileViewBasic + hasScrolled: boolean + setHasScrolled: React.Dispatch> }) { - const t = useTheme() const convoState = useConvo() - const profile = useProfileShadow(profileUnshadowed) - const moderation = React.useMemo( - () => moderateProfile(profile, moderationOpts), - [profile, moderationOpts], - ) + const recipient = useProfileShadow(recipientUnshadowed) - const isDeletedAccount = profile?.handle === 'missing.invalid' - const displayName = isDeletedAccount - ? 'Deleted Account' - : sanitizeDisplayName( - profile.displayName || profile.handle, - moderation.ui('displayName'), - ) + const moderation = React.useMemo(() => { + return moderateProfile(recipient, moderationOpts) + }, [recipient, moderationOpts]) + + const blockInfo = React.useMemo(() => { + const modui = moderation.ui('profileView') + const blocks = modui.alerts.filter(alert => alert.type === 'blocking') + const listBlocks = blocks.filter(alert => alert.source.type === 'list') + const userBlock = blocks.find(alert => alert.source.type === 'user') + return { + listBlocks, + userBlock, + } + }, [moderation]) return ( <> - - - - - {displayName} - - {!isDeletedAccount && ( - - @{profile.handle} - - )} - - - + {isConvoActive(convoState) && ( - 0} + blockInfo={blockInfo} + /> + } /> )} diff --git a/src/screens/Messages/List/ChatListItem.tsx b/src/screens/Messages/List/ChatListItem.tsx index a7b7e0680c..791dc82c0d 100644 --- a/src/screens/Messages/List/ChatListItem.tsx +++ b/src/screens/Messages/List/ChatListItem.tsx @@ -65,6 +65,17 @@ function ChatListItemReady({ [profile, moderationOpts], ) + const blockInfo = React.useMemo(() => { + const modui = moderation.ui('profileView') + const blocks = modui.alerts.filter(alert => alert.type === 'blocking') + const listBlocks = blocks.filter(alert => alert.source.type === 'list') + const userBlock = blocks.find(alert => alert.source.type === 'user') + return { + listBlocks, + userBlock, + } + }, [moderation]) + const isDeletedAccount = profile.handle === 'missing.invalid' const displayName = isDeletedAccount ? 'Deleted Account' @@ -241,7 +252,7 @@ function ChatListItemReady({ triggerOpacity={ !gtMobile || showActions || menuControl.isOpen ? 1 : 0 } - moderation={moderation} + blockInfo={blockInfo} /> From 1cdcb3e6c333b7ad5aa53676163643d7f43d1528 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 17 May 2024 17:03:50 -0500 Subject: [PATCH 103/277] =?UTF-8?q?[=F0=9F=90=B4]=20New=20chat=20dialog=20?= =?UTF-8?q?refresh=20(#4071)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Checkpoint, header styled, empty * Checkpoint, styles * Show recent follows in initial state, finesse some styles * Add skeleton * Add some limits * Fix autofocus on web, use bottom sheet input on native * Ignore type * Clean up edits * Format * Tweak icon placement * Fix type * use prop for dismissing keyboard --------- Co-authored-by: Hailey --- src/components/Dialog/index.tsx | 7 +- src/components/Dialog/index.web.tsx | 21 +- src/components/dms/NewChat.tsx | 278 ---------- .../dms/NewChatDialog/TextInput.tsx | 1 + .../dms/NewChatDialog/TextInput.web.tsx | 1 + src/components/dms/NewChatDialog/index.tsx | 496 ++++++++++++++++++ src/screens/Messages/List/index.tsx | 2 +- src/state/queries/actor-autocomplete.ts | 3 +- src/state/queries/profile-follows.ts | 13 +- 9 files changed, 530 insertions(+), 292 deletions(-) delete mode 100644 src/components/dms/NewChat.tsx create mode 100644 src/components/dms/NewChatDialog/TextInput.tsx create mode 100644 src/components/dms/NewChatDialog/TextInput.web.tsx create mode 100644 src/components/dms/NewChatDialog/index.tsx diff --git a/src/components/Dialog/index.tsx b/src/components/Dialog/index.tsx index b5258c02b9..b88159613e 100644 --- a/src/components/Dialog/index.tsx +++ b/src/components/Dialog/index.tsx @@ -1,5 +1,5 @@ import React, {useImperativeHandle} from 'react' -import {Dimensions, Pressable, View} from 'react-native' +import {Dimensions, Pressable, StyleProp, View, ViewStyle} from 'react-native' import Animated, {useAnimatedStyle} from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' import BottomSheet, { @@ -257,9 +257,10 @@ export const ScrollableInner = React.forwardRef< export const InnerFlatList = React.forwardRef< BottomSheetFlatListMethods, - BottomSheetFlatListProps + BottomSheetFlatListProps & {webInnerStyle?: StyleProp} >(function InnerFlatList({style, contentContainerStyle, ...props}, ref) { const insets = useSafeAreaInsets() + return ( & {label: string} ->(function InnerFlatList({label, style, ...props}, ref) { + FlatListProps & {label: string} & {webInnerStyle?: StyleProp} +>(function InnerFlatList({label, style, webInnerStyle, ...props}, ref) { const {gtMobile} = useBreakpoints() return ( + style={[ + // @ts-ignore web only -sfn + { + paddingHorizontal: 0, + maxHeight: 'calc(-36px + 100vh)', + overflow: 'hidden', + }, + webInnerStyle, + ]}> void -}) { - const t = useTheme() - const {_} = useLingui() - - const {mutate: createChat} = useGetConvoForMembers({ - onSuccess: data => { - onNewChat(data.convo.id) - }, - onError: error => { - Toast.show(error.message) - }, - }) - - const onCreateChat = useCallback( - (did: string) => { - control.close(() => createChat([did])) - }, - [control, createChat], - ) - - return ( - <> - } - accessibilityRole="button" - accessibilityLabel={_(msg`New chat`)} - accessibilityHint="" - /> - - - - - - - ) -} - -function SearchablePeopleList({ - onCreateChat, -}: { - onCreateChat: (did: string) => void -}) { - const t = useTheme() - const {_} = useLingui() - const moderationOpts = useModerationOpts() - const control = Dialog.useDialogContext() - const listRef = useRef(null) - const {currentAccount} = useSession() - - const [searchText, setSearchText] = useState('') - - const { - data: actorAutocompleteData, - isFetching, - isError, - refetch, - } = useActorAutocompleteQuery(searchText, true) - - const renderItem = useCallback( - ({item: profile}: {item: AppBskyActorDefs.ProfileView}) => { - if (!moderationOpts) return null - - const moderation = moderateProfile(profile, moderationOpts) - - const disabled = !canBeMessaged(profile) - const handle = sanitizeHandle(profile.handle, '@') - - return ( - - ) - }, - [ - moderationOpts, - onCreateChat, - t.atoms.bg_contrast_25, - t.atoms.bg_contrast_50, - t.atoms.bg, - t.atoms.text, - t.atoms.text_contrast_high, - ], - ) - - const listHeader = useMemo(() => { - return ( - - {/* cover top corners */} - - - Start a new chat - - - - { - setSearchText(text) - listRef.current?.scrollToOffset({offset: 0, animated: false}) - }} - returnKeyType="search" - clearButtonMode="while-editing" - maxLength={50} - onKeyPress={({nativeEvent}) => { - if (nativeEvent.key === 'Escape') { - control.close() - } - }} - autoCorrect={false} - autoComplete="off" - autoCapitalize="none" - autoFocus - /> - - - - ) - }, [t.atoms.bg, _, control, searchText]) - - const dataWithoutSelf = useMemo(() => { - return ( - actorAutocompleteData?.filter( - profile => profile.did !== currentAccount?.did, - ) ?? [] - ) - }, [actorAutocompleteData, currentAccount?.did]) - - return ( - - {listHeader} - {searchText.length === 0 ? ( - - - - Search for someone to start a conversation with. - - - ) : ( - !actorAutocompleteData?.length && ( - - ) - )} - - } - stickyHeaderIndices={[0]} - keyExtractor={(item: AppBskyActorDefs.ProfileView) => item.did} - // @ts-expect-error web only - style={isWeb && {minHeight: '100vh'}} - onScrollBeginDrag={() => Keyboard.dismiss()} - /> - ) -} diff --git a/src/components/dms/NewChatDialog/TextInput.tsx b/src/components/dms/NewChatDialog/TextInput.tsx new file mode 100644 index 0000000000..b4e77e3e07 --- /dev/null +++ b/src/components/dms/NewChatDialog/TextInput.tsx @@ -0,0 +1 @@ +export {BottomSheetTextInput as TextInput} from '@discord/bottom-sheet/src' diff --git a/src/components/dms/NewChatDialog/TextInput.web.tsx b/src/components/dms/NewChatDialog/TextInput.web.tsx new file mode 100644 index 0000000000..5371a534f1 --- /dev/null +++ b/src/components/dms/NewChatDialog/TextInput.web.tsx @@ -0,0 +1 @@ +export {TextInput} from 'react-native' diff --git a/src/components/dms/NewChatDialog/index.tsx b/src/components/dms/NewChatDialog/index.tsx new file mode 100644 index 0000000000..99572fd5cf --- /dev/null +++ b/src/components/dms/NewChatDialog/index.tsx @@ -0,0 +1,496 @@ +import React, {useCallback, useMemo, useRef, useState} from 'react' +import type {TextInput as TextInputType} from 'react-native' +import {View} from 'react-native' +import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' +import {BottomSheetFlatListMethods} from '@discord/bottom-sheet' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {sanitizeDisplayName} from '#/lib/strings/display-names' +import {sanitizeHandle} from '#/lib/strings/handles' +import {isWeb} from '#/platform/detection' +import {useModerationOpts} from '#/state/preferences/moderation-opts' +import {useGetConvoForMembers} from '#/state/queries/messages/get-convo-for-members' +import {useProfileFollowsQuery} from '#/state/queries/profile-follows' +import {useSession} from '#/state/session' +import {useActorAutocompleteQuery} from 'state/queries/actor-autocomplete' +import {FAB} from '#/view/com/util/fab/FAB' +import * as Toast from '#/view/com/util/Toast' +import {UserAvatar} from '#/view/com/util/UserAvatar' +import {atoms as a, native, useTheme, web} from '#/alf' +import {Button} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import {TextInput} from '#/components/dms/NewChatDialog/TextInput' +import {canBeMessaged} from '#/components/dms/util' +import {useInteractionState} from '#/components/hooks/useInteractionState' +import {ChevronLeft_Stroke2_Corner0_Rounded as ChevronLeft} from '#/components/icons/Chevron' +import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' +import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' +import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' +import {Text} from '#/components/Typography' + +type Item = + | { + type: 'profile' + key: string + enabled: boolean + profile: AppBskyActorDefs.ProfileView + } + | { + type: 'empty' + key: string + message: string + } + | { + type: 'placeholder' + key: string + } + | { + type: 'error' + key: string + } + +export function NewChat({ + control, + onNewChat, +}: { + control: Dialog.DialogControlProps + onNewChat: (chatId: string) => void +}) { + const t = useTheme() + const {_} = useLingui() + + const {mutate: createChat} = useGetConvoForMembers({ + onSuccess: data => { + onNewChat(data.convo.id) + }, + onError: error => { + Toast.show(error.message) + }, + }) + + const onCreateChat = useCallback( + (did: string) => { + control.close(() => createChat([did])) + }, + [control, createChat], + ) + + return ( + <> + } + accessibilityRole="button" + accessibilityLabel={_(msg`New chat`)} + accessibilityHint="" + /> + + + + + + ) +} + +function ProfileCard({ + enabled, + profile, + moderationOpts, + onPress, +}: { + enabled: boolean + profile: AppBskyActorDefs.ProfileView + moderationOpts: ModerationOpts + onPress: (did: string) => void +}) { + const t = useTheme() + const {_} = useLingui() + const moderation = moderateProfile(profile, moderationOpts) + const handle = sanitizeHandle(profile.handle, '@') + const displayName = sanitizeDisplayName( + profile.displayName || sanitizeHandle(profile.handle), + moderation.ui('displayName'), + ) + + const handleOnPress = useCallback(() => { + onPress(profile.did) + }, [onPress, profile.did]) + + return ( + + ) +} + +function ProfileCardSkeleton() { + const t = useTheme() + + return ( + + + + + + + + + ) +} + +function Empty({message}: {message: string}) { + const t = useTheme() + return ( + + + {message} + + + (╯°□°)╯︵ ┻━┻ + + ) +} + +function SearchInput({ + value, + onChangeText, + onEscape, + inputRef, +}: { + value: string + onChangeText: (text: string) => void + onEscape: () => void + inputRef: React.RefObject +}) { + const t = useTheme() + const {_} = useLingui() + const { + state: hovered, + onIn: onMouseEnter, + onOut: onMouseLeave, + } = useInteractionState() + const {state: focused, onIn: onFocus, onOut: onBlur} = useInteractionState() + const interacted = hovered || focused + + return ( + + + + { + if (nativeEvent.key === 'Escape') { + onEscape() + } + }} + autoCorrect={false} + autoComplete="off" + autoCapitalize="none" + autoFocus + accessibilityLabel={_(msg`Search profiles`)} + accessibilityHint={_(msg`Search profiles`)} + /> + + ) +} + +function SearchablePeopleList({ + onCreateChat, +}: { + onCreateChat: (did: string) => void +}) { + const t = useTheme() + const {_} = useLingui() + const moderationOpts = useModerationOpts() + const control = Dialog.useDialogContext() + const listRef = useRef(null) + const {currentAccount} = useSession() + const inputRef = React.useRef(null) + + const [searchText, setSearchText] = useState('') + + const { + data: results, + isError, + isFetching, + } = useActorAutocompleteQuery(searchText, true, 12) + const {data: follows} = useProfileFollowsQuery(currentAccount?.did, { + limit: 12, + }) + + const items = React.useMemo(() => { + let _items: Item[] = [] + + if (isError) { + _items.push({ + type: 'empty', + key: 'empty', + message: _(msg`We're having network issues, try again`), + }) + } else if (searchText.length) { + if (results?.length) { + for (const profile of results) { + if (profile.did === currentAccount?.did) continue + _items.push({ + type: 'profile', + key: profile.did, + enabled: canBeMessaged(profile), + profile, + }) + } + + _items = _items.sort(a => { + // @ts-ignore + return a.enabled ? -1 : 1 + }) + } + } else { + if (follows) { + for (const page of follows.pages) { + for (const profile of page.follows) { + _items.push({ + type: 'profile', + key: profile.did, + enabled: canBeMessaged(profile), + profile, + }) + } + } + + _items = _items.sort(a => { + // @ts-ignore + return a.enabled ? -1 : 1 + }) + } else { + Array(10) + .fill(0) + .forEach((_, i) => { + _items.push({ + type: 'placeholder', + key: i + '', + }) + }) + } + } + + return _items + }, [_, searchText, results, isError, currentAccount?.did, follows]) + + if (searchText && !isFetching && !items.length && !isError) { + items.push({type: 'empty', key: 'empty', message: _(msg`No results`)}) + } + + const renderItems = React.useCallback( + ({item}: {item: Item}) => { + switch (item.type) { + case 'profile': { + return ( + + ) + } + case 'placeholder': { + return + } + case 'empty': { + return + } + default: + return null + } + }, + [moderationOpts, onCreateChat], + ) + + React.useLayoutEffect(() => { + if (isWeb) { + setImmediate(() => { + inputRef?.current?.focus() + }) + } + }, []) + + const listHeader = useMemo(() => { + return ( + + + + + Start a new chat + + + + + { + setSearchText(text) + listRef.current?.scrollToOffset({offset: 0, animated: false}) + }} + onEscape={control.close} + /> + + + ) + }, [t, _, control, searchText]) + + return ( + item.key} + style={[ + web([a.py_0, {height: '100vh', maxHeight: 600}, a.px_0]), + native({ + paddingHorizontal: 0, + marginTop: 0, + paddingTop: 0, + }), + ]} + webInnerStyle={[a.py_0, {maxWidth: 500, minWidth: 200}]} + keyboardDismissMode="on-drag" + /> + ) +} diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index e36d1edf2d..c198d44c45 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -18,7 +18,7 @@ import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {DialogControlProps, useDialogControl} from '#/components/Dialog' import {MessagesNUX} from '#/components/dms/MessagesNUX' -import {NewChat} from '#/components/dms/NewChat' +import {NewChat} from '#/components/dms/NewChatDialog' import {useRefreshOnFocus} from '#/components/hooks/useRefreshOnFocus' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import {SettingsSliderVertical_Stroke2_Corner0_Rounded as SettingsSlider} from '#/components/icons/SettingsSlider' diff --git a/src/state/queries/actor-autocomplete.ts b/src/state/queries/actor-autocomplete.ts index 8708a244bd..17b00dc26e 100644 --- a/src/state/queries/actor-autocomplete.ts +++ b/src/state/queries/actor-autocomplete.ts @@ -20,6 +20,7 @@ export const RQKEY = (prefix: string) => [RQKEY_ROOT, prefix] export function useActorAutocompleteQuery( prefix: string, maintainData?: boolean, + limit?: number, ) { const moderationOpts = useModerationOpts() const {getAgent} = useAgent() @@ -37,7 +38,7 @@ export function useActorAutocompleteQuery( const res = prefix ? await getAgent().searchActorsTypeahead({ q: prefix, - limit: 8, + limit: limit || 8, }) : undefined return res?.data.actors || [] diff --git a/src/state/queries/profile-follows.ts b/src/state/queries/profile-follows.ts index 23c0dce3e7..1919409c7f 100644 --- a/src/state/queries/profile-follows.ts +++ b/src/state/queries/profile-follows.ts @@ -16,7 +16,16 @@ type RQPageParam = string | undefined const RQKEY_ROOT = 'profile-follows' export const RQKEY = (did: string) => [RQKEY_ROOT, did] -export function useProfileFollowsQuery(did: string | undefined) { +export function useProfileFollowsQuery( + did: string | undefined, + { + limit, + }: { + limit?: number + } = { + limit: PAGE_SIZE, + }, +) { const {getAgent} = useAgent() return useInfiniteQuery< AppBskyGraphGetFollows.OutputSchema, @@ -30,7 +39,7 @@ export function useProfileFollowsQuery(did: string | undefined) { async queryFn({pageParam}: {pageParam: RQPageParam}) { const res = await getAgent().app.bsky.graph.getFollows({ actor: did || '', - limit: PAGE_SIZE, + limit: limit || PAGE_SIZE, cursor: pageParam, }) return res.data From 8b3bfb3cf7459af59fb4535241a6251e35e88eb9 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 17 May 2024 17:56:58 -0500 Subject: [PATCH 104/277] Make generic convo report dialog (#4085) --- .../ReportDialog/SelectReportOptionView.tsx | 9 +- src/components/ReportDialog/types.ts | 2 + src/components/dms/ConvoMenu.tsx | 7 +- src/components/dms/MessageMenu.tsx | 7 +- .../dms/MessagesListBlockedFooter.tsx | 7 +- .../dms/ReportConversationPrompt.tsx | 27 ----- ...ssageReportDialog.tsx => ReportDialog.tsx} | 106 +++++++++++++----- src/lib/moderation/useReportOptions.ts | 18 ++- 8 files changed, 117 insertions(+), 66 deletions(-) delete mode 100644 src/components/dms/ReportConversationPrompt.tsx rename src/components/dms/{MessageReportDialog.tsx => ReportDialog.tsx} (72%) diff --git a/src/components/ReportDialog/SelectReportOptionView.tsx b/src/components/ReportDialog/SelectReportOptionView.tsx index da3c434401..4053844768 100644 --- a/src/components/ReportDialog/SelectReportOptionView.tsx +++ b/src/components/ReportDialog/SelectReportOptionView.tsx @@ -25,12 +25,10 @@ import {SquareArrowTopRight_Stroke2_Corner0_Rounded as SquareArrowTopRight} from import {Text} from '#/components/Typography' import {ReportDialogProps} from './types' -type ParamsWithMessages = ReportDialogProps['params'] | {type: 'message'} - export function SelectReportOptionView({ ...props }: { - params: ParamsWithMessages + params: ReportDialogProps['params'] labelers: AppBskyLabelerDefs.LabelerViewDetailed[] onSelectReportOption: (reportOption: ReportOption) => void goBack: () => void @@ -57,9 +55,12 @@ export function SelectReportOptionView({ } else if (props.params.type === 'feedgen') { title = _(msg`Report this feed`) description = _(msg`Why should this feed be reviewed?`) - } else if (props.params.type === 'message') { + } else if (props.params.type === 'convoMessage') { title = _(msg`Report this message`) description = _(msg`Why should this message be reviewed?`) + } else if (props.params.type === 'convoAccount') { + title = _(msg`Report this account`) + description = _(msg`Why should this account be reviewed?`) } return { diff --git a/src/components/ReportDialog/types.ts b/src/components/ReportDialog/types.ts index 0c8a1e0778..5a13856520 100644 --- a/src/components/ReportDialog/types.ts +++ b/src/components/ReportDialog/types.ts @@ -12,4 +12,6 @@ export type ReportDialogProps = { type: 'account' did: string } + | {type: 'convoMessage'} + | {type: 'convoAccount'} } diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index 0e5cd12bf8..50a5280849 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -21,7 +21,7 @@ import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {BlockedByListDialog} from '#/components/dms/BlockedByListDialog' import {LeaveConvoPrompt} from '#/components/dms/LeaveConvoPrompt' -import {ReportConversationPrompt} from '#/components/dms/ReportConversationPrompt' +import {ReportDialog} from '#/components/dms/ReportDialog' import {ArrowBoxLeft_Stroke2_Corner0_Rounded as ArrowBoxLeft} from '#/components/icons/ArrowBoxLeft' import {DotGrid_Stroke2_Corner0_Rounded as DotsHorizontal} from '#/components/icons/DotGrid' import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag' @@ -205,7 +205,10 @@ let ConvoMenu = ({ convoId={convo.id} currentScreen={currentScreen} /> - + - + - + {}} - showCancel={false} - /> - ) -} diff --git a/src/components/dms/MessageReportDialog.tsx b/src/components/dms/ReportDialog.tsx similarity index 72% rename from src/components/dms/MessageReportDialog.tsx rename to src/components/dms/ReportDialog.tsx index cc25732afb..e8ac0ed2fe 100644 --- a/src/components/dms/MessageReportDialog.tsx +++ b/src/components/dms/ReportDialog.tsx @@ -25,12 +25,24 @@ import {RichText} from '../RichText' import {Text} from '../Typography' import {MessageItemMetadata} from './MessageItem' -let MessageReportDialog = ({ +type ReportDialogParams = + | { + type: 'convoAccount' + did: string + convoId: string + } + | { + type: 'convoMessage' + convoId: string + message: ChatBskyConvoDefs.MessageView + } + +let ReportDialog = ({ control, - message, + params, }: { control: Dialog.DialogControlProps - message: ChatBskyConvoDefs.MessageView + params: ReportDialogParams }): React.ReactNode => { const {_} = useLingui() return ( @@ -39,33 +51,35 @@ let MessageReportDialog = ({ nativeOptions={isAndroid ? {sheet: {snapPoints: ['100%']}} : {}}> - + ) } -MessageReportDialog = memo(MessageReportDialog) -export {MessageReportDialog} +ReportDialog = memo(ReportDialog) +export {ReportDialog} -function DialogInner({message}: {message: ChatBskyConvoDefs.MessageView}) { +function DialogInner({params}: {params: ReportDialogParams}) { const [reportOption, setReportOption] = useState(null) return reportOption ? ( setReportOption(null)} /> ) : ( - + ) } function ReasonStep({ setReportOption, + params, }: { setReportOption: (reportOption: ReportOption) => void + params: ReportDialogParams }) { const control = Dialog.useDialogContext() @@ -73,18 +87,26 @@ function ReasonStep({ ) } function SubmitStep({ - message, + params, reportOption, goBack, }: { - message: ChatBskyConvoDefs.MessageView + params: ReportDialogParams reportOption: ReportOption goBack: () => void }) { @@ -101,17 +123,33 @@ function SubmitStep({ isPending: submitting, } = useMutation({ mutationFn: async () => { - const report = { - reasonType: reportOption.reason, - subject: { - $type: 'chat.bsky.convo.defs#messageRef', - messageId: message.id, - did: message.sender!.did, - } satisfies ChatBskyConvoDefs.MessageRef, - reason: details, - } satisfies ComAtprotoModerationCreateReport.InputSchema + if (params.type === 'convoMessage') { + const {convoId, message} = params - await getAgent().createModerationReport(report) + const report = { + reasonType: reportOption.reason, + subject: { + $type: 'chat.bsky.convo.defs#messageRef', + messageId: message.id, + convoId, + did: message.sender.did, + } satisfies ChatBskyConvoDefs.MessageRef, + reason: details, + } satisfies ComAtprotoModerationCreateReport.InputSchema + + await getAgent().createModerationReport(report) + } else if (params.type === 'convoAccount') { + const {convoId, did} = params + + await getAgent().createModerationReport({ + reasonType: reportOption.reason, + subject: { + $type: 'com.atproto.admin.defs#repoRef', + did, + }, + reason: details + ` — from:dms:${convoId}`, + }) + } }, onSuccess: () => { control.close(() => { @@ -120,6 +158,17 @@ function SubmitStep({ }, }) + const copy = useMemo(() => { + return { + convoMessage: { + title: _(msg`Report this message`), + }, + convoAccount: { + title: _(msg`Report this account`), + }, + }[params.type] + }, [_, params]) + return ( + label={_(msg`Show follows similar to ${profile.handle}`)} + style={{width: 36, height: 36}}> + + + )} + + + 0} + hideTrigger={isNative} + blockInfo={blockInfo} + style={[ + a.absolute, + a.h_full, + a.self_end, + a.justify_center, + { + right: a.px_lg.paddingRight, + opacity: !gtMobile || showActions || menuControl.isOpen ? 1 : 0, + }, + ]} + /> ) } From 70019e73ef350d6016863005f05f1b0554bdf874 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 20 May 2024 16:16:46 -0500 Subject: [PATCH 135/277] Some styling of empty list chats states (#4124) --- src/screens/Messages/List/index.tsx | 111 +++++++++++++++++++++------- 1 file changed, 84 insertions(+), 27 deletions(-) diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index 6de0ca0b02..2427840b92 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -14,16 +14,20 @@ import {useListConvos} from '#/state/queries/messages/list-converations' import {List} from '#/view/com/util/List' import {ViewHeader} from '#/view/com/util/ViewHeader' import {CenteredView} from '#/view/com/util/Views' -import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {DialogControlProps, useDialogControl} from '#/components/Dialog' import {MessagesNUX} from '#/components/dms/MessagesNUX' import {NewChat} from '#/components/dms/NewChatDialog' import {useRefreshOnFocus} from '#/components/hooks/useRefreshOnFocus' +import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Retry} from '#/components/icons/ArrowRotateCounterClockwise' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {Message_Stroke2_Corner0_Rounded as Message} from '#/components/icons/Message' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import {SettingsSliderVertical_Stroke2_Corner0_Rounded as SettingsSlider} from '#/components/icons/SettingsSlider' import {Link} from '#/components/Link' -import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' +import {ListFooter} from '#/components/Lists' +import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' import {ClipClopGate} from '../gate' import {ChatListItem} from './ChatListItem' @@ -82,14 +86,13 @@ export function MessagesScreen({navigation, route}: Props) { isFetchingNextPage, hasNextPage, fetchNextPage, + isError, error, refetch, } = useListConvos({refetchInterval: 15_000}) useRefreshOnFocus(refetch) - const isError = !!error - const conversations = useMemo(() => { if (data?.pages) { return data.pages.flatMap(page => page.convos) @@ -133,34 +136,88 @@ export function MessagesScreen({navigation, route}: Props) { return ( - {gtMobile ? ( - + + + {gtMobile ? ( - - ) : ( - - )} - {!isError && } - )} - errorMessage={cleanError(error)} - onRetry={isError ? refetch : undefined} - hideBackButton - /> + + {isLoading ? ( + + + + ) : ( + <> + {isError ? ( + <> + + + + Whoops! + + + {cleanError(error)} + + + + + + ) : ( + <> + + + + Nothing here + + + You have no conversations yet. Start one! + + + + )} + + )} + + + {!isLoading && !isError && ( + + )} ) } From e5aa8c081a16a58f8c29b1a00c039f36f68fbc35 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Mon, 20 May 2024 22:16:53 +0100 Subject: [PATCH 136/277] in-convo muted chat indicator (#4127) --- src/components/dms/MessagesListHeader.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/components/dms/MessagesListHeader.tsx b/src/components/dms/MessagesListHeader.tsx index a6dff40326..0a0cd20da1 100644 --- a/src/components/dms/MessagesListHeader.tsx +++ b/src/components/dms/MessagesListHeader.tsx @@ -20,6 +20,7 @@ import {isConvoActive, useConvo} from 'state/messages/convo' import {PreviewableUserAvatar} from 'view/com/util/UserAvatar' import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' import {ConvoMenu} from '#/components/dms/ConvoMenu' +import {Bell2Off_Filled_Corner0_Rounded as BellStroke} from '#/components/icons/Bell2' import {Link} from '#/components/Link' import {Text} from '#/components/Typography' @@ -176,6 +177,13 @@ function HeaderReady({ ]} numberOfLines={1}> @{profile.handle} + {convoState.convo?.muted && ( + <> + {' '} + ·{' '} + + + )} )} From d3d2dc8ad46890dda945f3401375529f1f8a8d02 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Mon, 20 May 2024 22:23:36 +0100 Subject: [PATCH 137/277] =?UTF-8?q?[=F0=9F=90=B4]=20Appeal=20form=20for=20?= =?UTF-8?q?disabled=20DMs=20(#4126)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add appeal dialog * use useMutation for the labels on me dialog * replace text button with small button --- src/components/dms/NewChatDialog/index.tsx | 16 ++- .../moderation/LabelsOnMeDialog.tsx | 28 ++-- .../Messages/Conversation/ChatDisabled.tsx | 131 +++++++++++++++++- 3 files changed, 158 insertions(+), 17 deletions(-) diff --git a/src/components/dms/NewChatDialog/index.tsx b/src/components/dms/NewChatDialog/index.tsx index fb20b8f4c5..e57b0aa8f1 100644 --- a/src/components/dms/NewChatDialog/index.tsx +++ b/src/components/dms/NewChatDialog/index.tsx @@ -1,4 +1,10 @@ -import React, {useCallback, useMemo, useRef, useState} from 'react' +import React, { + useCallback, + useLayoutEffect, + useMemo, + useRef, + useState, +} from 'react' import type {TextInput as TextInputType} from 'react-native' import {View} from 'react-native' import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' @@ -293,7 +299,7 @@ function SearchablePeopleList({ const control = Dialog.useDialogContext() const listRef = useRef(null) const {currentAccount} = useSession() - const inputRef = React.useRef(null) + const inputRef = useRef(null) const [searchText, setSearchText] = useState('') @@ -306,7 +312,7 @@ function SearchablePeopleList({ limit: 12, }) - const items = React.useMemo(() => { + const items = useMemo(() => { let _items: Item[] = [] if (isError) { @@ -368,7 +374,7 @@ function SearchablePeopleList({ items.push({type: 'empty', key: 'empty', message: _(msg`No results`)}) } - const renderItems = React.useCallback( + const renderItems = useCallback( ({item}: {item: Item}) => { switch (item.type) { case 'profile': { @@ -395,7 +401,7 @@ function SearchablePeopleList({ [moderationOpts, onCreateChat], ) - React.useLayoutEffect(() => { + useLayoutEffect(() => { if (isWeb) { setImmediate(() => { inputRef?.current?.focus() diff --git a/src/components/moderation/LabelsOnMeDialog.tsx b/src/components/moderation/LabelsOnMeDialog.tsx index e98599b4ec..8583a226f0 100644 --- a/src/components/moderation/LabelsOnMeDialog.tsx +++ b/src/components/moderation/LabelsOnMeDialog.tsx @@ -3,19 +3,21 @@ import {View} from 'react-native' import {ComAtprotoLabelDefs, ComAtprotoModerationDefs} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {useMutation} from '@tanstack/react-query' import {useLabelInfo} from '#/lib/moderation/useLabelInfo' import {makeProfileLink} from '#/lib/routes/links' import {sanitizeHandle} from '#/lib/strings/handles' +import {logger} from '#/logger' import {useAgent, useSession} from '#/state/session' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useBreakpoints, useTheme} from '#/alf' -import {Button, ButtonText} from '#/components/Button' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' import {InlineLinkText} from '#/components/Link' import {Text} from '#/components/Typography' import {Divider} from '../Divider' - +import {Loader} from '../Loader' export {useDialogControl as useLabelsOnMeDialogControl} from '#/components/Dialog' type Subject = @@ -100,7 +102,7 @@ function LabelsOnMeDialogInner(props: LabelsOnMeDialogProps) { label={label} isSelfLabel={label.src === currentAccount?.did} control={props.control} - onPressAppeal={label => setAppealingLabel(label)} + onPressAppeal={setAppealingLabel} /> ))} @@ -201,8 +203,8 @@ function AppealForm({ const isAccountReport = 'did' in subject const {getAgent} = useAgent() - const onSubmit = async () => { - try { + const {mutate, isPending} = useMutation({ + mutationFn: async () => { const $type = !isAccountReport ? 'com.atproto.repo.strongRef' : 'com.atproto.admin.defs#repoRef' @@ -216,11 +218,18 @@ function AppealForm({ }, reason: details, }) - Toast.show(_(msg`Appeal submitted`)) - } finally { + }, + onError: err => { + logger.error('Failed to submit label appeal', {message: err}) + Toast.show(_(msg`Failed to submit appeal, please try again.`)) + }, + onSuccess: () => { control.close() - } - } + Toast.show(_(msg`Appeal submitted`)) + }, + }) + + const onSubmit = React.useCallback(() => mutate(), [mutate]) return ( <> @@ -281,6 +290,7 @@ function AppealForm({ onPress={onSubmit} label={_(msg`Submit`)}> {_(msg`Submit`)} + {isPending && } diff --git a/src/screens/Messages/Conversation/ChatDisabled.tsx b/src/screens/Messages/Conversation/ChatDisabled.tsx index e7453bfd81..faff95963f 100644 --- a/src/screens/Messages/Conversation/ChatDisabled.tsx +++ b/src/screens/Messages/Conversation/ChatDisabled.tsx @@ -1,8 +1,17 @@ -import React from 'react' +import React, {useCallback, useState} from 'react' import {View} from 'react-native' -import {Trans} from '@lingui/macro' +import {ComAtprotoModerationDefs} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useMutation} from '@tanstack/react-query' -import {atoms as a, useTheme} from '#/alf' +import {logger} from '#/logger' +import {useAgent, useSession} from '#/state/session' +import * as Toast from '#/view/com/util/Toast' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {Button, ButtonIcon, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' export function ChatDisabled() { @@ -20,7 +29,123 @@ export function ChatDisabled() { access to chats on Bluesky. + ) } + +function AppealDialog() { + const control = Dialog.useDialogControl() + const {_} = useLingui() + + return ( + <> + + + + + + + + ) +} + +function DialogInner() { + const {_} = useLingui() + const control = Dialog.useDialogContext() + const [details, setDetails] = useState('') + const {gtMobile} = useBreakpoints() + const {getAgent} = useAgent() + const {currentAccount} = useSession() + + const {mutate, isPending} = useMutation({ + mutationFn: async () => { + if (!currentAccount) + throw new Error('No current account, should be unreachable') + await getAgent().createModerationReport({ + reasonType: ComAtprotoModerationDefs.REASONAPPEAL, + subject: { + $type: 'com.atproto.admin.defs#repoRef', + did: currentAccount.did, + }, + reason: details, + }) + }, + onError: err => { + logger.error('Failed to submit chat appeal', {message: err}) + Toast.show(_(msg`Failed to submit appeal, please try again.`)) + }, + onSuccess: () => { + control.close() + Toast.show(_(msg`Appeal submitted`)) + }, + }) + + const onSubmit = useCallback(() => mutate(), [mutate]) + const onBack = useCallback(() => control.close(), [control]) + + return ( + + + Appeal this decision + + + + This appeal will be sent to the Bluesky moderation service. + + + + + + + + + + + + + ) +} From e98bf6521bfeb3b18df284963bfa3b4c20a89727 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 20 May 2024 16:41:03 -0500 Subject: [PATCH 138/277] =?UTF-8?q?[=F0=9F=90=B4=20Tweak=20appeal=20button?= =?UTF-8?q?=20styles=20(#4128)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Tweak styles * Tweak copy --- src/screens/Messages/Conversation/ChatDisabled.tsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/screens/Messages/Conversation/ChatDisabled.tsx b/src/screens/Messages/Conversation/ChatDisabled.tsx index faff95963f..6665dd1710 100644 --- a/src/screens/Messages/Conversation/ChatDisabled.tsx +++ b/src/screens/Messages/Conversation/ChatDisabled.tsx @@ -18,7 +18,8 @@ export function ChatDisabled() { const t = useTheme() return ( - + Your chats have been disabled @@ -43,7 +44,7 @@ function AppealDialog() { <> + ) } - -const styles = StyleSheet.create({ - button: { - flexDirection: 'row', - alignItems: 'center', - paddingHorizontal: 6, - gap: 4, - }, -}) From 6b6a002b0a51fe705b7d4051187d733bf0c2878c Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 20 May 2024 19:52:04 -0700 Subject: [PATCH 152/277] Run intl extract --- src/locale/locales/ca/messages.po | 295 ++++++++++++++------------- src/locale/locales/de/messages.po | 295 ++++++++++++++------------- src/locale/locales/en/messages.po | 295 ++++++++++++++------------- src/locale/locales/es/messages.po | 295 ++++++++++++++------------- src/locale/locales/fi/messages.po | 295 ++++++++++++++------------- src/locale/locales/fr/messages.po | 295 ++++++++++++++------------- src/locale/locales/ga/messages.po | 295 ++++++++++++++------------- src/locale/locales/hi/messages.po | 295 ++++++++++++++------------- src/locale/locales/id/messages.po | 295 ++++++++++++++------------- src/locale/locales/it/messages.po | 295 ++++++++++++++------------- src/locale/locales/ja/messages.po | 295 ++++++++++++++------------- src/locale/locales/ko/messages.po | 295 ++++++++++++++------------- src/locale/locales/pt-BR/messages.po | 295 ++++++++++++++------------- src/locale/locales/tr/messages.po | 295 ++++++++++++++------------- src/locale/locales/uk/messages.po | 295 ++++++++++++++------------- src/locale/locales/zh-CN/messages.po | 295 ++++++++++++++------------- src/locale/locales/zh-TW/messages.po | 295 ++++++++++++++------------- 17 files changed, 2635 insertions(+), 2380 deletions(-) diff --git a/src/locale/locales/ca/messages.po b/src/locale/locales/ca/messages.po index bee9a9cea3..7690896d38 100644 --- a/src/locale/locales/ca/messages.po +++ b/src/locale/locales/ca/messages.po @@ -133,8 +133,8 @@ msgstr "" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "{invitesAvailable} codis d'invitació disponibles" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{likeCount, plural, one {Li ha agradat a # user} other {Li ha agradat a # users}}" @@ -218,11 +218,11 @@ msgid "Access profile and other navigation links" msgstr "Accedeix al perfil i altres enllaços de navegació" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "Accessibilitat" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "Configuració d'accessibilitat" @@ -236,8 +236,8 @@ msgstr "Configuració d'accessibilitat" #~ msgstr "compte" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "Compte" @@ -299,8 +299,8 @@ msgid "Add a user to this list" msgstr "Afegeix un usuari a aquesta llista" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "Afegeix un compte" @@ -401,7 +401,7 @@ msgid "Adult content is disabled." msgstr "El contingut per a adults està deshabilitat." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "Avançat" @@ -510,7 +510,7 @@ msgstr "La contrasenya de l'aplicació només pot estar formada per lletres, nú msgid "App Password names must be at least 4 characters long." msgstr "La contrasenya de l'aplicació ha de ser d'almenys 4 caràcters." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "Configuració de la contrasenya d'aplicació" @@ -520,7 +520,7 @@ msgstr "Configuració de la contrasenya d'aplicació" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "Contrasenyes de l'aplicació" @@ -565,7 +565,7 @@ msgstr "Apel·la aquesta decisió" #~ msgid "Appeal this decision." #~ msgstr "Apel·la aquesta decisió." -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "Aparença" @@ -598,7 +598,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Confirmes que vols eliminar {0} dels teus canals?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "Confirmes que vols descartar aquest esborrany?" @@ -654,7 +654,7 @@ msgstr "Endarrere" msgid "Based on your interest in {interestsText}" msgstr "Segons els teus interessos en {interestsText}" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "Conceptes bàsics" @@ -662,7 +662,7 @@ msgstr "Conceptes bàsics" msgid "Birthday" msgstr "Aniversari" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "Aniversari:" @@ -920,17 +920,17 @@ msgstr "Cancel·la obrir la web enllaçada" msgid "Change" msgstr "Canvia" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "Canvia" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "Canvia l'identificador" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "Canvia l'identificador" @@ -938,12 +938,12 @@ msgstr "Canvia l'identificador" msgid "Change my email" msgstr "Canvia el meu correu" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "Canvia la contrasenya" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "Canvia la contrasenya" @@ -972,7 +972,7 @@ msgstr "Xat silenciat" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "Configuració del xat" @@ -1038,19 +1038,19 @@ msgstr "Tria els teus canals principals" msgid "Choose your password" msgstr "Tria la teva contrasenya" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "Esborra totes les dades antigues emmagatzemades" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "Esborra totes les dades antigues emmagatzemades (i després reinicia)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "Esborra totes les dades emmagatzemades" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "Esborra totes les dades emmagatzemades (i després reinicia)" @@ -1059,11 +1059,11 @@ msgstr "Esborra totes les dades emmagatzemades (i després reinicia)" msgid "Clear search query" msgstr "Esborra la cerca" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "Esborra totes les dades antigues emmagatzemades" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "Esborra totes les dades emmagatzemades" @@ -1186,7 +1186,7 @@ msgstr "Finalitza el registre i comença a utilitzar el teu compte" msgid "Complete the challenge" msgstr "Completa la prova" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Crea publicacions de fins a {MAX_GRAPHEME_LENGTH} caràcters" @@ -1453,7 +1453,7 @@ msgstr "No s'ha pogut silenciar el xat" msgid "Create a new account" msgstr "Crea un nou compte" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "Crea un nou compte de Bluesky" @@ -1525,8 +1525,8 @@ msgstr "Personalitza el contingut dels llocs externs." #~ msgid "Danger Zone" #~ msgstr "Zona de perill" -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "Fosc" @@ -1534,7 +1534,7 @@ msgstr "Fosc" msgid "Dark mode" msgstr "Mode fosc" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "Tema fosc" @@ -1542,7 +1542,7 @@ msgstr "Tema fosc" msgid "Date of birth" msgstr "Data de naixement" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "Moderació de depuració" @@ -1557,7 +1557,7 @@ msgstr "Panell de depuració" msgid "Delete" msgstr "Elimina" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "Elimina el compte" @@ -1577,8 +1577,8 @@ msgstr "Elimina la contrasenya d'aplicació" msgid "Delete app password?" msgstr "Vols eliminar la contrasenya d'aplicació?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1606,7 +1606,7 @@ msgstr "Elimina el meu compte" #~ msgid "Delete my account…" #~ msgstr "Elimina el meu compte…" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "Elimina el meu compte…" @@ -1631,7 +1631,7 @@ msgstr "Eliminat" msgid "Deleted post." msgstr "Publicació eliminada." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1658,7 +1658,7 @@ msgstr "Text alternatiu descriptiu" msgid "Did you want to say anything?" msgstr "Vols dir alguna cosa?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "Tènue" @@ -1693,7 +1693,7 @@ msgstr "Desactiva la retroalimentació hàptica" msgid "Disabled" msgstr "Deshabilitat" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "Descarta" @@ -1701,7 +1701,7 @@ msgstr "Descarta" #~ msgid "Discard draft" #~ msgstr "Descarta l'esborrany" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "Vols descartar l'esborrany?" @@ -1883,12 +1883,12 @@ msgstr "Edita els meus canals" msgid "Edit my profile" msgstr "Edita el meu perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "Edita el perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "Edita el perfil" @@ -1940,7 +1940,7 @@ msgstr "Correu actualitzat" msgid "Email verified" msgstr "Correu verificat" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "Correu:" @@ -2004,6 +2004,10 @@ msgstr "Habilitat" msgid "End of feed" msgstr "Fi del canal" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "Posa un nom a aquesta contrasenya d'aplicació" @@ -2083,6 +2087,10 @@ msgstr "Error:" msgid "Everybody" msgstr "Tothom" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -2140,12 +2148,12 @@ msgstr "Contingut explícit o potencialment pertorbador." msgid "Explicit sexual images." msgstr "Imatges sexuals explícites." -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "Exporta les meves dades" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "Exporta les meves dades" @@ -2161,11 +2169,11 @@ msgstr "El contingut extern pot permetre que algunes webs recullin informació s #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "Preferència del contingut extern" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "Configuració del contingut extern" @@ -2416,7 +2424,7 @@ msgstr "Seguint" msgid "Following {0}" msgstr "Seguint {0}" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "Preferències del canal Seguint" @@ -2424,7 +2432,7 @@ msgstr "Preferències del canal Seguint" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "Preferències del canal Seguint" @@ -2960,7 +2968,7 @@ msgstr "Etiquetes al teu contingut" msgid "Language selection" msgstr "Tria l'idioma" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "Configuració d'idioma" @@ -2969,7 +2977,7 @@ msgstr "Configuració d'idioma" msgid "Language Settings" msgstr "Configuració d'idioma" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "Idiomes" @@ -3055,7 +3063,7 @@ msgstr "Som-hi!" #~ msgid "Library" #~ msgstr "Biblioteca" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "Clar" @@ -3063,7 +3071,7 @@ msgstr "Clar" #~ msgid "Like" #~ msgstr "M'agrada" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Fes m'agrada a aquest canal" @@ -3297,14 +3305,14 @@ msgstr "Camp d'entrada del missatge" msgid "Message is too long" msgstr "El missatge és massa llarg" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "Configuració dels missatges" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "Missatges" @@ -3318,7 +3326,7 @@ msgstr "Compte enganyós" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "Moderació" @@ -3358,7 +3366,7 @@ msgstr "Llistes de moderació" msgid "Moderation Lists" msgstr "Llistes de moderació" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "Configuració de moderació" @@ -3514,11 +3522,11 @@ msgstr "Els meus canals" msgid "My Profile" msgstr "El meu perfil" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "Els meus canals desats" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "Els meus canals desats" @@ -3591,8 +3599,8 @@ msgid "New" msgstr "Nova" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "Xat nou" @@ -3723,7 +3731,7 @@ msgstr "Cap resultat" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "No s'han trobat resultats" @@ -3754,6 +3762,10 @@ msgstr "No, gràcies" msgid "Nobody" msgstr "Ningú" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3787,7 +3799,7 @@ msgstr "Nota sobre compartir" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky és una xarxa oberta i pública. Aquesta configuració tan sols limita el teu contingut a l'aplicació de Bluesky i a la web, altres aplicacions poden no respectar-ho. El teu contingut pot ser mostrat a usuaris no connectats per altres aplicacions i webs." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3835,7 +3847,7 @@ msgid "Oh no! Something went wrong." msgstr "Ostres! Alguna cosa ha fallat." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "D'acord" @@ -3851,7 +3863,7 @@ msgstr "Respostes més antigues primer" msgid "Onboarding reset" msgstr "Restableix la incorporació" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "Falta el text alternatiu a una o més imatges." @@ -3867,11 +3879,11 @@ msgstr "Només {0} poden respondre." msgid "Only contains letters, numbers, and hyphens" msgstr "Només pot tenir lletres, nombres i guionets" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "Ostres, alguna cosa ha anat malament!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3894,8 +3906,8 @@ msgstr "Obre el creador d'avatars" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "Obre el selector d'emojis" @@ -3903,7 +3915,7 @@ msgstr "Obre el selector d'emojis" msgid "Open feed options menu" msgstr "Obre el menú de les opcions del canal" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "Obre els enllaços al navegador de l'aplicació" @@ -3927,12 +3939,12 @@ msgstr "Obre la navegació" msgid "Open post options menu" msgstr "Obre el menú de les opcions de publicació" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "Obre la pàgina d'historial" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "Obre el registre del sistema" @@ -3940,7 +3952,7 @@ msgstr "Obre el registre del sistema" msgid "Opens {numItems} options" msgstr "Obre {numItems} opcions" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "Obre la configuració d'accessibilitat" @@ -3960,7 +3972,7 @@ msgstr "Obre la càmera del dispositiu" msgid "Opens composer" msgstr "Obre el compositor" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "Obre la configuració d'idioma" @@ -3972,7 +3984,7 @@ msgstr "Obre la galeria fotogràfica del dispositiu" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Obre l'editor del perfil per a editar el nom, avatar, imatge de fons i descripció" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "Obre la configuració per les incrustacions externes" @@ -4006,7 +4018,7 @@ msgstr "Obre el diàleg per a triar GIF" msgid "Opens list of invite codes" msgstr "Obre la llista de codis d'invitació" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Obre el modal per a la confirmació de l'eliminació del compte. Requereix codi de correu electrònic" @@ -4014,19 +4026,19 @@ msgstr "Obre el modal per a la confirmació de l'eliminació del compte. Requere #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Obre el modal per a confirmar l'eliminació del compte. Requereix un codi de correu" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "Obre el modal per a canviar la contrasenya de Bluesky" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Obre el modal per a triar un nou identificador de Bluesky" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Obre el modal per a baixar les dades del vostre compte Bluesky (repositori)" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "Obre el modal per a verificar el correu" @@ -4034,7 +4046,7 @@ msgstr "Obre el modal per a verificar el correu" msgid "Opens modal for using custom domain" msgstr "Obre el modal per a utilitzar un domini personalitzat" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "Obre la configuració de la moderació" @@ -4047,11 +4059,11 @@ msgstr "Obre el formulari de restabliment de la contrasenya" msgid "Opens screen to edit Saved Feeds" msgstr "Obre pantalla per a editar els canals desats" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "Obre la pantalla amb tots els canals desats" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "Obre la configuració de les contrasenyes d'aplicació" @@ -4059,7 +4071,7 @@ msgstr "Obre la configuració de les contrasenyes d'aplicació" #~ msgid "Opens the app password settings page" #~ msgstr "Obre la pàgina de configuració de les contrasenyes d'aplicació" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "Obre les preferències del canal de Seguint" @@ -4075,16 +4087,16 @@ msgstr "Obre la web enllaçada" #~ msgid "Opens the message settings page" #~ msgstr "Obre la pàgina de configuració dels missatges" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "Obre la pàgina de l'historial" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "Obre la pàgina de registres del sistema" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "Obre les preferències dels fils de debat" @@ -4121,7 +4133,7 @@ msgstr "Un altre…" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Pàgina no trobada" @@ -4317,8 +4329,8 @@ msgstr "Pornografia" #~ msgid "Pornography" #~ msgstr "Pornografia" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "Publica" @@ -4404,7 +4416,7 @@ msgid "Press to change hosting provider" msgstr "Prem per canviar el proveïdor d'allotjament" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4427,7 +4439,7 @@ msgstr "Idioma principal" msgid "Prioritize Your Follows" msgstr "Prioritza els usuaris que segueixes" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privacitat" @@ -4435,7 +4447,7 @@ msgstr "Privacitat" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de privacitat" @@ -4465,7 +4477,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "Perfil actualitzat" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "Protegeix el teu compte verificant el teu correu." @@ -4481,11 +4493,11 @@ msgstr "Llistes d'usuaris per a silenciar o bloquejar en massa, públiques i per msgid "Public, shareable lists which can drive feeds." msgstr "Llistes que poden nodrir canals, públiques i per a compartir." -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "Publica" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "Publica la resposta" @@ -4539,7 +4551,7 @@ msgstr "Cerques recents" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4658,7 +4670,7 @@ msgstr "Respostes" msgid "Replies to this thread are disabled" msgstr "Les respostes a aquest fil de debat estan deshabilitades" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "Respon" @@ -4845,8 +4857,8 @@ msgstr "Codi de restabliment" #~ msgid "Reset onboarding" #~ msgstr "Restableix la incorporació" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "Restableix l'estat de la incorporació" @@ -4858,16 +4870,16 @@ msgstr "Restableix la contrasenya" #~ msgid "Reset preferences" #~ msgstr "Restableix les preferències" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "Restableix l'estat de les preferències" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "Restableix l'estat de la incorporació" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "Restableix l'estat de les preferències" @@ -4882,7 +4894,7 @@ msgstr "Torna a intentar l'última acció, que ha donat error" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5350,23 +5362,23 @@ msgstr "Configura el teu compte" msgid "Sets Bluesky username" msgstr "Estableix un nom d'usuari de Bluesky" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "Estableix el tema a fosc" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "Estableix el tema a clar" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "Estableix el tema a la configuració del sistema" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "Estableix el tema fosc al tema fosc" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "Estableix el tema fosc al tema atenuat" @@ -5462,7 +5474,7 @@ msgstr "Comparteix la web enllaçada" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "Mostra" @@ -5658,7 +5670,7 @@ msgstr "Registra't o inicia sessió per a unir-te a la conversa" msgid "Sign-in Required" msgstr "Es requereix iniciar sessió" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "S'ha iniciat sessió com a" @@ -5688,6 +5700,10 @@ msgstr "Salta aquest flux" msgid "Software Dev" msgstr "Desenvolupament de programari" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "Alguna cosa ha fallat" @@ -5768,7 +5784,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Pàgina d'estat" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "Pàgina d'estat" @@ -5789,7 +5805,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "L'emmagatzematge s'ha esborrat, cal que reinicieu l'aplicació ara." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Historial" @@ -5808,7 +5824,7 @@ msgstr "Subscriure's" msgid "Subscribe to @{0} to use these labels:" msgstr "Subscriu-te a @{0} per a utilitzar aquestes etiquetes:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "Subscriu-te a l'etiquetador" @@ -5817,7 +5833,7 @@ msgstr "Subscriu-te a l'etiquetador" msgid "Subscribe to the {0} feed" msgstr "Subscriu-te al canal {0}" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "Subscriu-te a aquest etiquetador" @@ -5860,11 +5876,11 @@ msgstr "Canvia a {0}" msgid "Switches the account you are logged in to" msgstr "Canvia en compte amb el que tens iniciada la sessió" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "Registres del sistema" @@ -5902,7 +5918,7 @@ msgstr "Condicions" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5994,7 +6010,7 @@ msgstr "Les condicions del servei han estat traslladades a" msgid "There are many feeds to try:" msgstr "Hi ha molts canals per a provar:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Hi ha hagut un problema per a contactar amb el servidor, comprova la teva connexió a internet i torna-ho a provar." @@ -6307,12 +6323,12 @@ msgstr "Això suprimirà {0} de les teves paraules silenciades. Sempre la pots t #~ msgid "This will hide this post from your feeds." #~ msgstr "Això amagarà aquesta publicació dels teus canals." -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "Preferències dels fils de debat" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "Preferències dels fils de debat" @@ -6373,7 +6389,7 @@ msgstr "Torna-ho a provar" #~ msgid "Try again" #~ msgstr "Torna-ho a provar" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "Autenticació de dos factors" @@ -6526,11 +6542,11 @@ msgstr "" #~ msgid "Unsave" #~ msgstr "No desis" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Dona't de baixa" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "Dona't de baixa d'aquest etiquetador" @@ -6731,15 +6747,15 @@ msgstr "Valor:" msgid "Verify DNS Record" msgstr "Verifica els registres de DNS" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "Verifica el correu" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "Verifica el meu correu" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "Verifica el meu correu" @@ -6760,7 +6776,7 @@ msgstr "Verifica el teu correu" #~ msgid "Version {0}" #~ msgstr "Versió {0}" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "Versió {appVersion} {bundleInfo}" @@ -6906,12 +6922,12 @@ msgstr "Ho sentim, però no hem pogut carregar les teves paraules silenciades en msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Ens sap greu, però la teva cerca no s'ha pogut fer. Prova-ho d'aquí una estona." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Ens sap greu! No podem trobar la pàgina que estàs cercant." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "Ho sentim! Només et pots subscriure a deu etiquetadors i has arribat al teu límit de deu." @@ -6949,13 +6965,12 @@ msgstr "Quins idiomes t'agradaria veure en els teus canals algorítmics?" msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "Qui hi pot respondre" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "Vaja!" @@ -6992,7 +7007,7 @@ msgstr "Amplada" msgid "Write a message" msgstr "Escriu un missatge" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "Escriu una publicació" @@ -7115,7 +7130,7 @@ msgstr "Has silenciat aquest usuari" #~ msgid "You have muted this user." #~ msgstr "Has silenciat aquest usuari." -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index d677bff5c1..0835baa0a0 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -104,8 +104,8 @@ msgstr "{following} folge ich" msgid "{handle} can't be messaged" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -185,11 +185,11 @@ msgid "Access profile and other navigation links" msgstr "Zugang zum Profil und anderen Navigationslinks" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "Barrierefreiheit" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "" @@ -203,8 +203,8 @@ msgstr "" #~ msgstr "" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "Konto" @@ -266,8 +266,8 @@ msgid "Add a user to this list" msgstr "Einen Nutzer zu dieser Liste hinzufügen" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "Konto hinzufügen" @@ -368,7 +368,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "Erweitert" @@ -477,13 +477,13 @@ msgstr "App-Passwortnamen dürfen nur Buchstaben, Zahlen, Leerzeichen, Bindestri msgid "App Password names must be at least 4 characters long." msgstr "App-Passwortnamen müssen mindestens 4 Zeichen lang sein." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "App-Passwort-Einstellungen" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "App-Passwörter" @@ -525,7 +525,7 @@ msgstr "Einspruch gegen diese Entscheidung" #~ msgid "Appeal this decision." #~ msgstr "Einspruch gegen diese Entscheidung." -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "Erscheinungsbild" @@ -558,7 +558,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Bist du sicher, dass du {0} von deinen Feeds entfernen möchtest?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "Bist du sicher, dass du diesen Entwurf verwerfen möchtest?" @@ -614,7 +614,7 @@ msgstr "Zurück" msgid "Based on your interest in {interestsText}" msgstr "Ausgehend von deinem Interesse an {interestsText}" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "Grundlagen" @@ -622,7 +622,7 @@ msgstr "Grundlagen" msgid "Birthday" msgstr "Geburtstag" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "Geburtstag:" @@ -860,17 +860,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "Ändern" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "Handle ändern" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "Handle ändern" @@ -878,12 +878,12 @@ msgstr "Handle ändern" msgid "Change my email" msgstr "Meine E-Mail ändern" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "Passwort ändern" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "Passwort Ändern" @@ -912,7 +912,7 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "" @@ -978,19 +978,19 @@ msgstr "Wähle deine Haupt-Feeds" msgid "Choose your password" msgstr "Wähle dein Passwort" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "Alle alten Speicherdaten löschen" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "Alle alten Speicherdaten löschen (danach neu starten)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "Alle Speicherdaten löschen" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "Alle Speicherdaten löschen (danach neu starten)" @@ -999,11 +999,11 @@ msgstr "Alle Speicherdaten löschen (danach neu starten)" msgid "Clear search query" msgstr "Suchanfrage löschen" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "" @@ -1126,7 +1126,7 @@ msgstr "Schließe das Onboarding ab und nutze dein Konto" msgid "Complete the challenge" msgstr "Beende die Herausforderung" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Verfasse Beiträge mit einer Länge von bis zu {MAX_GRAPHEME_LENGTH} Zeichen" @@ -1385,7 +1385,7 @@ msgstr "" msgid "Create a new account" msgstr "Ein neues Konto erstellen" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "Erstelle ein neues Bluesky-Konto" @@ -1453,8 +1453,8 @@ msgstr "Benutzerdefinierte Feeds, die von der Community erstellt wurden, bringen msgid "Customize media from external sites." msgstr "Passe die Einstellungen für Medien von externen Websites an." -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "Dunkel" @@ -1462,7 +1462,7 @@ msgstr "Dunkel" msgid "Dark mode" msgstr "Dunkelmodus" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "Dunkles Thema" @@ -1470,7 +1470,7 @@ msgstr "Dunkles Thema" msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "" @@ -1485,7 +1485,7 @@ msgstr "Debug-Panel" msgid "Delete" msgstr "Löschen" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "Konto löschen" @@ -1505,8 +1505,8 @@ msgstr "App-Passwort löschen" msgid "Delete app password?" msgstr "App-Passwort löschen?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1530,7 +1530,7 @@ msgstr "" msgid "Delete my account" msgstr "Mein Konto löschen" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "Mein Konto Löschen…" @@ -1555,7 +1555,7 @@ msgstr "Gelöscht" msgid "Deleted post." msgstr "Gelöschter Beitrag." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1574,7 +1574,7 @@ msgstr "" msgid "Did you want to say anything?" msgstr "Wolltest du etwas sagen?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "Dimmen" @@ -1609,7 +1609,7 @@ msgstr "" msgid "Disabled" msgstr "Deaktiviert" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "Verwerfen" @@ -1617,7 +1617,7 @@ msgstr "Verwerfen" #~ msgid "Discard draft" #~ msgstr "Entwurf verwerfen" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "Entwurf löschen?" @@ -1791,12 +1791,12 @@ msgstr "Meine Feeds bearbeiten" msgid "Edit my profile" msgstr "Mein Profil bearbeiten" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "Profil bearbeiten" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "Profil bearbeiten" @@ -1848,7 +1848,7 @@ msgstr "E-Mail aktualisiert" msgid "Email verified" msgstr "E-Mail verifiziert" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "E-Mail:" @@ -1912,6 +1912,10 @@ msgstr "Aktiviert" msgid "End of feed" msgstr "Ende des Feeds" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "Gebe einen Namen für dieses App-Passwort ein" @@ -1979,6 +1983,10 @@ msgstr "Fehler:" msgid "Everybody" msgstr "Alle" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -2032,12 +2040,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "Exportiere meine Daten" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "Exportiere meine Daten" @@ -2053,11 +2061,11 @@ msgstr "Externe Medien können es Websites ermöglichen, Informationen über dic #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "Externe Medienpräferenzen" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "Externe Medienpräferenzen" @@ -2296,7 +2304,7 @@ msgstr "Folge ich" msgid "Following {0}" msgstr "ich folge {0}" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "" @@ -2304,7 +2312,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "Following-Feed-Einstellungen" @@ -2791,7 +2799,7 @@ msgstr "" msgid "Language selection" msgstr "Sprachauswahl" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "Spracheinstellungen" @@ -2800,7 +2808,7 @@ msgstr "Spracheinstellungen" msgid "Language Settings" msgstr "Spracheinstellungen" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "Sprachen" @@ -2886,7 +2894,7 @@ msgstr "Los geht's!" #~ msgid "Library" #~ msgstr "Bibliothek" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "Licht" @@ -2894,7 +2902,7 @@ msgstr "Licht" #~ msgid "Like" #~ msgstr "Liken" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Diesen Feed liken" @@ -3113,14 +3121,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "" @@ -3134,7 +3142,7 @@ msgstr "Irreführender Account" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "Moderation" @@ -3174,7 +3182,7 @@ msgstr "Moderationslisten" msgid "Moderation Lists" msgstr "Moderationslisten" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "Moderationseinstellungen" @@ -3322,11 +3330,11 @@ msgstr "Meine Feeds" msgid "My Profile" msgstr "Mein Profil" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "Meine gespeicherten Feeds" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "Meine gespeicherten Feeds" @@ -3399,8 +3407,8 @@ msgid "New" msgstr "Neu" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "" @@ -3527,7 +3535,7 @@ msgstr "Kein Ergebnis" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "Keine Ergebnisse gefunden" @@ -3558,6 +3566,10 @@ msgstr "Nein danke" msgid "Nobody" msgstr "Niemand" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3591,7 +3603,7 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Hinweis: Bluesky ist ein offenes und öffentliches Netzwerk. Diese Einstellung schränkt lediglich die Sichtbarkeit deiner Inhalte in der Bluesky-App und auf der Website ein. Andere Apps respektieren diese Einstellung möglicherweise nicht. Deine Inhalte werden abgemeldeten Nutzern möglicherweise weiterhin in anderen Apps und Websites angezeigt." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3639,7 +3651,7 @@ msgid "Oh no! Something went wrong." msgstr "Oh nein, da ist etwas schief gelaufen." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "OK" @@ -3655,7 +3667,7 @@ msgstr "Älteste Antworten zuerst" msgid "Onboarding reset" msgstr "Onboarding zurücksetzen" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "Bei einem oder mehreren Bildern fehlt der Alt-Text." @@ -3671,11 +3683,11 @@ msgstr "Nur {0} kann antworten." msgid "Only contains letters, numbers, and hyphens" msgstr "Enthält nur Buchstaben, Nummern und Bindestriche" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "Ups, da ist etwas schief gelaufen!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3698,8 +3710,8 @@ msgstr "" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "Emoji-Picker öffnen" @@ -3707,7 +3719,7 @@ msgstr "Emoji-Picker öffnen" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "Links mit In-App-Browser öffnen" @@ -3731,12 +3743,12 @@ msgstr "Navigation öffnen" msgid "Open post options menu" msgstr "Beitragsoptionsmenü öffnen" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "Geschichtenbuch öffnen" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "" @@ -3744,7 +3756,7 @@ msgstr "" msgid "Opens {numItems} options" msgstr "Öffnet {numItems} Optionen" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "" @@ -3764,7 +3776,7 @@ msgstr "Öffnet die Kamera auf dem Gerät" msgid "Opens composer" msgstr "Öffnet den Beitragsverfasser" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "Öffnet die konfigurierbaren Spracheinstellungen" @@ -3776,7 +3788,7 @@ msgstr "Öffnet die Gerätefotogalerie" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Öffnet den Editor für Profilanzeige, Avatar, Hintergrundbild und Beschreibung" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "Öffnet die Einstellungen für externe eingebettete Medien" @@ -3806,7 +3818,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Öffnet die Liste der Einladungscodes" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3814,19 +3826,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Öffnet ein Modal, um die Löschung des Kontos zu bestätigen. Erfordert einen E-Mail-Code." -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "" @@ -3834,7 +3846,7 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Öffnet das Modal für die Verwendung einer benutzerdefinierten Domain" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "Öffnet die Moderationseinstellungen" @@ -3847,11 +3859,11 @@ msgstr "Öffnet das Formular zum Zurücksetzen des Passworts" msgid "Opens screen to edit Saved Feeds" msgstr "Öffnet den Bildschirm zum Bearbeiten gespeicherten Feeds" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "Öffnet den Bildschirm mit allen gespeicherten Feeds" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "" @@ -3859,7 +3871,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Öffnet die Einstellungsseite für das App-Passwort" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "" @@ -3875,16 +3887,16 @@ msgstr "" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "Öffnet die Geschichtenbuch" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "Öffnet die Systemprotokollseite" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "Öffnet die Thread-Einstellungen" @@ -3917,7 +3929,7 @@ msgstr "Andere..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Seite nicht gefunden" @@ -4094,8 +4106,8 @@ msgstr "Porno" #~ msgid "Pornography" #~ msgstr "" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "Beitrag" @@ -4175,7 +4187,7 @@ msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4198,7 +4210,7 @@ msgstr "Primäre Sprache" msgid "Prioritize Your Follows" msgstr "Priorisiere deine Follower" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privatsphäre" @@ -4206,7 +4218,7 @@ msgstr "Privatsphäre" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Datenschutzerklärung" @@ -4236,7 +4248,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil aktualisiert" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "Schütze dein Konto, indem du deine E-Mail bestätigst." @@ -4252,11 +4264,11 @@ msgstr "Öffentliche, gemeinsam nutzbare Listen von Nutzern, die du stummschalte msgid "Public, shareable lists which can drive feeds." msgstr "Öffentliche, gemeinsam nutzbare Listen, die Feeds steuern können." -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "Beitrag veröffentlichen" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "Antwort veröffentlichen" @@ -4306,7 +4318,7 @@ msgstr "" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4425,7 +4437,7 @@ msgstr "Antworten" msgid "Replies to this thread are disabled" msgstr "Antworten auf diesen Thread sind deaktiviert" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "Antworten" @@ -4600,8 +4612,8 @@ msgstr "Code zurücksetzen" #~ msgid "Reset onboarding" #~ msgstr "Onboarding zurücksetzen" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "Onboarding-Status zurücksetzen" @@ -4613,16 +4625,16 @@ msgstr "Passwort zurücksetzen" #~ msgid "Reset preferences" #~ msgstr "Einstellungen zurücksetzen" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "Einstellungen zurücksetzen" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "Setzt den Onboarding-Status zurück" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "Einstellungen zurücksetzen" @@ -4637,7 +4649,7 @@ msgstr "Wiederholung der letzten Aktion, bei der ein Fehler aufgetreten ist" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5069,23 +5081,23 @@ msgstr "Dein Konto einrichten" msgid "Sets Bluesky username" msgstr "Legt deinen Bluesky-Benutzernamen fest" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "" @@ -5181,7 +5193,7 @@ msgstr "" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "Anzeigen" @@ -5377,7 +5389,7 @@ msgstr "Registriere dich oder melden dich an, um an der Diskussion teilzunehmen" msgid "Sign-in Required" msgstr "Anmelden erforderlich" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "Angemeldet als" @@ -5403,6 +5415,10 @@ msgstr "Diesen Schritt überspringen" msgid "Software Dev" msgstr "Software-Entwicklung" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "" @@ -5471,7 +5487,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Status-Seite" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "" @@ -5492,7 +5508,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Der Speicher wurde gelöscht, du musst die App jetzt neu starten." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Geschichtenbuch" @@ -5511,7 +5527,7 @@ msgstr "Abonnieren" msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" @@ -5520,7 +5536,7 @@ msgstr "" msgid "Subscribe to the {0} feed" msgstr "Abonniere den {0} Feed" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "" @@ -5559,11 +5575,11 @@ msgstr "Wechseln zu {0}" msgid "Switches the account you are logged in to" msgstr "Wechselt das Konto, in das du eingeloggt bist" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "System" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "Systemprotokoll" @@ -5597,7 +5613,7 @@ msgstr "Bedingungen" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5685,7 +5701,7 @@ msgstr "Die Allgemeinen Geschäftsbedingungen wurden verschoben nach" msgid "There are many feeds to try:" msgstr "Es gibt viele Feeds zum Ausprobieren:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Es gab ein Problem bei der Kontaktaufnahme mit dem Server. Bitte überprüfe deine Internetverbindung und versuche es erneut." @@ -5983,12 +5999,12 @@ msgstr "Dies wird {0} aus deinen stummgeschalteten Wörtern löschen. Du kannst #~ msgid "This will hide this post from your feeds." #~ msgstr "Dadurch wird dieser Beitrag aus deinen Feeds ausgeblendet." -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "Thread-Einstellungen" @@ -6045,7 +6061,7 @@ msgctxt "action" msgid "Try again" msgstr "Erneut versuchen" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "" @@ -6194,11 +6210,11 @@ msgstr "" #~ msgid "Unsave" #~ msgstr "Speicherung aufheben" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "" @@ -6391,15 +6407,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "E-Mail bestätigen" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "Meine E-Mail bestätigen" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "Meine E-Mail bestätigen" @@ -6420,7 +6436,7 @@ msgstr "Überprüfe deine E-Mail" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6566,12 +6582,12 @@ msgstr "Es tut uns leid, aber wir konnten deine stummgeschalteten Wörter nicht msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Es tut uns leid, aber deine Suche konnte nicht abgeschlossen werden. Bitte versuche es in ein paar Minuten erneut." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Es tut uns leid! Wir können die Seite, nach der du gesucht hast, nicht finden." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "" @@ -6606,13 +6622,12 @@ msgstr "Welche Sprachen würdest du gerne in deinen algorithmischen Feeds sehen? msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "Wer antworten kann" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "" @@ -6649,7 +6664,7 @@ msgstr "Breit" msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "Beitrag verfassen" @@ -6764,7 +6779,7 @@ msgstr "" #~ msgid "You have muted this user." #~ msgstr "Du hast diesen Benutzer stummgeschaltet." -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index 44cb46de18..6bbe921ff6 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -104,8 +104,8 @@ msgstr "" msgid "{handle} can't be messaged" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -177,11 +177,11 @@ msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "" @@ -195,8 +195,8 @@ msgstr "" #~ msgstr "" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "" @@ -258,8 +258,8 @@ msgid "Add a user to this list" msgstr "" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "" @@ -347,7 +347,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "" @@ -456,13 +456,13 @@ msgstr "" msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "" @@ -491,7 +491,7 @@ msgstr "" msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "" @@ -524,7 +524,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "" @@ -571,7 +571,7 @@ msgstr "" msgid "Based on your interest in {interestsText}" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "" @@ -579,7 +579,7 @@ msgstr "" msgid "Birthday" msgstr "" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "" @@ -809,17 +809,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "" @@ -827,12 +827,12 @@ msgstr "" msgid "Change my email" msgstr "" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "" @@ -857,7 +857,7 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "" @@ -919,19 +919,19 @@ msgstr "" msgid "Choose your password" msgstr "" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "" @@ -940,11 +940,11 @@ msgstr "" msgid "Clear search query" msgstr "" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "" @@ -1067,7 +1067,7 @@ msgstr "" msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "" @@ -1304,7 +1304,7 @@ msgstr "" msgid "Create a new account" msgstr "" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "" @@ -1364,8 +1364,8 @@ msgstr "" msgid "Customize media from external sites." msgstr "" -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "" @@ -1373,7 +1373,7 @@ msgstr "" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "" @@ -1381,7 +1381,7 @@ msgstr "" msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "" @@ -1396,7 +1396,7 @@ msgstr "" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "" @@ -1416,8 +1416,8 @@ msgstr "" msgid "Delete app password?" msgstr "" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1441,7 +1441,7 @@ msgstr "" msgid "Delete my account" msgstr "" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "" @@ -1466,7 +1466,7 @@ msgstr "" msgid "Deleted post." msgstr "" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1485,7 +1485,7 @@ msgstr "" msgid "Did you want to say anything?" msgstr "" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "" @@ -1520,11 +1520,11 @@ msgstr "" msgid "Disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "" @@ -1690,12 +1690,12 @@ msgstr "" msgid "Edit my profile" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "" @@ -1747,7 +1747,7 @@ msgstr "" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "" @@ -1807,6 +1807,10 @@ msgstr "" msgid "End of feed" msgstr "" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "" @@ -1874,6 +1878,10 @@ msgstr "" msgid "Everybody" msgstr "" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1927,12 +1935,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "" @@ -1948,11 +1956,11 @@ msgstr "" #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "" @@ -2191,7 +2199,7 @@ msgstr "" msgid "Following {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "" @@ -2199,7 +2207,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "" @@ -2661,7 +2669,7 @@ msgstr "" msgid "Language selection" msgstr "" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "" @@ -2670,7 +2678,7 @@ msgstr "" msgid "Language Settings" msgstr "" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "" @@ -2743,7 +2751,7 @@ msgstr "" msgid "Let's go!" msgstr "" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "" @@ -2751,7 +2759,7 @@ msgstr "" #~ msgid "Like" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "" @@ -2957,14 +2965,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "" @@ -2978,7 +2986,7 @@ msgstr "" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "" @@ -3018,7 +3026,7 @@ msgstr "" msgid "Moderation Lists" msgstr "" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "" @@ -3158,11 +3166,11 @@ msgstr "" msgid "My Profile" msgstr "" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "" @@ -3222,8 +3230,8 @@ msgid "New" msgstr "" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "" @@ -3350,7 +3358,7 @@ msgstr "" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "" @@ -3381,6 +3389,10 @@ msgstr "" msgid "Nobody" msgstr "" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3414,7 +3426,7 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "" -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3458,7 +3470,7 @@ msgid "Oh no! Something went wrong." msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "" @@ -3474,7 +3486,7 @@ msgstr "" msgid "Onboarding reset" msgstr "" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "" @@ -3490,11 +3502,11 @@ msgstr "" msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3513,8 +3525,8 @@ msgstr "" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "" @@ -3522,7 +3534,7 @@ msgstr "" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "" @@ -3542,12 +3554,12 @@ msgstr "" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "" @@ -3555,7 +3567,7 @@ msgstr "" msgid "Opens {numItems} options" msgstr "" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "" @@ -3575,7 +3587,7 @@ msgstr "" msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "" @@ -3583,7 +3595,7 @@ msgstr "" msgid "Opens device photo gallery" msgstr "" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "" @@ -3605,23 +3617,23 @@ msgstr "" msgid "Opens list of invite codes" msgstr "" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "" @@ -3629,7 +3641,7 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "" @@ -3642,15 +3654,15 @@ msgstr "" msgid "Opens screen to edit Saved Feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "" @@ -3662,16 +3674,16 @@ msgstr "" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "" @@ -3704,7 +3716,7 @@ msgstr "" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "" @@ -3872,8 +3884,8 @@ msgstr "" msgid "Porn" msgstr "" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "" @@ -3953,7 +3965,7 @@ msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3976,7 +3988,7 @@ msgstr "" msgid "Prioritize Your Follows" msgstr "" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "" @@ -3984,7 +3996,7 @@ msgstr "" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "" @@ -4014,7 +4026,7 @@ msgstr "" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "" @@ -4030,11 +4042,11 @@ msgstr "" msgid "Public, shareable lists which can drive feeds." msgstr "" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "" @@ -4084,7 +4096,7 @@ msgstr "" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4191,7 +4203,7 @@ msgstr "" msgid "Replies to this thread are disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "" @@ -4358,8 +4370,8 @@ msgstr "" msgid "Reset Code" msgstr "" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "" @@ -4367,16 +4379,16 @@ msgstr "" msgid "Reset password" msgstr "" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "" @@ -4391,7 +4403,7 @@ msgstr "" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4776,23 +4788,23 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4879,7 +4891,7 @@ msgstr "" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "" @@ -5057,7 +5069,7 @@ msgstr "" msgid "Sign-in Required" msgstr "" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "" @@ -5079,6 +5091,10 @@ msgstr "" msgid "Software Dev" msgstr "" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "" @@ -5143,7 +5159,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "" @@ -5160,7 +5176,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "" @@ -5179,7 +5195,7 @@ msgstr "" msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" @@ -5188,7 +5204,7 @@ msgstr "" msgid "Subscribe to the {0} feed" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "" @@ -5227,11 +5243,11 @@ msgstr "" msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "" @@ -5265,7 +5281,7 @@ msgstr "" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5353,7 +5369,7 @@ msgstr "" msgid "There are many feeds to try:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" @@ -5635,12 +5651,12 @@ msgstr "" msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "" @@ -5697,7 +5713,7 @@ msgctxt "action" msgid "Try again" msgstr "" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "" @@ -5838,11 +5854,11 @@ msgstr "" msgid "Unpinned from your feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "" @@ -6027,15 +6043,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "" @@ -6056,7 +6072,7 @@ msgstr "" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6194,12 +6210,12 @@ msgstr "" msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "" @@ -6230,13 +6246,12 @@ msgstr "" msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "" @@ -6273,7 +6288,7 @@ msgstr "" msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "" @@ -6384,7 +6399,7 @@ msgstr "" msgid "You have muted this user" msgstr "" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index a1893d821d..2538186646 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -104,8 +104,8 @@ msgstr "{following} siguiendo" msgid "{handle} can't be messaged" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -165,11 +165,11 @@ msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "Accesibilidad" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "Ajustes de accesibilidad" @@ -183,8 +183,8 @@ msgstr "Ajustes de accesibilidad" #~ msgstr "cuenta" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "Cuenta" @@ -246,8 +246,8 @@ msgid "Add a user to this list" msgstr "Añadir cuenta a esta lista" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "Añadir cuenta" @@ -323,7 +323,7 @@ msgid "Adult content is disabled." msgstr "El contenido adulto esta desactivado." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "Avanzado" @@ -432,13 +432,13 @@ msgstr "El nombre de una contraseña de app sólo puede contener letras, número msgid "App Password names must be at least 4 characters long." msgstr "El nombre de una contraseña de app deben tener al menos 4 caracteres." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "Ajustes de contraseñas de app" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "Contraseñas de la app" @@ -467,7 +467,7 @@ msgstr "Apelación enviada" msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "Aparencia" @@ -500,7 +500,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "¿Seguro que quieres eliminar {0} de tus feeds?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "¿Seguro que quieres descartar este borrador?" @@ -547,7 +547,7 @@ msgstr "Atrás" msgid "Based on your interest in {interestsText}" msgstr "Basado en tus intereses en {interestsText}" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "General" @@ -555,7 +555,7 @@ msgstr "General" msgid "Birthday" msgstr "Cumpleaños" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "Cumpleaños:" @@ -766,17 +766,17 @@ msgstr "" msgid "Change" msgstr "Cambiar" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "Cambiar" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "Cambiar nombre de usuario" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "Cambiar nombre de usuario" @@ -784,12 +784,12 @@ msgstr "Cambiar nombre de usuario" msgid "Change my email" msgstr "Cambiar mi correo electrónico" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "Cambiar contraseña" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "Cambiar contraseña" @@ -814,7 +814,7 @@ msgstr "Chat muteado" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "Ajustes de chat" @@ -859,19 +859,19 @@ msgstr "Elige tus feeds principales" msgid "Choose your password" msgstr "Elige tu contraseña" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "Borrar todos los datos de almacenamiento heredados" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "Borrar todos los datos de almacenamiento heredados (reiniciar después de esto)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "Borrar todos los datos de almacenamiento" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "Borrar todos los datos de almacenamiento (reiniciar después de esto)" @@ -880,11 +880,11 @@ msgstr "Borrar todos los datos de almacenamiento (reiniciar después de esto)" msgid "Clear search query" msgstr "Borrar consulta de búsqueda" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "" @@ -1003,7 +1003,7 @@ msgstr "" msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "" @@ -1240,7 +1240,7 @@ msgstr "No se pudo mutear al chat" msgid "Create a new account" msgstr "Crear una cuenta nueva" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "" @@ -1296,8 +1296,8 @@ msgstr "" msgid "Customize media from external sites." msgstr "Preferencias sobre medios externos." -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "" @@ -1305,7 +1305,7 @@ msgstr "" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "" @@ -1313,7 +1313,7 @@ msgstr "" msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "" @@ -1328,7 +1328,7 @@ msgstr "" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "Borrar la cuenta" @@ -1348,8 +1348,8 @@ msgstr "Borrar la contraseña de la app" msgid "Delete app password?" msgstr "" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1373,7 +1373,7 @@ msgstr "" msgid "Delete my account" msgstr "Borrar mi cuenta" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "" @@ -1398,7 +1398,7 @@ msgstr "" msgid "Deleted post." msgstr "Se borró la post." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1417,7 +1417,7 @@ msgstr "" msgid "Did you want to say anything?" msgstr "¿Quieres decir algo?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "" @@ -1444,11 +1444,11 @@ msgstr "" msgid "Disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "Descartar" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "" @@ -1614,12 +1614,12 @@ msgstr "Editar mis noticias" msgid "Edit my profile" msgstr "Editar mi perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "Editar el perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "Editar el perfil" @@ -1671,7 +1671,7 @@ msgstr "Correo electrónico actualizado" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "Correo electrónico:" @@ -1731,6 +1731,10 @@ msgstr "" msgid "End of feed" msgstr "Fin de noticias" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "" @@ -1798,6 +1802,10 @@ msgstr "Error:" msgid "Everybody" msgstr "Todos" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1851,12 +1859,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "" @@ -1872,11 +1880,11 @@ msgstr "Es posible que medios externos permitan que otros sitios recopilen datos #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "Medios externos" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "Medios externos" @@ -2090,7 +2098,7 @@ msgstr "Siguiendo" msgid "Following {0}" msgstr "Siguiendo {0}" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "Feed de Siguiendo" @@ -2098,7 +2106,7 @@ msgstr "Feed de Siguiendo" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "Feed de Siguiendo" @@ -2555,7 +2563,7 @@ msgstr "" msgid "Language selection" msgstr "Escoger el idioma" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "Ajustes de Idiomas" @@ -2564,7 +2572,7 @@ msgstr "Ajustes de Idiomas" msgid "Language Settings" msgstr "Ajustes de Idiomas" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "Idiomas" @@ -2637,7 +2645,7 @@ msgstr "¡Vamos a restablecer tu contraseña!" msgid "Let's go!" msgstr "" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "" @@ -2645,7 +2653,7 @@ msgstr "" #~ msgid "Like" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Dar «me gusta» a esta noticia" @@ -2851,14 +2859,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "" @@ -2872,7 +2880,7 @@ msgstr "" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "Moderación" @@ -2912,7 +2920,7 @@ msgstr "Listas de moderación" msgid "Moderation Lists" msgstr "Listas de moderación" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "" @@ -3052,11 +3060,11 @@ msgstr "Mis feeds" msgid "My Profile" msgstr "Mi perfil" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "Mis feeds guardados" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "Mis feeds guardados" @@ -3111,8 +3119,8 @@ msgid "New" msgstr "Nuevo" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "" @@ -3234,7 +3242,7 @@ msgstr "Sin resultados" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "" @@ -3265,6 +3273,10 @@ msgstr "" msgid "Nobody" msgstr "Nadie" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3298,7 +3310,7 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky es una red abierta y pública. Esta configuración sólo limita la visibilidad de tu contenido en la aplicación y el sitio web de Bluesky, y es posible que otras aplicaciones no respeten esta configuración. Otras aplicaciones y sitios web pueden seguir mostrando tu contenido a los usuarios que hayan cerrado sesión." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3342,7 +3354,7 @@ msgid "Oh no! Something went wrong." msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "" @@ -3358,7 +3370,7 @@ msgstr "" msgid "Onboarding reset" msgstr "" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "Falta el texto alternativo en una o varias imágenes." @@ -3374,11 +3386,11 @@ msgstr "Solo {0} puede responder." msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3397,8 +3409,8 @@ msgstr "" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "" @@ -3406,7 +3418,7 @@ msgstr "" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "" @@ -3426,12 +3438,12 @@ msgstr "Abrir navegación" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "" @@ -3439,7 +3451,7 @@ msgstr "" msgid "Opens {numItems} options" msgstr "" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "" @@ -3459,7 +3471,7 @@ msgstr "" msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "Abrir la configuración del idioma que se puede ajustar" @@ -3467,7 +3479,7 @@ msgstr "Abrir la configuración del idioma que se puede ajustar" msgid "Opens device photo gallery" msgstr "" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "" @@ -3489,23 +3501,23 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Abre la lista de códigos de invitación" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "" @@ -3513,7 +3525,7 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Abre el modal para usar el dominio personalizado" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "Abre la configuración de moderación" @@ -3526,15 +3538,15 @@ msgstr "" msgid "Opens screen to edit Saved Feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "Abre la pantalla con todas las noticias guardadas" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "" @@ -3546,16 +3558,16 @@ msgstr "" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "Abre la página del libro de cuentos" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "Abre la página de la bitácora del sistema" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "Abre las preferencias de hilos" @@ -3588,7 +3600,7 @@ msgstr "Otro..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Página no encontrada" @@ -3756,8 +3768,8 @@ msgstr "Política" msgid "Porn" msgstr "Pornografía" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "Publicar" @@ -3837,7 +3849,7 @@ msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3860,7 +3872,7 @@ msgstr "Idioma primario" msgid "Prioritize Your Follows" msgstr "Priorizar los usuarios a los que sigue" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privacidad" @@ -3868,7 +3880,7 @@ msgstr "Privacidad" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de privacidad" @@ -3898,7 +3910,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "Protege tu cuenta verificando tu correo electrónico." @@ -3914,11 +3926,11 @@ msgstr "Listas públicas y compartibles de usuarios para mutear o bloquear en ca msgid "Public, shareable lists which can drive feeds." msgstr "Listas públicas y compartibles que pueden impulsar feeds." -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "" @@ -3960,7 +3972,7 @@ msgstr "" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4067,7 +4079,7 @@ msgstr "Respuestas" msgid "Replies to this thread are disabled" msgstr "Las respuestas a este hilo están desactivadas" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "" @@ -4224,8 +4236,8 @@ msgstr "Código de reseteo" msgid "Reset Code" msgstr "Código de reseteo" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "Restablecer el estado de incorporación" @@ -4233,16 +4245,16 @@ msgstr "Restablecer el estado de incorporación" msgid "Reset password" msgstr "Restablecer la contraseña" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "Restablecer el estado de preferencias" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "Restablece el estado de incorporación" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "Restablecer el estado de preferencias" @@ -4257,7 +4269,7 @@ msgstr "" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4638,23 +4650,23 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "" @@ -4741,7 +4753,7 @@ msgstr "" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "Ver" @@ -4919,7 +4931,7 @@ msgstr "Inicia sesión o crea una cuenta para unirte a la conversación" msgid "Sign-in Required" msgstr "Se requiere iniciar sesión" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "Sesión iniciada como" @@ -4941,6 +4953,10 @@ msgstr "Saltar" msgid "Software Dev" msgstr "Programación" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "Ocurrió un error" @@ -5001,7 +5017,7 @@ msgstr "" msgid "Start chatting" msgstr "" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "" @@ -5018,7 +5034,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Libro de cuentos" @@ -5037,7 +5053,7 @@ msgstr "Suscribirse" msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" @@ -5046,7 +5062,7 @@ msgstr "" msgid "Subscribe to the {0} feed" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "" @@ -5085,11 +5101,11 @@ msgstr "" msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "Bitácora del sistema" @@ -5123,7 +5139,7 @@ msgstr "Condiciones" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5211,7 +5227,7 @@ msgstr "Las condiciones de servicio se han trasladado a" msgid "There are many feeds to try:" msgstr "Hay muchos más feeds que probar:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" @@ -5493,12 +5509,12 @@ msgstr "" msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "Preferencias de hilos" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "Preferencias de hilos" @@ -5555,7 +5571,7 @@ msgctxt "action" msgid "Try again" msgstr "Intentar de nuevo" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "" @@ -5696,11 +5712,11 @@ msgstr "Desfijar lista de moderación" msgid "Unpinned from your feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "" @@ -5885,15 +5901,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "Verificar el correo electrónico" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "Verificar mi correo electrónico" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "Verificar mi correo electrónico" @@ -5910,7 +5926,7 @@ msgstr "" msgid "Verify Your Email" msgstr "" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6048,12 +6064,12 @@ msgstr "" msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Lo sentimos, pero no se ha podido completar tu búsqueda. Intenta de nuevo en unos minutos." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Lo sentimos. No encontramos la página que buscabas." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "Lo sentimos. Solo puedes suscribirte a hasta 10 etiquetadores, y has alcanzado el límite." @@ -6080,13 +6096,12 @@ msgstr "¿Qué idiomas te gustaría ver en tus feeds?" msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "Quién puede responder" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "Whoops!" @@ -6123,7 +6138,7 @@ msgstr "Ancho" msgid "Write a message" msgstr "Escribe un mensaje" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "Redacta un post" @@ -6234,7 +6249,7 @@ msgstr "Has muteado a esta cuenta." msgid "You have muted this user" msgstr "Has muteado a esta cuenta" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/fi/messages.po b/src/locale/locales/fi/messages.po index 0da5f49685..2c6c4888cc 100644 --- a/src/locale/locales/fi/messages.po +++ b/src/locale/locales/fi/messages.po @@ -104,8 +104,8 @@ msgstr "{following} seurattua" msgid "{handle} can't be messaged" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -177,11 +177,11 @@ msgid "Access profile and other navigation links" msgstr "Siirry profiiliin ja muihin navigointilinkkeihin" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "Saavutettavuus" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "Esteettömyysasetukset\"" @@ -195,8 +195,8 @@ msgstr "Esteettömyysasetukset\"" #~ msgstr "käyttäjätili" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "Käyttäjätili" @@ -258,8 +258,8 @@ msgid "Add a user to this list" msgstr "Lisää käyttäjä tähän listaan" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "Lisää käyttäjätili" @@ -339,7 +339,7 @@ msgid "Adult content is disabled." msgstr "Aikuissisältö on estetty" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "Edistyneemmät" @@ -448,13 +448,13 @@ msgstr "Sovelluksen salasanan nimet voivat sisältää vain kirjaimia, numeroita msgid "App Password names must be at least 4 characters long." msgstr "Sovelluksen salasanojen nimien on oltava vähintään 4 merkkiä pitkiä." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "Sovelluksen salasanan asetukset" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "Sovellussalasanat" @@ -483,7 +483,7 @@ msgstr "" msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "Ulkonäkö" @@ -516,7 +516,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Haluatko varmasti poistaa {0} syötteistäsi?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "Haluatko varmasti hylätä tämän luonnoksen?" @@ -563,7 +563,7 @@ msgstr "Takaisin" msgid "Based on your interest in {interestsText}" msgstr "Perustuen kiinnostukseesi {interestsText}" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "Perusasiat" @@ -571,7 +571,7 @@ msgstr "Perusasiat" msgid "Birthday" msgstr "Syntymäpäivä" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "Syntymäpäivä:" @@ -801,17 +801,17 @@ msgstr "Peruuttaa linkitetyn verkkosivuston avaamisen" msgid "Change" msgstr "Vaihda" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "Vaihda" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "Vaihda käyttäjätunnus" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "Vaihda käyttäjätunnus" @@ -819,12 +819,12 @@ msgstr "Vaihda käyttäjätunnus" msgid "Change my email" msgstr "Vaihda sähköpostiosoitteeni" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "Vaihda salasana" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "Vaihda salasana" @@ -849,7 +849,7 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "" @@ -911,19 +911,19 @@ msgstr "Valitse pääsyötteet" msgid "Choose your password" msgstr "Valitse salasanasi" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "Tyhjennä kaikki vanhan tietomallin mukaiset tiedot" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "Tyhjennä kaikki vanhan tietomallin tiedot (käynnistä uudelleen tämän jälkeen)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "Tyhjennä kaikki tallennukset" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "Tyhjennä kaikki tallennukset (käynnistä uudelleen tämän jälkeen)" @@ -932,11 +932,11 @@ msgstr "Tyhjennä kaikki tallennukset (käynnistä uudelleen tämän jälkeen)" msgid "Clear search query" msgstr "Tyhjennä hakukysely" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "Tyhjentää kaikki tallennustiedot" @@ -1055,7 +1055,7 @@ msgstr "Suorita käyttöönotto loppuun ja aloita käyttäjätilisi käyttö" msgid "Complete the challenge" msgstr "Tee haaste loppuun" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Laadi viestejä, joiden pituus on enintään {MAX_GRAPHEME_LENGTH} merkkiä" @@ -1292,7 +1292,7 @@ msgstr "" msgid "Create a new account" msgstr "Luo uusi käyttäjätili" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "Luo uusi Bluesky-tili" @@ -1348,8 +1348,8 @@ msgstr "Yhteisön rakentamat mukautetut syötteet tuovat sinulle uusia kokemuksi msgid "Customize media from external sites." msgstr "Muokkaa ulkoisten sivustojen mediasisältöjen asetuksia" -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "Tumma" @@ -1357,7 +1357,7 @@ msgstr "Tumma" msgid "Dark mode" msgstr "Tumma ulkoasu" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "Tumma teema" @@ -1365,7 +1365,7 @@ msgstr "Tumma teema" msgid "Date of birth" msgstr "Syntymäaika" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "" @@ -1380,7 +1380,7 @@ msgstr "Vianetsintäpaneeli" msgid "Delete" msgstr "Poista" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "Poista käyttäjätili" @@ -1400,8 +1400,8 @@ msgstr "Poista sovellussalasana" msgid "Delete app password?" msgstr "Poista sovellussalasana" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1425,7 +1425,7 @@ msgstr "" msgid "Delete my account" msgstr "Poista käyttäjätilini" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "Poista käyttäjätilini…" @@ -1450,7 +1450,7 @@ msgstr "Poistettu" msgid "Deleted post." msgstr "Poistettu viesti." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1469,7 +1469,7 @@ msgstr "" msgid "Did you want to say anything?" msgstr "Haluatko sanoa jotain?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "Himmeä" @@ -1496,11 +1496,11 @@ msgstr "Poista haptiset palautteet käytöstä" msgid "Disabled" msgstr "Poistettu käytöstä" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "Hylkää" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "Hylkää luonnos?" @@ -1666,12 +1666,12 @@ msgstr "Muokkaa syötteitä" msgid "Edit my profile" msgstr "Muokkaa profiilia" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "Muokkaa profiilia" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "Muokkaa profiilia" @@ -1723,7 +1723,7 @@ msgstr "Sähköpostiosoite päivitetty" msgid "Email verified" msgstr "Sähköpostiosoite vahvistettu" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "Sähköpostiosoite:" @@ -1783,6 +1783,10 @@ msgstr "Käytössä" msgid "End of feed" msgstr "Syötteen loppu" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "Anna sovellusalasanalle nimi" @@ -1850,6 +1854,10 @@ msgstr "Virhe:" msgid "Everybody" msgstr "Kaikki" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1903,12 +1911,12 @@ msgstr "Selvästi tai mahdollisesti häiritsevä media." msgid "Explicit sexual images." msgstr "Selvästi seksuaalista kuvamateriaalia." -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "Vie tietoni" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "Vie tietoni" @@ -1924,11 +1932,11 @@ msgstr "Ulkoiset mediat voivat sallia verkkosivustojen kerätä tietoja sinusta #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "Ulkoisten mediasoittimien asetukset" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "Ulkoisten mediasoittimien asetukset" @@ -2159,7 +2167,7 @@ msgstr "Seurataan" msgid "Following {0}" msgstr "Seurataan {0}" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "Seuratut -syötteen asetukset" @@ -2167,7 +2175,7 @@ msgstr "Seuratut -syötteen asetukset" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "Seuratut -syötteen asetukset" @@ -2629,7 +2637,7 @@ msgstr "" msgid "Language selection" msgstr "Kielen valinta" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "Kielen asetukset" @@ -2638,7 +2646,7 @@ msgstr "Kielen asetukset" msgid "Language Settings" msgstr "Kielen asetukset" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "Kielet" @@ -2711,7 +2719,7 @@ msgstr "Aloitetaan salasanasi nollaus!" msgid "Let's go!" msgstr "Aloitetaan!" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "Vaalea" @@ -2719,7 +2727,7 @@ msgstr "Vaalea" #~ msgid "Like" #~ msgstr "Tykkää" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Tykkää tästä syötteestä" @@ -2925,14 +2933,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "" @@ -2946,7 +2954,7 @@ msgstr "Harhaanjohtava käyttäjätili" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "Moderointi" @@ -2986,7 +2994,7 @@ msgstr "Moderointilistat" msgid "Moderation Lists" msgstr "Moderointilistat" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "Moderointiasetukset" @@ -3126,11 +3134,11 @@ msgstr "Omat syötteet" msgid "My Profile" msgstr "Profiilini" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "Tallennetut syötteeni" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "Tallennetut syötteeni" @@ -3190,8 +3198,8 @@ msgid "New" msgstr "Uusi" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "" @@ -3318,7 +3326,7 @@ msgstr "Ei tuloksia" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "Tuloksia ei löydetty" @@ -3349,6 +3357,10 @@ msgstr "Ei kiitos" msgid "Nobody" msgstr "Ei kukaan" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3382,7 +3394,7 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Huomio: Bluesky on avoin ja julkinen verkosto. Tämä asetus rajoittaa vain sisältösi näkyvyyttä Bluesky-sovelluksessa ja -sivustolla, eikä muut sovellukset ehkä kunnioita tässä asetuksissaan. Sisältösi voi silti näkyä uloskirjautuneille käyttäjille muissa sovelluksissa ja verkkosivustoilla." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3426,7 +3438,7 @@ msgid "Oh no! Something went wrong." msgstr "Voi ei! Jokin meni pieleen." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "OK" @@ -3442,7 +3454,7 @@ msgstr "Vanhimmat vastaukset ensin" msgid "Onboarding reset" msgstr "Käyttöönoton nollaus" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "Yksi tai useampi kuva on ilman vaihtoehtoista Alt-tekstiä." @@ -3458,11 +3470,11 @@ msgstr "Vain {0} voi vastata." msgid "Only contains letters, numbers, and hyphens" msgstr "Sisältää vain kirjaimia, numeroita ja väliviivoja" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "Hups, nyt meni jotain väärin!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3481,8 +3493,8 @@ msgstr "" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "Avaa emoji-valitsin" @@ -3490,7 +3502,7 @@ msgstr "Avaa emoji-valitsin" msgid "Open feed options menu" msgstr "Avaa syötteen asetusvalikko" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "Avaa linkit sovelluksen sisäisellä selaimella" @@ -3510,12 +3522,12 @@ msgstr "Avaa navigointi" msgid "Open post options menu" msgstr "Avaa viestin asetusvalikko" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "Avaa storybook-sivu" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "Avaa järjestelmäloki" @@ -3523,7 +3535,7 @@ msgstr "Avaa järjestelmäloki" msgid "Opens {numItems} options" msgstr "Avaa {numItems} asetusta" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "Avaa esteettömyysasetukset" @@ -3543,7 +3555,7 @@ msgstr "Avaa laitteen kameran" msgid "Opens composer" msgstr "Avaa editorin" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "Avaa mukautettavat kielen asetukset" @@ -3551,7 +3563,7 @@ msgstr "Avaa mukautettavat kielen asetukset" msgid "Opens device photo gallery" msgstr "Avaa laitteen valokuvat" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "Avaa ulkoiset upotusasetukset" @@ -3573,23 +3585,23 @@ msgstr "Avaa GIF-valinnan valintaikkunan." msgid "Opens list of invite codes" msgstr "Avaa kutsukoodien luettelon" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "" @@ -3597,7 +3609,7 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Avaa asetukset oman verkkotunnuksen käyttöönottoon" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "Avaa moderointiasetukset" @@ -3610,15 +3622,15 @@ msgstr "Avaa salasanan palautuslomakkeen" msgid "Opens screen to edit Saved Feeds" msgstr "Avaa näkymän tallennettujen syötteiden muokkaamiseen" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "Avaa näkymän kaikkiin tallennettuihin syötteisiin" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "Avaa sovelluksen salasanojen asetukset" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "Avaa Seuratut-syötteen asetukset" @@ -3630,16 +3642,16 @@ msgstr "Avaa linkitetyn verkkosivun" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "Avaa storybook-sivun" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "Avaa järjestelmän lokisivun" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "Avaa keskusteluasetukset" @@ -3672,7 +3684,7 @@ msgstr "Muu..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Sivua ei löytynyt" @@ -3840,8 +3852,8 @@ msgstr "Politiikka" msgid "Porn" msgstr "Porno" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "Lähetä" @@ -3921,7 +3933,7 @@ msgid "Press to change hosting provider" msgstr "Klikkaa vaihtaaksesi palveluntarjoajaa" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3944,7 +3956,7 @@ msgstr "Ensisijainen kieli" msgid "Prioritize Your Follows" msgstr "Aseta seurattavat tärkeysjärjestykseen" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Yksityisyys" @@ -3952,7 +3964,7 @@ msgstr "Yksityisyys" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Yksityisyydensuojakäytäntö" @@ -3982,7 +3994,7 @@ msgstr "Profiili" msgid "Profile updated" msgstr "Profiili päivitetty" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "Suojaa käyttäjätilisi vahvistamalla sähköpostiosoitteesi." @@ -3998,11 +4010,11 @@ msgstr "Julkinen, jaettava käyttäjäluettelo hiljennettyjen tai estettyjen kä msgid "Public, shareable lists which can drive feeds." msgstr "Julkinen, jaettava lista, joka voi ohjata syötteitä." -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "Julkaise viesti" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "Julkaise vastaus" @@ -4052,7 +4064,7 @@ msgstr "Viimeaikaiset haut" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4159,7 +4171,7 @@ msgstr "Vastaukset" msgid "Replies to this thread are disabled" msgstr "Tähän keskusteluun vastaaminen on estetty" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "Vastaa" @@ -4316,8 +4328,8 @@ msgstr "Nollauskoodi" msgid "Reset Code" msgstr "Nollauskoodi" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "Nollaa käyttöönoton tila" @@ -4325,16 +4337,16 @@ msgstr "Nollaa käyttöönoton tila" msgid "Reset password" msgstr "Nollaa salasana" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "Nollaa asetusten tila" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "Nollaa käyttöönoton tilan" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "Nollaa asetusten tilan" @@ -4349,7 +4361,7 @@ msgstr "Yrittää uudelleen viimeisintä toimintoa, joka epäonnistui" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4730,23 +4742,23 @@ msgstr "Luo käyttäjätili" msgid "Sets Bluesky username" msgstr "Asettaa Bluesky-käyttäjätunnuksen" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "Muuttaa väriteeman tummaksi" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "Muuttaa väriteeman vaaleaksi" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "Muuttaa väriteeman käyttöjärjestelmän mukaiseksi" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "Muuttaa tumman väriteeman tummaksi" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "Asettaa tumman teeman himmeäksi teemaksi" @@ -4833,7 +4845,7 @@ msgstr "Jakaa linkitetyn verkkosivun" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "Näytä" @@ -5011,7 +5023,7 @@ msgstr "Rekisteröidy tai kirjaudu sisään liittyäksesi keskusteluun" msgid "Sign-in Required" msgstr "Sisäänkirjautuminen vaaditaan" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "Kirjautunut sisään nimellä" @@ -5033,6 +5045,10 @@ msgstr "Ohita tämä vaihe" msgid "Software Dev" msgstr "Ohjelmistokehitys" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "" @@ -5097,7 +5113,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Tilasivu" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "" @@ -5114,7 +5130,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Tallennustila tyhjennetty, sinun on käynnistettävä sovellus uudelleen." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Storybook" @@ -5133,7 +5149,7 @@ msgstr "Tilaa" msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" @@ -5142,7 +5158,7 @@ msgstr "" msgid "Subscribe to the {0} feed" msgstr "Tilaa {0}-syöte" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "" @@ -5181,11 +5197,11 @@ msgstr "Vaihda käyttäjään {0}" msgid "Switches the account you are logged in to" msgstr "Vaihtaa sisäänkirjautuneen käyttäjän tilin" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "Järjestelmä" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "Järjestelmäloki" @@ -5219,7 +5235,7 @@ msgstr "Ehdot" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5307,7 +5323,7 @@ msgstr "Käyttöehdot on siirretty kohtaan" msgid "There are many feeds to try:" msgstr "On monia syötteitä kokeiltavaksi:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Emme saaneet yhteyttä palvelimeen, tarkista internetyhteytesi ja yritä uudelleen." @@ -5589,12 +5605,12 @@ msgstr "Tämä käyttäjä ei seuraa ketään." msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Tämä poistaa {0}:n hiljennetyistä sanoistasi. Voit lisätä sen takaisin myöhemmin." -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "Keskusteluketjun asetukset" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "Keskusteluketjun asetukset" @@ -5651,7 +5667,7 @@ msgctxt "action" msgid "Try again" msgstr "Yritä uudelleen" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "Kaksivaiheinen tunnistautuminen" @@ -5792,11 +5808,11 @@ msgstr "Poista moderointilistan kiinnitys" msgid "Unpinned from your feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Peruuta tilaus" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "" @@ -5981,15 +5997,15 @@ msgstr "Arvo:" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "Varmista sähköposti" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "Vahvista sähköpostini" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "Vahvista sähköpostini" @@ -6010,7 +6026,7 @@ msgstr "Vahvista sähköpostisi" #~ msgid "Version {0}" #~ msgstr "Versio {0}" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6148,12 +6164,12 @@ msgstr "Pahoittelemme, emme pystyneet lataamaan hiljennettyjä sanojasi tällä msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Pahoittelemme, hakuasi ei voitu suorittaa loppuun. Yritä uudelleen muutaman minuutin kuluttua." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Pahoittelut! Emme löydä etsimääsi sivua." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "" @@ -6184,13 +6200,12 @@ msgstr "Mitä kieliä haluaisit nähdä algoritmisissä syötteissä?" msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "Kuka voi vastata" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "" @@ -6227,7 +6242,7 @@ msgstr "Leveä" msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "Kirjoita viesti" @@ -6338,7 +6353,7 @@ msgstr "Olet hiljentänyt tämän käyttäjätilin." msgid "You have muted this user" msgstr "Olet hiljentänyt tämän käyttäjän" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index cfe3e0b077..d4cbac3e72 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -92,8 +92,8 @@ msgstr "{following} abonnements" msgid "{handle} can't be messaged" msgstr "{handle} ne peut être contacté par message" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{likeCount, plural, one {Liké par # compte} other {Liké par # comptes}}" @@ -140,11 +140,11 @@ msgid "Access profile and other navigation links" msgstr "Accède au profil et aux autres liens de navigation" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "Accessibilité" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "Paramètres d’accessibilité" @@ -154,8 +154,8 @@ msgid "Accessibility Settings" msgstr "Paramètres d’accessibilité" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "Compte" @@ -217,8 +217,8 @@ msgid "Add a user to this list" msgstr "Ajouter un compte à cette liste" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "Ajouter un compte" @@ -290,7 +290,7 @@ msgid "Adult content is disabled." msgstr "Le contenu pour adultes est désactivé." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "Avancé" @@ -395,13 +395,13 @@ msgstr "Les noms de mots de passe d’application ne peuvent contenir que des le msgid "App Password names must be at least 4 characters long." msgstr "Les noms de mots de passe d’application doivent comporter au moins 4 caractères." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "Paramètres de mot de passe d’application" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "Mots de passe d’application" @@ -426,7 +426,7 @@ msgstr "Appel soumis" msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "Affichage" @@ -451,7 +451,7 @@ msgstr "Êtes-vous sûr de vouloir partir de cette conversation ? Vos messages msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Êtes-vous sûr de vouloir supprimer {0} de vos fils d’actu ?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "Êtes-vous sûr de vouloir rejeter ce brouillon ?" @@ -498,7 +498,7 @@ msgstr "Arrière" msgid "Based on your interest in {interestsText}" msgstr "En fonction de votre intérêt pour {interestsText}" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "Principes de base" @@ -506,7 +506,7 @@ msgstr "Principes de base" msgid "Birthday" msgstr "Date de naissance" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "Date de naissance :" @@ -717,17 +717,17 @@ msgstr "Annule l’ouverture du site web lié" msgid "Change" msgstr "Modifier" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "Modifier" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "Modifier le pseudo" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "Modifier le pseudo" @@ -735,12 +735,12 @@ msgstr "Modifier le pseudo" msgid "Change my email" msgstr "Modifier mon e-mail" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "Modifier le mot de passe" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "Modifier le mot de passe" @@ -765,7 +765,7 @@ msgstr "Discussion masquée" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "Paramètres de discussion" @@ -810,19 +810,19 @@ msgstr "Choisissez vos principaux fils d’actu" msgid "Choose your password" msgstr "Choisissez votre mot de passe" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "Effacer toutes les données de stockage existantes" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "Effacer toutes les données de stockage existantes (redémarrer ensuite)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "Effacer toutes les données de stockage" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "Effacer toutes les données de stockage (redémarrer ensuite)" @@ -831,11 +831,11 @@ msgstr "Effacer toutes les données de stockage (redémarrer ensuite)" msgid "Clear search query" msgstr "Effacer la recherche" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "Efface toutes les données de stockage existantes" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "Efface toutes les données de stockage" @@ -950,7 +950,7 @@ msgstr "Terminez le didacticiel et commencez à utiliser votre compte" msgid "Complete the challenge" msgstr "Compléter le défi" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Permet d’écrire des posts de {MAX_GRAPHEME_LENGTH} caractères maximum" @@ -1175,7 +1175,7 @@ msgstr "Impossible de masquer la discussion" msgid "Create a new account" msgstr "Créer un nouveau compte" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "Créer un compte Bluesky" @@ -1231,8 +1231,8 @@ msgstr "Les fils d’actu personnalisés élaborés par la communauté vous font msgid "Customize media from external sites." msgstr "Personnaliser les médias provenant de sites externes." -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "Sombre" @@ -1240,7 +1240,7 @@ msgstr "Sombre" msgid "Dark mode" msgstr "Mode sombre" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "Thème sombre" @@ -1248,7 +1248,7 @@ msgstr "Thème sombre" msgid "Date of birth" msgstr "Date de naissance" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "Déboguer la modération" @@ -1263,7 +1263,7 @@ msgstr "Panneau de débug" msgid "Delete" msgstr "Supprimer" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "Supprimer le compte" @@ -1279,8 +1279,8 @@ msgstr "Supprimer le mot de passe de l’appli" msgid "Delete app password?" msgstr "Supprimer le mot de passe de l’appli ?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "Supprimer la déclaration d’ouverture aux discussions" @@ -1304,7 +1304,7 @@ msgstr "Supprimer le message pour moi" msgid "Delete my account" msgstr "Supprimer mon compte" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "Supprimer mon compte…" @@ -1329,7 +1329,7 @@ msgstr "Supprimé" msgid "Deleted post." msgstr "Post supprimé." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "Supprime l’enregistrement de déclaration de discussion" @@ -1348,7 +1348,7 @@ msgstr "Texte alt descriptif" msgid "Did you want to say anything?" msgstr "Vous vouliez dire quelque chose ?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "Atténué" @@ -1375,11 +1375,11 @@ msgstr "Désactiver le retour haptique" msgid "Disabled" msgstr "Désactivé" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "Ignorer" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "Abandonner le brouillon ?" @@ -1545,12 +1545,12 @@ msgstr "Modifier mes fils d’actu" msgid "Edit my profile" msgstr "Modifier mon profil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "Modifier le profil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "Modifier le profil" @@ -1602,7 +1602,7 @@ msgstr "E-mail mis à jour" msgid "Email verified" msgstr "Adresse e-mail vérifiée" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "E-mail :" @@ -1662,6 +1662,10 @@ msgstr "Activé" msgid "End of feed" msgstr "Fin du fil d’actu" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "Entrer un nom pour ce mot de passe d’application" @@ -1729,6 +1733,10 @@ msgstr "Erreur :" msgid "Everybody" msgstr "Tout le monde" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1782,12 +1790,12 @@ msgstr "Médias explicites ou potentiellement dérangeants." msgid "Explicit sexual images." msgstr "Images sexuelles explicites." -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "Exporter mes données" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "Exporter mes données" @@ -1803,11 +1811,11 @@ msgstr "Les médias externes peuvent permettre à des sites web de collecter des #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "Préférences sur les médias externes" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "Préférences sur les médias externes" @@ -2013,7 +2021,7 @@ msgstr "Suivi" msgid "Following {0}" msgstr "Suit {0}" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "Préférences du fil d’actu « Following »" @@ -2021,7 +2029,7 @@ msgstr "Préférences du fil d’actu « Following »" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "Préférences en matière de fil d’actu « Following »" @@ -2470,7 +2478,7 @@ msgstr "Étiquettes sur votre contenu" msgid "Language selection" msgstr "Sélection de la langue" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "Préférences de langue" @@ -2479,7 +2487,7 @@ msgstr "Préférences de langue" msgid "Language Settings" msgstr "Paramètres linguistiques" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "Langues" @@ -2552,11 +2560,11 @@ msgstr "Réinitialisez votre mot de passe !" msgid "Let's go!" msgstr "Allons-y !" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "Clair" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Liker ce fil d’actu" @@ -2744,14 +2752,14 @@ msgstr "Champ d’écriture du message" msgid "Message is too long" msgstr "Le message est trop long" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "Paramètres des messages" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "Messages" @@ -2761,7 +2769,7 @@ msgstr "Compte trompeur" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "Modération" @@ -2801,7 +2809,7 @@ msgstr "Listes de modération" msgid "Moderation Lists" msgstr "Listes de modération" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "Paramètres de modération" @@ -2936,11 +2944,11 @@ msgstr "Mes fils d’actu" msgid "My Profile" msgstr "Mon profil" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "Mes fils d’actu enregistrés" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "Mes fils d’actu enregistrés" @@ -2995,8 +3003,8 @@ msgid "New" msgstr "Nouveau" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "Nouvelle discussion" @@ -3122,7 +3130,7 @@ msgstr "Aucun résultat" msgid "No results" msgstr "Aucun résultat" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "Aucun résultat trouvé" @@ -3149,6 +3157,10 @@ msgstr "Non merci" msgid "Nobody" msgstr "Personne" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3178,7 +3190,7 @@ msgstr "Note sur le partage" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Remarque : Bluesky est un réseau ouvert et public. Ce paramètre limite uniquement la visibilité de votre contenu sur l’application et le site Web de Bluesky, et d’autres applications peuvent ne pas respecter ce paramètre. Votre contenu peut toujours être montré aux personnes non connectées par d’autres applications et sites Web." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3218,7 +3230,7 @@ msgid "Oh no! Something went wrong." msgstr "Oh non ! Il y a eu un problème." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "OK" @@ -3234,7 +3246,7 @@ msgstr "Plus anciennes réponses en premier" msgid "Onboarding reset" msgstr "Réinitialiser le didacticiel" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "Une ou plusieurs images n’ont pas de texte alt." @@ -3250,11 +3262,11 @@ msgstr "Seul {0} peut répondre." msgid "Only contains letters, numbers, and hyphens" msgstr "Ne contient que des lettres, des chiffres et des traits d’union" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "Oups, quelque chose n’a pas marché !" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3273,8 +3285,8 @@ msgstr "Ouvre le créateur d’avatar" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "Ouvrir le sélecteur d’emoji" @@ -3282,7 +3294,7 @@ msgstr "Ouvrir le sélecteur d’emoji" msgid "Open feed options menu" msgstr "Ouvrir le menu des options de fil d’actu" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "Ouvrir des liens avec le navigateur interne à l’appli" @@ -3302,12 +3314,12 @@ msgstr "Navigation ouverte" msgid "Open post options menu" msgstr "Ouvrir le menu d’options du post" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "Ouvrir la page Storybook" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "Ouvrir le journal du système" @@ -3315,7 +3327,7 @@ msgstr "Ouvrir le journal du système" msgid "Opens {numItems} options" msgstr "Ouvre {numItems} options" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "Ouvre les paramètres d’accessibilité" @@ -3335,7 +3347,7 @@ msgstr "Ouvre l’appareil photo de l’appareil" msgid "Opens composer" msgstr "Ouvre le rédacteur" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "Ouvre les paramètres linguistiques configurables" @@ -3343,7 +3355,7 @@ msgstr "Ouvre les paramètres linguistiques configurables" msgid "Opens device photo gallery" msgstr "Ouvre la galerie de photos de l’appareil" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "Ouvre les paramètres d’intégration externe" @@ -3365,23 +3377,23 @@ msgstr "Ouvre la sélection de GIF" msgid "Opens list of invite codes" msgstr "Ouvre la liste des codes d’invitation" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Ouvre la fenêtre modale pour confirmer la suppression du compte. Requiert un code e-mail." -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "Ouvre une fenêtre modale pour changer le mot de passe de Bluesky" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Ouvre une fenêtre modale pour choisir un nouveau pseudo Bluesky" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Ouvre une fenêtre modale pour télécharger les données du compte Bluesky (dépôt)" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "Ouvre une fenêtre modale pour la vérification de l’e-mail" @@ -3389,7 +3401,7 @@ msgstr "Ouvre une fenêtre modale pour la vérification de l’e-mail" msgid "Opens modal for using custom domain" msgstr "Ouvre une fenêtre modale pour utiliser un domaine personnalisé" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "Ouvre les paramètres de modération" @@ -3402,15 +3414,15 @@ msgstr "Ouvre le formulaire de réinitialisation du mot de passe" msgid "Opens screen to edit Saved Feeds" msgstr "Ouvre l’écran pour modifier les fils d’actu enregistrés" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "Ouvre l’écran avec tous les fils d’actu enregistrés" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "Ouvre les paramètres du mot de passe de l’application" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "Ouvre les préférences du fil d’actu « Following »" @@ -3418,16 +3430,16 @@ msgstr "Ouvre les préférences du fil d’actu « Following »" msgid "Opens the linked website" msgstr "Ouvre le site web lié" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "Ouvre la page de l’historique" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "Ouvre la page du journal système" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "Ouvre les préférences relatives aux fils de discussion" @@ -3460,7 +3472,7 @@ msgstr "Autre…" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "Notre modération a examiné les signalements qu’elle a reçu et a décidé de désactiver vos accès aux discussion sur Bluesky." -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Page introuvable" @@ -3628,8 +3640,8 @@ msgstr "Politique" msgid "Porn" msgstr "Porno" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "Poster" @@ -3709,7 +3721,7 @@ msgid "Press to change hosting provider" msgstr "Appuyer pour changer d’hébergeur" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3727,7 +3739,7 @@ msgstr "Langue principale" msgid "Prioritize Your Follows" msgstr "Définissez des priorités de vos suivis" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Vie privée" @@ -3735,7 +3747,7 @@ msgstr "Vie privée" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Charte de confidentialité" @@ -3765,7 +3777,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil mis à jour" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "Protégez votre compte en vérifiant votre e-mail." @@ -3781,11 +3793,11 @@ msgstr "Listes publiques et partageables de comptes à masquer ou à bloquer." msgid "Public, shareable lists which can drive feeds." msgstr "Les listes publiques et partageables qui peuvent alimenter les fils d’actu." -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "Publier le post" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "Publier la réponse" @@ -3823,7 +3835,7 @@ msgstr "Recherches récentes" msgid "Reconnect" msgstr "Se reconnecter" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -3930,7 +3942,7 @@ msgstr "Réponses" msgid "Replies to this thread are disabled" msgstr "Les réponses à ce fil de discussion sont désactivées" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "Répondre" @@ -4087,8 +4099,8 @@ msgstr "Réinitialiser le code" msgid "Reset Code" msgstr "Code de réinitialisation" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "Réinitialisation du didacticiel" @@ -4096,16 +4108,16 @@ msgstr "Réinitialisation du didacticiel" msgid "Reset password" msgstr "Réinitialiser mot de passe" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "Réinitialiser l’état des préférences" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "Réinitialise l’état d’accueil" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "Réinitialise l’état des préférences" @@ -4120,7 +4132,7 @@ msgstr "Réessaye la dernière action, qui a échoué" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4489,23 +4501,23 @@ msgstr "Créez votre compte" msgid "Sets Bluesky username" msgstr "Définit le pseudo Bluesky" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "Change le thème de couleur en sombre" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "Change le thème de couleur en clair" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "Change le thème de couleur en fonction du paramètre système" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "Change le thème sombre comme étant le plus sombre" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "Change le thème sombre comme étant le thème atténué" @@ -4592,7 +4604,7 @@ msgstr "Partage le site web lié" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "Afficher" @@ -4762,7 +4774,7 @@ msgstr "S’inscrire ou se connecter pour participer à la conversation" msgid "Sign-in Required" msgstr "Connexion requise" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "Connecté en tant que" @@ -4784,6 +4796,10 @@ msgstr "Passer cette étape" msgid "Software Dev" msgstr "Développement de logiciels" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "Quelque chose n’a pas marché" @@ -4840,7 +4856,7 @@ msgstr "Démarrer une discussion avec {displayName}" msgid "Start chatting" msgstr "Démarrer les discussions" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "État du service" @@ -4853,7 +4869,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Stockage effacé, vous devez redémarrer l’application maintenant." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Historique" @@ -4872,7 +4888,7 @@ msgstr "S’abonner" msgid "Subscribe to @{0} to use these labels:" msgstr "Abonnez-vous à @{0} pour utiliser ces étiquettes :" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "S’abonner à l’étiqueteur" @@ -4881,7 +4897,7 @@ msgstr "S’abonner à l’étiqueteur" msgid "Subscribe to the {0} feed" msgstr "S’abonner au fil d’actu {0}" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "S’abonner à cet étiqueteur" @@ -4920,11 +4936,11 @@ msgstr "Basculer sur {0}" msgid "Switches the account you are logged in to" msgstr "Bascule le compte auquel vous êtes connectés vers" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "Système" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "Journal système" @@ -4958,7 +4974,7 @@ msgstr "Conditions générales" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5042,7 +5058,7 @@ msgstr "Nos conditions d’utilisation ont été déplacées vers" msgid "There are many feeds to try:" msgstr "Il existe de nombreux fils d’actu à essayer :" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Il y a eu un problème de connexion au serveur, veuillez vérifier votre connexion Internet et réessayez." @@ -5304,12 +5320,12 @@ msgstr "Ce compte ne suit personne." msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Cela supprimera {0} de vos mots masqués. Vous pourrez toujours le réintégrer plus tard." -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "Préférences des fils de discussion" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "Préférences des fils de discussion" @@ -5366,7 +5382,7 @@ msgctxt "action" msgid "Try again" msgstr "Réessayer" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "Authentification à deux facteurs" @@ -5499,11 +5515,11 @@ msgstr "Supprimer la liste de modération" msgid "Unpinned from your feeds" msgstr "Désépingler de vos fil d’actu" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Se désabonner" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "Se désabonner de cet étiqueteur" @@ -5680,15 +5696,15 @@ msgstr "Valeur :" msgid "Verify DNS Record" msgstr "Vérifier l’enregistrement DNS" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "Confirmer l’e-mail" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "Confirmer mon e-mail" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "Confirmer mon e-mail" @@ -5705,7 +5721,7 @@ msgstr "Vérifier le fichier texte" msgid "Verify Your Email" msgstr "Vérifiez votre e-mail" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "Version {appVersion} {bundleInfo}" @@ -5843,12 +5859,12 @@ msgstr "Nous sommes désolés, mais nous n’avons pas pu charger vos mots masqu msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Nous sommes désolés, mais votre recherche a été annulée. Veuillez réessayer dans quelques minutes." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Nous sommes désolés ! La page que vous recherchez est introuvable." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "Nous sommes désolés ! Vous ne pouvez vous abonner qu’à dix étiqueteurs, et vous avez atteint votre limite de dix." @@ -5875,13 +5891,12 @@ msgstr "Quelles langues aimeriez-vous voir apparaître dans vos fils d’actu al msgid "Who can message you?" msgstr "Qui peut discuter avec vous ?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "Qui peut répondre ?" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "Oups !" @@ -5922,7 +5937,7 @@ msgstr "Large" msgid "Write a message" msgstr "Écrire un message" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "Rédiger un post" @@ -6033,7 +6048,7 @@ msgstr "Vous avez masqué ce compte" #~ msgid "You have no chats yet. Start a conversation with someone!" #~ msgstr "Vous n’avez pas de discussions pour l’instant. Démarrez une conversation avec quelqu’un !" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/ga/messages.po b/src/locale/locales/ga/messages.po index c27b45ec30..7eb40cb9ad 100644 --- a/src/locale/locales/ga/messages.po +++ b/src/locale/locales/ga/messages.po @@ -103,8 +103,8 @@ msgstr "{following} á leanúint" msgid "{handle} can't be messaged" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -176,11 +176,11 @@ msgid "Access profile and other navigation links" msgstr "Oscail próifíl agus nascanna eile" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "Inrochtaineacht" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "Socruithe inrochtaineachta" @@ -194,8 +194,8 @@ msgstr "Socruithe Inrochtaineachta" #~ msgstr "cuntas" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "Cuntas" @@ -257,8 +257,8 @@ msgid "Add a user to this list" msgstr "Cuir cuntas leis an liosta seo" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "Cuir cuntas leis seo" @@ -346,7 +346,7 @@ msgid "Adult content is disabled." msgstr "Tá ábhar do dhaoine fásta curtha ar ceal." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "Ardleibhéal" @@ -455,13 +455,13 @@ msgstr "Ní féidir ach litreacha, uimhreacha, spásanna, daiseanna agus fostrí msgid "App Password names must be at least 4 characters long." msgstr "Caithfear 4 charachtar ar a laghad a bheith in ainmneacha phasfhocal na haipe." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "Socruithe phasfhocal na haipe" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "Pasfhocal na haipe" @@ -490,7 +490,7 @@ msgstr "" msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "Cuma" @@ -523,7 +523,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "An bhfuil tú cinnte gur mhaith leat {0} a bhaint de do chuid fothaí?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "An bhfuil tú cinnte gur mhaith leat an dréacht seo a scriosadh?" @@ -570,7 +570,7 @@ msgstr "Ar ais" msgid "Based on your interest in {interestsText}" msgstr "Toisc go bhfuil suim agat in {interestsText}" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "Bunrudaí" @@ -578,7 +578,7 @@ msgstr "Bunrudaí" msgid "Birthday" msgstr "Breithlá" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "Breithlá:" @@ -805,17 +805,17 @@ msgstr "Cuireann sé seo oscailt an tsuímh gréasáin atá nasctha ar ceal" msgid "Change" msgstr "Athraigh" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "Athraigh" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "Athraigh mo leasainm" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "Athraigh mo leasainm" @@ -823,12 +823,12 @@ msgstr "Athraigh mo leasainm" msgid "Change my email" msgstr "Athraigh mo ríomhphost" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "Athraigh mo phasfhocal" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "Athraigh mo phasfhocal" @@ -853,7 +853,7 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "" @@ -914,19 +914,19 @@ msgstr "Roghnaigh do phríomhfhothaí" msgid "Choose your password" msgstr "Roghnaigh do phasfhocal" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "Glan na sonraí oidhreachta ar fad atá i dtaisce." -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "Glan na sonraí oidhreachta ar fad atá i dtaisce. Ansin atosaigh." -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "Glan na sonraí ar fad atá i dtaisce." -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "Glan na sonraí ar fad atá i dtaisce. Ansin atosaigh." @@ -935,11 +935,11 @@ msgstr "Glan na sonraí ar fad atá i dtaisce. Ansin atosaigh." msgid "Clear search query" msgstr "Glan an cuardach" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "Glanann seo na sonraí oidhreachta ar fad atá i dtaisce" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "Glanann seo na sonraí ar fad atá i dtaisce" @@ -1062,7 +1062,7 @@ msgstr "Críochnaigh agus tosaigh ag baint úsáide as do chuntas." msgid "Complete the challenge" msgstr "Freagair an dúshlán" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Scríobh postálacha chomh fada le {MAX_GRAPHEME_LENGTH} litir agus carachtair eile" @@ -1299,7 +1299,7 @@ msgstr "" msgid "Create a new account" msgstr "Cruthaigh cuntas nua" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "Cruthaigh cuntas nua Bluesky" @@ -1359,8 +1359,8 @@ msgstr "Cruthaíonn an pobal fothaí chun eispéiris nua a chur ar fáil duit, a msgid "Customize media from external sites." msgstr "Oiriúnaigh na meáin ó shuíomhanna seachtracha" -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "Dorcha" @@ -1368,7 +1368,7 @@ msgstr "Dorcha" msgid "Dark mode" msgstr "Modh dorcha" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "Téama Dorcha" @@ -1376,7 +1376,7 @@ msgstr "Téama Dorcha" msgid "Date of birth" msgstr "Dáta breithe" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "Dífhabhtaigh Modhnóireacht" @@ -1391,7 +1391,7 @@ msgstr "Painéal dífhabhtaithe" msgid "Delete" msgstr "Scrios" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "Scrios an cuntas" @@ -1411,8 +1411,8 @@ msgstr "Scrios pasfhocal na haipe" msgid "Delete app password?" msgstr "Scrios pasfhocal na haipe?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1436,7 +1436,7 @@ msgstr "" msgid "Delete my account" msgstr "Scrios mo chuntas" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "Scrios mo chuntas…" @@ -1461,7 +1461,7 @@ msgstr "Scriosta" msgid "Deleted post." msgstr "Scriosadh an phostáil." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1480,7 +1480,7 @@ msgstr "" msgid "Did you want to say anything?" msgstr "Ar mhaith leat rud éigin a rá?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "Breacdhorcha" @@ -1511,11 +1511,11 @@ msgstr "Ná húsáid aiseolas haptach" msgid "Disabled" msgstr "Díchumasaithe" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "Ná sábháil" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "Faigh réidh leis an dréacht?" @@ -1681,12 +1681,12 @@ msgstr "Athraigh mo chuid fothaí" msgid "Edit my profile" msgstr "Athraigh mo phróifíl" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "Athraigh an phróifíl" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "Athraigh an Phróifíl" @@ -1738,7 +1738,7 @@ msgstr "Seoladh ríomhphoist uasdátaithe" msgid "Email verified" msgstr "Ríomhphost dearbhaithe" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "Ríomhphost:" @@ -1798,6 +1798,10 @@ msgstr "Cumasaithe" msgid "End of feed" msgstr "Deireadh an fhotha" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "Cuir isteach ainm don phasfhocal aipe seo" @@ -1865,6 +1869,10 @@ msgstr "Earráid:" msgid "Everybody" msgstr "Chuile dhuine" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1918,12 +1926,12 @@ msgstr "Meáin is féidir a bheith gáirsiúil nó goilliúnach." msgid "Explicit sexual images." msgstr "Íomhánna gnéasacha." -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "Easpórtáil mo chuid sonraí" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "Easpórtáil mo chuid sonraí" @@ -1939,11 +1947,11 @@ msgstr "Is féidir le meáin sheachtracha cumas a thabhairt do shuíomhanna ar a #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "Roghanna maidir le meáin sheachtracha" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "Socruithe maidir le meáin sheachtracha" @@ -2181,7 +2189,7 @@ msgstr "Á leanúint" msgid "Following {0}" msgstr "Ag leanúint {0}" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "Roghanna le haghaidh an fhotha Following" @@ -2189,7 +2197,7 @@ msgstr "Roghanna le haghaidh an fhotha Following" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "Roghanna don Fhotha Following" @@ -2650,7 +2658,7 @@ msgstr "Lipéid ar do chuid ábhair" msgid "Language selection" msgstr "Rogha teanga" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "Socruithe teanga" @@ -2659,7 +2667,7 @@ msgstr "Socruithe teanga" msgid "Language Settings" msgstr "Socruithe teanga" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "Teangacha" @@ -2732,7 +2740,7 @@ msgstr "Socraímis do phasfhocal arís!" msgid "Let's go!" msgstr "Ar aghaidh linn!" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "Sorcha" @@ -2740,7 +2748,7 @@ msgstr "Sorcha" #~ msgid "Like" #~ msgstr "Mol" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Mol an fotha seo" @@ -2946,14 +2954,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "" @@ -2967,7 +2975,7 @@ msgstr "Cuntas atá Míthreorach" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "Modhnóireacht" @@ -3007,7 +3015,7 @@ msgstr "Liostaí modhnóireachta" msgid "Moderation Lists" msgstr "Liostaí modhnóireachta" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "Socruithe modhnóireachta" @@ -3147,11 +3155,11 @@ msgstr "Mo Chuid Fothaí" msgid "My Profile" msgstr "Mo Phróifíl" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "Na fothaí a shábháil mé" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "Na Fothaí a Shábháil Mé" @@ -3210,8 +3218,8 @@ msgid "New" msgstr "Nua" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "" @@ -3338,7 +3346,7 @@ msgstr "Gan torthaí" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "Gan torthaí" @@ -3369,6 +3377,10 @@ msgstr "Níor mhaith liom é sin." msgid "Nobody" msgstr "Duine ar bith" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3402,7 +3414,7 @@ msgstr "Nóta faoi roinnt" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nod leat: is gréasán oscailte poiblí Bluesky. Ní chuireann an socrú seo srian ar fheiceálacht do chuid ábhair ach amháin ar aip agus suíomh Bluesky. Is féidir nach gcloífidh aipeanna eile leis an socrú seo. Is féidir go dtaispeánfar do chuid ábhair d’úsáideoirí atá lógáilte amach ar aipeanna agus suíomhanna eile." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3446,7 +3458,7 @@ msgid "Oh no! Something went wrong." msgstr "Úps! Theip ar rud éigin." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "OK" @@ -3462,7 +3474,7 @@ msgstr "Na freagraí is sine ar dtús" msgid "Onboarding reset" msgstr "Atosú an chláraithe" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "Tá téacs malartach de dhíth ar íomhá amháin nó níos mó acu." @@ -3478,11 +3490,11 @@ msgstr "Ní féidir ach le {0} freagra a thabhairt." msgid "Only contains letters, numbers, and hyphens" msgstr "Níl ann ach litreacha, uimhreacha, agus fleiscíní" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "Úps! Theip ar rud éigin!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3501,8 +3513,8 @@ msgstr "" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "Oscail roghnóir na n-emoji" @@ -3510,7 +3522,7 @@ msgstr "Oscail roghnóir na n-emoji" msgid "Open feed options menu" msgstr "Oscail roghchlár na bhfothaí" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "Oscail nascanna leis an mbrabhsálaí san aip" @@ -3530,12 +3542,12 @@ msgstr "Oscail an nascleanúint" msgid "Open post options menu" msgstr "Oscail roghchlár na bpostálacha" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "Oscail leathanach an Storybook" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "Oscail logleabhar an chórais" @@ -3543,7 +3555,7 @@ msgstr "Oscail logleabhar an chórais" msgid "Opens {numItems} options" msgstr "Osclaíonn sé seo {numItems} rogha" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "Osclaíonn sé seo na socruithe inrochtaineachta" @@ -3563,7 +3575,7 @@ msgstr "Osclaíonn sé seo an ceamara ar an ngléas" msgid "Opens composer" msgstr "Osclaíonn sé seo an t-eagarthóir" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "Osclaíonn sé seo na socruithe teanga is féidir a dhéanamh" @@ -3571,7 +3583,7 @@ msgstr "Osclaíonn sé seo na socruithe teanga is féidir a dhéanamh" msgid "Opens device photo gallery" msgstr "Osclaíonn sé seo gailearaí na ngrianghraf ar an ngléas" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "Osclaíonn sé seo na socruithe le haghaidh leabuithe seachtracha" @@ -3593,23 +3605,23 @@ msgstr "Osclaíonn sé seo fuinneog chun GIF a roghnú" msgid "Opens list of invite codes" msgstr "Osclaíonn sé seo liosta na gcód cuiridh" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Osclaíonn sé seo an fhuinneog le scriosadh an chuntais a dhearbhú. Tá cód ríomhphoist riachtanach" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "Osclaíonn sé seo an fhuinneog le do phasfhocal Bluesky a athrú" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Osclaíonn sé seo an fhuinneog le leasainm nua Bluesky a roghnú" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Osclaíonn sé seo an fhuinneog le stór sonraí do chuntais Bluesky a íoslódáil" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "Osclaíonn sé seo fuinneog le deimhniú an ríomhphoist" @@ -3617,7 +3629,7 @@ msgstr "Osclaíonn sé seo fuinneog le deimhniú an ríomhphoist" msgid "Opens modal for using custom domain" msgstr "Osclaíonn sé seo an fhuinneog le sainfhearann a úsáid" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "Osclaíonn sé seo socruithe na modhnóireachta" @@ -3630,15 +3642,15 @@ msgstr "Osclaíonn sé seo an fhoirm leis an bpasfhocal a athrú" msgid "Opens screen to edit Saved Feeds" msgstr "Osclaíonn sé seo an scáileán leis na fothaí sábháilte a athrú" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "Osclaíonn sé seo an scáileán leis na fothaí sábháilte go léir" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "Osclaíonn sé seo an leathanach a bhfuil socruithe phasfhocal na haipe air" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "Osclaíonn sé seo roghanna don fhotha Following" @@ -3650,16 +3662,16 @@ msgstr "Osclaíonn sé seo an suíomh gréasáin atá nasctha" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "Osclaíonn sé seo leathanach an Storybook" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "Osclaíonn sé seo logleabhar an chórais" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "Osclaíonn sé seo roghanna na snáitheanna" @@ -3692,7 +3704,7 @@ msgstr "Eile…" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Leathanach gan aimsiú" @@ -3860,8 +3872,8 @@ msgstr "Polaitíocht" msgid "Porn" msgstr "Pornagrafaíocht" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "Postáil" @@ -3941,7 +3953,7 @@ msgid "Press to change hosting provider" msgstr "Brúigh leis an soláthraí óstála a athrú" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3964,7 +3976,7 @@ msgstr "Príomhtheanga" msgid "Prioritize Your Follows" msgstr "Tabhair Tosaíocht do Do Chuid Leantóirí" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Príobháideacht" @@ -3972,7 +3984,7 @@ msgstr "Príobháideacht" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Polasaí príobháideachta" @@ -4002,7 +4014,7 @@ msgstr "Próifíl" msgid "Profile updated" msgstr "Próifíl uasdátaithe" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "Dearbhaigh do ríomhphost le do chuntas a chosaint." @@ -4018,11 +4030,11 @@ msgstr "Liostaí poiblí agus inroinnte d’úsáideoirí le cur i bhfolach nó msgid "Public, shareable lists which can drive feeds." msgstr "Liostaí poiblí agus inroinnte atá in ann fothaí a bheathú" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "Foilsigh an phostáil" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "Foilsigh an freagra" @@ -4072,7 +4084,7 @@ msgstr "Cuardaigh a Rinneadh le Déanaí" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4179,7 +4191,7 @@ msgstr "Freagraí" msgid "Replies to this thread are disabled" msgstr "Ní féidir freagraí a thabhairt ar an gcomhrá seo" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "Freagair" @@ -4345,8 +4357,8 @@ msgstr "Cód athshocraithe" msgid "Reset Code" msgstr "Cód Athshocraithe" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "Athshocraigh an próiseas cláraithe" @@ -4354,16 +4366,16 @@ msgstr "Athshocraigh an próiseas cláraithe" msgid "Reset password" msgstr "Athshocraigh an pasfhocal" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "Athshocraigh na roghanna" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "Athshocraíonn sé seo an clárú" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "Athshocraíonn sé seo na roghanna" @@ -4378,7 +4390,7 @@ msgstr "Baineann sé seo triail eile as an ngníomh is déanaí, ar theip air" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4763,23 +4775,23 @@ msgstr "Socraigh do chuntas" msgid "Sets Bluesky username" msgstr "Socraíonn sé seo d'ainm úsáideora ar Bluesky" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "Roghnaíonn sé seo an modh dorcha" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "Roghnaíonn sé seo an modh sorcha" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "Roghnaíonn sé seo scéim dathanna an chórais" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "Úsáideann sé seo an téama dorcha mar théama dorcha" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "Úsáideann sé seo an téama breacdhorcha mar théama dorcha" @@ -4866,7 +4878,7 @@ msgstr "Roinneann sé seo na suíomh gréasáin atá nasctha" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "Taispeáin" @@ -5044,7 +5056,7 @@ msgstr "Cláraigh nó logáil isteach chun páirt a ghlacadh sa chomhrá" msgid "Sign-in Required" msgstr "Caithfidh tú logáil isteach" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "Logáilte isteach mar" @@ -5066,6 +5078,10 @@ msgstr "Ná bac leis an bpróiseas seo" msgid "Software Dev" msgstr "Forbairt Bogearraí" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "" @@ -5130,7 +5146,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Leathanach stádais" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "" @@ -5147,7 +5163,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Stóráil scriosta, tá ort an aip a atosú anois." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Storybook" @@ -5166,7 +5182,7 @@ msgstr "Liostáil" msgid "Subscribe to @{0} to use these labels:" msgstr "Glac síntiús le @{0} leis na lipéid seo a úsáid:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "Glac síntiús le lipéadóir" @@ -5175,7 +5191,7 @@ msgstr "Glac síntiús le lipéadóir" msgid "Subscribe to the {0} feed" msgstr "Liostáil leis an bhfotha {0}" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "Glac síntiús leis an lipéadóir seo" @@ -5214,11 +5230,11 @@ msgstr "Athraigh go {0}" msgid "Switches the account you are logged in to" msgstr "Athraíonn sé seo an cuntas beo" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "Córas" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "Logleabhar an chórais" @@ -5252,7 +5268,7 @@ msgstr "Téarmaí" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5340,7 +5356,7 @@ msgstr "Bogadh ár dTéarmaí Seirbhíse go dtí" msgid "There are many feeds to try:" msgstr "Tá a lán fothaí ann le blaiseadh:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Bhí fadhb ann maidir le dul i dteagmháil leis an bhfreastalaí. Seiceáil do cheangal leis an idirlíon agus bain triail eile as, le do thoil." @@ -5622,12 +5638,12 @@ msgstr "Níl éinne á leanúint ag an úsáideoir seo." msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Bainfidh sé seo {0} de do chuid focal i bhfolach. Tig leat é a chur ar ais níos déanaí." -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "Roghanna snáitheanna" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "Roghanna Snáitheanna" @@ -5684,7 +5700,7 @@ msgctxt "action" msgid "Try again" msgstr "Bain triail eile as" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "Fíordheimhniú déshraithe (2FA)" @@ -5825,11 +5841,11 @@ msgstr "Díghreamaigh an liosta modhnóireachta" msgid "Unpinned from your feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Díliostáil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "Díliostáil ón lipéadóir seo" @@ -6014,15 +6030,15 @@ msgstr "Luach:" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "Dearbhaigh ríomhphost" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "Dearbhaigh mo ríomhphost" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "Dearbhaigh Mo Ríomhphost" @@ -6043,7 +6059,7 @@ msgstr "Dearbhaigh Do Ríomhphost" #~ msgid "Version {0}" #~ msgstr "Leagan {0}" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6181,12 +6197,12 @@ msgstr "Tá brón orainn, ach theip orainn na focail a chuir tú i bhfolach a l msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Ár leithscéal, ach níorbh fhéidir linn do chuardach a chur i gcrích. Bain triail eile as i gceann cúpla nóiméad." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Ár leithscéal, ach ní féidir linn an leathanach atá tú ag lorg a aimsiú." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "Tá brón orainn! Ní féidir síntiúis a ghlacadh ach le deich lipéadóir, tá an teorainn sin sroichte agat." @@ -6217,13 +6233,12 @@ msgstr "Cad iad na teangacha ba mhaith leat a fheiceáil i do chuid fothaí alga msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "Cé atá in ann freagra a thabhairt" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "" @@ -6260,7 +6275,7 @@ msgstr "Leathan" msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "Scríobh postáil" @@ -6371,7 +6386,7 @@ msgstr "Chuir tú an cuntas seo i bhfolach." msgid "You have muted this user" msgstr "Chuir tú an t-úsáideoir seo i bhfolach" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index d3bb720018..c2cc2c99db 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -122,8 +122,8 @@ msgstr "" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -207,11 +207,11 @@ msgid "Access profile and other navigation links" msgstr "" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "प्रवेर्शयोग्यता" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "" @@ -225,8 +225,8 @@ msgstr "" #~ msgstr "" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "अकाउंट" @@ -288,8 +288,8 @@ msgid "Add a user to this list" msgstr "इस सूची में किसी को जोड़ें" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "अकाउंट जोड़ें" @@ -394,7 +394,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "विकसित" @@ -503,7 +503,7 @@ msgstr "" msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "" @@ -513,7 +513,7 @@ msgstr "" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "ऐप पासवर्ड" @@ -555,7 +555,7 @@ msgstr "" #~ msgid "Appeal this decision." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "दिखावट" @@ -588,7 +588,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "क्या आप वाकई इस ड्राफ्ट को हटाना करना चाहेंगे?" @@ -644,7 +644,7 @@ msgstr "वापस" msgid "Based on your interest in {interestsText}" msgstr "" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "मूल बातें" @@ -652,7 +652,7 @@ msgstr "मूल बातें" msgid "Birthday" msgstr "जन्मदिन" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "जन्मदिन:" @@ -906,17 +906,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "परिवर्तन" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "हैंडल बदलें" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "हैंडल बदलें" @@ -924,12 +924,12 @@ msgstr "हैंडल बदलें" msgid "Change my email" msgstr "मेरा ईमेल बदलें" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "" @@ -958,7 +958,7 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "" @@ -1028,19 +1028,19 @@ msgstr "" msgid "Choose your password" msgstr "अपना पासवर्ड चुनें" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "" @@ -1049,11 +1049,11 @@ msgstr "" msgid "Clear search query" msgstr "खोज क्वेरी साफ़ करें" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "" @@ -1176,7 +1176,7 @@ msgstr "" msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "" @@ -1443,7 +1443,7 @@ msgstr "" msgid "Create a new account" msgstr "नया खाता बनाएं" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "" @@ -1515,8 +1515,8 @@ msgstr "" #~ msgid "Danger Zone" #~ msgstr "खतरा क्षेत्र" -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "डार्क मोड" @@ -1524,7 +1524,7 @@ msgstr "डार्क मोड" msgid "Dark mode" msgstr "" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "" @@ -1532,7 +1532,7 @@ msgstr "" msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "" @@ -1547,7 +1547,7 @@ msgstr "" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "खाता हटाएं" @@ -1567,8 +1567,8 @@ msgstr "अप्प पासवर्ड हटाएं" msgid "Delete app password?" msgstr "" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1596,7 +1596,7 @@ msgstr "मेरा खाता हटाएं" #~ msgid "Delete my account…" #~ msgstr "मेरा खाता हटाएं…" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "" @@ -1621,7 +1621,7 @@ msgstr "" msgid "Deleted post." msgstr "यह पोस्ट मिटाई जा चुकी है" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1644,7 +1644,7 @@ msgstr "" msgid "Did you want to say anything?" msgstr "" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "" @@ -1679,7 +1679,7 @@ msgstr "" msgid "Disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "" @@ -1687,7 +1687,7 @@ msgstr "" #~ msgid "Discard draft" #~ msgstr "ड्राफ्ट हटाएं" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "" @@ -1869,12 +1869,12 @@ msgstr "मेरी फ़ीड संपादित करें" msgid "Edit my profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" @@ -1926,7 +1926,7 @@ msgstr "ईमेल अपडेट किया गया" msgid "Email verified" msgstr "" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "ईमेल:" @@ -1990,6 +1990,10 @@ msgstr "" msgid "End of feed" msgstr "" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "" @@ -2065,6 +2069,10 @@ msgstr "" msgid "Everybody" msgstr "" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -2122,12 +2130,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "" @@ -2143,11 +2151,11 @@ msgstr "" #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "" @@ -2402,7 +2410,7 @@ msgstr "फोल्लोविंग" msgid "Following {0}" msgstr "" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "" @@ -2410,7 +2418,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "" @@ -2941,7 +2949,7 @@ msgstr "" msgid "Language selection" msgstr "अपनी भाषा चुने" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "" @@ -2950,7 +2958,7 @@ msgstr "" msgid "Language Settings" msgstr "भाषा सेटिंग्स" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "भाषा" @@ -3036,7 +3044,7 @@ msgstr "" #~ msgid "Library" #~ msgstr "चित्र पुस्तकालय" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "लाइट मोड" @@ -3044,7 +3052,7 @@ msgstr "लाइट मोड" #~ msgid "Like" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "इस फ़ीड को लाइक करो" @@ -3267,14 +3275,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "" @@ -3288,7 +3296,7 @@ msgstr "" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "मॉडरेशन" @@ -3328,7 +3336,7 @@ msgstr "मॉडरेशन सूचियाँ" msgid "Moderation Lists" msgstr "" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "" @@ -3484,11 +3492,11 @@ msgstr "मेरी फ़ीड" msgid "My Profile" msgstr "मेरी प्रोफाइल" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "मेरी फ़ीड" @@ -3561,8 +3569,8 @@ msgid "New" msgstr "नया" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "" @@ -3689,7 +3697,7 @@ msgstr "" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "" @@ -3720,6 +3728,10 @@ msgstr "" msgid "Nobody" msgstr "" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3753,7 +3765,7 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "" -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3801,7 +3813,7 @@ msgid "Oh no! Something went wrong." msgstr "" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "" @@ -3817,7 +3829,7 @@ msgstr "" msgid "Onboarding reset" msgstr "" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "एक या अधिक छवियाँ alt पाठ याद आती हैं।।" @@ -3833,11 +3845,11 @@ msgstr "" msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3860,8 +3872,8 @@ msgstr "" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "" @@ -3869,7 +3881,7 @@ msgstr "" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "" @@ -3893,12 +3905,12 @@ msgstr "ओपन नेविगेशन" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "" @@ -3906,7 +3918,7 @@ msgstr "" msgid "Opens {numItems} options" msgstr "" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "" @@ -3926,7 +3938,7 @@ msgstr "" msgid "Opens composer" msgstr "" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "भाषा सेटिंग्स खोलें" @@ -3938,7 +3950,7 @@ msgstr "" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "" @@ -3972,7 +3984,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3980,19 +3992,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "" @@ -4000,7 +4012,7 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "कस्टम डोमेन का उपयोग करने के लिए मोडल खोलें" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "मॉडरेशन सेटिंग्स खोलें" @@ -4013,11 +4025,11 @@ msgstr "" msgid "Opens screen to edit Saved Feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "सभी बचाया फ़ीड के साथ स्क्रीन खोलें" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "" @@ -4025,7 +4037,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "ऐप पासवर्ड सेटिंग पेज खोलें" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "" @@ -4041,16 +4053,16 @@ msgstr "" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "स्टोरीबुक पेज खोलें" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "सिस्टम लॉग पेज खोलें" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "धागे वरीयताओं को खोलता है" @@ -4091,7 +4103,7 @@ msgstr "अन्य..।" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "पृष्ठ नहीं मिला" @@ -4284,8 +4296,8 @@ msgstr "" #~ msgid "Pornography" #~ msgstr "" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "" @@ -4365,7 +4377,7 @@ msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4388,7 +4400,7 @@ msgstr "प्राथमिक भाषा" msgid "Prioritize Your Follows" msgstr "अपने फ़ॉलोअर्स को प्राथमिकता दें" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "गोपनीयता" @@ -4396,7 +4408,7 @@ msgstr "गोपनीयता" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "गोपनीयता नीति" @@ -4426,7 +4438,7 @@ msgstr "प्रोफ़ाइल" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "अपने ईमेल को सत्यापित करके अपने खाते को सुरक्षित रखें।।" @@ -4442,11 +4454,11 @@ msgstr "" msgid "Public, shareable lists which can drive feeds." msgstr "सार्वजनिक, साझा करने योग्य सूचियाँ जो फ़ीड चला सकती हैं।" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "" @@ -4496,7 +4508,7 @@ msgstr "" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4615,7 +4627,7 @@ msgstr "" msgid "Replies to this thread are disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "" @@ -4794,8 +4806,8 @@ msgstr "" #~ msgid "Reset onboarding" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" @@ -4807,16 +4819,16 @@ msgstr "पासवर्ड रीसेट" #~ msgid "Reset preferences" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "प्राथमिकताओं को रीसेट करें" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "प्राथमिकताओं की स्थिति को रीसेट करें" @@ -4831,7 +4843,7 @@ msgstr "" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5299,23 +5311,23 @@ msgstr "" msgid "Sets Bluesky username" msgstr "" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "" @@ -5411,7 +5423,7 @@ msgstr "" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "दिखाओ" @@ -5607,7 +5619,7 @@ msgstr "" msgid "Sign-in Required" msgstr "" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "आपने इस रूप में साइन इन करा है:" @@ -5637,6 +5649,10 @@ msgstr "" msgid "Software Dev" msgstr "" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "" @@ -5717,7 +5733,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "स्थिति पृष्ठ" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "" @@ -5738,7 +5754,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Storybook" @@ -5757,7 +5773,7 @@ msgstr "सब्सक्राइब" msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" @@ -5766,7 +5782,7 @@ msgstr "" msgid "Subscribe to the {0} feed" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "" @@ -5809,11 +5825,11 @@ msgstr "" msgid "Switches the account you are logged in to" msgstr "" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "प्रणाली" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "सिस्टम लॉग" @@ -5851,7 +5867,7 @@ msgstr "शर्तें" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5939,7 +5955,7 @@ msgstr "सेवा की शर्तों को स्थानांत msgid "There are many feeds to try:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "" @@ -6245,12 +6261,12 @@ msgstr "" #~ msgid "This will hide this post from your feeds." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "थ्रेड प्राथमिकता" @@ -6307,7 +6323,7 @@ msgctxt "action" msgid "Try again" msgstr "फिर से कोशिश करो" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "" @@ -6460,11 +6476,11 @@ msgstr "" #~ msgid "Unsave" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "" @@ -6665,15 +6681,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "ईमेल सत्यापित करें" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "मेरी ईमेल सत्यापित करें" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "मेरी ईमेल सत्यापित करें" @@ -6694,7 +6710,7 @@ msgstr "" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6844,12 +6860,12 @@ msgstr "" msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "हम क्षमा चाहते हैं! हमें वह पेज नहीं मिल रहा जिसे आप ढूंढ रहे थे।" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "" @@ -6884,13 +6900,12 @@ msgstr "कौन से भाषाएं आपको अपने एल् msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "" @@ -6927,7 +6942,7 @@ msgstr "चौड़ा" msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "पोस्ट लिखो" @@ -7054,7 +7069,7 @@ msgstr "" #~ msgid "You have muted this user." #~ msgstr "" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/id/messages.po b/src/locale/locales/id/messages.po index 1939f60d08..4112f56f0d 100644 --- a/src/locale/locales/id/messages.po +++ b/src/locale/locales/id/messages.po @@ -109,8 +109,8 @@ msgstr "{following} mengikuti" msgid "{handle} can't be messaged" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -182,11 +182,11 @@ msgid "Access profile and other navigation links" msgstr "Akses profil dan tautan navigasi lain" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "Aksesibilitas" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "Pengaturan aksesibilitas" @@ -200,8 +200,8 @@ msgstr "Pengaturan Aksesibilitas" #~ msgstr "akun" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "Akun" @@ -263,8 +263,8 @@ msgid "Add a user to this list" msgstr "Tambahkan pengguna ke daftar ini" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "Tambahkan akun" @@ -352,7 +352,7 @@ msgid "Adult content is disabled." msgstr "Konten dewasa dinonaktifkan." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "Lanjutan" @@ -461,13 +461,13 @@ msgstr "Nama Kata Sandi Aplikasi hanya boleh terdiri dari huruf, angka, spasi, t msgid "App Password names must be at least 4 characters long." msgstr "Nama Kata Sandi Aplikasi harus terdiri dari minimal 4 karakter." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "Pengaturan kata sandi aplikasi" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "Kata sandi Aplikasi" @@ -496,7 +496,7 @@ msgstr "" msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "Tampilan" @@ -529,7 +529,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Apakah Anda yakin ingin menghapus {0} dari daftar feed Anda?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "Anda yakin untuk membuang draf ini?" @@ -576,7 +576,7 @@ msgstr "Kembali" msgid "Based on your interest in {interestsText}" msgstr "Berdasarkan minat Anda pada {interestsText}" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "Dasar" @@ -584,7 +584,7 @@ msgstr "Dasar" msgid "Birthday" msgstr "Tanggal lahir" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "Tanggal lahir:" @@ -814,17 +814,17 @@ msgstr "Membatalkan membuka situs web tertaut" msgid "Change" msgstr "Ubah" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "Ubah" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "Ubah handle" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "Ubah Handle" @@ -832,12 +832,12 @@ msgstr "Ubah Handle" msgid "Change my email" msgstr "Ubah email saya" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "Ubah kata sandi" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "Ubah Kata Sandi" @@ -862,7 +862,7 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "" @@ -924,19 +924,19 @@ msgstr "Pilih feed utama Anda" msgid "Choose your password" msgstr "Pilih kata sandi Anda" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "Hapus semua data penyimpanan lama" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "Hapus semua data penyimpanan lama (mulai ulang setelah ini)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "Hapus semua data penyimpanan" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "Hapus semua data penyimpanan (mulai ulang setelah ini)" @@ -945,11 +945,11 @@ msgstr "Hapus semua data penyimpanan (mulai ulang setelah ini)" msgid "Clear search query" msgstr "Hapus kueri pencarian" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "Bersihkan semua penyimpanan data lama" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "Hapus semua data penyimpanan" @@ -1072,7 +1072,7 @@ msgstr "Selesaikan onboarding dan mulai menggunakan akun Anda" msgid "Complete the challenge" msgstr "Selesaikan tantangan" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Buat postingan dengan panjang hingga {MAX_GRAPHEME_LENGTH} karakter" @@ -1309,7 +1309,7 @@ msgstr "" msgid "Create a new account" msgstr "Buat akun baru" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "Buat akun Bluesky baru" @@ -1369,8 +1369,8 @@ msgstr "Feed khusus yang dibuat oleh komunitas memberikan pengalaman baru dan me msgid "Customize media from external sites." msgstr "Sesuaikan media dari situs eksternal." -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "Gelap" @@ -1378,7 +1378,7 @@ msgstr "Gelap" msgid "Dark mode" msgstr "Mode gelap" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "Tema Gelap" @@ -1386,7 +1386,7 @@ msgstr "Tema Gelap" msgid "Date of birth" msgstr "Tanggal lahir" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "Debug Moderasi" @@ -1401,7 +1401,7 @@ msgstr "Panel awakutu" msgid "Delete" msgstr "Hapus" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "Hapus akun" @@ -1421,8 +1421,8 @@ msgstr "Hapus kata sandi aplikasi" msgid "Delete app password?" msgstr "Hapus kata sandi aplikasi?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1446,7 +1446,7 @@ msgstr "" msgid "Delete my account" msgstr "Hapus akun saya" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "Hapus Akun Saya…" @@ -1471,7 +1471,7 @@ msgstr "Dihapus" msgid "Deleted post." msgstr "Postingan dihapus." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1490,7 +1490,7 @@ msgstr "" msgid "Did you want to say anything?" msgstr "Apakah Anda ingin mengatakan sesuatu?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "Redup" @@ -1525,11 +1525,11 @@ msgstr "Matikan respons haptik" msgid "Disabled" msgstr "Dinonaktifkan" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "Buang" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "Buang draf?" @@ -1695,12 +1695,12 @@ msgstr "Edit Feed Saya" msgid "Edit my profile" msgstr "Edit profil saya" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "Edit profil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "Edit Profil" @@ -1752,7 +1752,7 @@ msgstr "Email Diupdate" msgid "Email verified" msgstr "Email terverifikasi" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "Email:" @@ -1812,6 +1812,10 @@ msgstr "Diaktifkan" msgid "End of feed" msgstr "Akhir feed" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "Masukkan nama untuk Sandi Aplikasi ini" @@ -1879,6 +1883,10 @@ msgstr "Eror:" msgid "Everybody" msgstr "Semua orang" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1932,12 +1940,12 @@ msgstr "Media eksplisit atau berpotensi mengganggu." msgid "Explicit sexual images." msgstr "Gambar seksual eksplisit." -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "Ekspor data saya" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "Ekspor Data Saya" @@ -1953,11 +1961,11 @@ msgstr "Media eksternal memungkinkan situs web untuk mengumpulkan informasi tent #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "Preferensi Media Eksternal" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "Pengaturan media eksternal" @@ -2196,7 +2204,7 @@ msgstr "Mengikuti" msgid "Following {0}" msgstr "Mengikuti {0}" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "Preferensi feed Following" @@ -2204,7 +2212,7 @@ msgstr "Preferensi feed Following" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "Preferensi Feed Following" @@ -2666,7 +2674,7 @@ msgstr "Label pada konten Anda" msgid "Language selection" msgstr "Pilih bahasa" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "Pengaturan bahasa" @@ -2675,7 +2683,7 @@ msgstr "Pengaturan bahasa" msgid "Language Settings" msgstr "Pengaturan Bahasa" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "Bahasa" @@ -2748,7 +2756,7 @@ msgstr "Reset kata sandi Anda!" msgid "Let's go!" msgstr "Ayo!" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "Terang" @@ -2756,7 +2764,7 @@ msgstr "Terang" #~ msgid "Like" #~ msgstr "Suka" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Suka feed ini" @@ -2962,14 +2970,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "Pengaturan pesan" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "Pesan" @@ -2983,7 +2991,7 @@ msgstr "Akun Menyesatkan" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "Moderasi" @@ -3023,7 +3031,7 @@ msgstr "Daftar moderasi" msgid "Moderation Lists" msgstr "Daftar Moderasi" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "Pengaturan moderasi" @@ -3163,11 +3171,11 @@ msgstr "Feed Saya" msgid "My Profile" msgstr "Profil Saya" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "Feed tersimpan saya" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "Feed Tersimpan Saya" @@ -3227,8 +3235,8 @@ msgid "New" msgstr "Baru" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "" @@ -3355,7 +3363,7 @@ msgstr "Tidak ada hasil" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "Tidak ada hasil yang ditemukan" @@ -3386,6 +3394,10 @@ msgstr "Tidak terima kasih" msgid "Nobody" msgstr "Tak seorang pun" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3419,7 +3431,7 @@ msgstr "Catatan tentang berbagi" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Catatan: Bluesky merupakan jaringan terbuka dan publik. Pengaturan ini hanya akan membatasi visibilitas konten Anda pada aplikasi dan website Bluesky, dan aplikasi lain mungkin tidak mengindahkan pengaturan ini. Konten Anda mungkin tetap ditampilkan kepada pengguna yang tidak login oleh aplikasi dan website lain." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3463,7 +3475,7 @@ msgid "Oh no! Something went wrong." msgstr "Oh tidak! Sepertinya ada yang salah." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "OK" @@ -3479,7 +3491,7 @@ msgstr "Balasan terlama terlebih dahulu" msgid "Onboarding reset" msgstr "Atur ulang orientasi" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "Satu atau lebih gambar belum ada teks alt." @@ -3495,11 +3507,11 @@ msgstr "Hanya {0} dapat membalas." msgid "Only contains letters, numbers, and hyphens" msgstr "Hanya berisi huruf, angka, dan tanda hubung" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "Oops, sepertinya ada yang salah!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3518,8 +3530,8 @@ msgstr "" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "Buka pemilih emoji" @@ -3527,7 +3539,7 @@ msgstr "Buka pemilih emoji" msgid "Open feed options menu" msgstr "Buka menu opsi feed" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "Buka tautan dengan browser dalam aplikasi" @@ -3547,12 +3559,12 @@ msgstr "Buka navigasi" msgid "Open post options menu" msgstr "Buka menu pilihan postingan" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "Buka halaman buku cerita" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "Buka log sistem" @@ -3560,7 +3572,7 @@ msgstr "Buka log sistem" msgid "Opens {numItems} options" msgstr "Membuka opsi {numItems}" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "Membuka pengaturan aksesibilitas" @@ -3580,7 +3592,7 @@ msgstr "Membuka kamera pada perangkat" msgid "Opens composer" msgstr "Membuka penyusun postingan" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "Membuka pengaturan bahasa yang dapat dikonfigurasi" @@ -3588,7 +3600,7 @@ msgstr "Membuka pengaturan bahasa yang dapat dikonfigurasi" msgid "Opens device photo gallery" msgstr "Membuka galeri foto perangkat" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "Membuka pengaturan penyematan eksternal" @@ -3610,23 +3622,23 @@ msgstr "Membuka dialog pemilihan GIF" msgid "Opens list of invite codes" msgstr "Membuka daftar kode undangan" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Membuka modal untuk konfirmasi penghapusan akun. Membutuhkan kode email" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "Membuka modal untuk mengubah kata sandi Bluesky Anda" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Buka modal untuk memilih handle baru Bluesky" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Membuka modal untuk mengunduh data akun (repositori) Bluesky Anda" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "Membuka modal untuk verifikasi email" @@ -3634,7 +3646,7 @@ msgstr "Membuka modal untuk verifikasi email" msgid "Opens modal for using custom domain" msgstr "Buka modal untuk menggunakan domain kustom" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "Buka pengaturan moderasi" @@ -3647,15 +3659,15 @@ msgstr "Membuka formulir pengaturan ulang kata sandi" msgid "Opens screen to edit Saved Feeds" msgstr "Membuka layar untuk mengedit Feed Tersimpan" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "Buka halaman dengan semua feed tersimpan" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "Membuka pengaturan kata sandi aplikasi" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "Membuka preferensi feed Following" @@ -3667,16 +3679,16 @@ msgstr "Membuka situs web tertaut" #~ msgid "Opens the message settings page" #~ msgstr "Membuka halaman pengaturan perpesanan" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "Buka halaman storybook" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "Buka halaman log sistem" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "Buka preferensi utasan" @@ -3709,7 +3721,7 @@ msgstr "Lainnya..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Halaman tidak ditemukan" @@ -3877,8 +3889,8 @@ msgstr "Politik" msgid "Porn" msgstr "Pornografi" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "Posting" @@ -3958,7 +3970,7 @@ msgid "Press to change hosting provider" msgstr "Tekan untuk mengganti penyedia hosting" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3981,7 +3993,7 @@ msgstr "Bahasa Utama" msgid "Prioritize Your Follows" msgstr "Prioritaskan Pengikut Anda" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privasi" @@ -3989,7 +4001,7 @@ msgstr "Privasi" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Kebijakan Privasi" @@ -4019,7 +4031,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil diperbarui" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "Amankan akun Anda dengan memverifikasi email Anda." @@ -4035,11 +4047,11 @@ msgstr "Daftar publik yang dapat dibagikan oleh pengguna untuk dibisukan atau di msgid "Public, shareable lists which can drive feeds." msgstr "Daftar bersifat publik yang dapat dibagikan dan digunakan sebagai feed." -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "Publikasikan postingan" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "Publikasikan balasan" @@ -4089,7 +4101,7 @@ msgstr "Pencarian terakhir" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4196,7 +4208,7 @@ msgstr "Balasan" msgid "Replies to this thread are disabled" msgstr "Balasan ke utas ini dinonaktifkan" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "Balas" @@ -4363,8 +4375,8 @@ msgstr "Kode reset" msgid "Reset Code" msgstr "Kode Reset" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "Reset status onboarding" @@ -4372,16 +4384,16 @@ msgstr "Reset status onboarding" msgid "Reset password" msgstr "Reset kata sandi" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "Atur ulang status preferensi" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "Reset status onboarding" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "Reset status preferensi" @@ -4396,7 +4408,7 @@ msgstr "Coba kembali tindakan terakhir, yang gagal" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4781,23 +4793,23 @@ msgstr "Atur akun Anda" msgid "Sets Bluesky username" msgstr "Atur nama pengguna Bluesky" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "Mengatur tema menjadi gelap" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "Mengatur tema menjadi terang" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "Mengatur tema sesuai pengaturan sistem" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "Mengatur tema gelap menjadi tema gelap" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "Mengatur tema gelap menjadi tema redup" @@ -4884,7 +4896,7 @@ msgstr "Membagikan situs web tertaut" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "Tampilkan" @@ -5062,7 +5074,7 @@ msgstr "Daftar atau masuk untuk bergabung dalam obrolan" msgid "Sign-in Required" msgstr "Wajib Masuk" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "Masuk sebagai" @@ -5084,6 +5096,10 @@ msgstr "Lewati tahap ini" msgid "Software Dev" msgstr "Pengembang Perangkat Lunak" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "" @@ -5148,7 +5164,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Halaman status" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "" @@ -5165,7 +5181,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Penyimpanan dihapus, Anda perlu memulai ulang aplikasi sekarang." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Storybook" @@ -5184,7 +5200,7 @@ msgstr "Langganan" msgid "Subscribe to @{0} to use these labels:" msgstr "Berlangganan @{0} untuk menggunakan label berikut:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "Berlangganan Pelabel" @@ -5193,7 +5209,7 @@ msgstr "Berlangganan Pelabel" msgid "Subscribe to the {0} feed" msgstr "Langganan ke feed {0}" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "Berlangganan pelabel ini" @@ -5232,11 +5248,11 @@ msgstr "Beralih ke {0}" msgid "Switches the account you are logged in to" msgstr "Mengganti akun yang Anda masuki" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "Sistem" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "Log sistem" @@ -5270,7 +5286,7 @@ msgstr "Ketentuan" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5358,7 +5374,7 @@ msgstr "Ketentuan Layanan telah dipindahkan ke" msgid "There are many feeds to try:" msgstr "Ada banyak feed untuk dicoba:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Ada masalah saat menghubungi server, silakan periksa koneksi internet Anda dan coba lagi." @@ -5640,12 +5656,12 @@ msgstr "Pengguna ini tidak mengikuti siapa pun." msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Ini akan menghapus {0} dari daftar kata yang Anda bisukan. Anda tetap dapat menambahkannya lagi nanti." -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "Preferensi utasan" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "Preferensi Utasan" @@ -5702,7 +5718,7 @@ msgctxt "action" msgid "Try again" msgstr "Coba lagi" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "Autentikasi dua faktor" @@ -5843,11 +5859,11 @@ msgstr "Lepas sematan daftar moderasi" msgid "Unpinned from your feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Berhenti langganan" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "Berhenti langganan pelabel ini" @@ -6032,15 +6048,15 @@ msgstr "Nilai:" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "Verifikasi email" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "Verifikasi email saya" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "Verifikasi Email Saya" @@ -6061,7 +6077,7 @@ msgstr "Verifikasi Email Anda" #~ msgid "Version {0}" #~ msgstr "Versi {0}" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6199,12 +6215,12 @@ msgstr "Mohon maaf, untuk saat ini kami tidak dapat memuat kata yang Anda dibisu msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Maaf, pencarian Anda tidak dapat dilakukan. Mohon coba lagi dalam beberapa menit." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Maaf! Kami tidak dapat menemukan halaman yang Anda cari." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "Maaf, Anda hanya dapat berlangganan sepuluh pelabel dan Anda telah mencapai batas tersebut." @@ -6235,13 +6251,12 @@ msgstr "Bahasa apa yang ingin Anda lihat di feed Anda?" msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "Siapa yang dapat membalas" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "" @@ -6278,7 +6293,7 @@ msgstr "Lebar" msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "Tulis postingan" @@ -6389,7 +6404,7 @@ msgstr "Anda telah membisukan akun ini." msgid "You have muted this user" msgstr "Anda telah membisukan pengguna ini" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/it/messages.po b/src/locale/locales/it/messages.po index 152cd69362..c4f77c74a1 100644 --- a/src/locale/locales/it/messages.po +++ b/src/locale/locales/it/messages.po @@ -123,8 +123,8 @@ msgstr "" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "{invitesAvailable} codici d'invito disponibili" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -205,11 +205,11 @@ msgid "Access profile and other navigation links" msgstr "Accedi al profilo e ad altre impostazioni di navigazione" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "Accessibilità" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "Impostazioni di accessibilità" @@ -223,8 +223,8 @@ msgstr "Impostazioni di Accessibilità" #~ msgstr "account" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "Account" @@ -286,8 +286,8 @@ msgid "Add a user to this list" msgstr "Aggiungi un utente a questo elenco" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "Aggiungi account" @@ -382,7 +382,7 @@ msgid "Adult content is disabled." msgstr "Il contenuto per adulti è disattivato." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "Avanzato" @@ -491,7 +491,7 @@ msgstr "Le password dell'app possono contenere solo lettere, numeri, spazi, trat msgid "App Password names must be at least 4 characters long." msgstr "Le password delle app devono contenere almeno 4 caratteri." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "Impostazioni della password dell'app" @@ -500,7 +500,7 @@ msgstr "Impostazioni della password dell'app" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "Password dell'App" @@ -541,7 +541,7 @@ msgstr "Appella contro questa decisione" #~ msgid "Appeal this decision." #~ msgstr "Appella contro questa decisione." -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "Aspetto" @@ -574,7 +574,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Confermi di voler rimuovere {0} dai tuoi feed?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "Confermi di voler eliminare questa bozza?" @@ -628,7 +628,7 @@ msgstr "Indietro" msgid "Based on your interest in {interestsText}" msgstr "Basato sui tuoi interessi {interestsText}" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "Preferenze" @@ -636,7 +636,7 @@ msgstr "Preferenze" msgid "Birthday" msgstr "Compleanno" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "Compleanno:" @@ -887,17 +887,17 @@ msgstr "Annulla l'apertura del sito collegato" msgid "Change" msgstr "Cambia" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "Cambia" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "Cambia il nome utente" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "Cambia il Nome Utente" @@ -905,12 +905,12 @@ msgstr "Cambia il Nome Utente" msgid "Change my email" msgstr "Cambia la mia email" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "Cambia la password" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "Cambia la Password" @@ -938,7 +938,7 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "" @@ -1003,19 +1003,19 @@ msgstr "Scegli i tuoi feed principali" msgid "Choose your password" msgstr "Scegli la tua password" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "Cancella tutti i dati legacy in archivio" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "Cancella tutti i dati legacy in archivio (poi ricomincia)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "Cancella tutti i dati in archivio" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "Cancella tutti i dati in archivio (poi ricomincia)" @@ -1024,11 +1024,11 @@ msgstr "Cancella tutti i dati in archivio (poi ricomincia)" msgid "Clear search query" msgstr "Annulla la ricerca" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "Cancella tutti i dati di archiviazione legacy" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "Cancella tutti i dati di archiviazione" @@ -1150,7 +1150,7 @@ msgstr "Completa l'incorporazione e inizia a utilizzare il tuo account" msgid "Complete the challenge" msgstr "Completa la challenge" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Componi un post fino a {MAX_GRAPHEME_LENGTH} caratteri" @@ -1409,7 +1409,7 @@ msgstr "" msgid "Create a new account" msgstr "Crea un nuovo account" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "Crea un nuovo Bluesky account" @@ -1477,8 +1477,8 @@ msgstr "Personalizza i media da i siti esterni." #~ msgid "Danger Zone" #~ msgstr "Zona di Pericolo" -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "Scuro" @@ -1486,7 +1486,7 @@ msgstr "Scuro" msgid "Dark mode" msgstr "Aspetto scuro" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "Tema scuro" @@ -1494,7 +1494,7 @@ msgstr "Tema scuro" msgid "Date of birth" msgstr "Data di nascita" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "Eliminare errori nella Moderazione" @@ -1509,7 +1509,7 @@ msgstr "Pannello per il debug" msgid "Delete" msgstr "Elimina" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "Elimina l'account" @@ -1529,8 +1529,8 @@ msgstr "Elimina la password dell'app" msgid "Delete app password?" msgstr "Eliminare la password dell'app?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1557,7 +1557,7 @@ msgstr "Cancellare account" #~ msgid "Delete my account…" #~ msgstr "Cancella il mio account…" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "Cancellare Account…" @@ -1582,7 +1582,7 @@ msgstr "Eliminato" msgid "Deleted post." msgstr "Post eliminato." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1607,7 +1607,7 @@ msgstr "" msgid "Did you want to say anything?" msgstr "Volevi dire qualcosa?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "Fioco" @@ -1634,14 +1634,14 @@ msgstr "Disattiva il feedback tattile" msgid "Disabled" msgstr "Disabilitato" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "Scartare" #~ msgid "Discard draft" #~ msgstr "Scarta la bozza" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "Scartare la bozza?" @@ -1819,12 +1819,12 @@ msgstr "Modifica i miei feeds" msgid "Edit my profile" msgstr "Modifica il mio profilo" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "Modifica il profilo" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "Modifica il Profilo" @@ -1876,7 +1876,7 @@ msgstr "Email Aggiornata" msgid "Email verified" msgstr "Email verificata" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "Email:" @@ -1939,6 +1939,10 @@ msgstr "Abilitato" msgid "End of feed" msgstr "Fine del feed" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "Inserisci un nome per questa password dell'app" @@ -2015,6 +2019,10 @@ msgstr "Errore:" msgid "Everybody" msgstr "Tutti" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -2071,12 +2079,12 @@ msgstr "Media espliciti o potenzialmente inquietanti." msgid "Explicit sexual images." msgstr "Immagini sessuali esplicite." -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "Esporta i miei dati" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "Esporta i miei dati" @@ -2092,11 +2100,11 @@ msgstr "I multimediali esterni possono consentire ai siti web di raccogliere inf #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "Preferenze multimediali esterni" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "Impostazioni multimediali esterni" @@ -2342,7 +2350,7 @@ msgstr "Following" msgid "Following {0}" msgstr "Seguiti {0}" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "Preferenze del Following feed" @@ -2350,7 +2358,7 @@ msgstr "Preferenze del Following feed" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "Preferenze del Following Feed" @@ -2859,7 +2867,7 @@ msgstr "Etichette sul tuo contenuto" msgid "Language selection" msgstr "Seleziona la lingua" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "Impostazione delle lingue" @@ -2868,7 +2876,7 @@ msgstr "Impostazione delle lingue" msgid "Language Settings" msgstr "Impostazione delle Lingue" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "Lingue" @@ -2950,7 +2958,7 @@ msgstr "Andiamo!" #~ msgid "Library" #~ msgstr "Biblioteca" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "Chiaro" @@ -2958,7 +2966,7 @@ msgstr "Chiaro" #~ msgid "Like" #~ msgstr "Mi piace" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Metti mi piace a questo feed" @@ -3185,14 +3193,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "" @@ -3206,7 +3214,7 @@ msgstr "Account Ingannevole" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "Moderazione" @@ -3246,7 +3254,7 @@ msgstr "Liste di moderazione" msgid "Moderation Lists" msgstr "Liste di Moderazione" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "Impostazioni di moderazione" @@ -3395,11 +3403,11 @@ msgstr "I miei Feeds" msgid "My Profile" msgstr "Il mio Profilo" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "I miei feed salvati" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "I miei Feeds Salvati" @@ -3465,8 +3473,8 @@ msgid "New" msgstr "Nuova" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "" @@ -3596,7 +3604,7 @@ msgstr "Nessun risultato" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "Non si è trovato nessun risultato" @@ -3627,6 +3635,10 @@ msgstr "No grazie" msgid "Nobody" msgstr "Nessuno" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3660,7 +3672,7 @@ msgstr "Nota sulla condivisione" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky è una rete aperta e pubblica. Questa impostazione limita solo la visibilità dei tuoi contenuti sull'app e sul sito Web di Bluesky e altre app potrebbero non rispettare questa impostazione. I tuoi contenuti potrebbero comunque essere mostrati agli utenti disconnessi da altre app e siti web." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3707,7 +3719,7 @@ msgid "Oh no! Something went wrong." msgstr "Oh no! Qualcosa è andato male." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "OK" @@ -3723,7 +3735,7 @@ msgstr "Mostrare prima le risposte più vecchie" msgid "Onboarding reset" msgstr "Reimpostazione dell'onboarding" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "A una o più immagini manca il testo alternativo." @@ -3739,11 +3751,11 @@ msgstr "Solo {0} può rispondere." msgid "Only contains letters, numbers, and hyphens" msgstr "Contiene solo lettere, numeri e trattini" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "Ops! Qualcosa è andato male!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3762,8 +3774,8 @@ msgstr "" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "Apri il selettore emoji" @@ -3771,7 +3783,7 @@ msgstr "Apri il selettore emoji" msgid "Open feed options menu" msgstr "Apri il menu delle opzioni del feed" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "Apri i links con il navigatore della app" @@ -3791,12 +3803,12 @@ msgstr "Apri la navigazione" msgid "Open post options menu" msgstr "Apri il menu delle opzioni del post" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "Apri la pagina della cronologia" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "Apri il registro di sistema" @@ -3804,7 +3816,7 @@ msgstr "Apri il registro di sistema" msgid "Opens {numItems} options" msgstr "Apre le {numItems} opzioni" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "Apre le impostazioni di accessibilità" @@ -3824,7 +3836,7 @@ msgstr "Apre la fotocamera sul dispositivo" msgid "Opens composer" msgstr "Apre il compositore" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "Apre le impostazioni configurabili delle lingue" @@ -3835,7 +3847,7 @@ msgstr "Apre la galleria fotografica del dispositivo" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Apre l'editor per il nome configurato del profilo, l'avatar, l'immagine di sfondo e la descrizione" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "Apre le impostazioni esterne per gli incorporamenti" @@ -3866,26 +3878,26 @@ msgstr "Apre la finestra per selezionare i GIF" msgid "Opens list of invite codes" msgstr "Apre la lista dei codici di invito" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Apre la modale per la conferma dell'eliminazione dell'account. Richiede un codice e-mail" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Apre il modal per la conferma dell'eliminazione dell'account. Richiede un codice email." -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "Apre la modale per modificare il tuo password di Bluesky" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Apre la modale per la scelta di un nuovo handle di Bluesky" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Apre la modale per scaricare i dati del tuo account Bluesky (repository)" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "Apre la modale per la verifica dell'e-mail" @@ -3893,7 +3905,7 @@ msgstr "Apre la modale per la verifica dell'e-mail" msgid "Opens modal for using custom domain" msgstr "Apre il modal per l'utilizzo del dominio personalizzato" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "Apre le impostazioni di moderazione" @@ -3906,18 +3918,18 @@ msgstr "Apre il modulo di reimpostazione della password" msgid "Opens screen to edit Saved Feeds" msgstr "Apre la schermata per modificare i feed salvati" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "Apre la schermata con tutti i feed salvati" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "Apre le impostazioni della password dell'app" #~ msgid "Opens the app password settings page" #~ msgstr "Apre la pagina delle impostazioni della password dell'app" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "Apre le preferenze del feed Following" @@ -3932,16 +3944,16 @@ msgstr "Apre il sito Web collegato" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "Apri la pagina della cronologia" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "Apre la pagina del registro di sistema" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "Apre le preferenze dei threads" @@ -3977,7 +3989,7 @@ msgstr "Altro..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Pagina non trovata" @@ -4166,8 +4178,8 @@ msgstr "Porno" #~ msgid "Pornography" #~ msgstr "Pornografia" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "Post" @@ -4250,7 +4262,7 @@ msgid "Press to change hosting provider" msgstr "Premi per cambiare provider di hosting" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4273,7 +4285,7 @@ msgstr "Lingua principale" msgid "Prioritize Your Follows" msgstr "Dai priorità a quelli che segui" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privacy" @@ -4281,7 +4293,7 @@ msgstr "Privacy" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Informativa sulla privacy" @@ -4311,7 +4323,7 @@ msgstr "Profilo" msgid "Profile updated" msgstr "Profilo aggiornato" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "Proteggi il tuo account verificando la tua email." @@ -4327,11 +4339,11 @@ msgstr "Elenchi pubblici e condivisibili di utenti da disattivare o bloccare in msgid "Public, shareable lists which can drive feeds." msgstr "Liste pubbliche e condivisibili che possono impulsare i feeds." -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "Pubblica il post" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "Pubblica la risposta" @@ -4384,7 +4396,7 @@ msgstr "Ricerche recenti" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4500,7 +4512,7 @@ msgstr "Risposte" msgid "Replies to this thread are disabled" msgstr "Le risposte a questo thread sono disabilitate" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "Risposta" @@ -4679,8 +4691,8 @@ msgstr "Reimposta il Codice" #~ msgid "Reset onboarding" #~ msgstr "Reimposta l'incorporazione" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "Reimposta lo stato dell' incorporazione" @@ -4691,16 +4703,16 @@ msgstr "Reimposta la password" #~ msgid "Reset preferences" #~ msgstr "Reimposta le preferenze" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "Reimposta lo stato delle preferenze" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "Reimposta lo stato dell'incorporazione" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "Reimposta lo stato delle preferenze" @@ -4715,7 +4727,7 @@ msgstr "Ritenta l'ultima azione che ha generato un errore" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5148,23 +5160,23 @@ msgstr "Configura il tuo account" msgid "Sets Bluesky username" msgstr "Imposta il tuo nome utente di Bluesky" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "Imposta il tema colore su scuro" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "Imposta il tema colore su chiaro" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "Imposta il tema colore basato impostazioni di sistema" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "Imposta il tema scuro sul tema scuro" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "Imposta il tema scuro sul tema semi fosco" @@ -5257,7 +5269,7 @@ msgstr "Condivide il sito Web nel link" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "Mostra" @@ -5447,7 +5459,7 @@ msgstr "Iscriviti o accedi per partecipare alla conversazione" msgid "Sign-in Required" msgstr "È richiesta l'autenticazione" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "Registrato/a come" @@ -5475,6 +5487,10 @@ msgstr "Salta questa corrente" msgid "Software Dev" msgstr "Sviluppo Software" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "" @@ -5548,7 +5564,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Pagina di stato" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "" @@ -5568,7 +5584,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Spazio di archiviazione eliminato. Riavvia l'app." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Cronologia" @@ -5587,7 +5603,7 @@ msgstr "Iscriviti" msgid "Subscribe to @{0} to use these labels:" msgstr "Iscriviti a @{0} per utilizzare queste etichette:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "Iscriviti a Labeler" @@ -5596,7 +5612,7 @@ msgstr "Iscriviti a Labeler" msgid "Subscribe to the {0} feed" msgstr "Iscriviti a {0} feed" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "Iscriviti a questo labeler" @@ -5638,11 +5654,11 @@ msgstr "Cambia a {0}" msgid "Switches the account you are logged in to" msgstr "Cambia l'account dal quale hai effettuato l'accesso" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "Registro di sistema" @@ -5676,7 +5692,7 @@ msgstr "Termini" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5767,7 +5783,7 @@ msgstr "I Termini di Servizio sono stati spostati a" msgid "There are many feeds to try:" msgstr "Ci sono molti feed da provare:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Si è verificato un problema nel contattare il server, controlla la tua connessione Internet e riprova." @@ -6073,12 +6089,12 @@ msgstr "Questo eliminerà {0} dalle parole disattivate. Puoi sempre aggiungerla #~ msgid "This will hide this post from your feeds." #~ msgstr "Questo nasconderà il post dai tuoi feeds." -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "Preferenze delle discussioni" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "Preferenze delle Discussioni" @@ -6138,7 +6154,7 @@ msgstr "Riprova" #~ msgid "Try again" #~ msgstr "Provalo di nuovo" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "Autenticazione a due fattori" @@ -6285,11 +6301,11 @@ msgstr "" #~ msgid "Unsave" #~ msgstr "Rimuovi" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Annulla l'iscrizione" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "Annulla l'iscrizione a questo/a labeler" @@ -6486,15 +6502,15 @@ msgstr "Valore:" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "Verifica Email" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "Verifica la mia email" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "Verifica la Mia Email" @@ -6515,7 +6531,7 @@ msgstr "Verifica la tua email" #~ msgid "Version {0}" #~ msgstr "Versione {0}" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6659,12 +6675,12 @@ msgstr "Siamo spiacenti, ma al momento non siamo riusciti a caricare le parole s msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Siamo spiacenti, ma non è stato possibile completare la ricerca. Riprova tra qualche minuto." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Ci dispiace! Non riusciamo a trovare la pagina che stavi cercando." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "Ci dispiace! Puoi abbonarti solo a dieci etichettatori e hai raggiunto il limite di dieci." @@ -6701,13 +6717,12 @@ msgstr "Quali lingue vorresti vedere negli algoritmi dei tuoi feeds?" msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "Chi può rispondere" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "" @@ -6744,7 +6759,7 @@ msgstr "Largo" msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "Scrivi un post" @@ -6864,7 +6879,7 @@ msgstr "Hai silenziato questo utente" #~ msgid "You have muted this user." #~ msgstr "Hai disattivato questo utente." -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index f45c32dd42..54ed8474fc 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -92,8 +92,8 @@ msgstr "{following} フォロー" msgid "{handle} can't be messaged" msgstr "{handle}にメッセージを送れません" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{likeCount, plural, other {#人のユーザーがいいね}}" @@ -140,11 +140,11 @@ msgid "Access profile and other navigation links" msgstr "プロフィールと他のナビゲーションリンクにアクセス" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "アクセシビリティ" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "アクセシビリティの設定" @@ -154,8 +154,8 @@ msgid "Accessibility Settings" msgstr "アクセシビリティの設定" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "アカウント" @@ -217,8 +217,8 @@ msgid "Add a user to this list" msgstr "リストにユーザーを追加" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "アカウントを追加" @@ -290,7 +290,7 @@ msgid "Adult content is disabled." msgstr "成人向けコンテンツは無効になっています。" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "高度な設定" @@ -395,13 +395,13 @@ msgstr "アプリパスワードの名前には、英数字、スペース、ハ msgid "App Password names must be at least 4 characters long." msgstr "アプリパスワードの名前は長さが4文字以上である必要があります。" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "アプリパスワードの設定" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "アプリパスワード" @@ -426,7 +426,7 @@ msgstr "異議申し立てを提出しました" msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "背景" @@ -451,7 +451,7 @@ msgstr "この会話から退出しますか?あなたのメッセージはあ msgid "Are you sure you want to remove {0} from your feeds?" msgstr "あなたのフィードから{0}を削除してもよろしいですか?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "本当にこの下書きを破棄しますか?" @@ -498,7 +498,7 @@ msgstr "戻る" msgid "Based on your interest in {interestsText}" msgstr "{interestsText}への興味に基づいたおすすめ" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "基本" @@ -506,7 +506,7 @@ msgstr "基本" msgid "Birthday" msgstr "生年月日" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "生年月日:" @@ -717,17 +717,17 @@ msgstr "リンク先のウェブサイトを開くことをキャンセル" msgid "Change" msgstr "変更" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "変更" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "ハンドルを変更" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "ハンドルを変更" @@ -735,12 +735,12 @@ msgstr "ハンドルを変更" msgid "Change my email" msgstr "メールアドレスを変更" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "パスワードを変更" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "パスワードを変更" @@ -765,7 +765,7 @@ msgstr "チャットをミュートしました" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "チャットの設定" @@ -810,19 +810,19 @@ msgstr "メインのフィードを選択" msgid "Choose your password" msgstr "パスワードを入力" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "レガシーストレージデータをすべてクリア" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "すべてのレガシーストレージデータをクリア(このあと再起動します)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "すべてのストレージデータをクリア" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "すべてのストレージデータをクリア(このあと再起動します)" @@ -831,11 +831,11 @@ msgstr "すべてのストレージデータをクリア(このあと再起動 msgid "Clear search query" msgstr "検索クエリをクリア" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "すべてのレガシーストレージデータをクリア" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "すべてのストレージデータをクリア" @@ -950,7 +950,7 @@ msgstr "初期設定を完了してアカウントを使い始める" msgid "Complete the challenge" msgstr "テストをクリアしてください" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "{MAX_GRAPHEME_LENGTH}文字までの投稿を作成" @@ -1175,7 +1175,7 @@ msgstr "チャットのミュートに失敗しました" msgid "Create a new account" msgstr "新しいアカウントを作成" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "新しいBlueskyアカウントを作成" @@ -1231,8 +1231,8 @@ msgstr "コミュニティーによって作成されたカスタムフィード msgid "Customize media from external sites." msgstr "外部サイトのメディアをカスタマイズします。" -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "ダーク" @@ -1240,7 +1240,7 @@ msgstr "ダーク" msgid "Dark mode" msgstr "ダークモード" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "ダークテーマ" @@ -1248,7 +1248,7 @@ msgstr "ダークテーマ" msgid "Date of birth" msgstr "生年月日" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "モデレーションをデバッグ" @@ -1263,7 +1263,7 @@ msgstr "デバッグパネル" msgid "Delete" msgstr "削除" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "アカウントを削除" @@ -1279,8 +1279,8 @@ msgstr "アプリパスワードを削除" msgid "Delete app password?" msgstr "アプリパスワードを削除しますか?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "チャットの宣言レコードを削除" @@ -1304,7 +1304,7 @@ msgstr "メッセージの宛先から自分を削除" msgid "Delete my account" msgstr "マイアカウントを削除" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "マイアカウントを削除…" @@ -1329,7 +1329,7 @@ msgstr "削除されています" msgid "Deleted post." msgstr "投稿を削除しました。" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "チャットの宣言レコードを削除する" @@ -1348,7 +1348,7 @@ msgstr "説明的なALTテキスト" msgid "Did you want to say anything?" msgstr "なにか言いたいことはあった?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "グレー" @@ -1375,11 +1375,11 @@ msgstr "触覚フィードバックを無効化" msgid "Disabled" msgstr "無効" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "破棄" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "下書きを削除しますか?" @@ -1545,12 +1545,12 @@ msgstr "マイフィードを編集" msgid "Edit my profile" msgstr "マイプロフィールを編集" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "プロフィールを編集" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "プロフィールを編集" @@ -1602,7 +1602,7 @@ msgstr "メールアドレスは更新されました" msgid "Email verified" msgstr "メールアドレスは認証されました" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "メールアドレス:" @@ -1662,6 +1662,10 @@ msgstr "有効" msgid "End of feed" msgstr "フィードの終わり" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "このアプリパスワードの名前を入力" @@ -1729,6 +1733,10 @@ msgstr "エラー:" msgid "Everybody" msgstr "全員" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1782,12 +1790,12 @@ msgstr "露骨な、または不愉快になる可能性のあるメディア。 msgid "Explicit sexual images." msgstr "露骨な性的画像。" -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "私のデータをエクスポートする" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "私のデータをエクスポートする" @@ -1803,11 +1811,11 @@ msgstr "外部メディアを有効にすると、それらのメディアのウ #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "外部メディアの設定" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "外部メディアの設定" @@ -2013,7 +2021,7 @@ msgstr "フォロー中" msgid "Following {0}" msgstr "{0}をフォローしています" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "Followingフィードの設定" @@ -2021,7 +2029,7 @@ msgstr "Followingフィードの設定" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "Followingフィードの設定" @@ -2470,7 +2478,7 @@ msgstr "あなたのコンテンツのラベル" msgid "Language selection" msgstr "言語の選択" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "言語の設定" @@ -2479,7 +2487,7 @@ msgstr "言語の設定" msgid "Language Settings" msgstr "言語の設定" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "言語" @@ -2552,11 +2560,11 @@ msgstr "パスワードをリセットしましょう!" msgid "Let's go!" msgstr "さあ始めましょう!" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "ライト" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "このフィードをいいね" @@ -2744,14 +2752,14 @@ msgstr "メッセージを入力するフィールド" msgid "Message is too long" msgstr "メッセージが長すぎます" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "メッセージの設定" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "メッセージ" @@ -2761,7 +2769,7 @@ msgstr "誤解を招くアカウント" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "モデレーション" @@ -2801,7 +2809,7 @@ msgstr "モデレーションリスト" msgid "Moderation Lists" msgstr "モデレーションリスト" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "モデレーションの設定" @@ -2936,11 +2944,11 @@ msgstr "マイフィード" msgid "My Profile" msgstr "マイプロフィール" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "保存されたフィード" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "保存されたフィード" @@ -2995,8 +3003,8 @@ msgid "New" msgstr "新規" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "新しいチャット" @@ -3122,7 +3130,7 @@ msgstr "結果はありません" msgid "No results" msgstr "結果はありません" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "結果は見つかりません" @@ -3149,6 +3157,10 @@ msgstr "結構です" msgid "Nobody" msgstr "返信不可" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3178,7 +3190,7 @@ msgstr "共有についての注意事項" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "注記:Blueskyはオープンでパブリックなネットワークです。この設定はBlueskyのアプリおよびウェブサイト上のみでのあなたのコンテンツの可視性を制限するものであり、他のアプリではこの設定を尊重しない場合があります。他のアプリやウェブサイトでは、ログアウトしたユーザーにあなたのコンテンツが表示される場合があります。" -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3218,7 +3230,7 @@ msgid "Oh no! Something went wrong." msgstr "ちょっと!なにかがおかしいです。" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "OK" @@ -3234,7 +3246,7 @@ msgstr "古い順に返信を表示" msgid "Onboarding reset" msgstr "オンボーディングのリセット" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "1つもしくは複数の画像にALTテキストがありません。" @@ -3250,11 +3262,11 @@ msgstr "{0}のみ返信可能" msgid "Only contains letters, numbers, and hyphens" msgstr "英数字とハイフンのみ" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "おっと、なにかが間違っているようです!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3273,8 +3285,8 @@ msgstr "アバター・クリエイターを開く" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "絵文字を入力" @@ -3282,7 +3294,7 @@ msgstr "絵文字を入力" msgid "Open feed options menu" msgstr "フィードの設定メニューを開く" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "アプリ内ブラウザーでリンクを開く" @@ -3302,12 +3314,12 @@ msgstr "ナビゲーションを開く" msgid "Open post options menu" msgstr "投稿のオプションを開く" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "絵本のページを開く" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "システムのログを開く" @@ -3315,7 +3327,7 @@ msgstr "システムのログを開く" msgid "Opens {numItems} options" msgstr "{numItems}個のオプションを開く" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "アクセシビリティの設定を開く" @@ -3335,7 +3347,7 @@ msgstr "デバイスのカメラを開く" msgid "Opens composer" msgstr "編集画面を開く" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "構成可能な言語設定を開く" @@ -3343,7 +3355,7 @@ msgstr "構成可能な言語設定を開く" msgid "Opens device photo gallery" msgstr "デバイスのフォトギャラリーを開く" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "外部コンテンツの埋め込みの設定を開く" @@ -3365,23 +3377,23 @@ msgstr "GIFの選択のダイアログを開く" msgid "Opens list of invite codes" msgstr "招待コードのリストを開く" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "アカウントの削除確認用の表示を開きます。メールアドレスのコードが必要です" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "Blueskyのパスワードを変更するためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "新しいBlueskyのハンドルを選択するためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Blueskyのアカウントのデータ(リポジトリ)をダウンロードするためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "メールアドレスの認証のためのモーダルを開く" @@ -3389,7 +3401,7 @@ msgstr "メールアドレスの認証のためのモーダルを開く" msgid "Opens modal for using custom domain" msgstr "カスタムドメインを使用するためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "モデレーションの設定を開く" @@ -3402,15 +3414,15 @@ msgstr "パスワードリセットのフォームを開く" msgid "Opens screen to edit Saved Feeds" msgstr "保存されたフィードの編集画面を開く" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "保存されたすべてのフィードで画面を開く" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "アプリパスワードの設定を開く" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "Followingフィードの設定を開く" @@ -3418,16 +3430,16 @@ msgstr "Followingフィードの設定を開く" msgid "Opens the linked website" msgstr "リンク先のウェブサイトを開く" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "ストーリーブックのページを開く" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "システムログのページを開く" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "スレッドの設定を開く" @@ -3460,7 +3472,7 @@ msgstr "その他..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "モデレーターが報告をレビューし、Blueskyであなたがチャットにアクセスできないようにしました。" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "ページが見つかりません" @@ -3628,8 +3640,8 @@ msgstr "政治" msgid "Porn" msgstr "ポルノ" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "投稿" @@ -3709,7 +3721,7 @@ msgid "Press to change hosting provider" msgstr "ホスティングプロバイダーを変える" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3727,7 +3739,7 @@ msgstr "第一言語" msgid "Prioritize Your Follows" msgstr "あなたのフォローを優先" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "プライバシー" @@ -3735,7 +3747,7 @@ msgstr "プライバシー" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "プライバシーポリシー" @@ -3765,7 +3777,7 @@ msgstr "プロフィール" msgid "Profile updated" msgstr "プロフィールを更新しました" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "メールアドレスを確認してアカウントを保護します。" @@ -3781,11 +3793,11 @@ msgstr "ユーザーを一括でミュートまたはブロックする、公開 msgid "Public, shareable lists which can drive feeds." msgstr "フィードとして利用できる、公開された共有可能なリスト。" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "投稿を公開" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "返信を公開" @@ -3823,7 +3835,7 @@ msgstr "検索履歴" msgid "Reconnect" msgstr "再接続" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -3930,7 +3942,7 @@ msgstr "返信" msgid "Replies to this thread are disabled" msgstr "このスレッドへの返信はできません" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "返信" @@ -4087,8 +4099,8 @@ msgstr "リセットコード" msgid "Reset Code" msgstr "リセットコード" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "オンボーディングの状態をリセット" @@ -4096,16 +4108,16 @@ msgstr "オンボーディングの状態をリセット" msgid "Reset password" msgstr "パスワードをリセット" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "設定をリセット" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "オンボーディングの状態をリセットします" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "設定の状態をリセットします" @@ -4120,7 +4132,7 @@ msgstr "エラーになった最後のアクションをやり直す" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4489,23 +4501,23 @@ msgstr "アカウントを設定する" msgid "Sets Bluesky username" msgstr "Blueskyのユーザーネームを設定" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "カラーテーマをダークに設定します" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "カラーテーマをライトに設定します" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "デバイスで設定したカラーテーマを使用するように設定します" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "ダークテーマを暗いものに設定します" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "ダークテーマを薄暗いものに設定します" @@ -4592,7 +4604,7 @@ msgstr "リンクしたウェブサイトを共有" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "表示" @@ -4762,7 +4774,7 @@ msgstr "サインアップまたはサインインして会話に参加" msgid "Sign-in Required" msgstr "サインインが必要" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "サインイン済み" @@ -4784,6 +4796,10 @@ msgstr "この手順をスキップする" msgid "Software Dev" msgstr "ソフトウェア開発" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "何らかの問題が発生しました" @@ -4840,7 +4856,7 @@ msgstr "{displayName}とのチャットを開始" msgid "Start chatting" msgstr "チャットを開始" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "ステータスページ" @@ -4853,7 +4869,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "ストレージがクリアされたため、今すぐアプリを再起動する必要があります。" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "ストーリーブック" @@ -4872,7 +4888,7 @@ msgstr "登録" msgid "Subscribe to @{0} to use these labels:" msgstr "これらのラベルを使用するには@{0}を登録してください:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "ラベラーを登録する" @@ -4881,7 +4897,7 @@ msgstr "ラベラーを登録する" msgid "Subscribe to the {0} feed" msgstr "{0} フィードを登録" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "このラベラーを登録" @@ -4920,11 +4936,11 @@ msgstr "{0}に切り替え" msgid "Switches the account you are logged in to" msgstr "ログインしているアカウントを切り替えます" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "システム" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "システムログ" @@ -4958,7 +4974,7 @@ msgstr "条件" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5042,7 +5058,7 @@ msgstr "サービス規約は移動しました" msgid "There are many feeds to try:" msgstr "試せるフィードはたくさんあります:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "サーバーへの問い合わせ中に問題が発生しました。インターネットへの接続を確認の上、もう一度お試しください。" @@ -5304,12 +5320,12 @@ msgstr "このユーザーは誰もフォローしていません。" msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "ミュートしたワードから{0}が削除されます。あとでいつでも戻すことができます。" -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "スレッドの設定" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "スレッドの設定" @@ -5366,7 +5382,7 @@ msgctxt "action" msgid "Try again" msgstr "再試行" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "2要素認証" @@ -5499,11 +5515,11 @@ msgstr "モデレーションリストのピン留めを解除" msgid "Unpinned from your feeds" msgstr "フィードからピン留めを解除" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "登録を解除" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "このラベラーの登録を解除" @@ -5680,15 +5696,15 @@ msgstr "値:" msgid "Verify DNS Record" msgstr "DNSレコードを確認" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "メールアドレスを確認" @@ -5705,7 +5721,7 @@ msgstr "テキストファイルを確認" msgid "Verify Your Email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "バージョン {appVersion} {bundleInfo}" @@ -5843,12 +5859,12 @@ msgstr "大変申し訳ありませんが、現在ミュートされたワード msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "大変申し訳ありませんが、検索を完了できませんでした。数分後に再試行してください。" -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "大変申し訳ありません!お探しのページは見つかりません。" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "大変申し訳ありません!ラベラーは10までしか登録できず、すでに上限に達しています。" @@ -5875,13 +5891,12 @@ msgstr "アルゴリズムによるフィードにはどの言語を使用しま msgid "Who can message you?" msgstr "誰があなたへメッセージを送れるか?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "返信できるユーザー" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "おっと!" @@ -5922,7 +5937,7 @@ msgstr "ワイド" msgid "Write a message" msgstr "メッセージを書く" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "投稿を書く" @@ -6033,7 +6048,7 @@ msgstr "このユーザーをミュートしました" #~ msgid "You have no chats yet. Start a conversation with someone!" #~ msgstr "まだチャットしていません。誰かと会話を初めましょう!" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index edb122f1ed..dea57a6ded 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -92,8 +92,8 @@ msgstr "{following} 팔로우 중" msgid "{handle} can't be messaged" msgstr "{handle}에게 메시지를 보낼 수 없습니다" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{likeCount, plural, other {#}}명의 사용자가 좋아함" @@ -140,11 +140,11 @@ msgid "Access profile and other navigation links" msgstr "프로필 및 기타 탐색 링크로 이동합니다" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "접근성" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "접근성 설정" @@ -154,8 +154,8 @@ msgid "Accessibility Settings" msgstr "접근성 설정" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "계정" @@ -217,8 +217,8 @@ msgid "Add a user to this list" msgstr "이 리스트에 사용자 추가" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "계정 추가" @@ -290,7 +290,7 @@ msgid "Adult content is disabled." msgstr "성인 콘텐츠가 비활성화되어 있습니다." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "고급" @@ -395,13 +395,13 @@ msgstr "앱 비밀번호 이름에는 문자, 숫자, 공백, 대시, 밑줄만 msgid "App Password names must be at least 4 characters long." msgstr "앱 비밀번호 이름은 4자 이상이어야 합니다." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "앱 비밀번호 설정" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "앱 비밀번호" @@ -426,7 +426,7 @@ msgstr "이의신청 제출함" msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "모양" @@ -451,7 +451,7 @@ msgstr "정말 이 대화를 종료하시겠습니까? 나에게 보이는 메 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "피드에서 {0}을(를) 제거하시겠습니까?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "이 초안을 삭제하시겠습니까?" @@ -498,7 +498,7 @@ msgstr "뒤로" msgid "Based on your interest in {interestsText}" msgstr "{interestsText}에 대한 관심사 기반" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "기본" @@ -506,7 +506,7 @@ msgstr "기본" msgid "Birthday" msgstr "생년월일" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "생년월일:" @@ -717,17 +717,17 @@ msgstr "연결된 웹사이트를 여는 것을 취소합니다" msgid "Change" msgstr "변경" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "변경" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "핸들 변경" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "핸들 변경" @@ -735,12 +735,12 @@ msgstr "핸들 변경" msgid "Change my email" msgstr "내 이메일 변경하기" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "비밀번호 변경" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "비밀번호 변경" @@ -765,7 +765,7 @@ msgstr "대화 뮤트됨" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "대화 설정" @@ -810,19 +810,19 @@ msgstr "기본 피드 선택" msgid "Choose your password" msgstr "비밀번호를 입력하세요" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "모든 레거시 스토리지 데이터 지우기" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "모든 레거시 스토리지 데이터 지우기 (이후 다시 시작)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "모든 스토리지 데이터 지우기" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" @@ -831,11 +831,11 @@ msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" msgid "Clear search query" msgstr "검색어 지우기" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "모든 레거시 스토리지 데이터를 지웁니다" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "모든 스토리지 데이터를 지웁니다" @@ -950,7 +950,7 @@ msgstr "온보딩 완료 후 계정 사용 시작" msgid "Complete the challenge" msgstr "챌린지 완료하기" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "최대 {MAX_GRAPHEME_LENGTH}자 길이까지 글을 작성할 수 있습니다" @@ -1179,7 +1179,7 @@ msgstr "대화를 뮤트할 수 없습니다" msgid "Create a new account" msgstr "새 계정 만들기" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "새 Bluesky 계정을 만듭니다" @@ -1235,8 +1235,8 @@ msgstr "커뮤니티에서 구축한 맞춤 피드는 새로운 경험을 제공 msgid "Customize media from external sites." msgstr "외부 사이트 미디어를 사용자 지정합니다." -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "어두움" @@ -1244,7 +1244,7 @@ msgstr "어두움" msgid "Dark mode" msgstr "어두운 모드" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "어두운 테마" @@ -1252,7 +1252,7 @@ msgstr "어두운 테마" msgid "Date of birth" msgstr "생년월일" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "검토 디버그" @@ -1267,7 +1267,7 @@ msgstr "디버그 패널" msgid "Delete" msgstr "삭제" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "계정 삭제" @@ -1283,8 +1283,8 @@ msgstr "앱 비밀번호 삭제" msgid "Delete app password?" msgstr "앱 비밀번호를 삭제하시겠습니까?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "대화 신고 기록 삭제" @@ -1308,7 +1308,7 @@ msgstr "내게 보이는 메시지 삭제" msgid "Delete my account" msgstr "내 계정 삭제" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "내 계정 삭제…" @@ -1333,7 +1333,7 @@ msgstr "삭제됨" msgid "Deleted post." msgstr "삭제된 게시물." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "대화 신고 기록을 삭제합니다" @@ -1352,7 +1352,7 @@ msgstr "설명이 포함된 대체 텍스트" msgid "Did you want to say anything?" msgstr "하고 싶은 말이 있나요?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "어둑함" @@ -1379,11 +1379,11 @@ msgstr "햅틱 피드백 끄기" msgid "Disabled" msgstr "비활성화됨" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "삭제" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "초안 삭제" @@ -1549,12 +1549,12 @@ msgstr "내 피드 편집" msgid "Edit my profile" msgstr "내 프로필 편집" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "프로필 편집" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "프로필 편집" @@ -1606,7 +1606,7 @@ msgstr "이메일 변경됨" msgid "Email verified" msgstr "이메일 확인됨" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "이메일:" @@ -1666,6 +1666,10 @@ msgstr "활성화됨" msgid "End of feed" msgstr "피드 끝" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "이 앱 비밀번호의 이름 입력" @@ -1733,6 +1737,10 @@ msgstr "오류:" msgid "Everybody" msgstr "모두" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1786,12 +1794,12 @@ msgstr "노골적이거나 불쾌감을 줄 수 있는 미디어." msgid "Explicit sexual images." msgstr "노골적인 성적 이미지." -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "내 데이터 내보내기" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "내 데이터 내보내기" @@ -1807,11 +1815,11 @@ msgstr "외부 미디어는 웹사이트가 나와 내 기기에 대한 정보 #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "외부 미디어 설정" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "외부 미디어 설정" @@ -2017,7 +2025,7 @@ msgstr "팔로우 중" msgid "Following {0}" msgstr "{0} 님을 팔로우했습니다" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "팔로우 중 피드 설정" @@ -2025,7 +2033,7 @@ msgstr "팔로우 중 피드 설정" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "팔로우 중 피드 설정" @@ -2474,7 +2482,7 @@ msgstr "내 콘텐츠의 라벨" msgid "Language selection" msgstr "언어 선택" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "언어 설정" @@ -2483,7 +2491,7 @@ msgstr "언어 설정" msgid "Language Settings" msgstr "언어 설정" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "언어" @@ -2556,11 +2564,11 @@ msgstr "비밀번호를 재설정해 봅시다!" msgid "Let's go!" msgstr "출발!" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "밝음" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "이 피드에 좋아요 표시" @@ -2748,14 +2756,14 @@ msgstr "메시지 입력 필드" msgid "Message is too long" msgstr "메시지가 너무 깁니다" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "메시지 설정" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "메시지" @@ -2765,7 +2773,7 @@ msgstr "오해의 소지가 있는 계정" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "검토" @@ -2805,7 +2813,7 @@ msgstr "검토 리스트" msgid "Moderation Lists" msgstr "검토 리스트" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "검토 설정" @@ -2940,11 +2948,11 @@ msgstr "내 피드" msgid "My Profile" msgstr "내 프로필" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "내 저장한 피드" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "내 저장한 피드" @@ -2999,8 +3007,8 @@ msgid "New" msgstr "새로 만들기" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "새 대화" @@ -3126,7 +3134,7 @@ msgstr "결과 없음" msgid "No results" msgstr "결과 없음" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "결과를 찾을 수 없음" @@ -3157,6 +3165,10 @@ msgstr "사용하지 않음" msgid "Nobody" msgstr "없음" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3186,7 +3198,7 @@ msgstr "공유 관련 참고 사항" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "참고: Bluesky는 개방형 공개 네트워크입니다. 이 설정은 Bluesky 앱과 웹사이트에서만 내 콘텐츠가 표시되는 것을 제한하며, 다른 앱에서는 이 설정을 준수하지 않을 수 있습니다. 다른 앱과 웹사이트에서는 로그아웃한 사용자에게 내 콘텐츠가 계속 표시될 수 있습니다." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3226,7 +3238,7 @@ msgid "Oh no! Something went wrong." msgstr "이런! 뭔가 잘못되었습니다." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "확인" @@ -3242,7 +3254,7 @@ msgstr "오래된 순" msgid "Onboarding reset" msgstr "온보딩 재설정" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "하나 이상의 이미지에 대체 텍스트가 누락되었습니다." @@ -3258,11 +3270,11 @@ msgstr "{0}만 답글을 달 수 있습니다." msgid "Only contains letters, numbers, and hyphens" msgstr "문자, 숫자, 하이픈만 포함" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "이런, 뭔가 잘못되었습니다!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3281,8 +3293,8 @@ msgstr "아바타 생성기 열기" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "이모티콘 선택기 열기" @@ -3290,7 +3302,7 @@ msgstr "이모티콘 선택기 열기" msgid "Open feed options menu" msgstr "피드 옵션 메뉴 열기" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "링크를 인앱 브라우저로 열기" @@ -3310,12 +3322,12 @@ msgstr "내비게이션 열기" msgid "Open post options menu" msgstr "게시물 옵션 메뉴 열기" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "스토리북 페이지 열기" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "시스템 로그 열기" @@ -3323,7 +3335,7 @@ msgstr "시스템 로그 열기" msgid "Opens {numItems} options" msgstr "{numItems}번째 옵션을 엽니다" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "접근성 설정을 엽니다" @@ -3343,7 +3355,7 @@ msgstr "기기에서 카메라를 엽니다" msgid "Opens composer" msgstr "답글 작성 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "구성 가능한 언어 설정을 엽니다" @@ -3351,7 +3363,7 @@ msgstr "구성 가능한 언어 설정을 엽니다" msgid "Opens device photo gallery" msgstr "기기의 사진 갤러리를 엽니다" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "외부 임베드 설정을 엽니다" @@ -3373,23 +3385,23 @@ msgstr "GIF 선택 대화 상자를 엽니다" msgid "Opens list of invite codes" msgstr "초대 코드 목록을 엽니다" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "계정 삭제 확인을 위한 대화 상자를 엽니다. 이메일 코드가 필요합니다" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "Bluesky 비밀번호 변경을 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "새로운 Bluesky 핸들을 선택하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Bluesky 계정 데이터(저장소)를 다운로드하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "이메일 인증을 위한 대화 상자를 엽니다" @@ -3397,7 +3409,7 @@ msgstr "이메일 인증을 위한 대화 상자를 엽니다" msgid "Opens modal for using custom domain" msgstr "사용자 지정 도메인을 사용하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "검토 설정을 엽니다" @@ -3410,15 +3422,15 @@ msgstr "비밀번호 재설정 양식을 엽니다" msgid "Opens screen to edit Saved Feeds" msgstr "저장한 피드를 편집할 수 있는 화면을 엽니다" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "모든 저장한 피드 화면을 엽니다" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "비밀번호 설정을 엽니다" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "팔로우 중 피드 설정을 엽니다" @@ -3426,16 +3438,16 @@ msgstr "팔로우 중 피드 설정을 엽니다" msgid "Opens the linked website" msgstr "연결된 웹사이트를 엽니다" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "스토리북 페이지를 엽니다" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "시스템 로그 페이지를 엽니다" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "스레드 설정을 엽니다" @@ -3468,7 +3480,7 @@ msgstr "기타…" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "Bluesky 운영진이 신고를 검토한 결과, 귀하의 Bluesky 대화 접속을 비활성화하기로 결정했습니다." -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "페이지를 찾을 수 없음" @@ -3636,8 +3648,8 @@ msgstr "정치" msgid "Porn" msgstr "음란물" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "게시하기" @@ -3717,7 +3729,7 @@ msgid "Press to change hosting provider" msgstr "호스팅 제공자를 변경하려면 누릅니다" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3735,7 +3747,7 @@ msgstr "주 언어" msgid "Prioritize Your Follows" msgstr "내 팔로우 먼저 표시" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "개인정보" @@ -3743,7 +3755,7 @@ msgstr "개인정보" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "개인정보 처리방침" @@ -3773,7 +3785,7 @@ msgstr "프로필" msgid "Profile updated" msgstr "프로필 업데이트됨" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "이메일을 인증하여 계정을 보호하세요." @@ -3789,11 +3801,11 @@ msgstr "일괄 뮤트하거나 차단할 수 있는 공개적이고 공유 가 msgid "Public, shareable lists which can drive feeds." msgstr "피드를 탐색할 수 있는 공개적이고 공유 가능한 목록입니다." -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "게시물 게시하기" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "답글 게시하기" @@ -3831,7 +3843,7 @@ msgstr "최근 검색" msgid "Reconnect" msgstr "다시 연결" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -3938,7 +3950,7 @@ msgstr "답글" msgid "Replies to this thread are disabled" msgstr "이 스레드에 대한 답글이 비활성화됩니다." -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "답글" @@ -4095,8 +4107,8 @@ msgstr "재설정 코드" msgid "Reset Code" msgstr "재설정 코드" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "온보딩 상태 초기화" @@ -4104,16 +4116,16 @@ msgstr "온보딩 상태 초기화" msgid "Reset password" msgstr "비밀번호 재설정" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "설정 상태 초기화" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "온보딩 상태 초기화" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "설정 상태 초기화" @@ -4128,7 +4140,7 @@ msgstr "오류가 발생한 마지막 작업을 다시 시도합니다" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4501,23 +4513,23 @@ msgstr "계정 설정하기" msgid "Sets Bluesky username" msgstr "Bluesky 사용자 이름을 설정합니다" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "색상 테마를 어두움으로 설정합니다" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "색상 테마를 밝음으로 설정합니다" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "색상 테마를 시스템 설정에 맞춥니다" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "어두운 테마를 완전히 어둡게 설정합니다" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "어두운 테마를 살짝 밝게 설정합니다" @@ -4604,7 +4616,7 @@ msgstr "연결된 웹사이트를 공유합니다" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "표시" @@ -4774,7 +4786,7 @@ msgstr "가입 또는 로그인하여 대화에 참여하세요" msgid "Sign-in Required" msgstr "로그인 필요" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "로그인한 계정" @@ -4796,6 +4808,10 @@ msgstr "이 단계 건너뛰기" msgid "Software Dev" msgstr "소프트웨어 개발" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "알 수 없는 오류가 발생했습니다" @@ -4852,7 +4868,7 @@ msgstr "{displayName} 님과 대화 시작하기" msgid "Start chatting" msgstr "대화 시작하기" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "상태 페이지" @@ -4865,7 +4881,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "스토리북" @@ -4884,7 +4900,7 @@ msgstr "구독" msgid "Subscribe to @{0} to use these labels:" msgstr "이 라벨을 사용하려면 @{0}을(를) 구독하세요." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "라벨러 구독" @@ -4893,7 +4909,7 @@ msgstr "라벨러 구독" msgid "Subscribe to the {0} feed" msgstr "{0} 피드 구독하기" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "이 라벨러 구독하기" @@ -4932,11 +4948,11 @@ msgstr "{0}(으)로 전환" msgid "Switches the account you are logged in to" msgstr "로그인한 계정을 전환합니다" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "시스템" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "시스템 로그" @@ -4970,7 +4986,7 @@ msgstr "이용약관" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5054,7 +5070,7 @@ msgstr "서비스 이용약관을 다음으로 이동했습니다:" msgid "There are many feeds to try:" msgstr "시도해 볼 만한 피드:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "서버에 연결하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." @@ -5316,12 +5332,12 @@ msgstr "이 사용자는 아무도 팔로우하지 않았습니다." msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "뮤트한 단어에서 {0}이(가) 삭제됩니다. 나중에 언제든지 다시 추가할 수 있습니다." -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "스레드 설정" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "스레드 설정" @@ -5378,7 +5394,7 @@ msgctxt "action" msgid "Try again" msgstr "다시 시도" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "2단계 인증" @@ -5511,11 +5527,11 @@ msgstr "검토 리스트 고정 해제" msgid "Unpinned from your feeds" msgstr "내 피드에서 고정 해제됨" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "구독 취소" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "이 라벨러 구독 취소하기" @@ -5692,15 +5708,15 @@ msgstr "값:" msgid "Verify DNS Record" msgstr "DNS 레코드 인증" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "이메일 인증" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "내 이메일 인증하기" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "내 이메일 인증하기" @@ -5717,7 +5733,7 @@ msgstr "텍스트 파일 인증" msgid "Verify Your Email" msgstr "이메일 인증하기" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "버전 {appVersion} {bundleInfo}" @@ -5855,12 +5871,12 @@ msgstr "죄송하지만 현재 뮤트한 단어를 불러올 수 없습니다. msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "죄송하지만 검색을 완료할 수 없습니다. 몇 분 후에 다시 시도해 주세요." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "죄송합니다. 페이지를 찾을 수 없습니다." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "죄송합니다. 라벨러는 10개까지만 구독할 수 있으며 10개에 도달했습니다." @@ -5887,13 +5903,12 @@ msgstr "알고리즘 피드에 어떤 언어를 표시하시겠습니까?" msgid "Who can message you?" msgstr "누구의 메시지를 허용할까요?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "답글을 달 수 있는 사람" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "이런!" @@ -5934,7 +5949,7 @@ msgstr "가로" msgid "Write a message" msgstr "메시지를 입력하세요" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "게시물 작성" @@ -6045,7 +6060,7 @@ msgstr "내가 이 사용자를 뮤트했습니다" #~ msgid "You have no chats yet. Start a conversation with someone!" #~ msgstr "아직 대화가 없습니다. 다른 사람과 대화를 시작해 보세요!" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po index b136b17327..64456a7c05 100644 --- a/src/locale/locales/pt-BR/messages.po +++ b/src/locale/locales/pt-BR/messages.po @@ -104,8 +104,8 @@ msgstr "{following} seguindo" msgid "{handle} can't be messaged" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{likeCount, plural, one {Curtido por # usuário} other {Curtido por # usuários}}" @@ -177,11 +177,11 @@ msgid "Access profile and other navigation links" msgstr "Acessar perfil e outros links de navegação" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "Acessibilidade" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "Configurações de acessibilidade" @@ -195,8 +195,8 @@ msgstr "Configurações de acessibilidade" #~ msgstr "conta" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "Conta" @@ -258,8 +258,8 @@ msgid "Add a user to this list" msgstr "Adicionar um usuário a esta lista" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "Adicionar conta" @@ -347,7 +347,7 @@ msgid "Adult content is disabled." msgstr "O conteúdo adulto está desabilitado." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "Avançado" @@ -456,13 +456,13 @@ msgstr "O nome da Senha de Aplicativo só pode conter letras, números, traços msgid "App Password names must be at least 4 characters long." msgstr "O nome da Senha de Aplicativo precisa ter no mínimo 4 caracteres." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "Configurações de Senha de Aplicativo" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "Senhas de Aplicativos" @@ -491,7 +491,7 @@ msgstr "Contestação enviada." msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "Aparência" @@ -524,7 +524,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Tem certeza que deseja remover {0} dos seus feeds?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "Tem certeza que deseja descartar este rascunho?" @@ -571,7 +571,7 @@ msgstr "Voltar" msgid "Based on your interest in {interestsText}" msgstr "Com base no seu interesse em {interestsText}" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "Básicos" @@ -579,7 +579,7 @@ msgstr "Básicos" msgid "Birthday" msgstr "Aniversário" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "Aniversário:" @@ -809,17 +809,17 @@ msgstr "Cancela a abertura do link" msgid "Change" msgstr "Trocar" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "Alterar" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "Alterar usuário" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "Alterar Usuário" @@ -827,12 +827,12 @@ msgstr "Alterar Usuário" msgid "Change my email" msgstr "Alterar meu email" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "Alterar senha" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "Alterar Senha" @@ -857,7 +857,7 @@ msgstr "Chat silenciado" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "Configurações do Chat" @@ -919,19 +919,19 @@ msgstr "Escolha seus feeds principais" msgid "Choose your password" msgstr "Escolha sua senha" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "Limpar todos os dados de armazenamento legados" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento legados (reinicie em seguida)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "Limpar todos os dados de armazenamento" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento (reinicie em seguida)" @@ -940,11 +940,11 @@ msgstr "Limpar todos os dados de armazenamento (reinicie em seguida)" msgid "Clear search query" msgstr "Limpar busca" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "Limpa todos os dados antigos" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "Limpa todos os dados antigos" @@ -1067,7 +1067,7 @@ msgstr "Completar e começar a usar sua conta" msgid "Complete the challenge" msgstr "Complete o captcha" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Escreva posts de até {MAX_GRAPHEME_LENGTH} caracteres" @@ -1304,7 +1304,7 @@ msgstr "Não foi possível silenciar este chat" msgid "Create a new account" msgstr "Criar uma nova conta" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "Criar uma nova conta do Bluesky" @@ -1364,8 +1364,8 @@ msgstr "Feeds customizados feitos pela comunidade te proporcionam novas experiê msgid "Customize media from external sites." msgstr "Configurar mídia de sites externos." -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "Escuro" @@ -1373,7 +1373,7 @@ msgstr "Escuro" msgid "Dark mode" msgstr "Modo escuro" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "Modo Escuro" @@ -1381,7 +1381,7 @@ msgstr "Modo Escuro" msgid "Date of birth" msgstr "Data de nascimento" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "Testar Moderação" @@ -1396,7 +1396,7 @@ msgstr "Painel de depuração" msgid "Delete" msgstr "Excluir" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "Excluir a conta" @@ -1416,8 +1416,8 @@ msgstr "Excluir senha de aplicativo" msgid "Delete app password?" msgstr "Excluir senha de aplicativo?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1441,7 +1441,7 @@ msgstr "Excluir mensagem para mim" msgid "Delete my account" msgstr "Excluir minha conta" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "Excluir minha conta…" @@ -1466,7 +1466,7 @@ msgstr "Excluído" msgid "Deleted post." msgstr "Post excluído." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1485,7 +1485,7 @@ msgstr "Texto alternativo" msgid "Did you want to say anything?" msgstr "Você gostaria de dizer alguma coisa?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "Menos escuro" @@ -1520,11 +1520,11 @@ msgstr "Desabilitar feedback tátil" msgid "Disabled" msgstr "Desabilitado" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "Descartar" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "Descartar rascunho?" @@ -1690,12 +1690,12 @@ msgstr "Editar Meus Feeds" msgid "Edit my profile" msgstr "Editar meu perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "Editar perfil" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "Editar Perfil" @@ -1747,7 +1747,7 @@ msgstr "E-mail Atualizado" msgid "Email verified" msgstr "E-mail verificado" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "E-mail:" @@ -1807,6 +1807,10 @@ msgstr "Habilitado" msgid "End of feed" msgstr "Fim do feed" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "Insira um nome para esta Senha de Aplicativo" @@ -1874,6 +1878,10 @@ msgstr "Erro:" msgid "Everybody" msgstr "Todos" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1927,12 +1935,12 @@ msgstr "Imagens explícitas ou potencialmente perturbadoras." msgid "Explicit sexual images." msgstr "Imagens sexualmente explícitas." -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "Exportar meus dados" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "Exportar Meus Dados" @@ -1948,11 +1956,11 @@ msgstr "Mídias externas podem permitir que sites coletem informações sobre vo #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "Preferências de Mídia Externa" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "Preferências de mídia externa" @@ -2191,7 +2199,7 @@ msgstr "Seguindo" msgid "Following {0}" msgstr "Seguindo {0}" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "Configurações do feed principal" @@ -2199,7 +2207,7 @@ msgstr "Configurações do feed principal" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "Configurações do feed principal" @@ -2661,7 +2669,7 @@ msgstr "Rótulos sobre seu conteúdo" msgid "Language selection" msgstr "Seleção de idioma" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "Configuração de Idioma" @@ -2670,7 +2678,7 @@ msgstr "Configuração de Idioma" msgid "Language Settings" msgstr "Configurações de Idiomas" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "Idiomas" @@ -2743,7 +2751,7 @@ msgstr "Vamos redefinir sua senha!" msgid "Let's go!" msgstr "Vamos lá!" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "Claro" @@ -2751,7 +2759,7 @@ msgstr "Claro" #~ msgid "Like" #~ msgstr "Curtir" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Curtir este feed" @@ -2957,14 +2965,14 @@ msgstr "Caixa de texto da mensagem" msgid "Message is too long" msgstr "Mensagem longa demais" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "Configurações das mensagens" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "Mensagens" @@ -2978,7 +2986,7 @@ msgstr "Conta Enganosa" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "Moderação" @@ -3018,7 +3026,7 @@ msgstr "Listas de moderação" msgid "Moderation Lists" msgstr "Listas de Moderação" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "Moderação" @@ -3158,11 +3166,11 @@ msgstr "Meus Feeds" msgid "My Profile" msgstr "Meu Perfil" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "Meus feeds salvos" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "Meus Feeds Salvos" @@ -3222,8 +3230,8 @@ msgid "New" msgstr "Novo" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "Novo chat" @@ -3350,7 +3358,7 @@ msgstr "Nenhum resultado" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "Nenhum resultado encontrado" @@ -3381,6 +3389,10 @@ msgstr "Não, obrigado" msgid "Nobody" msgstr "Ninguém" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3414,7 +3426,7 @@ msgstr "Nota sobre compartilhamento" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: o Bluesky é uma rede aberta e pública. Esta configuração limita somente a visibilidade do seu conteúdo no site e aplicativo do Bluesky, e outros aplicativos podem não respeitar esta configuração. Seu conteúdo ainda poderá ser exibido para usuários não autenticados por outros aplicativos e sites." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3458,7 +3470,7 @@ msgid "Oh no! Something went wrong." msgstr "Opa! Algo deu errado." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "OK" @@ -3474,7 +3486,7 @@ msgstr "Respostas mais antigas primeiro" msgid "Onboarding reset" msgstr "Resetar tutoriais" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "Uma ou mais imagens estão sem texto alternativo." @@ -3490,11 +3502,11 @@ msgstr "Apenas {0} pode responder." msgid "Only contains letters, numbers, and hyphens" msgstr "Contém apenas letras, números e hífens" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "Opa, algo deu errado!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3513,8 +3525,8 @@ msgstr "Abrir criador de avatar" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "Abrir seletor de emojis" @@ -3522,7 +3534,7 @@ msgstr "Abrir seletor de emojis" msgid "Open feed options menu" msgstr "Abrir opções do feed" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "Abrir links no navegador interno" @@ -3542,12 +3554,12 @@ msgstr "Abrir navegação" msgid "Open post options menu" msgstr "Abrir opções do post" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "Abre o storybook" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "Abrir registros do sistema" @@ -3555,7 +3567,7 @@ msgstr "Abrir registros do sistema" msgid "Opens {numItems} options" msgstr "Abre {numItems} opções" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "Abre as configurações de acessibilidade" @@ -3575,7 +3587,7 @@ msgstr "Abre a câmera do dispositivo" msgid "Opens composer" msgstr "Abre o editor de post" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "Abre definições de idioma configuráveis" @@ -3583,7 +3595,7 @@ msgstr "Abre definições de idioma configuráveis" msgid "Opens device photo gallery" msgstr "Abre a galeria de fotos do dispositivo" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "Abre as configurações de anexos externos" @@ -3605,23 +3617,23 @@ msgstr "Abre a janela de seleção de GIFs" msgid "Opens list of invite codes" msgstr "Abre a lista de códigos de convite" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Abre modal de confirmar a exclusão da conta. Requer código enviado por email" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "Abre modal para troca da sua senha do Bluesky" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Abre modal para troca do seu usuário do Bluesky" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Abre modal para baixar os dados da sua conta do Bluesky" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "Abre modal para verificação de email" @@ -3629,7 +3641,7 @@ msgstr "Abre modal para verificação de email" msgid "Opens modal for using custom domain" msgstr "Abre modal para usar o domínio personalizado" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "Abre configurações de moderação" @@ -3642,15 +3654,15 @@ msgstr "Abre o formulário de redefinição de senha" msgid "Opens screen to edit Saved Feeds" msgstr "Abre a tela para editar feeds salvos" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "Abre a tela com todos os feeds salvos" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "Abre as configurações de senha do aplicativo" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "Abre as preferências do feed inicial" @@ -3662,16 +3674,16 @@ msgstr "Abre o link" #~ msgid "Opens the message settings page" #~ msgstr "Abre a tela de configurações do chat" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "Abre a página do storybook" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "Abre a página de log do sistema" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "Abre as preferências de threads" @@ -3704,7 +3716,7 @@ msgstr "Outro..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Página não encontrada" @@ -3872,8 +3884,8 @@ msgstr "Política" msgid "Porn" msgstr "Pornografia" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "Postar" @@ -3953,7 +3965,7 @@ msgid "Press to change hosting provider" msgstr "Trocar de provedor de hospedagem" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3976,7 +3988,7 @@ msgstr "Idioma Principal" msgid "Prioritize Your Follows" msgstr "Priorizar seus Seguidores" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privacidade" @@ -3984,7 +3996,7 @@ msgstr "Privacidade" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de Privacidade" @@ -4014,7 +4026,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "Perfil atualizado" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "Proteja a sua conta verificando o seu e-mail." @@ -4030,11 +4042,11 @@ msgstr "Listas públicas e compartilháveis para silenciar ou bloquear usuários msgid "Public, shareable lists which can drive feeds." msgstr "Listas públicas e compartilháveis que geram feeds." -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "Publicar post" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "Publicar resposta" @@ -4084,7 +4096,7 @@ msgstr "Buscas Recentes" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4191,7 +4203,7 @@ msgstr "Respostas" msgid "Replies to this thread are disabled" msgstr "Respostas para esta thread estão desativadas" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "Responder" @@ -4358,8 +4370,8 @@ msgstr "Código de redefinição" msgid "Reset Code" msgstr "Código de Redefinição" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "Redefinir tutoriais" @@ -4367,16 +4379,16 @@ msgstr "Redefinir tutoriais" msgid "Reset password" msgstr "Redefinir senha" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "Redefinir configurações" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "Redefine tutoriais" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "Redefine as configurações" @@ -4391,7 +4403,7 @@ msgstr "Tenta a última ação, que deu erro" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4776,23 +4788,23 @@ msgstr "Configure sua conta" msgid "Sets Bluesky username" msgstr "Configura o usuário no Bluesky" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "Define o tema para escuro" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "Define o tema para claro" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "Define o tema para seguir o sistema" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "Define o tema escuro para o padrão" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "Define o tema escuro para o menos escuro" @@ -4879,7 +4891,7 @@ msgstr "Compartilha o link" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "Mostrar" @@ -5057,7 +5069,7 @@ msgstr "Inscreva-se ou faça login para se juntar à conversa" msgid "Sign-in Required" msgstr "É Necessário Fazer Login" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "Entrou como" @@ -5079,6 +5091,10 @@ msgstr "Pular" msgid "Software Dev" msgstr "Desenvolvimento de software" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "Algo deu errado" @@ -5143,7 +5159,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Página de status" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "Página de status" @@ -5160,7 +5176,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Armazenamento limpo, você precisa reiniciar o app agora." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Storybook" @@ -5179,7 +5195,7 @@ msgstr "Inscrever-se" msgid "Subscribe to @{0} to use these labels:" msgstr "Inscreva-se em @{0} para utilizar estes rótulos:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "Inscrever-se no rotulador" @@ -5188,7 +5204,7 @@ msgstr "Inscrever-se no rotulador" msgid "Subscribe to the {0} feed" msgstr "Increver-se no feed {0}" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "Inscrever-se neste rotulador" @@ -5227,11 +5243,11 @@ msgstr "Trocar para {0}" msgid "Switches the account you are logged in to" msgstr "Troca a conta que você está autenticado" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "Log do sistema" @@ -5265,7 +5281,7 @@ msgstr "Termos" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5353,7 +5369,7 @@ msgstr "Os Termos de Serviço foram movidos para" msgid "There are many feeds to try:" msgstr "Temos vários feeds para você experimentar:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Tivemos um problema ao contatar o servidor, por favor verifique sua conexão com a internet e tente novamente." @@ -5635,12 +5651,12 @@ msgstr "Este usuário não segue ninguém ainda." msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Isso removerá {0} das suas palavras silenciadas. Você pode adicioná-la novamente depois." -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "Preferências das Threads" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "Preferências das Threads" @@ -5697,7 +5713,7 @@ msgctxt "action" msgid "Try again" msgstr "Tentar novamente" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "Autenticação de dois fatores (2FA)" @@ -5838,11 +5854,11 @@ msgstr "Desafixar lista de moderação" msgid "Unpinned from your feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Desinscrever-se" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "Desinscrever-se deste rotulador" @@ -6027,15 +6043,15 @@ msgstr "Conteúdo:" msgid "Verify DNS Record" msgstr "Verificar registro DNS" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "Verificar e-mail" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "Verificar meu e-mail" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "Verificar Meu Email" @@ -6056,7 +6072,7 @@ msgstr "Verificar Seu E-mail" #~ msgid "Version {0}" #~ msgstr "Versão {0}" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "Versão {appVersion} {bundleInfo}" @@ -6194,12 +6210,12 @@ msgstr "Não foi possível carregar sua lista de palavras silenciadas. Por favor msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Lamentamos, mas sua busca não pôde ser concluída. Por favor, tente novamente em alguns minutos." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Sentimos muito! Não conseguimos encontrar a página que você estava procurando." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "Sentimos muito! Você só pode se inscrever em até dez rotuladores e você já chegou ao máximo." @@ -6230,13 +6246,12 @@ msgstr "Quais idiomas você gostaria de ver nos seus feeds?" msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "Quem pode responder" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "Opa!" @@ -6273,7 +6288,7 @@ msgstr "Largo" msgid "Write a message" msgstr "Escreva uma mensagem" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "Escrever post" @@ -6384,7 +6399,7 @@ msgstr "Você silenciou esta conta." msgid "You have muted this user" msgstr "Você silenciou este usuário." -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/tr/messages.po b/src/locale/locales/tr/messages.po index 410d71f1c1..1b50874cb4 100644 --- a/src/locale/locales/tr/messages.po +++ b/src/locale/locales/tr/messages.po @@ -120,8 +120,8 @@ msgstr "" #~ msgid "{invitesAvailable} invite codes available" #~ msgstr "{invitesAvailable} davet kodları mevcut" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -201,11 +201,11 @@ msgid "Access profile and other navigation links" msgstr "Profil ve diğer gezinme bağlantılarına erişin" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "Erişilebilirlik" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "" @@ -219,8 +219,8 @@ msgstr "" #~ msgstr "" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "Hesap" @@ -282,8 +282,8 @@ msgid "Add a user to this list" msgstr "Bu listeye bir kullanıcı ekleyin" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "Hesap ekle" @@ -384,7 +384,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "Gelişmiş" @@ -493,13 +493,13 @@ msgstr "Uygulama Şifre adları yalnızca harfler, sayılar, boşluklar, tireler msgid "App Password names must be at least 4 characters long." msgstr "Uygulama Şifre adları en az 4 karakter uzunluğunda olmalıdır." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "Uygulama şifresi ayarları" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "Uygulama Şifreleri" @@ -540,7 +540,7 @@ msgstr "Bu karara itiraz et" #~ msgid "Appeal this decision." #~ msgstr "Bu karara itiraz et." -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "Görünüm" @@ -573,7 +573,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "Bu taslağı silmek istediğinizden emin misiniz?" @@ -629,7 +629,7 @@ msgstr "Geri" msgid "Based on your interest in {interestsText}" msgstr "{interestsText} ilginize dayalı" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "Temel" @@ -637,7 +637,7 @@ msgstr "Temel" msgid "Birthday" msgstr "Doğum günü" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "Doğum günü:" @@ -891,17 +891,17 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "Değiştir" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "Kullanıcı adını değiştir" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "Kullanıcı Adını Değiştir" @@ -909,12 +909,12 @@ msgstr "Kullanıcı Adını Değiştir" msgid "Change my email" msgstr "E-postamı değiştir" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "Şifre değiştir" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "Şifre Değiştir" @@ -943,7 +943,7 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "" @@ -1009,19 +1009,19 @@ msgstr "Ana beslemelerinizi seçin" msgid "Choose your password" msgstr "Şifrenizi seçin" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "Tüm eski depolama verilerini temizle" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "Tüm eski depolama verilerini temizle (bundan sonra yeniden başlat)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "Tüm depolama verilerini temizle" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "Tüm depolama verilerini temizle (bundan sonra yeniden başlat)" @@ -1030,11 +1030,11 @@ msgstr "Tüm depolama verilerini temizle (bundan sonra yeniden başlat)" msgid "Clear search query" msgstr "Arama sorgusunu temizle" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "" @@ -1157,7 +1157,7 @@ msgstr "Onboarding'i tamamlayın ve hesabınızı kullanmaya başlayın" msgid "Complete the challenge" msgstr "" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "En fazla {MAX_GRAPHEME_LENGTH} karakter uzunluğunda gönderiler oluşturun" @@ -1423,7 +1423,7 @@ msgstr "" msgid "Create a new account" msgstr "Yeni bir hesap oluştur" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "Yeni bir Bluesky hesabı oluştur" @@ -1491,8 +1491,8 @@ msgstr "Topluluk tarafından oluşturulan özel beslemeler size yeni deneyimler msgid "Customize media from external sites." msgstr "Harici sitelerden medyayı özelleştirin." -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "Karanlık" @@ -1500,7 +1500,7 @@ msgstr "Karanlık" msgid "Dark mode" msgstr "Karanlık mod" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "Karanlık Tema" @@ -1508,7 +1508,7 @@ msgstr "Karanlık Tema" msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "" @@ -1523,7 +1523,7 @@ msgstr "Hata ayıklama paneli" msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "Hesabı sil" @@ -1543,8 +1543,8 @@ msgstr "Uygulama şifresini sil" msgid "Delete app password?" msgstr "" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1568,7 +1568,7 @@ msgstr "" msgid "Delete my account" msgstr "Hesabımı sil" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "Hesabımı Sil…" @@ -1593,7 +1593,7 @@ msgstr "Silindi" msgid "Deleted post." msgstr "Silinen gönderi." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1616,7 +1616,7 @@ msgstr "" msgid "Did you want to say anything?" msgstr "Bir şey söylemek istediniz mi?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "Karart" @@ -1651,7 +1651,7 @@ msgstr "" msgid "Disabled" msgstr "" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "Sil" @@ -1659,7 +1659,7 @@ msgstr "Sil" #~ msgid "Discard draft" #~ msgstr "Taslağı sil" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "" @@ -1837,12 +1837,12 @@ msgstr "Beslemelerimi Düzenle" msgid "Edit my profile" msgstr "Profilimi düzenle" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "Profil düzenle" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "Profil Düzenle" @@ -1894,7 +1894,7 @@ msgstr "E-posta Güncellendi" msgid "Email verified" msgstr "E-posta doğrulandı" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "E-posta:" @@ -1958,6 +1958,10 @@ msgstr "" msgid "End of feed" msgstr "Beslemenin sonu" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "Bu Uygulama Şifresi için bir ad girin" @@ -2033,6 +2037,10 @@ msgstr "Hata:" msgid "Everybody" msgstr "Herkes" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -2090,12 +2098,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "" @@ -2111,11 +2119,11 @@ msgstr "Harici medya, web sitelerinin siz ve cihazınız hakkında bilgi toplama #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "Harici Medya Tercihleri" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "Harici medya ayarları" @@ -2362,7 +2370,7 @@ msgstr "Takip edilenler" msgid "Following {0}" msgstr "{0} takip ediliyor" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "" @@ -2370,7 +2378,7 @@ msgstr "" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "" @@ -2895,7 +2903,7 @@ msgstr "" msgid "Language selection" msgstr "Dil seçimi" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "Dil ayarları" @@ -2904,7 +2912,7 @@ msgstr "Dil ayarları" msgid "Language Settings" msgstr "Dil Ayarları" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "Diller" @@ -2989,7 +2997,7 @@ msgstr "Hadi gidelim!" #~ msgid "Library" #~ msgstr "Kütüphane" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "Açık" @@ -2997,7 +3005,7 @@ msgstr "Açık" #~ msgid "Like" #~ msgstr "Beğen" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Bu beslemeyi beğen" @@ -3212,14 +3220,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "" @@ -3233,7 +3241,7 @@ msgstr "" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "Moderasyon" @@ -3273,7 +3281,7 @@ msgstr "Moderasyon listeleri" msgid "Moderation Lists" msgstr "Moderasyon Listeleri" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "Moderasyon ayarları" @@ -3421,11 +3429,11 @@ msgstr "Beslemelerim" msgid "My Profile" msgstr "Profilim" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "Kayıtlı Beslemelerim" @@ -3490,8 +3498,8 @@ msgid "New" msgstr "Yeni" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "" @@ -3618,7 +3626,7 @@ msgstr "Sonuç yok" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "" @@ -3649,6 +3657,10 @@ msgstr "Teşekkürler" msgid "Nobody" msgstr "Hiç kimse" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3682,7 +3694,7 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Not: Bluesky açık ve kamusal bir ağdır. Bu ayar yalnızca içeriğinizin Bluesky uygulaması ve web sitesindeki görünürlüğünü sınırlar, diğer uygulamalar bu ayarı dikkate almayabilir. İçeriğiniz hala diğer uygulamalar ve web siteleri tarafından çıkış yapan kullanıcılara gösterilebilir." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3726,7 +3738,7 @@ msgid "Oh no! Something went wrong." msgstr "Oh hayır! Bir şeyler yanlış gitti." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "" @@ -3742,7 +3754,7 @@ msgstr "En eski yanıtlar önce" msgid "Onboarding reset" msgstr "Onboarding sıfırlama" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "Bir veya daha fazla resimde alternatif metin eksik." @@ -3758,11 +3770,11 @@ msgstr "Yalnızca {0} yanıtlayabilir." msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3781,8 +3793,8 @@ msgstr "" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "Emoji seçiciyi aç" @@ -3790,7 +3802,7 @@ msgstr "Emoji seçiciyi aç" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "Uygulama içi tarayıcıda bağlantıları aç" @@ -3810,12 +3822,12 @@ msgstr "Navigasyonu aç" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "Storybook sayfasını aç" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "" @@ -3823,7 +3835,7 @@ msgstr "" msgid "Opens {numItems} options" msgstr "{numItems} seçeneği açar" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "" @@ -3843,7 +3855,7 @@ msgstr "Cihazdaki kamerayı açar" msgid "Opens composer" msgstr "Besteciyi açar" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "Yapılandırılabilir dil ayarlarını açar" @@ -3855,7 +3867,7 @@ msgstr "Cihaz fotoğraf galerisini açar" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Profil görüntü adı, avatar, arka plan resmi ve açıklama için düzenleyiciyi açar" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "Harici gömülü ayarları açar" @@ -3889,7 +3901,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Davet kodu listesini açar" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3897,19 +3909,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Hesap silme onayı için modalı açar. E-posta kodu gerektirir." -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "" @@ -3917,7 +3929,7 @@ msgstr "" msgid "Opens modal for using custom domain" msgstr "Özel alan adı kullanımı için modalı açar" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "Moderasyon ayarlarını açar" @@ -3930,11 +3942,11 @@ msgstr "Şifre sıfırlama formunu açar" msgid "Opens screen to edit Saved Feeds" msgstr "Kayıtlı Beslemeleri düzenlemek için ekranı açar" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "Tüm kayıtlı beslemeleri içeren ekrana açar" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "" @@ -3942,7 +3954,7 @@ msgstr "" #~ msgid "Opens the app password settings page" #~ msgstr "Uygulama şifre ayarları sayfasını açar" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "" @@ -3958,16 +3970,16 @@ msgstr "" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "Storybook sayfasını açar" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "Sistem log sayfasını açar" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "Konu tercihlerini açar" @@ -4004,7 +4016,7 @@ msgstr "Diğer..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Sayfa bulunamadı" @@ -4193,8 +4205,8 @@ msgstr "Politika" msgid "Porn" msgstr "Pornografi" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "Gönder" @@ -4274,7 +4286,7 @@ msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4297,7 +4309,7 @@ msgstr "Birincil Dil" msgid "Prioritize Your Follows" msgstr "Takipçilerinizi Önceliklendirin" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Gizlilik" @@ -4305,7 +4317,7 @@ msgstr "Gizlilik" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Gizlilik Politikası" @@ -4335,7 +4347,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil güncellendi" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "E-postanızı doğrulayarak hesabınızı koruyun." @@ -4351,11 +4363,11 @@ msgstr "Toplu olarak sessize almak veya engellemek için herkese açık, paylaş msgid "Public, shareable lists which can drive feeds." msgstr "Beslemeleri yönlendirebilen herkese açık, paylaşılabilir listeler." -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "Gönderiyi yayınla" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "Yanıtı yayınla" @@ -4405,7 +4417,7 @@ msgstr "" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4524,7 +4536,7 @@ msgstr "Yanıtlar" msgid "Replies to this thread are disabled" msgstr "Bu konuya yanıtlar devre dışı bırakıldı" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "Yanıtla" @@ -4703,8 +4715,8 @@ msgstr "Sıfırlama Kodu" #~ msgid "Reset onboarding" #~ msgstr "Onboarding sıfırla" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "Onboarding durumunu sıfırla" @@ -4716,16 +4728,16 @@ msgstr "Şifreyi sıfırla" #~ msgid "Reset preferences" #~ msgstr "Tercihleri sıfırla" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "Tercih durumunu sıfırla" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "Onboarding durumunu sıfırlar" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "Tercih durumunu sıfırlar" @@ -4740,7 +4752,7 @@ msgstr "Son hataya neden olan son eylemi tekrarlar" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5188,23 +5200,23 @@ msgstr "Hesabınızı ayarlayın" msgid "Sets Bluesky username" msgstr "Bluesky kullanıcı adını ayarlar" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "" @@ -5300,7 +5312,7 @@ msgstr "" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "Göster" @@ -5496,7 +5508,7 @@ msgstr "Konuşmaya katılmak için kaydolun veya giriş yapın" msgid "Sign-in Required" msgstr "Giriş Yapılması Gerekiyor" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "Olarak giriş yapıldı" @@ -5526,6 +5538,10 @@ msgstr "Bu akışı atla" msgid "Software Dev" msgstr "Yazılım Geliştirme" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "" @@ -5602,7 +5618,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Durum sayfası" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "" @@ -5623,7 +5639,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Depolama temizlendi, şimdi uygulamayı yeniden başlatmanız gerekiyor." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Storybook" @@ -5642,7 +5658,7 @@ msgstr "Abone ol" msgid "Subscribe to @{0} to use these labels:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "" @@ -5651,7 +5667,7 @@ msgstr "" msgid "Subscribe to the {0} feed" msgstr "{0} beslemesine abone ol" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "" @@ -5694,11 +5710,11 @@ msgstr "{0} adresine geç" msgid "Switches the account you are logged in to" msgstr "Giriş yaptığınız hesabı değiştirir" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "Sistem" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "Sistem günlüğü" @@ -5732,7 +5748,7 @@ msgstr "Şartlar" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5820,7 +5836,7 @@ msgstr "Hizmet Şartları taşındı" msgid "There are many feeds to try:" msgstr "Denemek için birçok besleme var:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Sunucuya ulaşma konusunda bir sorun oluştu, lütfen internet bağlantınızı kontrol edin ve tekrar deneyin." @@ -6118,12 +6134,12 @@ msgstr "" #~ msgid "This will hide this post from your feeds." #~ msgstr "Bu, bu gönderiyi beslemelerinizden gizleyecektir." -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "Konu Tercihleri" @@ -6180,7 +6196,7 @@ msgctxt "action" msgid "Try again" msgstr "Tekrar dene" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "" @@ -6329,11 +6345,11 @@ msgstr "" #~ msgid "Unsave" #~ msgstr "Kaydedilenlerden kaldır" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "" @@ -6534,15 +6550,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "E-postayı doğrula" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "E-postamı doğrula" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "E-postamı Doğrula" @@ -6563,7 +6579,7 @@ msgstr "E-postanızı Doğrulayın" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6709,12 +6725,12 @@ msgstr "" msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Üzgünüz, ancak aramanız tamamlanamadı. Lütfen birkaç dakika içinde tekrar deneyin." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Üzgünüz! Aradığınız sayfayı bulamıyoruz." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "" @@ -6749,13 +6765,12 @@ msgstr "Algoritmik beslemelerinizde hangi dilleri görmek istersiniz?" msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "Kimler yanıtlayabilir" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "" @@ -6792,7 +6807,7 @@ msgstr "Geniş" msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "Gönderi yaz" @@ -6911,7 +6926,7 @@ msgstr "" #~ msgid "You have muted this user." #~ msgstr "Bu kullanıcıyı sessize aldınız." -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po index 980a67eaa2..937e543a72 100644 --- a/src/locale/locales/uk/messages.po +++ b/src/locale/locales/uk/messages.po @@ -109,8 +109,8 @@ msgstr "{following} підписок" msgid "{handle} can't be messaged" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "" @@ -182,11 +182,11 @@ msgid "Access profile and other navigation links" msgstr "Відкрити профіль та іншу навігацію" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "Доступність" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "" @@ -200,8 +200,8 @@ msgstr "" #~ msgstr "обліковий запис" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "Обліковий запис" @@ -263,8 +263,8 @@ msgid "Add a user to this list" msgstr "Додати користувача до списку" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "Додати обліковий запис" @@ -352,7 +352,7 @@ msgid "Adult content is disabled." msgstr "Контент для дорослих вимкнено." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "Розширені" @@ -461,13 +461,13 @@ msgstr "Назва пароля може містити лише латинсь msgid "App Password names must be at least 4 characters long." msgstr "Назва пароля застосунку мусить бути хоча б 4 символи в довжину." -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "Налаштування пароля застосунків" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "Паролі для застосунків" @@ -496,7 +496,7 @@ msgstr "" msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "Оформлення" @@ -529,7 +529,7 @@ msgstr "" msgid "Are you sure you want to remove {0} from your feeds?" msgstr "Ви впевнені, що бажаєте видалити {0} зі стрічки?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "Ви дійсно бажаєте видалити цю чернетку?" @@ -576,7 +576,7 @@ msgstr "Назад" msgid "Based on your interest in {interestsText}" msgstr "Ґрунтуючись на вашому інтересі до {interestsText}" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "Основні" @@ -584,7 +584,7 @@ msgstr "Основні" msgid "Birthday" msgstr "Дата народження" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "Дата народження:" @@ -814,17 +814,17 @@ msgstr "Скасовує відкриття посилання" msgid "Change" msgstr "Змінити" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "Змінити" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "Змінити псевдонім" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "Змінити псевдонім" @@ -832,12 +832,12 @@ msgstr "Змінити псевдонім" msgid "Change my email" msgstr "Змінити адресу електронної пошти" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "Змінити пароль" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "Зміна пароля" @@ -862,7 +862,7 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "" @@ -924,19 +924,19 @@ msgstr "Виберіть ваші основні стрічки" msgid "Choose your password" msgstr "Вкажіть пароль" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "" @@ -945,11 +945,11 @@ msgstr "" msgid "Clear search query" msgstr "Очистити пошуковий запит" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "Видаляє всі застарілі дані зі сховища" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "Видаляє всі дані зі сховища" @@ -1072,7 +1072,7 @@ msgstr "Завершіть ознайомлення та розпочніть к msgid "Complete the challenge" msgstr "Виконайте завдання" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "Створюйте пости до {MAX_GRAPHEME_LENGTH} символів у довжину" @@ -1309,7 +1309,7 @@ msgstr "" msgid "Create a new account" msgstr "Створити новий обліковий запис" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "Створити новий обліковий запис Bluesky" @@ -1369,8 +1369,8 @@ msgstr "Кастомні стрічки, створені спільнотою, msgid "Customize media from external sites." msgstr "Налаштування медіа зі сторонніх вебсайтів." -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "Темна" @@ -1378,7 +1378,7 @@ msgstr "Темна" msgid "Dark mode" msgstr "Темний режим" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "Темна тема" @@ -1386,7 +1386,7 @@ msgstr "Темна тема" msgid "Date of birth" msgstr "Дата народження" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "Налагодження модерації" @@ -1401,7 +1401,7 @@ msgstr "Панель налагодження" msgid "Delete" msgstr "Видалити" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "Видалити обліковий запис" @@ -1421,8 +1421,8 @@ msgstr "Видалити пароль для застосунку" msgid "Delete app password?" msgstr "Видалити пароль для застосунку?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "" @@ -1446,7 +1446,7 @@ msgstr "" msgid "Delete my account" msgstr "Видалити мій обліковий запис" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "Видалити мій обліковий запис..." @@ -1471,7 +1471,7 @@ msgstr "Видалено" msgid "Deleted post." msgstr "Видалений пост." -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "" @@ -1490,7 +1490,7 @@ msgstr "" msgid "Did you want to say anything?" msgstr "Порожній пост. Ви хотіли щось написати?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "Тьмяний" @@ -1525,11 +1525,11 @@ msgstr "" msgid "Disabled" msgstr "Вимкнено" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "Видалити" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "Відхилити чернетку?" @@ -1695,12 +1695,12 @@ msgstr "Редагувати мої стрічки" msgid "Edit my profile" msgstr "Редагувати мій профіль" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "Редагувати профіль" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "Редагувати профіль" @@ -1752,7 +1752,7 @@ msgstr "Ел. адресу оновлено" msgid "Email verified" msgstr "Електронну адресу перевірено" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "Ел. адреса:" @@ -1812,6 +1812,10 @@ msgstr "Увімкнено" msgid "End of feed" msgstr "Кінець стрічки" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "Введіть ім'я для цього пароля застосунку" @@ -1879,6 +1883,10 @@ msgstr "Помилка:" msgid "Everybody" msgstr "Усі" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1932,12 +1940,12 @@ msgstr "Відверто або потенційно проблемний вмі msgid "Explicit sexual images." msgstr "Відверті сексуальні зображення." -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "Експорт моїх даних" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "Експорт моїх даних" @@ -1953,11 +1961,11 @@ msgstr "Зовнішні медіа можуть дозволяти вебсай #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "Налаштування зовнішніх медіа" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "Налаштування зовнішніх медіа" @@ -2196,7 +2204,7 @@ msgstr "Підписані" msgid "Following {0}" msgstr "Підписання на \"{0}\"" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "Налаштування стрічки підписок" @@ -2204,7 +2212,7 @@ msgstr "Налаштування стрічки підписок" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "Налаштування стрічки підписок" @@ -2666,7 +2674,7 @@ msgstr "Мітки на вашому контенті" msgid "Language selection" msgstr "Вибір мови" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "Налаштування мови" @@ -2675,7 +2683,7 @@ msgstr "Налаштування мови" msgid "Language Settings" msgstr "Налаштування мов" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "Мови" @@ -2748,7 +2756,7 @@ msgstr "Давайте відновимо ваш пароль!" msgid "Let's go!" msgstr "Злітаємо!" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "Світла" @@ -2756,7 +2764,7 @@ msgstr "Світла" #~ msgid "Like" #~ msgstr "Вподобати" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "Вподобати цю стрічку" @@ -2962,14 +2970,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "" @@ -2983,7 +2991,7 @@ msgstr "Оманливий обліковий запис" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "Модерація" @@ -3023,7 +3031,7 @@ msgstr "Списки для модерації" msgid "Moderation Lists" msgstr "Списки для модерації" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "Налаштування модерації" @@ -3163,11 +3171,11 @@ msgstr "Мої стрічки" msgid "My Profile" msgstr "Мій профіль" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "Мої збережені стрічки" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "Мої збережені стрічки" @@ -3227,8 +3235,8 @@ msgid "New" msgstr "Новий" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "" @@ -3355,7 +3363,7 @@ msgstr "Результати відсутні" msgid "No results" msgstr "" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "Нічого не знайдено" @@ -3386,6 +3394,10 @@ msgstr "Ні, дякую" msgid "Nobody" msgstr "Ніхто" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3419,7 +3431,7 @@ msgstr "Примітка щодо поширення" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Примітка: Bluesky є відкритою і публічною мережею. Цей параметр обмежує видимість вашого вмісту лише у застосунках і на сайті Bluesky, але інші застосунки можуть цього не дотримуватися. Ваш вміст все ще може бути показаний відвідувачам без облікового запису іншими застосунками і вебсайтами." -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3463,7 +3475,7 @@ msgid "Oh no! Something went wrong." msgstr "Ой! Щось пішло не так." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "OK" @@ -3479,7 +3491,7 @@ msgstr "Спочатку найдавніші" msgid "Onboarding reset" msgstr "Скинути ознайомлення" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "Для одного або кількох зображень відсутній опис." @@ -3495,11 +3507,11 @@ msgstr "Тільки {0} можуть відповідати." msgid "Only contains letters, numbers, and hyphens" msgstr "Тільки літери, цифри та дефіс" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "Ой, щось пішло не так!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3518,8 +3530,8 @@ msgstr "" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "Емоджі" @@ -3527,7 +3539,7 @@ msgstr "Емоджі" msgid "Open feed options menu" msgstr "Відкрити меню налаштувань стрічки" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "Вбудований браузер" @@ -3547,12 +3559,12 @@ msgstr "Відкрити навігацію" msgid "Open post options menu" msgstr "Відкрити меню налаштувань посту" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "Відкрити storybook сторінку" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "Відкрити системний журнал" @@ -3560,7 +3572,7 @@ msgstr "Відкрити системний журнал" msgid "Opens {numItems} options" msgstr "Відкриває меню з {numItems} опціями" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "" @@ -3580,7 +3592,7 @@ msgstr "Відкриває камеру на пристрої" msgid "Opens composer" msgstr "Відкрити редактор" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "Відкриває налаштування мов" @@ -3588,7 +3600,7 @@ msgstr "Відкриває налаштування мов" msgid "Opens device photo gallery" msgstr "Відкриває фотогалерею пристрою" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "Відкриває налаштування зовнішніх вбудувань" @@ -3610,23 +3622,23 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Відкриває список кодів запрошення" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Відкриває модальне вікно для підтвердження видалення облікового запису. Потребує код з електронної пошти" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "Відкриває модальне вікно для зміни паролю в Bluesky" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Відкриває модальне вікно для вибору псевдоніму в Bluesky" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Відкриває модальне вікно для завантаження даних з вашого облікового запису Bluesky (репозиторій)" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "Відкриває модальне вікно для перевірки електронної пошти" @@ -3634,7 +3646,7 @@ msgstr "Відкриває модальне вікно для перевірки msgid "Opens modal for using custom domain" msgstr "Відкриває діалог налаштування власного домену як псевдоніму" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "Відкриває налаштування модерації" @@ -3647,15 +3659,15 @@ msgstr "Відкриває форму скидання пароля" msgid "Opens screen to edit Saved Feeds" msgstr "Відкриває сторінку з усіма збереженими стрічками" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "Відкриває сторінку з усіма збереженими каналами" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "Відкриває налаштування паролів для застосунків" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "Відкриває налаштування стрічки підписок" @@ -3667,16 +3679,16 @@ msgstr "Відкриває посилання" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "Відкриває системний журнал" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "Відкриває налаштування гілок" @@ -3709,7 +3721,7 @@ msgstr "Інші..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Сторінку не знайдено" @@ -3877,8 +3889,8 @@ msgstr "Політика" msgid "Porn" msgstr "Порнографія" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "Запостити" @@ -3958,7 +3970,7 @@ msgid "Press to change hosting provider" msgstr "Змінити хостинг-провайдера" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3981,7 +3993,7 @@ msgstr "Основна мова" msgid "Prioritize Your Follows" msgstr "Пріоритезувати ваші підписки" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Конфіденційність" @@ -3989,7 +4001,7 @@ msgstr "Конфіденційність" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Політика конфіденційності" @@ -4019,7 +4031,7 @@ msgstr "Профіль" msgid "Profile updated" msgstr "Профіль оновлено" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "Захистіть свій обліковий запис, підтвердивши свою електронну адресу." @@ -4035,11 +4047,11 @@ msgstr "Публічні, поширювані списки користувач msgid "Public, shareable lists which can drive feeds." msgstr "Публічні, поширювані списки для створення стрічок." -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "Опублікувати пост" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "Опублікувати відповідь" @@ -4089,7 +4101,7 @@ msgstr "Останні запити" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -4196,7 +4208,7 @@ msgstr "Відповіді" msgid "Replies to this thread are disabled" msgstr "Відповіді до цього посту вимкнено" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "Відповісти" @@ -4363,8 +4375,8 @@ msgstr "Код підтвердження" msgid "Reset Code" msgstr "Код скидання" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "" @@ -4372,16 +4384,16 @@ msgstr "" msgid "Reset password" msgstr "Скинути пароль" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "" @@ -4396,7 +4408,7 @@ msgstr "Повторити останню дію, яка спричинила п #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4781,23 +4793,23 @@ msgstr "Налаштуйте ваш обліковий запис" msgid "Sets Bluesky username" msgstr "Встановлює псевдонім Bluesky" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "Встановлює темну тему" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "Встановлює світлу тему" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "Встановлює тему відповідно до системних налаштувань" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "Встановлює чорний колір для темної теми" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "Встановлює тьмяний колір для темної теми" @@ -4884,7 +4896,7 @@ msgstr "Поширює посилання" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "Показувати" @@ -5062,7 +5074,7 @@ msgstr "Зареєструйтеся або увійдіть, щоб приєд msgid "Sign-in Required" msgstr "Необхідно увійти для перегляду" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "Ви увійшли як" @@ -5084,6 +5096,10 @@ msgstr "Пропустити цей процес" msgid "Software Dev" msgstr "Розробка П/З" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "" @@ -5148,7 +5164,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Сторінка стану" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "" @@ -5165,7 +5181,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Сховище очищено, тепер вам треба перезапустити застосунок." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "" @@ -5184,7 +5200,7 @@ msgstr "Підписатися" msgid "Subscribe to @{0} to use these labels:" msgstr "Підпишіться на @{0}, щоб використовувати ці мітки:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "Підписатися на маркувальника" @@ -5193,7 +5209,7 @@ msgstr "Підписатися на маркувальника" msgid "Subscribe to the {0} feed" msgstr "Підписатися на {0} стрічку" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "Підписатися на цього маркувальника" @@ -5232,11 +5248,11 @@ msgstr "Переключитися на {0}" msgid "Switches the account you are logged in to" msgstr "Переключає обліковий запис" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "Системне" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "Системний журнал" @@ -5270,7 +5286,7 @@ msgstr "Умови" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5358,7 +5374,7 @@ msgstr "Умови Використання перенесено до" msgid "There are many feeds to try:" msgstr "Також є багато інших стрічок, щоб спробувати:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "Виникла проблема з доступом до сервера. Перевірте підключення до Інтернету і повторіть спробу знову." @@ -5640,12 +5656,12 @@ msgstr "Цей користувач не підписаний ні на кого msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Це видалить {0} зі ваших ігнорованих слів. Ви завжди можете додати його назад." -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "Налаштування гілок" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "Налаштування гілок" @@ -5702,7 +5718,7 @@ msgctxt "action" msgid "Try again" msgstr "Спробувати ще раз" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "" @@ -5843,11 +5859,11 @@ msgstr "Відкріпити список модерації" msgid "Unpinned from your feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "Відписатися" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "Відписатися від цього маркувальника" @@ -6032,15 +6048,15 @@ msgstr "Значення:" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "Підтвердити електронну адресу" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "Підтвердити мою електронну адресу" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "Підтвердити мою електронну адресу" @@ -6061,7 +6077,7 @@ msgstr "Підтвердьте адресу вашої електронної п #~ msgid "Version {0}" #~ msgstr "Версія {0}" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6199,12 +6215,12 @@ msgstr "На жаль, ми не змогли зараз завантажити msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Даруйте, нам не вдалося виконати пошук за вашим запитом. Будь ласка, спробуйте ще раз через кілька хвилин." -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Нам дуже прикро! Ми не можемо знайти сторінку, яку ви шукали." -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "На жаль, ви можете підписатися тільки на 10 маркувальників, і ви вже досягли цього ліміту." @@ -6235,13 +6251,12 @@ msgstr "Якими мовами ви хочете бачити пости у а msgid "Who can message you?" msgstr "" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "Хто може відповідати" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "" @@ -6278,7 +6293,7 @@ msgstr "Широке" msgid "Write a message" msgstr "" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "Написати пост" @@ -6389,7 +6404,7 @@ msgstr "Ви увімкнули ігнорування цього обліков msgid "You have muted this user" msgstr "Ви увімкнули ігнорування цього користувача" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/zh-CN/messages.po b/src/locale/locales/zh-CN/messages.po index 525d5154fd..93e580c0e3 100644 --- a/src/locale/locales/zh-CN/messages.po +++ b/src/locale/locales/zh-CN/messages.po @@ -92,8 +92,8 @@ msgstr "{following} 个正在关注" msgid "{handle} can't be messaged" msgstr "无法给 {handle} 发送私信" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{likeCount, plural, one {# 位用户喜欢} other {# 位用户喜欢}}" @@ -140,11 +140,11 @@ msgid "Access profile and other navigation links" msgstr "访问个人资料及其他导航链接" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "无障碍" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "无障碍设置" @@ -154,8 +154,8 @@ msgid "Accessibility Settings" msgstr "无障碍设置" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "账户" @@ -217,8 +217,8 @@ msgid "Add a user to this list" msgstr "将用户添加至列表" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "添加账户" @@ -290,7 +290,7 @@ msgid "Adult content is disabled." msgstr "成人内容显示已被禁用。" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "详细设置" @@ -395,13 +395,13 @@ msgstr "应用专用密码只能包含字母、数字、空格、破折号及下 msgid "App Password names must be at least 4 characters long." msgstr "应用专用密码必须至少为 4 个字符。" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "应用专用密码设置" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "应用专用密码" @@ -426,7 +426,7 @@ msgstr "申诉已提交" msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "外观" @@ -451,7 +451,7 @@ msgstr "您确定要离开这个对话吗?此操作仅会在你的私信列表 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "你确定要从你的资讯源中删除 {0} 吗?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "你确定要丢弃这段草稿吗?" @@ -498,7 +498,7 @@ msgstr "返回" msgid "Based on your interest in {interestsText}" msgstr "基于你对 {interestsText} 感兴趣" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "基础信息" @@ -506,7 +506,7 @@ msgstr "基础信息" msgid "Birthday" msgstr "生日" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "生日:" @@ -717,17 +717,17 @@ msgstr "取消打开链接的网站" msgid "Change" msgstr "更改" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "更改" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "更改用户识别符" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "更改用户识别符" @@ -735,12 +735,12 @@ msgstr "更改用户识别符" msgid "Change my email" msgstr "更改我的邮箱地址" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "更改密码" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "更改密码" @@ -765,7 +765,7 @@ msgstr "已隐藏对话" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "私信设置" @@ -810,19 +810,19 @@ msgstr "选择你的主要资讯源" msgid "Choose your password" msgstr "选择你的密码" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "清除所有旧存储数据" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "清除所有旧存储数据(并重启)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "清除所有数据" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "清除所有数据(并重启)" @@ -831,11 +831,11 @@ msgstr "清除所有数据(并重启)" msgid "Clear search query" msgstr "清除搜索历史记录" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "清除所有旧版存储数据" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "清除所有数据" @@ -950,7 +950,7 @@ msgstr "完成引导并开始使用你的账户" msgid "Complete the challenge" msgstr "完成验证" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "撰写帖子的长度最多为 {MAX_GRAPHEME_LENGTH} 个字符" @@ -1175,7 +1175,7 @@ msgstr "无法隐藏对话" msgid "Create a new account" msgstr "创建新的账户" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "创建新的 Bluesky 账户" @@ -1231,8 +1231,8 @@ msgstr "由社群构建的自定义资讯源能为你带来新的体验,并帮 msgid "Customize media from external sites." msgstr "自定义外部站点的媒体。" -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "暗色" @@ -1240,7 +1240,7 @@ msgstr "暗色" msgid "Dark mode" msgstr "深色模式" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "深色模式" @@ -1248,7 +1248,7 @@ msgstr "深色模式" msgid "Date of birth" msgstr "生日" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "调试内容审核" @@ -1263,7 +1263,7 @@ msgstr "调试面板" msgid "Delete" msgstr "删除" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "删除账户" @@ -1279,8 +1279,8 @@ msgstr "删除应用专用密码" msgid "Delete app password?" msgstr "删除应用专用密码?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "删除聊天记录" @@ -1304,7 +1304,7 @@ msgstr "为我删除私信" msgid "Delete my account" msgstr "删除我的账户" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "删除我的账户…" @@ -1329,7 +1329,7 @@ msgstr "已删除" msgid "Deleted post." msgstr "已删除帖子。" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "删除聊天记录" @@ -1348,7 +1348,7 @@ msgstr "描述替代文字" msgid "Did you want to say anything?" msgstr "有什么想说的吗?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "暗淡" @@ -1375,11 +1375,11 @@ msgstr "关闭触感反馈" msgid "Disabled" msgstr "关闭" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "丢弃" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "丢弃草稿?" @@ -1545,12 +1545,12 @@ msgstr "编辑自定义资讯源" msgid "Edit my profile" msgstr "编辑个人资料" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "编辑个人资料" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "编辑个人资料" @@ -1602,7 +1602,7 @@ msgstr "电子邮箱已更新" msgid "Email verified" msgstr "电子邮箱已验证" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "电子邮箱:" @@ -1662,6 +1662,10 @@ msgstr "已启用" msgid "End of feed" msgstr "已到末尾" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "为这个应用专用密码命名" @@ -1729,6 +1733,10 @@ msgstr "错误:" msgid "Everybody" msgstr "所有人" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1782,12 +1790,12 @@ msgstr "明确或潜在引起不适的媒体内容。" msgid "Explicit sexual images." msgstr "明确的性暗示图片。" -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "导出账户数据" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "导出账户数据" @@ -1803,11 +1811,11 @@ msgstr "外部媒体可能允许网站收集有关你和你设备的有关信息 #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "外部媒体首选项" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "外部媒体设置" @@ -2013,7 +2021,7 @@ msgstr "正在关注" msgid "Following {0}" msgstr "正在关注 {0}" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "\"正在关注\"资讯源首选项" @@ -2021,7 +2029,7 @@ msgstr "\"正在关注\"资讯源首选项" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "\"正在关注\"资讯源首选项" @@ -2470,7 +2478,7 @@ msgstr "你内容上的标记" msgid "Language selection" msgstr "选择语言" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "语言设置" @@ -2479,7 +2487,7 @@ msgstr "语言设置" msgid "Language Settings" msgstr "语言设置" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "语言" @@ -2552,11 +2560,11 @@ msgstr "让我们来重置你的密码!" msgid "Let's go!" msgstr "让我们开始!" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "亮色" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "喜欢这个资讯源" @@ -2744,14 +2752,14 @@ msgstr "私信输入栏" msgid "Message is too long" msgstr "私信过长" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "私信设置" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "私信" @@ -2761,7 +2769,7 @@ msgstr "误导性账户" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "内容审核" @@ -2801,7 +2809,7 @@ msgstr "内容审核列表" msgid "Moderation Lists" msgstr "内容审核列表" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "内容审核设置" @@ -2936,11 +2944,11 @@ msgstr "自定义资讯源" msgid "My Profile" msgstr "我的个人资料" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "我保存的资讯源" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "我保存的资讯源" @@ -2995,8 +3003,8 @@ msgid "New" msgstr "新建" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "新私信" @@ -3122,7 +3130,7 @@ msgstr "没有结果" msgid "No results" msgstr "没有结果" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "未找到结果" @@ -3149,6 +3157,10 @@ msgstr "不,谢谢" msgid "Nobody" msgstr "没有人" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3178,7 +3190,7 @@ msgstr "分享注意事项" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "注意:Bluesky 是一个开放的公共网络。这个设置项仅限制你发布的内容在 Bluesky 应用和网站上的可见性,其他应用可能不遵从这个设置项,仍可能会向未登录的用户显示你的动态。" -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3218,7 +3230,7 @@ msgid "Oh no! Something went wrong." msgstr "糟糕!发生了一些错误。" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "好的" @@ -3234,7 +3246,7 @@ msgstr "优先显示最旧的回复" msgid "Onboarding reset" msgstr "重新开始引导流程" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "至少有一张图片缺失了替代文字。" @@ -3250,11 +3262,11 @@ msgstr "只有{0}可以回复。" msgid "Only contains letters, numbers, and hyphens" msgstr "仅限字母、数字和连字符" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "糟糕,发生了一些错误!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3273,8 +3285,8 @@ msgstr "开启头像创建工具" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "开启表情符号选择器" @@ -3282,7 +3294,7 @@ msgstr "开启表情符号选择器" msgid "Open feed options menu" msgstr "开启资讯源选项菜单" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "在内置浏览器中打开链接" @@ -3302,12 +3314,12 @@ msgstr "打开导航" msgid "Open post options menu" msgstr "开启帖子选项菜单" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "开启 Storybook 界面" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "开启系统日志" @@ -3315,7 +3327,7 @@ msgstr "开启系统日志" msgid "Opens {numItems} options" msgstr "开启 {numItems} 个选项" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "开启无障碍设置" @@ -3335,7 +3347,7 @@ msgstr "开启设备相机" msgid "Opens composer" msgstr "开启编辑器" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "开启可配置的语言设置" @@ -3343,7 +3355,7 @@ msgstr "开启可配置的语言设置" msgid "Opens device photo gallery" msgstr "开启设备相册" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "开启外部嵌入设置" @@ -3365,23 +3377,23 @@ msgstr "开启 GIF 选择对话框" msgid "Opens list of invite codes" msgstr "开启邀请码列表" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "需要邮件验证以继续进行账户删除操作" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "开启密码修改界面" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "开启创建新的用户识别符界面" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "开启你的 Bluesky 用户资料(存储库)下载页面" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "开启电子邮箱确认界面" @@ -3389,7 +3401,7 @@ msgstr "开启电子邮箱确认界面" msgid "Opens modal for using custom domain" msgstr "开启使用自定义域名的模式" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "开启内容审核设置" @@ -3402,15 +3414,15 @@ msgstr "开启密码重置申请" msgid "Opens screen to edit Saved Feeds" msgstr "开启用于编辑已保存资讯源的界面" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "开启包含所有已保存资讯源的界面" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "开启应用专用密码设置界面" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "开启\"正在关注\"资讯源首选项" @@ -3418,16 +3430,16 @@ msgstr "开启\"正在关注\"资讯源首选项" msgid "Opens the linked website" msgstr "开启链接的网页" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "开启 Storybook 界面" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "开启系统日志界面" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "开启讨论串首选项" @@ -3460,7 +3472,7 @@ msgstr "其他..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "内容审核服务提供方已收到举报,并决定停用你的 Bluesky 私信功能。" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "无法找到这个页面" @@ -3628,8 +3640,8 @@ msgstr "政治" msgid "Porn" msgstr "色情内容" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "发布" @@ -3709,7 +3721,7 @@ msgid "Press to change hosting provider" msgstr "点击以变更托管提供商" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3727,7 +3739,7 @@ msgstr "首选语言" msgid "Prioritize Your Follows" msgstr "优先显示关注者" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "隐私" @@ -3735,7 +3747,7 @@ msgstr "隐私" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "隐私政策" @@ -3765,7 +3777,7 @@ msgstr "个人资料" msgid "Profile updated" msgstr "个人资料已更新" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "通过验证电子邮箱来保护你的账户。" @@ -3781,11 +3793,11 @@ msgstr "公开且可共享的批量隐藏或屏蔽列表。" msgid "Public, shareable lists which can drive feeds." msgstr "公开且可共享的列表,可作为资讯源使用。" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "发布帖子" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "发布回复" @@ -3823,7 +3835,7 @@ msgstr "最近的搜索" msgid "Reconnect" msgstr "重新连接" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -3930,7 +3942,7 @@ msgstr "回复" msgid "Replies to this thread are disabled" msgstr "对这条讨论串的回复已被禁用" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "回复" @@ -4087,8 +4099,8 @@ msgstr "确认码" msgid "Reset Code" msgstr "确认码" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "重置引导流程状态" @@ -4096,16 +4108,16 @@ msgstr "重置引导流程状态" msgid "Reset password" msgstr "重置密码" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "重置首选项状态" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "重置引导流程状态" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "重置首选项状态" @@ -4120,7 +4132,7 @@ msgstr "重试上次出错的操作" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4489,23 +4501,23 @@ msgstr "设置你的账户" msgid "Sets Bluesky username" msgstr "设置 Bluesky 用户名" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "设置主题为深色模式" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "设置主题为亮色模式" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "设置主题跟随系统设置" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "设置深色模式至深黑" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "设置深色模式至暗淡" @@ -4592,7 +4604,7 @@ msgstr "分享链接的网站" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "显示" @@ -4762,7 +4774,7 @@ msgstr "注册或登录以加入对话" msgid "Sign-in Required" msgstr "需要登录" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "登录身份" @@ -4784,6 +4796,10 @@ msgstr "跳过这段流程" msgid "Software Dev" msgstr "程序开发" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "出了点问题" @@ -4840,7 +4856,7 @@ msgstr "与 {displayName} 开始私信" msgid "Start chatting" msgstr "开始私信" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "状态页" @@ -4853,7 +4869,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "已清除存储,请立即重启应用。" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "Storybook" @@ -4872,7 +4888,7 @@ msgstr "订阅" msgid "Subscribe to @{0} to use these labels:" msgstr "订阅 @{0} 以使用这些标记:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "订阅标记者" @@ -4881,7 +4897,7 @@ msgstr "订阅标记者" msgid "Subscribe to the {0} feed" msgstr "订阅 {0} 资讯源" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "订阅这个标记者" @@ -4920,11 +4936,11 @@ msgstr "切换到 {0}" msgid "Switches the account you are logged in to" msgstr "切换你登录的账户" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "系统" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "系统日志" @@ -4958,7 +4974,7 @@ msgstr "条款" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5042,7 +5058,7 @@ msgstr "服务条款已迁移至" msgid "There are many feeds to try:" msgstr "这里有些资讯源你可以尝试:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "连接至服务器时出现问题,请检查你的互联网连接并重试。" @@ -5304,12 +5320,12 @@ msgstr "这个账户目前没有关注任何人。" msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "这将从你的隐藏词汇中删除 {0}。你随时可以重新添加。" -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "讨论串首选项" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "讨论串首选项" @@ -5366,7 +5382,7 @@ msgctxt "action" msgid "Try again" msgstr "重试" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "两步验证" @@ -5499,11 +5515,11 @@ msgstr "取消固定限制列表" msgid "Unpinned from your feeds" msgstr "从你的资讯源中取消固定" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "取消订阅" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "取消订阅这个标记者" @@ -5680,15 +5696,15 @@ msgstr "值:" msgid "Verify DNS Record" msgstr "验证 DNS 记录" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "验证邮箱" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "验证我的邮箱" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "验证我的邮箱" @@ -5705,7 +5721,7 @@ msgstr "验证文本文件" msgid "Verify Your Email" msgstr "验证你的邮箱" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "版本 {appVersion} {bundleInfo}" @@ -5843,12 +5859,12 @@ msgstr "很抱歉,我们无法加载你的隐藏词汇列表。请重试。" msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "很抱歉,无法完成你的搜索。请稍后再试。" -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "很抱歉!我们找不到你正在寻找的页面。" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "很抱歉!你目前只能订阅 10 个标记者,你已达到 10 个的限制。" @@ -5875,13 +5891,12 @@ msgstr "你想在算法资讯源中看到哪些语言?" msgid "Who can message you?" msgstr "谁可以给你发送私信?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "谁可以回复" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "糟糕!" @@ -5922,7 +5937,7 @@ msgstr "宽" msgid "Write a message" msgstr "编写私信" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "撰写帖子" @@ -6033,7 +6048,7 @@ msgstr "你已隐藏这个用户" #~ msgid "You have no chats yet. Start a conversation with someone!" #~ msgstr "你还没有任何私信,立即与其他人展开对话吧!" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" diff --git a/src/locale/locales/zh-TW/messages.po b/src/locale/locales/zh-TW/messages.po index a737bba39f..ed2e29e5b6 100644 --- a/src/locale/locales/zh-TW/messages.po +++ b/src/locale/locales/zh-TW/messages.po @@ -92,8 +92,8 @@ msgstr "{following} 個跟隨中" msgid "{handle} can't be messaged" msgstr "無法傳送訊息給 {handle}" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:285 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:298 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" msgstr "{likeCount, plural, one {# 個用戶已喜歡} other {# 個用戶已喜歡}}" @@ -140,11 +140,11 @@ msgid "Access profile and other navigation links" msgstr "存取個人資料和其他導覽連結" #: src/view/com/modals/EditImage.tsx:300 -#: src/view/screens/Settings/index.tsx:512 +#: src/view/screens/Settings/index.tsx:511 msgid "Accessibility" msgstr "無障礙" -#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:502 msgid "Accessibility settings" msgstr "無障礙設定" @@ -154,8 +154,8 @@ msgid "Accessibility Settings" msgstr "無障礙設定" #: src/screens/Login/LoginForm.tsx:164 -#: src/view/screens/Settings/index.tsx:339 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:338 +#: src/view/screens/Settings/index.tsx:720 msgid "Account" msgstr "帳號" @@ -217,8 +217,8 @@ msgid "Add a user to this list" msgstr "將用戶新增至此列表" #: src/components/dialogs/SwitchAccount.tsx:56 -#: src/view/screens/Settings/index.tsx:416 -#: src/view/screens/Settings/index.tsx:425 +#: src/view/screens/Settings/index.tsx:415 +#: src/view/screens/Settings/index.tsx:424 msgid "Add account" msgstr "新增帳號" @@ -290,7 +290,7 @@ msgid "Adult content is disabled." msgstr "成人內容已停用。" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:655 +#: src/view/screens/Settings/index.tsx:654 msgid "Advanced" msgstr "進階設定" @@ -395,13 +395,13 @@ msgstr "應用程式專用密碼只能包含字母、數字、空格、破折號 msgid "App Password names must be at least 4 characters long." msgstr "應用程式專用密碼名稱必須至少為 4 個字元。" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:665 msgid "App password settings" msgstr "應用程式專用密碼設定" #: src/Navigation.tsx:258 #: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:674 msgid "App Passwords" msgstr "應用程式專用密碼" @@ -426,7 +426,7 @@ msgstr "已提交申訴" msgid "Appeal this decision" msgstr "" -#: src/view/screens/Settings/index.tsx:433 +#: src/view/screens/Settings/index.tsx:432 msgid "Appearance" msgstr "外觀" @@ -451,7 +451,7 @@ msgstr "您確定要離開此對話嗎?您的訊息將為您刪除,但不會 msgid "Are you sure you want to remove {0} from your feeds?" msgstr "您確定要從您的動態中移除 {0} 嗎?" -#: src/view/com/composer/Composer.tsx:580 +#: src/view/com/composer/Composer.tsx:577 msgid "Are you sure you'd like to discard this draft?" msgstr "您確定要捨棄此草稿嗎?" @@ -498,7 +498,7 @@ msgstr "返回" msgid "Based on your interest in {interestsText}" msgstr "因為您對 {interestsText} 感興趣" -#: src/view/screens/Settings/index.tsx:490 +#: src/view/screens/Settings/index.tsx:489 msgid "Basics" msgstr "基本設定" @@ -506,7 +506,7 @@ msgstr "基本設定" msgid "Birthday" msgstr "生日" -#: src/view/screens/Settings/index.tsx:371 +#: src/view/screens/Settings/index.tsx:370 msgid "Birthday:" msgstr "生日:" @@ -717,17 +717,17 @@ msgstr "取消開啟網站連結" msgid "Change" msgstr "變更" -#: src/view/screens/Settings/index.tsx:365 +#: src/view/screens/Settings/index.tsx:364 msgctxt "action" msgid "Change" msgstr "變更" -#: src/view/screens/Settings/index.tsx:687 +#: src/view/screens/Settings/index.tsx:686 msgid "Change handle" msgstr "變更帳號代碼" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:698 +#: src/view/screens/Settings/index.tsx:697 msgid "Change Handle" msgstr "變更帳號代碼" @@ -735,12 +735,12 @@ msgstr "變更帳號代碼" msgid "Change my email" msgstr "變更我的電子郵件地址" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:731 msgid "Change password" msgstr "變更密碼" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:743 +#: src/view/screens/Settings/index.tsx:742 msgid "Change Password" msgstr "變更密碼" @@ -765,7 +765,7 @@ msgstr "對話已靜音" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:67 +#: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" msgstr "對話設定" @@ -810,19 +810,19 @@ msgstr "選擇您的主要動態源" msgid "Choose your password" msgstr "選擇您的密碼" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:855 msgid "Clear all legacy storage data" msgstr "清除所有殘存資料" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:858 msgid "Clear all legacy storage data (restart after this)" msgstr "清除所有殘存資料(並重啟)" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:867 msgid "Clear all storage data" msgstr "清除所有資料" -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:870 msgid "Clear all storage data (restart after this)" msgstr "清除所有資料(並重啟)" @@ -831,11 +831,11 @@ msgstr "清除所有資料(並重啟)" msgid "Clear search query" msgstr "清除搜尋記錄" -#: src/view/screens/Settings/index.tsx:857 +#: src/view/screens/Settings/index.tsx:856 msgid "Clears all legacy storage data" msgstr "清除所有遺留資料" -#: src/view/screens/Settings/index.tsx:869 +#: src/view/screens/Settings/index.tsx:868 msgid "Clears all storage data" msgstr "清除所有資料" @@ -950,7 +950,7 @@ msgstr "完成初始設定並開始使用您的帳號" msgid "Complete the challenge" msgstr "完成驗證" -#: src/view/com/composer/Composer.tsx:511 +#: src/view/com/composer/Composer.tsx:505 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "撰寫貼文的長度最多為 {MAX_GRAPHEME_LENGTH} 個字元" @@ -1175,7 +1175,7 @@ msgstr "無法靜音對話" msgid "Create a new account" msgstr "建立新帳號" -#: src/view/screens/Settings/index.tsx:417 +#: src/view/screens/Settings/index.tsx:416 msgid "Create a new Bluesky account" msgstr "建立新的 Bluesky 帳號" @@ -1231,8 +1231,8 @@ msgstr "由社群打造的自訂動態源帶來全新體驗,幫助您找到所 msgid "Customize media from external sites." msgstr "自訂外部網站的媒體。" -#: src/view/screens/Settings/index.tsx:452 -#: src/view/screens/Settings/index.tsx:478 +#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:477 msgid "Dark" msgstr "深色" @@ -1240,7 +1240,7 @@ msgstr "深色" msgid "Dark mode" msgstr "深色模式" -#: src/view/screens/Settings/index.tsx:465 +#: src/view/screens/Settings/index.tsx:464 msgid "Dark Theme" msgstr "深色主題" @@ -1248,7 +1248,7 @@ msgstr "深色主題" msgid "Date of birth" msgstr "出生日期" -#: src/view/screens/Settings/index.tsx:819 +#: src/view/screens/Settings/index.tsx:818 msgid "Debug Moderation" msgstr "內容管理偵錯" @@ -1263,7 +1263,7 @@ msgstr "偵錯面板" msgid "Delete" msgstr "刪除" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:773 msgid "Delete account" msgstr "刪除帳號" @@ -1279,8 +1279,8 @@ msgstr "刪除應用程式專用密碼" msgid "Delete app password?" msgstr "刪除應用程式專用密碼?" -#: src/view/screens/Settings/index.tsx:836 -#: src/view/screens/Settings/index.tsx:839 +#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" msgstr "刪除對話聲明紀錄" @@ -1304,7 +1304,7 @@ msgstr "為我刪除訊息" msgid "Delete my account" msgstr "刪除我的帳號" -#: src/view/screens/Settings/index.tsx:786 +#: src/view/screens/Settings/index.tsx:785 msgid "Delete My Account…" msgstr "刪除我的帳號…" @@ -1329,7 +1329,7 @@ msgstr "已刪除" msgid "Deleted post." msgstr "已刪除貼文。" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" msgstr "刪除對話聲明紀錄" @@ -1348,7 +1348,7 @@ msgstr "生動的替代文字" msgid "Did you want to say anything?" msgstr "有什麼想說的嗎?" -#: src/view/screens/Settings/index.tsx:471 +#: src/view/screens/Settings/index.tsx:470 msgid "Dim" msgstr "昏暗" @@ -1375,11 +1375,11 @@ msgstr "關閉觸覺回饋" msgid "Disabled" msgstr "停用" -#: src/view/com/composer/Composer.tsx:582 +#: src/view/com/composer/Composer.tsx:579 msgid "Discard" msgstr "捨棄" -#: src/view/com/composer/Composer.tsx:579 +#: src/view/com/composer/Composer.tsx:576 msgid "Discard draft?" msgstr "捨棄草稿?" @@ -1545,12 +1545,12 @@ msgstr "編輯我的動態源" msgid "Edit my profile" msgstr "編輯我的個人資料" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:180 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 msgid "Edit profile" msgstr "編輯個人資料" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:183 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgid "Edit Profile" msgstr "編輯個人資料" @@ -1602,7 +1602,7 @@ msgstr "電子郵件已更新" msgid "Email verified" msgstr "電子郵件已驗證" -#: src/view/screens/Settings/index.tsx:343 +#: src/view/screens/Settings/index.tsx:342 msgid "Email:" msgstr "電子郵件:" @@ -1662,6 +1662,10 @@ msgstr "啟用" msgid "End of feed" msgstr "已經到底部啦!" +#: src/components/Lists.tsx:52 +msgid "End of list" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "輸入此應用程式專用密碼的名稱" @@ -1729,6 +1733,10 @@ msgstr "錯誤:" msgid "Everybody" msgstr "所有人" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 +msgid "Everybody can reply" +msgstr "" + #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 #: src/screens/Messages/Settings.tsx:65 @@ -1782,12 +1790,12 @@ msgstr "露骨或可能令人不安的媒體內容。" msgid "Explicit sexual images." msgstr "露骨的情色圖片。" -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:754 msgid "Export my data" msgstr "匯出我的資料" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:766 +#: src/view/screens/Settings/index.tsx:765 msgid "Export My Data" msgstr "匯出我的資料" @@ -1803,11 +1811,11 @@ msgstr "外部媒體可能允許網站收集有關您和您裝置的資料。在 #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:647 msgid "External Media Preferences" msgstr "外部媒體偏好" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:638 msgid "External media settings" msgstr "外部媒體設定" @@ -2013,7 +2021,7 @@ msgstr "跟隨中" msgid "Following {0}" msgstr "跟隨中: {0}" -#: src/view/screens/Settings/index.tsx:567 +#: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" msgstr "「Following」動態源偏好" @@ -2021,7 +2029,7 @@ msgstr "「Following」動態源偏好" #: src/view/com/home/HomeHeaderLayout.web.tsx:64 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:87 #: src/view/screens/PreferencesFollowingFeed.tsx:103 -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" msgstr "「Following」動態源偏好" @@ -2470,7 +2478,7 @@ msgstr "您內容上的標記" msgid "Language selection" msgstr "語言選擇" -#: src/view/screens/Settings/index.tsx:524 +#: src/view/screens/Settings/index.tsx:523 msgid "Language settings" msgstr "語言設定" @@ -2479,7 +2487,7 @@ msgstr "語言設定" msgid "Language Settings" msgstr "語言設定" -#: src/view/screens/Settings/index.tsx:533 +#: src/view/screens/Settings/index.tsx:532 msgid "Languages" msgstr "語言" @@ -2552,11 +2560,11 @@ msgstr "讓我們來重設您的密碼吧!" msgid "Let's go!" msgstr "讓我們開始吧!" -#: src/view/screens/Settings/index.tsx:446 +#: src/view/screens/Settings/index.tsx:445 msgid "Light" msgstr "亮色" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:266 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 msgid "Like this feed" msgstr "對這個動態源按喜歡" @@ -2744,14 +2752,14 @@ msgstr "訊息輸入欄位" msgid "Message is too long" msgstr "訊息太長了" -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:299 msgid "Message settings" msgstr "訊息設定" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:143 -#: src/screens/Messages/List/index.tsx:225 -#: src/screens/Messages/List/index.tsx:293 +#: src/screens/Messages/List/index.tsx:144 +#: src/screens/Messages/List/index.tsx:226 +#: src/screens/Messages/List/index.tsx:295 msgid "Messages" msgstr "訊息" @@ -2761,7 +2769,7 @@ msgstr "誤導性帳號" #: src/Navigation.tsx:126 #: src/screens/Moderation/index.tsx:104 -#: src/view/screens/Settings/index.tsx:555 +#: src/view/screens/Settings/index.tsx:554 msgid "Moderation" msgstr "內容管理" @@ -2801,7 +2809,7 @@ msgstr "內容管理列表" msgid "Moderation Lists" msgstr "內容管理列表" -#: src/view/screens/Settings/index.tsx:549 +#: src/view/screens/Settings/index.tsx:548 msgid "Moderation settings" msgstr "內容管理設定" @@ -2936,11 +2944,11 @@ msgstr "我的動態源" msgid "My Profile" msgstr "我的個人資料" -#: src/view/screens/Settings/index.tsx:610 +#: src/view/screens/Settings/index.tsx:609 msgid "My saved feeds" msgstr "我儲存的動態源" -#: src/view/screens/Settings/index.tsx:616 +#: src/view/screens/Settings/index.tsx:615 msgid "My Saved Feeds" msgstr "我儲存的動態源" @@ -2995,8 +3003,8 @@ msgid "New" msgstr "新增" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:307 -#: src/screens/Messages/List/index.tsx:314 +#: src/screens/Messages/List/index.tsx:309 +#: src/screens/Messages/List/index.tsx:316 msgid "New chat" msgstr "新對話" @@ -3122,7 +3130,7 @@ msgstr "沒有結果" msgid "No results" msgstr "沒有結果" -#: src/components/Lists.tsx:197 +#: src/components/Lists.tsx:211 msgid "No results found" msgstr "未找到結果" @@ -3149,6 +3157,10 @@ msgstr "不,謝謝" msgid "Nobody" msgstr "沒有人" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 +msgid "Nobody can reply" +msgstr "" + #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 msgid "Nobody has liked this yet. Maybe you should be the first!" @@ -3178,7 +3190,7 @@ msgstr "關於分享的注意事項" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "注意:Bluesky 是一個開放且公開的網路。此設定僅限制您在 Bluesky 應用程式和網站上的內容可見性,其他應用程式可能不尊遵循這樣的規則。您的內容仍可能由其他應用程式和網站顯示給未登入的使用者。" -#: src/screens/Messages/List/index.tsx:194 +#: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" msgstr "" @@ -3218,7 +3230,7 @@ msgid "Oh no! Something went wrong." msgstr "糟糕!發生了一些錯誤。" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:335 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:336 msgid "OK" msgstr "好的" @@ -3234,7 +3246,7 @@ msgstr "最舊的回覆優先" msgid "Onboarding reset" msgstr "重新開始引導流程" -#: src/view/com/composer/Composer.tsx:466 +#: src/view/com/composer/Composer.tsx:460 msgid "One or more images is missing alt text." msgstr "至少有一張圖片缺失了替代文字。" @@ -3250,11 +3262,11 @@ msgstr "只有{0}可以回覆。" msgid "Only contains letters, numbers, and hyphens" msgstr "只包含字母、數字和連字符" -#: src/components/Lists.tsx:78 +#: src/components/Lists.tsx:92 msgid "Oops, something went wrong!" msgstr "糟糕,發生了錯誤!" -#: src/components/Lists.tsx:181 +#: src/components/Lists.tsx:195 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3273,8 +3285,8 @@ msgstr "開啟頭像創建工具" msgid "Open conversation options" msgstr "" -#: src/view/com/composer/Composer.tsx:563 -#: src/view/com/composer/Composer.tsx:564 +#: src/view/com/composer/Composer.tsx:560 +#: src/view/com/composer/Composer.tsx:561 msgid "Open emoji picker" msgstr "開啟表情符號選擇器" @@ -3282,7 +3294,7 @@ msgstr "開啟表情符號選擇器" msgid "Open feed options menu" msgstr "開啟動態選項選單" -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:704 msgid "Open links with in-app browser" msgstr "在內建瀏覽器中開啟連結" @@ -3302,12 +3314,12 @@ msgstr "開啟導覽" msgid "Open post options menu" msgstr "開啟貼文選項選單" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:815 msgid "Open storybook page" msgstr "開啟故事書頁面" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:793 msgid "Open system log" msgstr "開啟系統日誌" @@ -3315,7 +3327,7 @@ msgstr "開啟系統日誌" msgid "Opens {numItems} options" msgstr "開啟 {numItems} 個選項" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:503 msgid "Opens accessibility settings" msgstr "開啟無障礙設定" @@ -3335,7 +3347,7 @@ msgstr "開啟裝置相機" msgid "Opens composer" msgstr "開啟編輯器" -#: src/view/screens/Settings/index.tsx:525 +#: src/view/screens/Settings/index.tsx:524 msgid "Opens configurable language settings" msgstr "開啟可以更改的語言設定" @@ -3343,7 +3355,7 @@ msgstr "開啟可以更改的語言設定" msgid "Opens device photo gallery" msgstr "開啟裝置相簿" -#: src/view/screens/Settings/index.tsx:640 +#: src/view/screens/Settings/index.tsx:639 msgid "Opens external embeds settings" msgstr "開啟外部連結嵌入設定" @@ -3365,23 +3377,23 @@ msgstr "開啟 GIF 選擇對話框" msgid "Opens list of invite codes" msgstr "開啟邀請碼列表" -#: src/view/screens/Settings/index.tsx:776 +#: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "開啟帳號刪除的確認彈窗。需要電子郵件驗證碼" -#: src/view/screens/Settings/index.tsx:734 +#: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" msgstr "開啟修改 Bluesky 密碼的彈窗" -#: src/view/screens/Settings/index.tsx:689 +#: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" msgstr "開啟創建新 Bluesky 帳號代碼的彈窗" -#: src/view/screens/Settings/index.tsx:757 +#: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "開啟下載 Bluesky 帳號數據(存儲庫)的彈窗" -#: src/view/screens/Settings/index.tsx:954 +#: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" msgstr "開啟驗證電子郵件的彈窗" @@ -3389,7 +3401,7 @@ msgstr "開啟驗證電子郵件的彈窗" msgid "Opens modal for using custom domain" msgstr "開啟使用自訂網域的彈窗" -#: src/view/screens/Settings/index.tsx:550 +#: src/view/screens/Settings/index.tsx:549 msgid "Opens moderation settings" msgstr "開啟內容管理設定" @@ -3402,15 +3414,15 @@ msgstr "開啟密碼重設表單" msgid "Opens screen to edit Saved Feeds" msgstr "開啟編輯已儲存的動態源之畫面" -#: src/view/screens/Settings/index.tsx:611 +#: src/view/screens/Settings/index.tsx:610 msgid "Opens screen with all saved feeds" msgstr "開啟包含所有已儲存的動態源之畫面" -#: src/view/screens/Settings/index.tsx:667 +#: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" msgstr "開啟應用程式專用密碼設定畫面" -#: src/view/screens/Settings/index.tsx:568 +#: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" msgstr "開啟「Following」動態源偏好" @@ -3418,16 +3430,16 @@ msgstr "開啟「Following」動態源偏好" msgid "Opens the linked website" msgstr "開啟網站連結" -#: src/view/screens/Settings/index.tsx:807 -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:806 +#: src/view/screens/Settings/index.tsx:816 msgid "Opens the storybook page" msgstr "開啟故事書頁面" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:794 msgid "Opens the system log page" msgstr "開啟系統日誌頁面" -#: src/view/screens/Settings/index.tsx:589 +#: src/view/screens/Settings/index.tsx:588 msgid "Opens the threads preferences" msgstr "開啟討論串偏好" @@ -3460,7 +3472,7 @@ msgstr "其他…" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "我們的內容管理者已審核檢舉,並決定停用您在 Bluesky 上的對話功能。" -#: src/components/Lists.tsx:198 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "頁面不存在" @@ -3628,8 +3640,8 @@ msgstr "政治" msgid "Porn" msgstr "情色內容" -#: src/view/com/composer/Composer.tsx:441 -#: src/view/com/composer/Composer.tsx:449 +#: src/view/com/composer/Composer.tsx:435 +#: src/view/com/composer/Composer.tsx:443 msgctxt "action" msgid "Post" msgstr "發佈" @@ -3709,7 +3721,7 @@ msgid "Press to change hosting provider" msgstr "按下以更改託管服務供應商" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:83 +#: src/components/Lists.tsx:97 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3727,7 +3739,7 @@ msgstr "主要語言" msgid "Prioritize Your Follows" msgstr "優先顯示跟隨者" -#: src/view/screens/Settings/index.tsx:623 +#: src/view/screens/Settings/index.tsx:622 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "隱私" @@ -3735,7 +3747,7 @@ msgstr "隱私" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:903 +#: src/view/screens/Settings/index.tsx:902 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "隱私政策" @@ -3765,7 +3777,7 @@ msgstr "個人檔案" msgid "Profile updated" msgstr "個人檔案已更新" -#: src/view/screens/Settings/index.tsx:967 +#: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." msgstr "通過驗證電子郵件地址來保護您的帳號。" @@ -3781,11 +3793,11 @@ msgstr "公開且可共享的批量靜音或封鎖列表。" msgid "Public, shareable lists which can drive feeds." msgstr "公開且可共享的列表,可作為動態源使用。" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish post" msgstr "發佈貼文" -#: src/view/com/composer/Composer.tsx:426 +#: src/view/com/composer/Composer.tsx:420 msgid "Publish reply" msgstr "發佈回覆" @@ -3823,7 +3835,7 @@ msgstr "最近的搜尋結果" msgid "Reconnect" msgstr "重新連線" -#: src/screens/Messages/List/index.tsx:179 +#: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" msgstr "" @@ -3930,7 +3942,7 @@ msgstr "回覆" msgid "Replies to this thread are disabled" msgstr "對此討論串的回覆已停用" -#: src/view/com/composer/Composer.tsx:439 +#: src/view/com/composer/Composer.tsx:433 msgctxt "action" msgid "Reply" msgstr "回覆" @@ -4087,8 +4099,8 @@ msgstr "重設碼" msgid "Reset Code" msgstr "重設碼" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:845 +#: src/view/screens/Settings/index.tsx:848 msgid "Reset onboarding state" msgstr "重設初始設定進行狀態" @@ -4096,16 +4108,16 @@ msgstr "重設初始設定進行狀態" msgid "Reset password" msgstr "重設密碼" -#: src/view/screens/Settings/index.tsx:826 -#: src/view/screens/Settings/index.tsx:829 +#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:828 msgid "Reset preferences state" msgstr "重設偏好狀態" -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:846 msgid "Resets the onboarding state" msgstr "重設初始設定狀態" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:826 msgid "Resets the preferences state" msgstr "重設偏好狀態" @@ -4120,7 +4132,7 @@ msgstr "重試上次出錯的操作" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:94 +#: src/components/Lists.tsx:108 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4489,23 +4501,23 @@ msgstr "設定您的帳號" msgid "Sets Bluesky username" msgstr "設定 Bluesky 帳號代碼" -#: src/view/screens/Settings/index.tsx:455 +#: src/view/screens/Settings/index.tsx:454 msgid "Sets color theme to dark" msgstr "將色彩主題設定為深色" -#: src/view/screens/Settings/index.tsx:448 +#: src/view/screens/Settings/index.tsx:447 msgid "Sets color theme to light" msgstr "將色彩主題設定為亮色" -#: src/view/screens/Settings/index.tsx:442 +#: src/view/screens/Settings/index.tsx:441 msgid "Sets color theme to system setting" msgstr "將色彩主題設定為跟隨系統" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:480 msgid "Sets dark theme to the dark theme" msgstr "將深色主題設定為深色" -#: src/view/screens/Settings/index.tsx:474 +#: src/view/screens/Settings/index.tsx:473 msgid "Sets dark theme to the dim theme" msgstr "將深色主題設定為昏暗" @@ -4592,7 +4604,7 @@ msgstr "分享網站的連結" #: src/components/moderation/LabelPreference.tsx:136 #: src/components/moderation/PostHider.tsx:116 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 -#: src/view/screens/Settings/index.tsx:375 +#: src/view/screens/Settings/index.tsx:374 msgid "Show" msgstr "顯示" @@ -4762,7 +4774,7 @@ msgstr "註冊或登入即可參與對話" msgid "Sign-in Required" msgstr "需要登入" -#: src/view/screens/Settings/index.tsx:385 +#: src/view/screens/Settings/index.tsx:384 msgid "Signed in as" msgstr "登入身分" @@ -4784,6 +4796,10 @@ msgstr "跳過此流程" msgid "Software Dev" msgstr "軟體開發" +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 +msgid "Some people can reply" +msgstr "" + #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" msgstr "發生了一些問題" @@ -4840,7 +4856,7 @@ msgstr "與 {displayName} 開始對話" msgid "Start chatting" msgstr "開始對話" -#: src/view/screens/Settings/index.tsx:909 +#: src/view/screens/Settings/index.tsx:908 msgid "Status Page" msgstr "服務運作狀態頁面" @@ -4853,7 +4869,7 @@ msgid "Storage cleared, you need to restart the app now." msgstr "已清除儲存資料,您需要立即重啟應用程式。" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:809 +#: src/view/screens/Settings/index.tsx:808 msgid "Storybook" msgstr "故事書" @@ -4872,7 +4888,7 @@ msgstr "訂閱" msgid "Subscribe to @{0} to use these labels:" msgstr "訂閱 @{0} 以使用這些標記:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:229 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:230 msgid "Subscribe to Labeler" msgstr "訂閱標記者" @@ -4881,7 +4897,7 @@ msgstr "訂閱標記者" msgid "Subscribe to the {0} feed" msgstr "訂閱 {0} 動態源" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" msgstr "訂閱這個標記者" @@ -4920,11 +4936,11 @@ msgstr "切換到 {0}" msgid "Switches the account you are logged in to" msgstr "切換您登入的帳號" -#: src/view/screens/Settings/index.tsx:439 +#: src/view/screens/Settings/index.tsx:438 msgid "System" msgstr "系統" -#: src/view/screens/Settings/index.tsx:797 +#: src/view/screens/Settings/index.tsx:796 msgid "System log" msgstr "系統日誌" @@ -4958,7 +4974,7 @@ msgstr "條款" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:897 +#: src/view/screens/Settings/index.tsx:896 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5042,7 +5058,7 @@ msgstr "服務條款已遷移到" msgid "There are many feeds to try:" msgstr "這裡有些動態源您可以嘗試:" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:114 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:115 #: src/view/screens/ProfileFeed.tsx:541 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "連線至伺服器時出現問題,請檢查您的網路連線並重試。" @@ -5304,12 +5320,12 @@ msgstr "此用戶未跟隨任何人。" msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "這將從您的靜音文字中刪除 {0},您隨時可以在稍後添加回來。" -#: src/view/screens/Settings/index.tsx:588 +#: src/view/screens/Settings/index.tsx:587 msgid "Thread preferences" msgstr "討論串偏好" #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:598 +#: src/view/screens/Settings/index.tsx:597 msgid "Thread Preferences" msgstr "討論串偏好" @@ -5366,7 +5382,7 @@ msgctxt "action" msgid "Try again" msgstr "重試" -#: src/view/screens/Settings/index.tsx:714 +#: src/view/screens/Settings/index.tsx:713 msgid "Two-factor authentication" msgstr "雙重驗證" @@ -5499,11 +5515,11 @@ msgstr "取消釘選內容管理列表" msgid "Unpinned from your feeds" msgstr "已從您的動態源取消釘選" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:227 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" msgstr "取消訂閱" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:192 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:193 msgid "Unsubscribe from this labeler" msgstr "取消訂閱這個標記者" @@ -5680,15 +5696,15 @@ msgstr "值:" msgid "Verify DNS Record" msgstr "驗證 DNS 紀錄" -#: src/view/screens/Settings/index.tsx:928 +#: src/view/screens/Settings/index.tsx:927 msgid "Verify email" msgstr "驗證電子郵件" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify my email" msgstr "驗證我的電子郵件" -#: src/view/screens/Settings/index.tsx:962 +#: src/view/screens/Settings/index.tsx:961 msgid "Verify My Email" msgstr "驗證我的電子郵件" @@ -5705,7 +5721,7 @@ msgstr "驗證文字檔案" msgid "Verify Your Email" msgstr "驗證您的電子郵件" -#: src/view/screens/Settings/index.tsx:881 +#: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" msgstr "版本 {appVersion} {bundleInfo}" @@ -5843,12 +5859,12 @@ msgstr "很抱歉,我們目前無法載入您的靜音文字。請稍後再試 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "很抱歉,無法完成您的搜尋請求。請稍後再試。" -#: src/components/Lists.tsx:202 +#: src/components/Lists.tsx:216 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "很抱歉!我們找不到您正在尋找的頁面。" -#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:329 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:330 msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." msgstr "抱歉!您只能訂閱十個標籤者,您已達到十個的限制。" @@ -5875,13 +5891,12 @@ msgstr "您想在演算法動態源中看到哪些語言?" msgid "Who can message you?" msgstr "誰可以傳送訊息給您?" -#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" msgstr "誰可以回覆" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" msgstr "哎呀!" @@ -5922,7 +5937,7 @@ msgstr "寬" msgid "Write a message" msgstr "撰寫訊息" -#: src/view/com/composer/Composer.tsx:509 +#: src/view/com/composer/Composer.tsx:503 msgid "Write post" msgstr "撰寫貼文" @@ -6033,7 +6048,7 @@ msgstr "您已靜音這個用戶" #~ msgid "You have no chats yet. Start a conversation with someone!" #~ msgstr "您還沒有對話,與其他用戶開始對話!" -#: src/screens/Messages/List/index.tsx:204 +#: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" msgstr "" From 8be65a87903b4422601bf0e8da9aba2e5a8d7627 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 20 May 2024 21:59:55 -0500 Subject: [PATCH 153/277] Add convoId as key to Convo wrapper (#4140) --- src/screens/Messages/Conversation/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/screens/Messages/Conversation/index.tsx b/src/screens/Messages/Conversation/index.tsx index eaa3ddecb7..d21887de35 100644 --- a/src/screens/Messages/Conversation/index.tsx +++ b/src/screens/Messages/Conversation/index.tsx @@ -52,7 +52,7 @@ export function MessagesConversationScreen({route}: Props) { ) return ( - + ) From 5bbb5f580676c86dabcd8bd2e56d0f99ecb86a7b Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 20 May 2024 20:08:29 -0700 Subject: [PATCH 154/277] use same visuals for notification sounds setting as the allow messages from (#4141) --- src/screens/Messages/Settings.tsx | 56 ++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/src/screens/Messages/Settings.tsx b/src/screens/Messages/Settings.tsx index a9df2456dd..a27c961f8d 100644 --- a/src/screens/Messages/Settings.tsx +++ b/src/screens/Messages/Settings.tsx @@ -35,7 +35,7 @@ export function MessagesSettingsScreen({}: Props) { }, }) - const onSelectItem = useCallback( + const onSelectMessagesFrom = useCallback( (keys: string[]) => { const key = keys[0] if (!key) return @@ -44,6 +44,15 @@ export function MessagesSettingsScreen({}: Props) { [updateDeclaration], ) + const onSelectSoundSetting = useCallback( + (keys: string[]) => { + const key = keys[0] + if (!key) return + setPref('playSoundChat', key === 'enabled') + }, + [setPref], + ) + return ( @@ -58,7 +67,7 @@ export function MessagesSettingsScreen({}: Props) { (profile?.associated?.chat?.allowIncoming as AllowIncoming) ?? 'following', ]} - onChange={onSelectItem}> + onChange={onSelectMessagesFrom}> {isNative && ( <> - - { - setPref('playSoundChat', !preferences.playSoundChat) - }}> - - - Play notification sounds - - + + + Notification Sounds + + + + + + Enabled + + + + + + Disabled + + + + + )} From 184c65836b3d966ca00433719a500029d6931a0e Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 20 May 2024 20:09:03 -0700 Subject: [PATCH 155/277] Run intl extract --- src/locale/locales/ca/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/de/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/en/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/es/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/fi/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/fr/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/ga/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/hi/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/id/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/it/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/ja/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/ko/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/pt-BR/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/tr/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/uk/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/zh-CN/messages.po | 34 +++++++++++++++++++--------- src/locale/locales/zh-TW/messages.po | 34 +++++++++++++++++++--------- 17 files changed, 391 insertions(+), 187 deletions(-) diff --git a/src/locale/locales/ca/messages.po b/src/locale/locales/ca/messages.po index 7690896d38..d5e59877d2 100644 --- a/src/locale/locales/ca/messages.po +++ b/src/locale/locales/ca/messages.po @@ -409,8 +409,8 @@ msgstr "Avançat" msgid "All the feeds you've saved, right in one place." msgstr "Tots els canals que has desat, en un sol lloc." -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1689,6 +1689,8 @@ msgstr "Desactiva la retroalimentació hàptica" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Deshabilitat" @@ -1996,6 +1998,8 @@ msgstr "Activa aquesta opció per a veure només les respostes entre els comptes msgid "Enable this source only" msgstr "Habilita només per aquesta font" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Habilitat" @@ -2093,8 +2097,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3717,8 +3721,8 @@ msgstr "Encara no tens cap notificació" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3803,6 +3807,14 @@ msgstr "Nota: Bluesky és una xarxa oberta i pública. Aquesta configuració tan msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -4224,8 +4236,8 @@ msgstr "Reprodueix {0}" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -5408,7 +5420,7 @@ msgstr "Estableix la relació d'aspecte de la imatge com a ampla" #~ msgstr "Estableix el servidor pel cient de Bluesky" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -6718,8 +6730,8 @@ msgstr "usuaris seguits per <0/>" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 0835baa0a0..f523c6702e 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -376,8 +376,8 @@ msgstr "Erweitert" msgid "All the feeds you've saved, right in one place." msgstr "All deine gespeicherten Feeds an einem Ort." -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1605,6 +1605,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Deaktiviert" @@ -1904,6 +1906,8 @@ msgstr "Aktiviere diese Einstellung, um nur Antworten von Personen zu sehen, den msgid "Enable this source only" msgstr "Nur von dieser Seite erlauben" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Aktiviert" @@ -1989,8 +1993,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3521,8 +3525,8 @@ msgstr "Noch keine Mitteilungen!" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3607,6 +3611,14 @@ msgstr "Hinweis: Bluesky ist ein offenes und öffentliches Netzwerk. Diese Einst msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -4016,8 +4028,8 @@ msgstr "{0} abspielen" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -5127,7 +5139,7 @@ msgstr "" #~ msgstr "Setzt den Server für den Bluesky-Client" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -6382,8 +6394,8 @@ msgstr "Nutzer gefolgt von <0/>" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index 6bbe921ff6..f94ee131f7 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -355,8 +355,8 @@ msgstr "" msgid "All the feeds you've saved, right in one place." msgstr "" -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1516,6 +1516,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "" @@ -1799,6 +1801,8 @@ msgstr "" msgid "Enable this source only" msgstr "" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "" @@ -1884,8 +1888,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3344,8 +3348,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3430,6 +3434,14 @@ msgstr "" msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3803,8 +3815,8 @@ msgstr "" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4825,7 +4837,7 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -6018,8 +6030,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index 2538186646..7c730cde15 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -331,8 +331,8 @@ msgstr "Avanzado" msgid "All the feeds you've saved, right in one place." msgstr "Todos tus feeds guardados, en un solo lugar." -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1440,6 +1440,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "" @@ -1723,6 +1725,8 @@ msgstr "Activa esta opción para ver sólo las respuestas de las personas a las msgid "Enable this source only" msgstr "" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "" @@ -1808,8 +1812,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3228,8 +3232,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3314,6 +3318,14 @@ msgstr "Nota: Bluesky es una red abierta y pública. Esta configuración sólo l msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3687,8 +3699,8 @@ msgstr "" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4687,7 +4699,7 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5876,8 +5888,8 @@ msgstr "usuarios seguidos por <0/>" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/fi/messages.po b/src/locale/locales/fi/messages.po index 2c6c4888cc..82a4f71e9e 100644 --- a/src/locale/locales/fi/messages.po +++ b/src/locale/locales/fi/messages.po @@ -347,8 +347,8 @@ msgstr "Edistyneemmät" msgid "All the feeds you've saved, right in one place." msgstr "Kaikki tallentamasi syötteet yhdessä paikassa." -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1492,6 +1492,8 @@ msgstr "Poista haptiset palautteet käytöstä" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Poistettu käytöstä" @@ -1775,6 +1777,8 @@ msgstr "Ota tämä asetus käyttöön nähdäksesi vastaukset vain seuraamiltasi msgid "Enable this source only" msgstr "Ota käyttöön vain tämä lähde" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Käytössä" @@ -1860,8 +1864,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3312,8 +3316,8 @@ msgstr "Ei vielä ilmoituksia!" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3398,6 +3402,14 @@ msgstr "Huomio: Bluesky on avoin ja julkinen verkosto. Tämä asetus rajoittaa v msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3771,8 +3783,8 @@ msgstr "Toista {0}" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4779,7 +4791,7 @@ msgid "Sets image aspect ratio to wide" msgstr "Asettaa kuvan kuvasuhteen leveäksi" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5972,8 +5984,8 @@ msgstr "käyttäjät, joita <0/> seuraa" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index d4cbac3e72..857e469f85 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -298,8 +298,8 @@ msgstr "Avancé" msgid "All the feeds you've saved, right in one place." msgstr "Tous les fils d’actu que vous avez enregistrés, au même endroit." -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "Autoriser les messages de" @@ -1371,6 +1371,8 @@ msgstr "Désactiver le retour haptique" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Désactivé" @@ -1654,6 +1656,8 @@ msgstr "Activez ce paramètre pour ne voir que les réponses des personnes que v msgid "Enable this source only" msgstr "Active cette source uniquement" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Activé" @@ -1739,8 +1743,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "Tout le monde" @@ -3116,8 +3120,8 @@ msgstr "Pas encore de notifications !" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "Personne" @@ -3194,6 +3198,14 @@ msgstr "Remarque : Bluesky est un réseau ouvert et public. Ce paramètre limit msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3559,8 +3571,8 @@ msgstr "Lire {0}" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "Jouer des sons de notification" +#~ msgid "Play notification sounds" +#~ msgstr "Jouer des sons de notification" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4538,7 +4550,7 @@ msgid "Sets image aspect ratio to wide" msgstr "Définit le rapport d’aspect de l’image comme paysage" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5675,8 +5687,8 @@ msgstr "comptes suivis par <0/>" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "Comptes que je suis" diff --git a/src/locale/locales/ga/messages.po b/src/locale/locales/ga/messages.po index 7eb40cb9ad..4562f89521 100644 --- a/src/locale/locales/ga/messages.po +++ b/src/locale/locales/ga/messages.po @@ -354,8 +354,8 @@ msgstr "Ardleibhéal" msgid "All the feeds you've saved, right in one place." msgstr "Na fothaí go léir a shábháil tú, in áit amháin." -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1507,6 +1507,8 @@ msgstr "Ná húsáid aiseolas haptach" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Díchumasaithe" @@ -1790,6 +1792,8 @@ msgstr "Cuir an socrú seo ar siúl le gan ach freagraí i measc na ndaoine a le msgid "Enable this source only" msgstr "Cuir an foinse seo amháin ar fáil" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Cumasaithe" @@ -1875,8 +1879,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3332,8 +3336,8 @@ msgstr "Níl aon fhógra ann fós!" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3418,6 +3422,14 @@ msgstr "Nod leat: is gréasán oscailte poiblí Bluesky. Ní chuireann an socrú msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3791,8 +3803,8 @@ msgstr "Seinn {0}" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4812,7 +4824,7 @@ msgid "Sets image aspect ratio to wide" msgstr "Socraíonn sé seo cóimheas treoíochta na híomhá go leathan" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -6005,8 +6017,8 @@ msgstr "Úsáideoirí a bhfuil <0/> á leanúint" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index c2cc2c99db..8960211334 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -402,8 +402,8 @@ msgstr "विकसित" msgid "All the feeds you've saved, right in one place." msgstr "" -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1675,6 +1675,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "" @@ -1982,6 +1984,8 @@ msgstr "इस सेटिंग को केवल उन लोगों क msgid "Enable this source only" msgstr "" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "" @@ -2075,8 +2079,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3683,8 +3687,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3769,6 +3773,14 @@ msgstr "" msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -4194,8 +4206,8 @@ msgstr "" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -5357,7 +5369,7 @@ msgstr "" #~ msgstr "" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -6652,8 +6664,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/id/messages.po b/src/locale/locales/id/messages.po index 4112f56f0d..2a74c8c7f6 100644 --- a/src/locale/locales/id/messages.po +++ b/src/locale/locales/id/messages.po @@ -360,8 +360,8 @@ msgstr "Lanjutan" msgid "All the feeds you've saved, right in one place." msgstr "Berisi semua feed yang telah Anda simpan dalam satu tempat." -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1521,6 +1521,8 @@ msgstr "Matikan respons haptik" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Dinonaktifkan" @@ -1804,6 +1806,8 @@ msgstr "Aktifkan opsi ini untuk hanya menampilkan balasan dari akun yang Anda ik msgid "Enable this source only" msgstr "Aktifkan hanya sumber ini saja" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Diaktifkan" @@ -1889,8 +1893,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3349,8 +3353,8 @@ msgstr "Belum ada notifikasi!" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3435,6 +3439,14 @@ msgstr "Catatan: Bluesky merupakan jaringan terbuka dan publik. Pengaturan ini h msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3808,8 +3820,8 @@ msgstr "Putar {0}" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4830,7 +4842,7 @@ msgid "Sets image aspect ratio to wide" msgstr "Mengatur aspek rasio gambar menjadi lebar" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -6023,8 +6035,8 @@ msgstr "pengguna yang diikuti <0/>" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/it/messages.po b/src/locale/locales/it/messages.po index c4f77c74a1..6302b55405 100644 --- a/src/locale/locales/it/messages.po +++ b/src/locale/locales/it/messages.po @@ -390,8 +390,8 @@ msgstr "Avanzato" msgid "All the feeds you've saved, right in one place." msgstr "Tutti i feed che hai salvato, in un unico posto." -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1630,6 +1630,8 @@ msgstr "Disattiva il feedback tattile" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Disabilitato" @@ -1931,6 +1933,8 @@ msgstr "Abilita questa impostazione per vedere solo le risposte delle persone ch msgid "Enable this source only" msgstr "Abilita solo questa fonte" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Abilitato" @@ -2025,8 +2029,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3590,8 +3594,8 @@ msgstr "Ancora nessuna notifica!" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3676,6 +3680,14 @@ msgstr "Nota: Bluesky è una rete aperta e pubblica. Questa impostazione limita msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -4079,8 +4091,8 @@ msgstr "Riproduci {0}" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -5203,7 +5215,7 @@ msgstr "Imposta l'amplio sulle proporzioni dell'immagine" #~ msgstr "Imposta il server per il client Bluesky" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -6474,8 +6486,8 @@ msgstr "utenti seguiti da <0/>" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 54ed8474fc..573faac169 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -298,8 +298,8 @@ msgstr "高度な設定" msgid "All the feeds you've saved, right in one place." msgstr "保存したすべてのフィードを1箇所にまとめます。" -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "誰からのメッセージを許可するか:" @@ -1371,6 +1371,8 @@ msgstr "触覚フィードバックを無効化" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "無効" @@ -1654,6 +1656,8 @@ msgstr "この設定を有効にすると、自分がフォローしているユ msgid "Enable this source only" msgstr "このソースのみ有効にする" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "有効" @@ -1739,8 +1743,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "全員" @@ -3116,8 +3120,8 @@ msgstr "お知らせはありません!" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "誰からも受け取らない" @@ -3194,6 +3198,14 @@ msgstr "注記:Blueskyはオープンでパブリックなネットワーク msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3559,8 +3571,8 @@ msgstr "{0}を再生" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "通知音を再生" +#~ msgid "Play notification sounds" +#~ msgstr "通知音を再生" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4538,7 +4550,7 @@ msgid "Sets image aspect ratio to wide" msgstr "画像のアスペクト比をワイドに設定" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5675,8 +5687,8 @@ msgstr "<0/>にフォローされているユーザー" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "フォローしているユーザー" diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index dea57a6ded..235d83a0ac 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -298,8 +298,8 @@ msgstr "고급" msgid "All the feeds you've saved, right in one place." msgstr "저장한 모든 피드를 한 곳에서 확인하세요." -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "메시지를 허용할 대상" @@ -1375,6 +1375,8 @@ msgstr "햅틱 피드백 끄기" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "비활성화됨" @@ -1658,6 +1660,8 @@ msgstr "내가 팔로우하는 사람들 간의 답글만 표시합니다." msgid "Enable this source only" msgstr "이 소스에서만 사용" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "활성화됨" @@ -1743,8 +1747,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "모두" @@ -3120,8 +3124,8 @@ msgstr "아직 알림이 없습니다." #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "없음" @@ -3202,6 +3206,14 @@ msgstr "참고: Bluesky는 개방형 공개 네트워크입니다. 이 설정은 msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3567,8 +3579,8 @@ msgstr "{0} 재생" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "알림 소리 재생" +#~ msgid "Play notification sounds" +#~ msgstr "알림 소리 재생" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4550,7 +4562,7 @@ msgid "Sets image aspect ratio to wide" msgstr "이미지 비율을 가로로 길게 설정합니다" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5687,8 +5699,8 @@ msgstr "<0/> 님이 팔로우한 사용자" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "내가 팔로우하는 사용자" diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po index 64456a7c05..da2d91aa3f 100644 --- a/src/locale/locales/pt-BR/messages.po +++ b/src/locale/locales/pt-BR/messages.po @@ -355,8 +355,8 @@ msgstr "Avançado" msgid "All the feeds you've saved, right in one place." msgstr "Todos os feeds que você salvou, em um único lugar." -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1516,6 +1516,8 @@ msgstr "Desabilitar feedback tátil" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Desabilitado" @@ -1799,6 +1801,8 @@ msgstr "Ative esta configuração para ver respostas apenas entre as pessoas que msgid "Enable this source only" msgstr "Habilitar mídia somente para este site" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Habilitado" @@ -1884,8 +1888,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3344,8 +3348,8 @@ msgstr "Nenhuma notificação!" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3430,6 +3434,14 @@ msgstr "Nota: o Bluesky é uma rede aberta e pública. Esta configuração limit msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3803,8 +3815,8 @@ msgstr "Reproduzir {0}" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4825,7 +4837,7 @@ msgid "Sets image aspect ratio to wide" msgstr "Define a proporção da imagem para comprida" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -6018,8 +6030,8 @@ msgstr "usuários seguidos por <0/>" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/tr/messages.po b/src/locale/locales/tr/messages.po index 1b50874cb4..8d58031764 100644 --- a/src/locale/locales/tr/messages.po +++ b/src/locale/locales/tr/messages.po @@ -392,8 +392,8 @@ msgstr "Gelişmiş" msgid "All the feeds you've saved, right in one place." msgstr "" -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1647,6 +1647,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "" @@ -1950,6 +1952,8 @@ msgstr "Bu ayarı yalnızca takip ettiğiniz kişiler arasındaki yanıtları g msgid "Enable this source only" msgstr "" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "" @@ -2043,8 +2047,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3612,8 +3616,8 @@ msgstr "Henüz bildirim yok!" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3698,6 +3702,14 @@ msgstr "Not: Bluesky açık ve kamusal bir ağdır. Bu ayar yalnızca içeriğin msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -4107,8 +4119,8 @@ msgstr "{0} oynat" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -5246,7 +5258,7 @@ msgstr "" #~ msgstr "Bluesky istemcisi için sunucuyu ayarlar" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -6521,8 +6533,8 @@ msgstr "<0/> tarafından takip edilen kullanıcılar" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po index 937e543a72..e3b38539df 100644 --- a/src/locale/locales/uk/messages.po +++ b/src/locale/locales/uk/messages.po @@ -360,8 +360,8 @@ msgstr "Розширені" msgid "All the feeds you've saved, right in one place." msgstr "Усі збережені стрічки в одному місці." -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "" @@ -1521,6 +1521,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Вимкнено" @@ -1804,6 +1806,8 @@ msgstr "Увімкніть цей параметр, щоб бачити відп msgid "Enable this source only" msgstr "Увімкнути лише джерело" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Увімкнено" @@ -1889,8 +1893,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "" @@ -3349,8 +3353,8 @@ msgstr "Ще ніяких сповіщень!" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "" @@ -3435,6 +3439,14 @@ msgstr "Примітка: Bluesky є відкритою і публічною м msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3808,8 +3820,8 @@ msgstr "Відтворити {0}" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "" +#~ msgid "Play notification sounds" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4830,7 +4842,7 @@ msgid "Sets image aspect ratio to wide" msgstr "Встановлює співвідношення сторін зображення до ширини" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -6023,8 +6035,8 @@ msgstr "користувачі, на яких підписані <0/>" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "" diff --git a/src/locale/locales/zh-CN/messages.po b/src/locale/locales/zh-CN/messages.po index 93e580c0e3..bd3db4933a 100644 --- a/src/locale/locales/zh-CN/messages.po +++ b/src/locale/locales/zh-CN/messages.po @@ -298,8 +298,8 @@ msgstr "详细设置" msgid "All the feeds you've saved, right in one place." msgstr "你保存的所有资讯源都集中在一处。" -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "允许接收来自以下来源的私信" @@ -1371,6 +1371,8 @@ msgstr "关闭触感反馈" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "关闭" @@ -1654,6 +1656,8 @@ msgstr "启用这个设置项将仅显示你已关注用户的回复。" msgid "Enable this source only" msgstr "仅启用这个来源" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "已启用" @@ -1739,8 +1743,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "所有人" @@ -3116,8 +3120,8 @@ msgstr "还没有通知!" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "没有人" @@ -3194,6 +3198,14 @@ msgstr "注意:Bluesky 是一个开放的公共网络。这个设置项仅限 msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3559,8 +3571,8 @@ msgstr "播放 {0}" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "播放通知提示音" +#~ msgid "Play notification sounds" +#~ msgstr "播放通知提示音" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4538,7 +4550,7 @@ msgid "Sets image aspect ratio to wide" msgstr "将图片纵横比设置为宽" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5675,8 +5687,8 @@ msgstr "关注 <0/> 的用户" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "我关注的用户" diff --git a/src/locale/locales/zh-TW/messages.po b/src/locale/locales/zh-TW/messages.po index ed2e29e5b6..97acda4248 100644 --- a/src/locale/locales/zh-TW/messages.po +++ b/src/locale/locales/zh-TW/messages.po @@ -298,8 +298,8 @@ msgstr "進階設定" msgid "All the feeds you've saved, right in one place." msgstr "以下是您保存的動態源。" -#: src/screens/Messages/Settings.tsx:52 -#: src/screens/Messages/Settings.tsx:55 +#: src/screens/Messages/Settings.tsx:61 +#: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" msgstr "允許來自這些人的訊息:" @@ -1371,6 +1371,8 @@ msgstr "關閉觸覺回饋" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Messages/Settings.tsx:124 +#: src/screens/Messages/Settings.tsx:127 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "停用" @@ -1654,6 +1656,8 @@ msgstr "啟用此設定將只顯示您跟隨的人之間的回覆。" msgid "Enable this source only" msgstr "僅啟用此來源" +#: src/screens/Messages/Settings.tsx:115 +#: src/screens/Messages/Settings.tsx:118 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "啟用" @@ -1739,8 +1743,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 -#: src/screens/Messages/Settings.tsx:65 -#: src/screens/Messages/Settings.tsx:68 +#: src/screens/Messages/Settings.tsx:74 +#: src/screens/Messages/Settings.tsx:77 msgid "Everyone" msgstr "所有人" @@ -3116,8 +3120,8 @@ msgstr "還沒有通知!" #: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:92 +#: src/screens/Messages/Settings.tsx:95 msgid "No one" msgstr "沒有人" @@ -3194,6 +3198,14 @@ msgstr "注意:Bluesky 是一個開放且公開的網路。此設定僅限制 msgid "Nothing here" msgstr "" +#: src/screens/Messages/Settings.tsx:108 +msgid "Notification sounds" +msgstr "" + +#: src/screens/Messages/Settings.tsx:105 +msgid "Notification Sounds" +msgstr "" + #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 @@ -3559,8 +3571,8 @@ msgstr "播放 {0}" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 -msgid "Play notification sounds" -msgstr "播放通知音效" +#~ msgid "Play notification sounds" +#~ msgstr "播放通知音效" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4538,7 +4550,7 @@ msgid "Sets image aspect ratio to wide" msgstr "將圖像的寬高比設定為寬" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:49 +#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5675,8 +5687,8 @@ msgstr "被 <0/> 跟隨的用戶" #: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:83 +#: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" msgstr "我跟隨的用戶" From 8cec1679a718e0cc6da67cf2604e6be8e9dab9a7 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 20 May 2024 20:13:06 -0700 Subject: [PATCH 156/277] =?UTF-8?q?[=F0=9F=90=B4]=20only=20try=20to=20init?= =?UTF-8?q?ialize=20once=20in=20the=20NUX=20(#4142)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * only try to initialize once * nit --- src/components/dms/MessagesNUX.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/dms/MessagesNUX.tsx b/src/components/dms/MessagesNUX.tsx index 81d1cfff4e..8d3b11fac5 100644 --- a/src/components/dms/MessagesNUX.tsx +++ b/src/components/dms/MessagesNUX.tsx @@ -53,6 +53,8 @@ function DialogInner({ const control = Dialog.useDialogContext() const {_} = useLingui() const t = useTheme() + + const [initialized, setInitialzed] = React.useState(false) const {mutate: updateDeclaration} = useUpdateActorDeclaration({ onError: () => { Toast.show(_(msg`Failed to update settings`)) @@ -69,10 +71,11 @@ function DialogInner({ ) useEffect(() => { - if (!chatDeclation) { + if (!chatDeclation && !initialized) { updateDeclaration('following') + setInitialzed(true) } - }, [chatDeclation, updateDeclaration]) + }, [chatDeclation, updateDeclaration, initialized]) return ( Date: Tue, 21 May 2024 04:28:12 +0100 Subject: [PATCH 157/277] [Statsig] Sample router events (#4143) --- src/Navigation.tsx | 4 ++-- src/lib/statsig/events.ts | 2 +- src/lib/statsig/statsig.tsx | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Navigation.tsx b/src/Navigation.tsx index 7abfaec08e..23cf5f59dd 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -611,7 +611,7 @@ function RoutesContainer({children}: React.PropsWithChildren<{}>) { linking={LINKING} theme={theme} onStateChange={() => { - logEvent('router:navigate', { + logEvent('router:navigate:sampled', { from: prevLoggedRouteName.current, }) prevLoggedRouteName.current = getCurrentRouteName() @@ -620,7 +620,7 @@ function RoutesContainer({children}: React.PropsWithChildren<{}>) { attachRouteToLogEvents(getCurrentRouteName) logModuleInitTime() onReady() - logEvent('router:navigate', {}) + logEvent('router:navigate:sampled', {}) }}> {children} diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index fe4c9e65ab..68de52e14e 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -24,7 +24,7 @@ export type LogEvents = { secondsActive: number } 'state:foreground': {} - 'router:navigate': {} + 'router:navigate:sampled': {} // Screen events 'splash:signInPressed': {} diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx index 005027820d..b7299be8c8 100644 --- a/src/lib/statsig/statsig.tsx +++ b/src/lib/statsig/statsig.tsx @@ -85,11 +85,17 @@ export function toClout(n: number | null | undefined): number | undefined { } } +const DOWNSAMPLED_EVENTS = new Set(['router:navigate:sampled']) +const isDownsampledSession = Math.random() < 0.9 // 90% likely + export function logEvent( eventName: E & string, rawMetadata: LogEvents[E] & FlatJSONRecord, ) { try { + if (isDownsampledSession && DOWNSAMPLED_EVENTS.has(eventName)) { + return + } const fullMetadata = { ...rawMetadata, } as Record // Statsig typings are unnecessarily strict here. From b89e4ded2faf064ceed63bdf3e0c3d0124903b12 Mon Sep 17 00:00:00 2001 From: dan Date: Tue, 21 May 2024 05:03:17 +0100 Subject: [PATCH 158/277] Only fallback to Discover if Following is first pinned (#4146) --- src/state/queries/post-feed.ts | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index b763f28a0a..18c4b65a53 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -17,7 +17,6 @@ import { import {HomeFeedAPI} from '#/lib/api/feed/home' import {aggregateUserInterests} from '#/lib/api/feed/utils' import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' -import {useGate} from '#/lib/statsig/statsig' import {logger} from '#/logger' import {STALE} from '#/state/queries' import {DEFAULT_LOGGED_OUT_PREFERENCES} from '#/state/queries/preferences/const' @@ -111,6 +110,11 @@ export function usePostFeedQuery( const enabled = opts?.enabled !== false && Boolean(moderationOpts) && Boolean(preferences) const userInterests = aggregateUserInterests(preferences) + const followingPinnedIndex = + preferences?.savedFeeds?.findIndex( + f => f.pinned && f.value === 'following', + ) ?? -1 + const enableFollowingToDiscoverFallback = followingPinnedIndex === 0 const {getAgent} = useAgent() const lastRun = useRef<{ data: InfiniteData @@ -118,7 +122,6 @@ export function usePostFeedQuery( result: InfiniteData } | null>(null) const lastPageCountRef = useRef(0) - const gate = useGate() // Make sure this doesn't invalidate unless really needed. const selectArgs = React.useMemo( @@ -150,15 +153,11 @@ export function usePostFeedQuery( feedDesc, feedParams: params || {}, feedTuners, - userInterests, // Not in the query key because they don't change. getAgent, - useBaseFollowingFeed: gate( - 'reduced_onboarding_and_home_algo_v2', - { - // If you're not already in this experiment, we don't want to expose you to it now. - dangerouslyDisableExposureLogging: true, - }, - ), + // Not in the query key because they don't change: + userInterests, + // Not in the query key. Reacting to it switching isn't important: + enableFollowingToDiscoverFallback, }), cursor: undefined, } @@ -392,14 +391,14 @@ function createApi({ feedTuners, userInterests, getAgent, - useBaseFollowingFeed, + enableFollowingToDiscoverFallback, }: { feedDesc: FeedDescriptor feedParams: FeedParams feedTuners: FeedTunerFn[] userInterests?: string getAgent: () => BskyAgent - useBaseFollowingFeed: boolean + enableFollowingToDiscoverFallback: boolean }) { if (feedDesc === 'following') { if (feedParams.mergeFeedEnabled) { @@ -410,10 +409,10 @@ function createApi({ userInterests, }) } else { - if (useBaseFollowingFeed) { - return new FollowingFeedAPI({getAgent}) - } else { + if (enableFollowingToDiscoverFallback) { return new HomeFeedAPI({getAgent, userInterests}) + } else { + return new FollowingFeedAPI({getAgent}) } } } else if (feedDesc.startsWith('author')) { From 1ec4e0a867bf161121a6113eeaa8ad149219e344 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 20 May 2024 21:04:19 -0700 Subject: [PATCH 159/277] Make list end text customizable (#4145) * only try to initialize once * nit * change to `You have reached the end` * make the text at end of list customizable * make the text at end of list customizable * update intl --- src/components/Lists.tsx | 26 +++++------- src/locale/locales/ca/messages.po | 60 ++++++++++++++++------------ src/locale/locales/de/messages.po | 60 ++++++++++++++++------------ src/locale/locales/en/messages.po | 60 ++++++++++++++++------------ src/locale/locales/es/messages.po | 60 ++++++++++++++++------------ src/locale/locales/fi/messages.po | 60 ++++++++++++++++------------ src/locale/locales/fr/messages.po | 60 ++++++++++++++++------------ src/locale/locales/ga/messages.po | 60 ++++++++++++++++------------ src/locale/locales/hi/messages.po | 60 ++++++++++++++++------------ src/locale/locales/id/messages.po | 60 ++++++++++++++++------------ src/locale/locales/it/messages.po | 60 ++++++++++++++++------------ src/locale/locales/ja/messages.po | 60 ++++++++++++++++------------ src/locale/locales/ko/messages.po | 60 ++++++++++++++++------------ src/locale/locales/pt-BR/messages.po | 60 ++++++++++++++++------------ src/locale/locales/tr/messages.po | 60 ++++++++++++++++------------ src/locale/locales/uk/messages.po | 60 ++++++++++++++++------------ src/locale/locales/zh-CN/messages.po | 60 ++++++++++++++++------------ src/locale/locales/zh-TW/messages.po | 60 ++++++++++++++++------------ src/screens/Messages/List/index.tsx | 2 + 19 files changed, 591 insertions(+), 457 deletions(-) diff --git a/src/components/Lists.tsx b/src/components/Lists.tsx index 47a5bf8f15..3368d076fb 100644 --- a/src/components/Lists.tsx +++ b/src/components/Lists.tsx @@ -18,6 +18,8 @@ export function ListFooter({ onRetry, height, style, + showEndMessage = false, + endMessageText, }: { isFetchingNextPage?: boolean hasNextPage?: boolean @@ -25,6 +27,8 @@ export function ListFooter({ onRetry?: () => Promise height?: number style?: StyleProp + showEndMessage?: boolean + endMessageText?: string }) { const t = useTheme() @@ -41,21 +45,13 @@ export function ListFooter({ ]}> {isFetchingNextPage ? ( - ) : ( - <> - {error ? ( - - ) : ( - <> - {!hasNextPage && ( - - End of list - - )} - - )} - - )} + ) : error ? ( + + ) : !hasNextPage && showEndMessage ? ( + + {endMessageText ?? You have reached the end} + + ) : null} ) } diff --git a/src/locale/locales/ca/messages.po b/src/locale/locales/ca/messages.po index d5e59877d2..a9bdb73400 100644 --- a/src/locale/locales/ca/messages.po +++ b/src/locale/locales/ca/messages.po @@ -1132,7 +1132,7 @@ msgstr "Tanca la imatge" msgid "Close image viewer" msgstr "Tanca el visor d'imatges" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1662,7 +1662,7 @@ msgstr "Vols dir alguna cosa?" msgid "Dim" msgstr "Tènue" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -2009,8 +2009,8 @@ msgid "End of feed" msgstr "Fi del canal" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -2095,8 +2095,8 @@ msgstr "Tothom" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -2232,7 +2232,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2498,7 +2498,7 @@ msgstr "De <0/>" msgid "Gallery" msgstr "Galeria" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2866,7 +2866,7 @@ msgstr "Introdueix el teu proveïdor d'allotjament preferit" msgid "Input your user handle" msgstr "Introdueix el teu identificador d'usuari" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -3309,14 +3309,14 @@ msgstr "Camp d'entrada del missatge" msgid "Message is too long" msgstr "El missatge és massa llarg" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "Configuració dels missatges" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "Missatges" @@ -3603,8 +3603,8 @@ msgid "New" msgstr "Nova" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "Xat nou" @@ -3715,12 +3715,16 @@ msgstr "No pot tenir més de 253 caràcters" msgid "No messages yet" msgstr "Encara no tens cap missatge" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "Encara no tens cap notificació" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3735,7 +3739,7 @@ msgstr "Cap resultat" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "No s'han trobat resultats" @@ -3891,11 +3895,11 @@ msgstr "Només {0} poden respondre." msgid "Only contains letters, numbers, and hyphens" msgstr "Només pot tenir lletres, nombres i guionets" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Ostres, alguna cosa ha anat malament!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -4145,7 +4149,7 @@ msgstr "Un altre…" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Pàgina no trobada" @@ -4428,7 +4432,7 @@ msgid "Press to change hosting provider" msgstr "Prem per canviar el proveïdor d'allotjament" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4464,7 +4468,7 @@ msgstr "Privacitat" msgid "Privacy Policy" msgstr "Política de privacitat" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4906,7 +4910,7 @@ msgstr "Torna a intentar l'última acció, que ha donat error" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5788,7 +5792,7 @@ msgstr "Comença un nou xat" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -6728,8 +6732,8 @@ msgstr "Usuaris" msgid "users followed by <0/>" msgstr "usuaris seguits per <0/>" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6934,7 +6938,7 @@ msgstr "Ho sentim, però no hem pogut carregar les teves paraules silenciades en msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Ens sap greu, però la teva cerca no s'ha pogut fer. Prova-ho d'aquí una estona." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Ens sap greu! No podem trobar la pàgina que estàs cercant." @@ -6972,8 +6976,8 @@ msgstr "En quins idiomes està aquesta publicació?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Quins idiomes t'agradaria veure en els teus canals algorítmics?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -7071,7 +7075,7 @@ msgstr "També pots descobrir nous canals personalitzats per a seguir." msgid "You can change these settings later." msgstr "Pots canviar aquests paràmetres més endavant." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -7179,6 +7183,10 @@ msgstr "Encara no has silenciat cap compte. per a silenciar un compte, ves al se #~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." #~ msgstr "Encara no has silenciat cap compte. Per a fer-ho, al seu perfil i selecciona \"Silencia compte\" en el menú del seu compte." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Encara no has silenciat cap paraula ni etiqueta" diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index f523c6702e..074153caab 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -1072,7 +1072,7 @@ msgstr "Bild schließen" msgid "Close image viewer" msgstr "Bildbetrachter schließen" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1578,7 +1578,7 @@ msgstr "Wolltest du etwas sagen?" msgid "Dim" msgstr "Dimmen" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -1917,8 +1917,8 @@ msgid "End of feed" msgstr "Ende des Feeds" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1991,8 +1991,8 @@ msgstr "Alle" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -2124,7 +2124,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2378,7 +2378,7 @@ msgstr "Aus <0/>" msgid "Gallery" msgstr "Galerie" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2718,7 +2718,7 @@ msgstr "" msgid "Input your user handle" msgstr "Gib deinen Handle ein" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -3125,14 +3125,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "" @@ -3411,8 +3411,8 @@ msgid "New" msgstr "Neu" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "" @@ -3519,12 +3519,16 @@ msgstr "Nicht länger als 253 Zeichen" msgid "No messages yet" msgstr "" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "Noch keine Mitteilungen!" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3539,7 +3543,7 @@ msgstr "Kein Ergebnis" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Keine Ergebnisse gefunden" @@ -3695,11 +3699,11 @@ msgstr "Nur {0} kann antworten." msgid "Only contains letters, numbers, and hyphens" msgstr "Enthält nur Buchstaben, Nummern und Bindestriche" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Ups, da ist etwas schief gelaufen!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3941,7 +3945,7 @@ msgstr "Andere..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Seite nicht gefunden" @@ -4199,7 +4203,7 @@ msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4235,7 +4239,7 @@ msgstr "Privatsphäre" msgid "Privacy Policy" msgstr "Datenschutzerklärung" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4661,7 +4665,7 @@ msgstr "Wiederholung der letzten Aktion, bei der ein Fehler aufgetreten ist" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5491,7 +5495,7 @@ msgstr "" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -6392,8 +6396,8 @@ msgstr "Benutzer" msgid "users followed by <0/>" msgstr "Nutzer gefolgt von <0/>" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6594,7 +6598,7 @@ msgstr "Es tut uns leid, aber wir konnten deine stummgeschalteten Wörter nicht msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Es tut uns leid, aber deine Suche konnte nicht abgeschlossen werden. Bitte versuche es in ein paar Minuten erneut." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Es tut uns leid! Wir können die Seite, nach der du gesucht hast, nicht finden." @@ -6629,8 +6633,8 @@ msgstr "Welche Sprachen werden in diesem Beitrag verwendet?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Welche Sprachen würdest du gerne in deinen algorithmischen Feeds sehen?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -6720,7 +6724,7 @@ msgstr "Du kannst auch neue benutzerdefinierte Feeds entdecken und ihnen folgen. msgid "You can change these settings later." msgstr "Du kannst diese Einstellungen später ändern." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -6828,6 +6832,10 @@ msgstr "" #~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." #~ msgstr "Du hast noch keine Konten stummgeschaltet. Um ein Konto stumm zu schalten, gehe auf dessen Profil und wähle \"Konto stummschalten\" aus dem Menü des Kontos aus." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Du hast noch keine Wörter oder Tags stummgeschaltet" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index f94ee131f7..d77d2f62c3 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -1013,7 +1013,7 @@ msgstr "" msgid "Close image viewer" msgstr "" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1489,7 +1489,7 @@ msgstr "" msgid "Dim" msgstr "" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -1812,8 +1812,8 @@ msgid "End of feed" msgstr "" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1886,8 +1886,8 @@ msgstr "" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -2019,7 +2019,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2265,7 +2265,7 @@ msgstr "" msgid "Gallery" msgstr "" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2588,7 +2588,7 @@ msgstr "" msgid "Input your user handle" msgstr "" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -2969,14 +2969,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "" @@ -3234,8 +3234,8 @@ msgid "New" msgstr "" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "" @@ -3342,12 +3342,16 @@ msgstr "" msgid "No messages yet" msgstr "" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3362,7 +3366,7 @@ msgstr "" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "" @@ -3514,11 +3518,11 @@ msgstr "" msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3728,7 +3732,7 @@ msgstr "" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "" @@ -3977,7 +3981,7 @@ msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4013,7 +4017,7 @@ msgstr "" msgid "Privacy Policy" msgstr "" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4415,7 +4419,7 @@ msgstr "" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5163,7 +5167,7 @@ msgstr "" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -6028,8 +6032,8 @@ msgstr "" msgid "users followed by <0/>" msgstr "" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6222,7 +6226,7 @@ msgstr "" msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "" @@ -6253,8 +6257,8 @@ msgstr "" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -6344,7 +6348,7 @@ msgstr "" msgid "You can change these settings later." msgstr "" -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -6440,6 +6444,10 @@ msgstr "" msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "" +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index 7c730cde15..67e3e97242 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -949,7 +949,7 @@ msgstr "Cerrar la imagen" msgid "Close image viewer" msgstr "Cerrar el visor de imagen" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1421,7 +1421,7 @@ msgstr "¿Quieres decir algo?" msgid "Dim" msgstr "" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -1736,8 +1736,8 @@ msgid "End of feed" msgstr "Fin de noticias" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1810,8 +1810,8 @@ msgstr "Todos" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -1938,7 +1938,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2164,7 +2164,7 @@ msgstr "" msgid "Gallery" msgstr "Galería" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2482,7 +2482,7 @@ msgstr "" msgid "Input your user handle" msgstr "" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -2863,14 +2863,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "" @@ -3123,8 +3123,8 @@ msgid "New" msgstr "Nuevo" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "" @@ -3226,12 +3226,16 @@ msgstr "" msgid "No messages yet" msgstr "" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3246,7 +3250,7 @@ msgstr "Sin resultados" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "" @@ -3398,11 +3402,11 @@ msgstr "Solo {0} puede responder." msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3612,7 +3616,7 @@ msgstr "Otro..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Página no encontrada" @@ -3861,7 +3865,7 @@ msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3897,7 +3901,7 @@ msgstr "Privacidad" msgid "Privacy Policy" msgstr "Política de privacidad" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4281,7 +4285,7 @@ msgstr "" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5025,7 +5029,7 @@ msgstr "" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -5886,8 +5890,8 @@ msgstr "Usuarios" msgid "users followed by <0/>" msgstr "usuarios seguidos por <0/>" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6076,7 +6080,7 @@ msgstr "" msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Lo sentimos, pero no se ha podido completar tu búsqueda. Intenta de nuevo en unos minutos." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Lo sentimos. No encontramos la página que buscabas." @@ -6103,8 +6107,8 @@ msgstr "¿En qué idioma está este post?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "¿Qué idiomas te gustaría ver en tus feeds?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -6194,7 +6198,7 @@ msgstr "" msgid "You can change these settings later." msgstr "Puedes cambiar estos ajustes luego." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -6290,6 +6294,10 @@ msgstr "Aún no has creado una contraseña de app. Puedes crear una al presionar msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "" +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "" diff --git a/src/locale/locales/fi/messages.po b/src/locale/locales/fi/messages.po index 82a4f71e9e..92bcb52607 100644 --- a/src/locale/locales/fi/messages.po +++ b/src/locale/locales/fi/messages.po @@ -1001,7 +1001,7 @@ msgstr "Sulje kuva" msgid "Close image viewer" msgstr "Sulje kuvankatselu" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1473,7 +1473,7 @@ msgstr "Haluatko sanoa jotain?" msgid "Dim" msgstr "Himmeä" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -1788,8 +1788,8 @@ msgid "End of feed" msgstr "Syötteen loppu" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1862,8 +1862,8 @@ msgstr "Kaikki" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -1995,7 +1995,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2233,7 +2233,7 @@ msgstr "Lähde: <0/>" msgid "Gallery" msgstr "Galleria" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2556,7 +2556,7 @@ msgstr "Syötä haluamasi palveluntarjoaja" msgid "Input your user handle" msgstr "Syötä käyttäjätunnuksesi" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -2937,14 +2937,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "" @@ -3202,8 +3202,8 @@ msgid "New" msgstr "Uusi" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "" @@ -3310,12 +3310,16 @@ msgstr "Ei pidempi kuin 253 merkkiä." msgid "No messages yet" msgstr "" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "Ei vielä ilmoituksia!" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3330,7 +3334,7 @@ msgstr "Ei tuloksia" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Tuloksia ei löydetty" @@ -3482,11 +3486,11 @@ msgstr "Vain {0} voi vastata." msgid "Only contains letters, numbers, and hyphens" msgstr "Sisältää vain kirjaimia, numeroita ja väliviivoja" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Hups, nyt meni jotain väärin!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3696,7 +3700,7 @@ msgstr "Muu..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Sivua ei löytynyt" @@ -3945,7 +3949,7 @@ msgid "Press to change hosting provider" msgstr "Klikkaa vaihtaaksesi palveluntarjoajaa" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3981,7 +3985,7 @@ msgstr "Yksityisyys" msgid "Privacy Policy" msgstr "Yksityisyydensuojakäytäntö" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4373,7 +4377,7 @@ msgstr "Yrittää uudelleen viimeisintä toimintoa, joka epäonnistui" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5117,7 +5121,7 @@ msgstr "" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -5982,8 +5986,8 @@ msgstr "Käyttäjät" msgid "users followed by <0/>" msgstr "käyttäjät, joita <0/> seuraa" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6176,7 +6180,7 @@ msgstr "Pahoittelemme, emme pystyneet lataamaan hiljennettyjä sanojasi tällä msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Pahoittelemme, hakuasi ei voitu suorittaa loppuun. Yritä uudelleen muutaman minuutin kuluttua." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Pahoittelut! Emme löydä etsimääsi sivua." @@ -6207,8 +6211,8 @@ msgstr "Mitä kieliä tässä viestissä käytetään?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Mitä kieliä haluaisit nähdä algoritmisissä syötteissä?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -6298,7 +6302,7 @@ msgstr "Voit myös selata uusia mukautettuja syötteitä seurattavaksi." msgid "You can change these settings later." msgstr "Voit muuttaa näitä asetuksia myöhemmin." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -6394,6 +6398,10 @@ msgstr "Et ole vielä luonut yhtään sovelluksen salasanaa. Voit luoda sellaise msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "Et ole hiljentänyt vielä yhtään käyttäjää. Hiljentääksesi käyttäjän, mene hänen profiiliin ja valitse \"Hiljennä käyttäjä\" valikosta." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Et ole vielä hiljentänyt yhtään sanaa tai aihetunnistetta" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 857e469f85..5a811a32f5 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -896,7 +896,7 @@ msgstr "Fermer l’image" msgid "Close image viewer" msgstr "Fermer la visionneuse d’images" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "Fermer la modale" @@ -1352,7 +1352,7 @@ msgstr "Vous vouliez dire quelque chose ?" msgid "Dim" msgstr "Atténué" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "Les messages privés sont arrivés !" @@ -1667,8 +1667,8 @@ msgid "End of feed" msgstr "Fin du fil d’actu" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1741,8 +1741,8 @@ msgstr "Tout le monde" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -1861,7 +1861,7 @@ msgstr "Échec de l’envoi" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "Échec de la mise à jour des paramètres" @@ -2087,7 +2087,7 @@ msgstr "Tiré de <0/>" msgid "Gallery" msgstr "Galerie" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "C’est parti" @@ -2405,7 +2405,7 @@ msgstr "Entrez votre hébergeur préféré" msgid "Input your user handle" msgstr "Entrez votre pseudo" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "Et voici les Messages Privés" @@ -2756,14 +2756,14 @@ msgstr "Champ d’écriture du message" msgid "Message is too long" msgstr "Le message est trop long" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "Paramètres des messages" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "Messages" @@ -3007,8 +3007,8 @@ msgid "New" msgstr "Nouveau" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "Nouvelle discussion" @@ -3114,12 +3114,16 @@ msgstr "Pas plus de 253 caractères" msgid "No messages yet" msgstr "Pas encore de messages" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "Pas encore de notifications !" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3134,7 +3138,7 @@ msgstr "Aucun résultat" msgid "No results" msgstr "Aucun résultat" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Aucun résultat trouvé" @@ -3274,11 +3278,11 @@ msgstr "Seul {0} peut répondre." msgid "Only contains letters, numbers, and hyphens" msgstr "Ne contient que des lettres, des chiffres et des traits d’union" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Oups, quelque chose n’a pas marché !" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3484,7 +3488,7 @@ msgstr "Autre…" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "Notre modération a examiné les signalements qu’elle a reçu et a décidé de désactiver vos accès aux discussion sur Bluesky." -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Page introuvable" @@ -3733,7 +3737,7 @@ msgid "Press to change hosting provider" msgstr "Appuyer pour changer d’hébergeur" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3764,7 +3768,7 @@ msgstr "Vie privée" msgid "Privacy Policy" msgstr "Charte de confidentialité" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "Discuter en privé avec d’autres comptes." @@ -4144,7 +4148,7 @@ msgstr "Réessaye la dernière action, qui a échoué" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4864,7 +4868,7 @@ msgstr "Démarrer une nouvelle discussion" msgid "Start chat with {displayName}" msgstr "Démarrer une discussion avec {displayName}" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "Démarrer les discussions" @@ -5685,8 +5689,8 @@ msgstr "Comptes" msgid "users followed by <0/>" msgstr "comptes suivis par <0/>" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -5871,7 +5875,7 @@ msgstr "Nous sommes désolés, mais nous n’avons pas pu charger vos mots masqu msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Nous sommes désolés, mais votre recherche a été annulée. Veuillez réessayer dans quelques minutes." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Nous sommes désolés ! La page que vous recherchez est introuvable." @@ -5898,8 +5902,8 @@ msgstr "Quelles sont les langues utilisées dans ce post ?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Quelles langues aimeriez-vous voir apparaître dans vos fils d’actu algorithmiques ?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "Qui peut discuter avec vous ?" @@ -5993,7 +5997,7 @@ msgstr "Vous pouvez aussi découvrir de nouveaux fils d’actu personnalisés à msgid "You can change these settings later." msgstr "Vous pouvez modifier ces paramètres ultérieurement." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "Vous pouvez changer cela à tout moment." @@ -6085,6 +6089,10 @@ msgstr "Vous n’avez encore créé aucun mot de passe pour l’appli. Vous pouv msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "Vous n’avez encore masqué aucun compte. Pour masquer un compte, allez sur son profil et sélectionnez « Masquer le compte » dans le menu de son compte." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Vous n’avez pas encore masqué de mot ou de mot-clé" diff --git a/src/locale/locales/ga/messages.po b/src/locale/locales/ga/messages.po index 4562f89521..6f75839e1b 100644 --- a/src/locale/locales/ga/messages.po +++ b/src/locale/locales/ga/messages.po @@ -1008,7 +1008,7 @@ msgstr "Dún an íomhá" msgid "Close image viewer" msgstr "Dún amharcóir na n-íomhánna" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1484,7 +1484,7 @@ msgstr "Ar mhaith leat rud éigin a rá?" msgid "Dim" msgstr "Breacdhorcha" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -1803,8 +1803,8 @@ msgid "End of feed" msgstr "Deireadh an fhotha" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1877,8 +1877,8 @@ msgstr "Chuile dhuine" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -2009,7 +2009,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2255,7 +2255,7 @@ msgstr "Ó <0/>" msgid "Gallery" msgstr "Gailearaí" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2577,7 +2577,7 @@ msgstr "Cuir isteach an soláthraí óstála is fearr leat" msgid "Input your user handle" msgstr "Cuir isteach do leasainm" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -2958,14 +2958,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "" @@ -3222,8 +3222,8 @@ msgid "New" msgstr "Nua" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "" @@ -3330,12 +3330,16 @@ msgstr "Gan a bheith níos faide na 253 charachtar" msgid "No messages yet" msgstr "" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "Níl aon fhógra ann fós!" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3350,7 +3354,7 @@ msgstr "Gan torthaí" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Gan torthaí" @@ -3502,11 +3506,11 @@ msgstr "Ní féidir ach le {0} freagra a thabhairt." msgid "Only contains letters, numbers, and hyphens" msgstr "Níl ann ach litreacha, uimhreacha, agus fleiscíní" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Úps! Theip ar rud éigin!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3716,7 +3720,7 @@ msgstr "Eile…" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Leathanach gan aimsiú" @@ -3965,7 +3969,7 @@ msgid "Press to change hosting provider" msgstr "Brúigh leis an soláthraí óstála a athrú" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4001,7 +4005,7 @@ msgstr "Príobháideacht" msgid "Privacy Policy" msgstr "Polasaí príobháideachta" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4402,7 +4406,7 @@ msgstr "Baineann sé seo triail eile as an ngníomh is déanaí, ar theip air" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5150,7 +5154,7 @@ msgstr "" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -6015,8 +6019,8 @@ msgstr "Úsáideoirí" msgid "users followed by <0/>" msgstr "Úsáideoirí a bhfuil <0/> á leanúint" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6209,7 +6213,7 @@ msgstr "Tá brón orainn, ach theip orainn na focail a chuir tú i bhfolach a l msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Ár leithscéal, ach níorbh fhéidir linn do chuardach a chur i gcrích. Bain triail eile as i gceann cúpla nóiméad." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Ár leithscéal, ach ní féidir linn an leathanach atá tú ag lorg a aimsiú." @@ -6240,8 +6244,8 @@ msgstr "Cad iad na teangacha sa phostáil seo?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Cad iad na teangacha ba mhaith leat a fheiceáil i do chuid fothaí algartamacha?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -6331,7 +6335,7 @@ msgstr "Is féidir leat sainfhothaí nua a aimsiú le leanúint." msgid "You can change these settings later." msgstr "Is féidir leat na socruithe seo a athrú níos déanaí." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -6427,6 +6431,10 @@ msgstr "Níor chruthaigh tú aon phasfhocal aipe fós. Is féidir leat ceann a c msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "Níor chuir tú aon chuntas i bhfolach fós. Le cuntas a chur i bhfolach, téigh go dtí a bpróifíl agus roghnaigh “Cuir an cuntas seo i bhfolach” ar an gclár ansin." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Níor chuir tú aon fhocal ná clib i bhfolach fós" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index 8960211334..c4ff6ac76b 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -1122,7 +1122,7 @@ msgstr "छवि बंद करें" msgid "Close image viewer" msgstr "छवि बंद करें" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1648,7 +1648,7 @@ msgstr "" msgid "Dim" msgstr "" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -1995,8 +1995,8 @@ msgid "End of feed" msgstr "" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -2077,8 +2077,8 @@ msgstr "" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -2214,7 +2214,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2484,7 +2484,7 @@ msgstr "" msgid "Gallery" msgstr "गैलरी" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2847,7 +2847,7 @@ msgstr "" msgid "Input your user handle" msgstr "" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -3279,14 +3279,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "" @@ -3573,8 +3573,8 @@ msgid "New" msgstr "नया" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "" @@ -3681,12 +3681,16 @@ msgstr "" msgid "No messages yet" msgstr "" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3701,7 +3705,7 @@ msgstr "" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "" @@ -3857,11 +3861,11 @@ msgstr "" msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -4115,7 +4119,7 @@ msgstr "अन्य..।" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "पृष्ठ नहीं मिला" @@ -4389,7 +4393,7 @@ msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4425,7 +4429,7 @@ msgstr "गोपनीयता" msgid "Privacy Policy" msgstr "गोपनीयता नीति" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4855,7 +4859,7 @@ msgstr "" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5737,7 +5741,7 @@ msgstr "" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -6662,8 +6666,8 @@ msgstr "यूजर लोग" msgid "users followed by <0/>" msgstr "" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6872,7 +6876,7 @@ msgstr "" msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "हम क्षमा चाहते हैं! हमें वह पेज नहीं मिल रहा जिसे आप ढूंढ रहे थे।" @@ -6907,8 +6911,8 @@ msgstr "इस पोस्ट में किस भाषा का उपय msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "कौन से भाषाएं आपको अपने एल्गोरिदमिक फ़ीड में देखना पसंद करती हैं?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -7010,7 +7014,7 @@ msgstr "" msgid "You can change these settings later." msgstr "" -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -7118,6 +7122,10 @@ msgstr "" #~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." #~ msgstr "आपने अभी तक कोई खाता म्यूट नहीं किया है. किसी खाते को म्यूट करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \"खाता म्यूट करें\" चुनें।" +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "" diff --git a/src/locale/locales/id/messages.po b/src/locale/locales/id/messages.po index 2a74c8c7f6..41bcfb7ead 100644 --- a/src/locale/locales/id/messages.po +++ b/src/locale/locales/id/messages.po @@ -1018,7 +1018,7 @@ msgstr "Tutup gambar" msgid "Close image viewer" msgstr "Tutup penampil gambar" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1494,7 +1494,7 @@ msgstr "Apakah Anda ingin mengatakan sesuatu?" msgid "Dim" msgstr "Redup" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -1817,8 +1817,8 @@ msgid "End of feed" msgstr "Akhir feed" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1891,8 +1891,8 @@ msgstr "Semua orang" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -2024,7 +2024,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2270,7 +2270,7 @@ msgstr "Dari <0/>" msgid "Gallery" msgstr "Galeri" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2593,7 +2593,7 @@ msgstr "Masukkan penyedia hosting pilihan Anda" msgid "Input your user handle" msgstr "Masukkan handle pengguna Anda" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -2974,14 +2974,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "Pengaturan pesan" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "Pesan" @@ -3239,8 +3239,8 @@ msgid "New" msgstr "Baru" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "" @@ -3347,12 +3347,16 @@ msgstr "Tidak lebih dari 253 karakter" msgid "No messages yet" msgstr "" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "Belum ada notifikasi!" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3367,7 +3371,7 @@ msgstr "Tidak ada hasil" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Tidak ada hasil yang ditemukan" @@ -3519,11 +3523,11 @@ msgstr "Hanya {0} dapat membalas." msgid "Only contains letters, numbers, and hyphens" msgstr "Hanya berisi huruf, angka, dan tanda hubung" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Oops, sepertinya ada yang salah!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3733,7 +3737,7 @@ msgstr "Lainnya..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Halaman tidak ditemukan" @@ -3982,7 +3986,7 @@ msgid "Press to change hosting provider" msgstr "Tekan untuk mengganti penyedia hosting" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4018,7 +4022,7 @@ msgstr "Privasi" msgid "Privacy Policy" msgstr "Kebijakan Privasi" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4420,7 +4424,7 @@ msgstr "Coba kembali tindakan terakhir, yang gagal" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5168,7 +5172,7 @@ msgstr "" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -6033,8 +6037,8 @@ msgstr "Pengguna" msgid "users followed by <0/>" msgstr "pengguna yang diikuti <0/>" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6227,7 +6231,7 @@ msgstr "Mohon maaf, untuk saat ini kami tidak dapat memuat kata yang Anda dibisu msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Maaf, pencarian Anda tidak dapat dilakukan. Mohon coba lagi dalam beberapa menit." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Maaf! Kami tidak dapat menemukan halaman yang Anda cari." @@ -6258,8 +6262,8 @@ msgstr "Bahasa apa yang digunakan di postingan ini?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Bahasa apa yang ingin Anda lihat di feed Anda?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -6349,7 +6353,7 @@ msgstr "Anda juga dapat menemukan Feed Khusus baru untuk diikuti." msgid "You can change these settings later." msgstr "Anda dapat mengubah pengaturan ini nanti." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -6445,6 +6449,10 @@ msgstr "Anda belum membuat kata sandi aplikasi. Anda dapat membuatnya dengan men msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "Anda belum membisukan akun apa pun. Untuk membisukan akun, buka profilnya dan pilih \"Bisukan akun\" dari menu di akunnya." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Anda belum membisukan kata atau tag apa pun" diff --git a/src/locale/locales/it/messages.po b/src/locale/locales/it/messages.po index 6302b55405..bc5e794828 100644 --- a/src/locale/locales/it/messages.po +++ b/src/locale/locales/it/messages.po @@ -1096,7 +1096,7 @@ msgstr "Chiudi l'immagine" msgid "Close image viewer" msgstr "Chiudi il visualizzatore di immagini" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1611,7 +1611,7 @@ msgstr "Volevi dire qualcosa?" msgid "Dim" msgstr "Fioco" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -1944,8 +1944,8 @@ msgid "End of feed" msgstr "Fine del feed" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -2027,8 +2027,8 @@ msgstr "Tutti" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -2163,7 +2163,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2422,7 +2422,7 @@ msgstr "Da <0/>" msgid "Gallery" msgstr "Galleria" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2771,7 +2771,7 @@ msgstr "Inserisci il tuo provider di hosting preferito" msgid "Input your user handle" msgstr "Inserisci il tuo identificatore" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -3197,14 +3197,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "" @@ -3477,8 +3477,8 @@ msgid "New" msgstr "Nuova" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "" @@ -3588,12 +3588,16 @@ msgstr "Non più di 253 caratteri" msgid "No messages yet" msgstr "" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "Ancora nessuna notifica!" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3608,7 +3612,7 @@ msgstr "Nessun risultato" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Non si è trovato nessun risultato" @@ -3763,11 +3767,11 @@ msgstr "Solo {0} può rispondere." msgid "Only contains letters, numbers, and hyphens" msgstr "Contiene solo lettere, numeri e trattini" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Ops! Qualcosa è andato male!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -4001,7 +4005,7 @@ msgstr "Altro..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Pagina non trovata" @@ -4274,7 +4278,7 @@ msgid "Press to change hosting provider" msgstr "Premi per cambiare provider di hosting" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4310,7 +4314,7 @@ msgstr "Privacy" msgid "Privacy Policy" msgstr "Informativa sulla privacy" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4739,7 +4743,7 @@ msgstr "Ritenta l'ultima azione che ha generato un errore" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5568,7 +5572,7 @@ msgstr "" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -6484,8 +6488,8 @@ msgstr "Utenti" msgid "users followed by <0/>" msgstr "utenti seguiti da <0/>" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6687,7 +6691,7 @@ msgstr "Siamo spiacenti, ma al momento non siamo riusciti a caricare le parole s msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Siamo spiacenti, ma non è stato possibile completare la ricerca. Riprova tra qualche minuto." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Ci dispiace! Non riusciamo a trovare la pagina che stavi cercando." @@ -6724,8 +6728,8 @@ msgstr "Che lingue sono utilizzate in questo post?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Quali lingue vorresti vedere negli algoritmi dei tuoi feeds?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -6821,7 +6825,7 @@ msgstr "Puoi anche scoprire nuovi feed personalizzati da seguire." msgid "You can change these settings later." msgstr "Potrai modificare queste impostazioni in seguito." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -6926,6 +6930,10 @@ msgstr "Non hai ancora silenziato nessun account. Per silenziare un account, vai #~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." #~ msgstr "Non hai ancora disattivato alcun account. Per disattivare un account, vai al suo profilo e seleziona \"Disattiva account\" dal menu del account." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Non hai ancora silenziato nessuna parola o tag" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 573faac169..dc5f8c2f52 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -896,7 +896,7 @@ msgstr "画像を閉じる" msgid "Close image viewer" msgstr "画像ビューアを閉じる" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "モーダルを閉じる" @@ -1352,7 +1352,7 @@ msgstr "なにか言いたいことはあった?" msgid "Dim" msgstr "グレー" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "ダイレクトメッセージはこちら!" @@ -1667,8 +1667,8 @@ msgid "End of feed" msgstr "フィードの終わり" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1741,8 +1741,8 @@ msgstr "全員" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -1861,7 +1861,7 @@ msgstr "送信に失敗" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "設定の更新に失敗しました" @@ -2087,7 +2087,7 @@ msgstr "<0/>から" msgid "Gallery" msgstr "ギャラリー" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "始める" @@ -2405,7 +2405,7 @@ msgstr "ご希望のホスティングプロバイダーを入力" msgid "Input your user handle" msgstr "あなたのユーザーハンドルを入力" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "ダイレクトメッセージの紹介" @@ -2756,14 +2756,14 @@ msgstr "メッセージを入力するフィールド" msgid "Message is too long" msgstr "メッセージが長すぎます" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "メッセージの設定" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "メッセージ" @@ -3007,8 +3007,8 @@ msgid "New" msgstr "新規" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "新しいチャット" @@ -3114,12 +3114,16 @@ msgstr "253文字まで" msgid "No messages yet" msgstr "メッセージはありません" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "お知らせはありません!" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3134,7 +3138,7 @@ msgstr "結果はありません" msgid "No results" msgstr "結果はありません" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "結果は見つかりません" @@ -3274,11 +3278,11 @@ msgstr "{0}のみ返信可能" msgid "Only contains letters, numbers, and hyphens" msgstr "英数字とハイフンのみ" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "おっと、なにかが間違っているようです!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3484,7 +3488,7 @@ msgstr "その他..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "モデレーターが報告をレビューし、Blueskyであなたがチャットにアクセスできないようにしました。" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "ページが見つかりません" @@ -3733,7 +3737,7 @@ msgid "Press to change hosting provider" msgstr "ホスティングプロバイダーを変える" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3764,7 +3768,7 @@ msgstr "プライバシー" msgid "Privacy Policy" msgstr "プライバシーポリシー" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "他のユーザーとプライベートにチャットします。" @@ -4144,7 +4148,7 @@ msgstr "エラーになった最後のアクションをやり直す" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4864,7 +4868,7 @@ msgstr "新しいチャットを開始" msgid "Start chat with {displayName}" msgstr "{displayName}とのチャットを開始" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "チャットを開始" @@ -5685,8 +5689,8 @@ msgstr "ユーザー" msgid "users followed by <0/>" msgstr "<0/>にフォローされているユーザー" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -5871,7 +5875,7 @@ msgstr "大変申し訳ありませんが、現在ミュートされたワード msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "大変申し訳ありませんが、検索を完了できませんでした。数分後に再試行してください。" -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "大変申し訳ありません!お探しのページは見つかりません。" @@ -5898,8 +5902,8 @@ msgstr "この投稿ではどの言語が使われていますか?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "アルゴリズムによるフィードにはどの言語を使用しますか?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "誰があなたへメッセージを送れるか?" @@ -5993,7 +5997,7 @@ msgstr "また、あなたはフォローすべき新しいカスタムフィー msgid "You can change these settings later." msgstr "これらの設定はあとで変更できます。" -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "これはいつでも変更できます。" @@ -6085,6 +6089,10 @@ msgstr "アプリパスワードはまだ作成されていません。下のボ msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "ミュートしているアカウントはまだありません。アカウントをミュートするには、プロフィールに移動し、アカウントメニューから「アカウントをミュート」を選択します。" +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "まだワードやタグをミュートしていません" diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index 235d83a0ac..fe572ae4a2 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -896,7 +896,7 @@ msgstr "이미지 닫기" msgid "Close image viewer" msgstr "이미지 뷰어 닫기" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "대화 상자 닫기" @@ -1356,7 +1356,7 @@ msgstr "하고 싶은 말이 있나요?" msgid "Dim" msgstr "어둑함" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "다이렉트 메시지가 생겼습니다!" @@ -1671,8 +1671,8 @@ msgid "End of feed" msgstr "피드 끝" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1745,8 +1745,8 @@ msgstr "모두" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -1865,7 +1865,7 @@ msgstr "전송 실패" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "설정을 업데이트하지 못했습니다" @@ -2091,7 +2091,7 @@ msgstr "<0/>에서" msgid "Gallery" msgstr "갤러리" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "시작하기" @@ -2409,7 +2409,7 @@ msgstr "선호하는 호스팅 제공자를 입력합니다" msgid "Input your user handle" msgstr "사용자 핸들을 입력합니다" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "다이렉트 메시지 소개" @@ -2760,14 +2760,14 @@ msgstr "메시지 입력 필드" msgid "Message is too long" msgstr "메시지가 너무 깁니다" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "메시지 설정" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "메시지" @@ -3011,8 +3011,8 @@ msgid "New" msgstr "새로 만들기" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "새 대화" @@ -3118,12 +3118,16 @@ msgstr "253자를 초과하지 않음" msgid "No messages yet" msgstr "아직 메시지가 없습니다" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "아직 알림이 없습니다." -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3138,7 +3142,7 @@ msgstr "결과 없음" msgid "No results" msgstr "결과 없음" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "결과를 찾을 수 없음" @@ -3282,11 +3286,11 @@ msgstr "{0}만 답글을 달 수 있습니다." msgid "Only contains letters, numbers, and hyphens" msgstr "문자, 숫자, 하이픈만 포함" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "이런, 뭔가 잘못되었습니다!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3492,7 +3496,7 @@ msgstr "기타…" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "Bluesky 운영진이 신고를 검토한 결과, 귀하의 Bluesky 대화 접속을 비활성화하기로 결정했습니다." -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "페이지를 찾을 수 없음" @@ -3741,7 +3745,7 @@ msgid "Press to change hosting provider" msgstr "호스팅 제공자를 변경하려면 누릅니다" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3772,7 +3776,7 @@ msgstr "개인정보" msgid "Privacy Policy" msgstr "개인정보 처리방침" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "다른 사용자와 비공개로 채팅하세요." @@ -4152,7 +4156,7 @@ msgstr "오류가 발생한 마지막 작업을 다시 시도합니다" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4876,7 +4880,7 @@ msgstr "새 대화 시작하기" msgid "Start chat with {displayName}" msgstr "{displayName} 님과 대화 시작하기" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "대화 시작하기" @@ -5697,8 +5701,8 @@ msgstr "사용자" msgid "users followed by <0/>" msgstr "<0/> 님이 팔로우한 사용자" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -5883,7 +5887,7 @@ msgstr "죄송하지만 현재 뮤트한 단어를 불러올 수 없습니다. msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "죄송하지만 검색을 완료할 수 없습니다. 몇 분 후에 다시 시도해 주세요." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "죄송합니다. 페이지를 찾을 수 없습니다." @@ -5910,8 +5914,8 @@ msgstr "이 게시물에 어떤 언어가 사용되나요?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "알고리즘 피드에 어떤 언어를 표시하시겠습니까?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "누구의 메시지를 허용할까요?" @@ -6005,7 +6009,7 @@ msgstr "팔로우할 새로운 맞춤 피드를 찾을 수도 있습니다." msgid "You can change these settings later." msgstr "이 설정은 나중에 변경할 수 있습니다." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "언제든지 변경할 수 있습니다." @@ -6097,6 +6101,10 @@ msgstr "아직 앱 비밀번호를 생성하지 않았습니다. 아래 버튼 msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "아직 어떤 계정도 뮤트하지 않았습니다. 계정을 뮤트하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 뮤트\"를 선택하세요." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "아직 어떤 단어나 태그도 뮤트하지 않았습니다" diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po index da2d91aa3f..c064666319 100644 --- a/src/locale/locales/pt-BR/messages.po +++ b/src/locale/locales/pt-BR/messages.po @@ -1013,7 +1013,7 @@ msgstr "Fechar imagem" msgid "Close image viewer" msgstr "Fechar visualizador de imagens" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1489,7 +1489,7 @@ msgstr "Você gostaria de dizer alguma coisa?" msgid "Dim" msgstr "Menos escuro" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -1812,8 +1812,8 @@ msgid "End of feed" msgstr "Fim do feed" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1886,8 +1886,8 @@ msgstr "Todos" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -2019,7 +2019,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2265,7 +2265,7 @@ msgstr "Por <0/>" msgid "Gallery" msgstr "Galeria" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2588,7 +2588,7 @@ msgstr "Insira seu provedor de hospedagem" msgid "Input your user handle" msgstr "Insira o usuário" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -2969,14 +2969,14 @@ msgstr "Caixa de texto da mensagem" msgid "Message is too long" msgstr "Mensagem longa demais" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "Configurações das mensagens" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "Mensagens" @@ -3234,8 +3234,8 @@ msgid "New" msgstr "Novo" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "Novo chat" @@ -3342,12 +3342,16 @@ msgstr "No máximo 253 caracteres" msgid "No messages yet" msgstr "Nenhuma mensagem ainda" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "Nenhuma notificação!" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3362,7 +3366,7 @@ msgstr "Nenhum resultado" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Nenhum resultado encontrado" @@ -3514,11 +3518,11 @@ msgstr "Apenas {0} pode responder." msgid "Only contains letters, numbers, and hyphens" msgstr "Contém apenas letras, números e hífens" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Opa, algo deu errado!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3728,7 +3732,7 @@ msgstr "Outro..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Página não encontrada" @@ -3977,7 +3981,7 @@ msgid "Press to change hosting provider" msgstr "Trocar de provedor de hospedagem" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4013,7 +4017,7 @@ msgstr "Privacidade" msgid "Privacy Policy" msgstr "Política de Privacidade" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4415,7 +4419,7 @@ msgstr "Tenta a última ação, que deu erro" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5163,7 +5167,7 @@ msgstr "Começar um novo chat" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -6028,8 +6032,8 @@ msgstr "Usuários" msgid "users followed by <0/>" msgstr "usuários seguidos por <0/>" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6222,7 +6226,7 @@ msgstr "Não foi possível carregar sua lista de palavras silenciadas. Por favor msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Lamentamos, mas sua busca não pôde ser concluída. Por favor, tente novamente em alguns minutos." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Sentimos muito! Não conseguimos encontrar a página que você estava procurando." @@ -6253,8 +6257,8 @@ msgstr "Quais idiomas são usados neste post?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Quais idiomas você gostaria de ver nos seus feeds?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -6344,7 +6348,7 @@ msgstr "Você também pode descobrir novos feeds para seguir." msgid "You can change these settings later." msgstr "Você pode mudar estas configurações depois." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -6440,6 +6444,10 @@ msgstr "Você ainda não criou nenhuma senha de aplicativo. Você pode criar uma msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "Você ainda não silenciou nenhuma conta. Para silenciar uma conta, acesse um perfil e selecione \"Silenciar conta\" no menu." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "Você não silenciou nenhuma palavra ou tag ainda" diff --git a/src/locale/locales/tr/messages.po b/src/locale/locales/tr/messages.po index 8d58031764..c16030e840 100644 --- a/src/locale/locales/tr/messages.po +++ b/src/locale/locales/tr/messages.po @@ -1103,7 +1103,7 @@ msgstr "Resmi kapat" msgid "Close image viewer" msgstr "Resim görüntüleyiciyi kapat" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1620,7 +1620,7 @@ msgstr "Bir şey söylemek istediniz mi?" msgid "Dim" msgstr "Karart" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -1963,8 +1963,8 @@ msgid "End of feed" msgstr "Beslemenin sonu" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -2045,8 +2045,8 @@ msgstr "Herkes" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -2182,7 +2182,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2444,7 +2444,7 @@ msgstr "<0/> tarafından" msgid "Gallery" msgstr "Galeri" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2801,7 +2801,7 @@ msgstr "" msgid "Input your user handle" msgstr "Kullanıcı adınızı girin" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -3224,14 +3224,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "" @@ -3502,8 +3502,8 @@ msgid "New" msgstr "Yeni" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "" @@ -3610,12 +3610,16 @@ msgstr "" msgid "No messages yet" msgstr "" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "Henüz bildirim yok!" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3630,7 +3634,7 @@ msgstr "Sonuç yok" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "" @@ -3782,11 +3786,11 @@ msgstr "Yalnızca {0} yanıtlayabilir." msgid "Only contains letters, numbers, and hyphens" msgstr "" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -4028,7 +4032,7 @@ msgstr "Diğer..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Sayfa bulunamadı" @@ -4298,7 +4302,7 @@ msgid "Press to change hosting provider" msgstr "" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4334,7 +4338,7 @@ msgstr "Gizlilik" msgid "Privacy Policy" msgstr "Gizlilik Politikası" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4764,7 +4768,7 @@ msgstr "Son hataya neden olan son eylemi tekrarlar" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5622,7 +5626,7 @@ msgstr "" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -6531,8 +6535,8 @@ msgstr "Kullanıcılar" msgid "users followed by <0/>" msgstr "<0/> tarafından takip edilen kullanıcılar" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6737,7 +6741,7 @@ msgstr "" msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Üzgünüz, ancak aramanız tamamlanamadı. Lütfen birkaç dakika içinde tekrar deneyin." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Üzgünüz! Aradığınız sayfayı bulamıyoruz." @@ -6772,8 +6776,8 @@ msgstr "Bu gönderide hangi diller kullanılıyor?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Algoritmik beslemelerinizde hangi dilleri görmek istersiniz?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -6867,7 +6871,7 @@ msgstr "Ayrıca takip edebileceğiniz yeni Özel Beslemeler keşfedebilirsiniz." msgid "You can change these settings later." msgstr "Bu ayarları daha sonra değiştirebilirsiniz." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -6975,6 +6979,10 @@ msgstr "" #~ msgid "You have not muted any accounts yet. To mute an account, go to their profile and selected \"Mute account\" from the menu on their account." #~ msgstr "Henüz hiçbir hesabı sessize almadınız. Bir hesabı sessize almak için, profilinize gidin ve hesaplarının menüsünden \"Hesabı sessize al\" seçeneğini seçin." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "" diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po index e3b38539df..22de9e233e 100644 --- a/src/locale/locales/uk/messages.po +++ b/src/locale/locales/uk/messages.po @@ -1018,7 +1018,7 @@ msgstr "Закрити зображення" msgid "Close image viewer" msgstr "Закрити перегляд зображення" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "" @@ -1494,7 +1494,7 @@ msgstr "Порожній пост. Ви хотіли щось написати?" msgid "Dim" msgstr "Тьмяний" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "" @@ -1817,8 +1817,8 @@ msgid "End of feed" msgstr "Кінець стрічки" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1891,8 +1891,8 @@ msgstr "Усі" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -2024,7 +2024,7 @@ msgstr "" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "" @@ -2270,7 +2270,7 @@ msgstr "Зі стрічки \"<0/>\"" msgid "Gallery" msgstr "Галерея" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "" @@ -2593,7 +2593,7 @@ msgstr "Введіть бажаного хостинг-провайдера" msgid "Input your user handle" msgstr "Введіть ваш псевдонім" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "" @@ -2974,14 +2974,14 @@ msgstr "" msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "" @@ -3239,8 +3239,8 @@ msgid "New" msgstr "Новий" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "" @@ -3347,12 +3347,16 @@ msgstr "Не може бути довшим за 253 символи" msgid "No messages yet" msgstr "" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "Ще ніяких сповіщень!" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3367,7 +3371,7 @@ msgstr "Результати відсутні" msgid "No results" msgstr "" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "Нічого не знайдено" @@ -3519,11 +3523,11 @@ msgstr "Тільки {0} можуть відповідати." msgid "Only contains letters, numbers, and hyphens" msgstr "Тільки літери, цифри та дефіс" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "Ой, щось пішло не так!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3733,7 +3737,7 @@ msgstr "Інші..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "Сторінку не знайдено" @@ -3982,7 +3986,7 @@ msgid "Press to change hosting provider" msgstr "Змінити хостинг-провайдера" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -4018,7 +4022,7 @@ msgstr "Конфіденційність" msgid "Privacy Policy" msgstr "Політика конфіденційності" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "" @@ -4420,7 +4424,7 @@ msgstr "Повторити останню дію, яка спричинила п #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -5168,7 +5172,7 @@ msgstr "" msgid "Start chat with {displayName}" msgstr "" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "" @@ -6033,8 +6037,8 @@ msgstr "Користувачі" msgid "users followed by <0/>" msgstr "користувачі, на яких підписані <0/>" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -6227,7 +6231,7 @@ msgstr "На жаль, ми не змогли зараз завантажити msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Даруйте, нам не вдалося виконати пошук за вашим запитом. Будь ласка, спробуйте ще раз через кілька хвилин." -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "Нам дуже прикро! Ми не можемо знайти сторінку, яку ви шукали." @@ -6258,8 +6262,8 @@ msgstr "Які мови використані в цьому пості?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "Якими мовами ви хочете бачити пости у алгоритмічних стрічках?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "" @@ -6349,7 +6353,7 @@ msgstr "Також ви можете знайти кастомні стрічк msgid "You can change these settings later." msgstr "Ви можете змінити ці налаштування пізніше." -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "" @@ -6445,6 +6449,10 @@ msgstr "Ви ще не створили жодного пароля для за msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "Ви ще не ігноруєте жодного облікового запису. Щоб увімкнути ігнорування когось, перейдіть до їх профілю та виберіть опцію \"Ігнорувати\" у меню їх облікового запису." +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "У вас ще немає ігнорованих слів чи тегів" diff --git a/src/locale/locales/zh-CN/messages.po b/src/locale/locales/zh-CN/messages.po index bd3db4933a..4acb02a271 100644 --- a/src/locale/locales/zh-CN/messages.po +++ b/src/locale/locales/zh-CN/messages.po @@ -896,7 +896,7 @@ msgstr "关闭图片" msgid "Close image viewer" msgstr "关闭图片查看器" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "关闭对话框" @@ -1352,7 +1352,7 @@ msgstr "有什么想说的吗?" msgid "Dim" msgstr "暗淡" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "隆重介绍私信功能!" @@ -1667,8 +1667,8 @@ msgid "End of feed" msgstr "已到末尾" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1741,8 +1741,8 @@ msgstr "所有人" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -1861,7 +1861,7 @@ msgstr "无法发送私信" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "无法更新设置" @@ -2087,7 +2087,7 @@ msgstr "来自 <0/>" msgid "Gallery" msgstr "相册" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "开始吧" @@ -2405,7 +2405,7 @@ msgstr "输入你首选的托管服务提供商" msgid "Input your user handle" msgstr "输入你的用户识别符" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "介绍私信" @@ -2756,14 +2756,14 @@ msgstr "私信输入栏" msgid "Message is too long" msgstr "私信过长" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "私信设置" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "私信" @@ -3007,8 +3007,8 @@ msgid "New" msgstr "新建" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "新私信" @@ -3114,12 +3114,16 @@ msgstr "不超过 253 个字符" msgid "No messages yet" msgstr "目前还没有任何私信" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "还没有通知!" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3134,7 +3138,7 @@ msgstr "没有结果" msgid "No results" msgstr "没有结果" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "未找到结果" @@ -3274,11 +3278,11 @@ msgstr "只有{0}可以回复。" msgid "Only contains letters, numbers, and hyphens" msgstr "仅限字母、数字和连字符" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "糟糕,发生了一些错误!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3484,7 +3488,7 @@ msgstr "其他..." msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "内容审核服务提供方已收到举报,并决定停用你的 Bluesky 私信功能。" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "无法找到这个页面" @@ -3733,7 +3737,7 @@ msgid "Press to change hosting provider" msgstr "点击以变更托管提供商" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3764,7 +3768,7 @@ msgstr "隐私" msgid "Privacy Policy" msgstr "隐私政策" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "与其他用户开始私信。" @@ -4144,7 +4148,7 @@ msgstr "重试上次出错的操作" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4864,7 +4868,7 @@ msgstr "开始一个新私信" msgid "Start chat with {displayName}" msgstr "与 {displayName} 开始私信" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "开始私信" @@ -5685,8 +5689,8 @@ msgstr "用户" msgid "users followed by <0/>" msgstr "关注 <0/> 的用户" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -5871,7 +5875,7 @@ msgstr "很抱歉,我们无法加载你的隐藏词汇列表。请重试。" msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "很抱歉,无法完成你的搜索。请稍后再试。" -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "很抱歉!我们找不到你正在寻找的页面。" @@ -5898,8 +5902,8 @@ msgstr "这条帖子中使用了哪些语言?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "你想在算法资讯源中看到哪些语言?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "谁可以给你发送私信?" @@ -5993,7 +5997,7 @@ msgstr "你也可以探索新的自定义资讯源来关注。" msgid "You can change these settings later." msgstr "你可以稍后在设置中更改。" -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "你可以随时修改此设置项。" @@ -6085,6 +6089,10 @@ msgstr "你尚未创建任何应用专用密码,可以通过点击下面的按 msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "你还没有隐藏任何账户。要隐藏账户,请转到其个人资料并在其账户上的菜单中选择 \"隐藏账户\"。" +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "你还没有隐藏任何词或标签" diff --git a/src/locale/locales/zh-TW/messages.po b/src/locale/locales/zh-TW/messages.po index 97acda4248..527d190477 100644 --- a/src/locale/locales/zh-TW/messages.po +++ b/src/locale/locales/zh-TW/messages.po @@ -896,7 +896,7 @@ msgstr "關閉圖片" msgid "Close image viewer" msgstr "關閉圖片檢視器" -#: src/components/dms/MessagesNUX.tsx:159 +#: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" msgstr "關閉視窗" @@ -1352,7 +1352,7 @@ msgstr "有什麼想說的嗎?" msgid "Dim" msgstr "昏暗" -#: src/components/dms/MessagesNUX.tsx:85 +#: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" msgstr "私人訊息已推出!" @@ -1667,8 +1667,8 @@ msgid "End of feed" msgstr "已經到底部啦!" #: src/components/Lists.tsx:52 -msgid "End of list" -msgstr "" +#~ msgid "End of list" +#~ msgstr "" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -1741,8 +1741,8 @@ msgstr "所有人" msgid "Everybody can reply" msgstr "" -#: src/components/dms/MessagesNUX.tsx:128 #: src/components/dms/MessagesNUX.tsx:131 +#: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" @@ -1861,7 +1861,7 @@ msgstr "無法傳送" msgid "Failed to submit appeal, please try again." msgstr "" -#: src/components/dms/MessagesNUX.tsx:58 +#: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" msgstr "無法更新設定" @@ -2087,7 +2087,7 @@ msgstr "來自 <0/>" msgid "Gallery" msgstr "相簿" -#: src/components/dms/MessagesNUX.tsx:165 +#: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" msgstr "開始" @@ -2405,7 +2405,7 @@ msgstr "輸入您的託管服務供應商" msgid "Input your user handle" msgstr "輸入您的帳號代碼" -#: src/components/dms/MessagesNUX.tsx:79 +#: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" msgstr "為您隆重介紹「私人訊息」" @@ -2756,14 +2756,14 @@ msgstr "訊息輸入欄位" msgid "Message is too long" msgstr "訊息太長了" -#: src/screens/Messages/List/index.tsx:299 +#: src/screens/Messages/List/index.tsx:301 msgid "Message settings" msgstr "訊息設定" #: src/Navigation.tsx:520 #: src/screens/Messages/List/index.tsx:144 #: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:295 +#: src/screens/Messages/List/index.tsx:297 msgid "Messages" msgstr "訊息" @@ -3007,8 +3007,8 @@ msgid "New" msgstr "新增" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:309 -#: src/screens/Messages/List/index.tsx:316 +#: src/screens/Messages/List/index.tsx:311 +#: src/screens/Messages/List/index.tsx:318 msgid "New chat" msgstr "新對話" @@ -3114,12 +3114,16 @@ msgstr "不超過 253 個字符" msgid "No messages yet" msgstr "還沒有訊息" +#: src/screens/Messages/List/index.tsx:254 +msgid "No more conversations to show" +msgstr "" + #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" msgstr "還沒有通知!" -#: src/components/dms/MessagesNUX.tsx:146 #: src/components/dms/MessagesNUX.tsx:149 +#: src/components/dms/MessagesNUX.tsx:152 #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" @@ -3134,7 +3138,7 @@ msgstr "沒有結果" msgid "No results" msgstr "沒有結果" -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:207 msgid "No results found" msgstr "未找到結果" @@ -3274,11 +3278,11 @@ msgstr "只有{0}可以回覆。" msgid "Only contains letters, numbers, and hyphens" msgstr "只包含字母、數字和連字符" -#: src/components/Lists.tsx:92 +#: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" msgstr "糟糕,發生了錯誤!" -#: src/components/Lists.tsx:195 +#: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 #: src/view/screens/Profile.tsx:100 msgid "Oops!" @@ -3484,7 +3488,7 @@ msgstr "其他…" msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." msgstr "我們的內容管理者已審核檢舉,並決定停用您在 Bluesky 上的對話功能。" -#: src/components/Lists.tsx:212 +#: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "頁面不存在" @@ -3733,7 +3737,7 @@ msgid "Press to change hosting provider" msgstr "按下以更改託管服務供應商" #: src/components/Error.tsx:85 -#: src/components/Lists.tsx:97 +#: src/components/Lists.tsx:93 #: src/screens/Messages/Conversation/MessageListError.tsx:24 #: src/screens/Signup/index.tsx:200 msgid "Press to retry" @@ -3764,7 +3768,7 @@ msgstr "隱私" msgid "Privacy Policy" msgstr "隱私政策" -#: src/components/dms/MessagesNUX.tsx:88 +#: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." msgstr "和其他用戶進行私人對話。" @@ -4144,7 +4148,7 @@ msgstr "重試上次出錯的操作" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 -#: src/components/Lists.tsx:108 +#: src/components/Lists.tsx:104 #: src/screens/Login/LoginForm.tsx:285 #: src/screens/Login/LoginForm.tsx:292 #: src/screens/Messages/Conversation/MessageListError.tsx:25 @@ -4864,7 +4868,7 @@ msgstr "開始新對話" msgid "Start chat with {displayName}" msgstr "與 {displayName} 開始對話" -#: src/components/dms/MessagesNUX.tsx:158 +#: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" msgstr "開始對話" @@ -5685,8 +5689,8 @@ msgstr "用戶" msgid "users followed by <0/>" msgstr "被 <0/> 跟隨的用戶" -#: src/components/dms/MessagesNUX.tsx:137 #: src/components/dms/MessagesNUX.tsx:140 +#: src/components/dms/MessagesNUX.tsx:143 #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" @@ -5871,7 +5875,7 @@ msgstr "很抱歉,我們目前無法載入您的靜音文字。請稍後再試 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "很抱歉,無法完成您的搜尋請求。請稍後再試。" -#: src/components/Lists.tsx:216 +#: src/components/Lists.tsx:212 #: src/view/screens/NotFound.tsx:48 msgid "We're sorry! We can't find the page you were looking for." msgstr "很抱歉!我們找不到您正在尋找的頁面。" @@ -5898,8 +5902,8 @@ msgstr "這個貼文使用了哪些語言?" msgid "Which languages would you like to see in your algorithmic feeds?" msgstr "您想在演算法動態源中看到哪些語言?" -#: src/components/dms/MessagesNUX.tsx:107 -#: src/components/dms/MessagesNUX.tsx:121 +#: src/components/dms/MessagesNUX.tsx:110 +#: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" msgstr "誰可以傳送訊息給您?" @@ -5993,7 +5997,7 @@ msgstr "您也可以探索並跟隨新的自訂動態源。" msgid "You can change these settings later." msgstr "您可以往後在設定中更改。" -#: src/components/dms/MessagesNUX.tsx:116 +#: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." msgstr "您可以隨時變更該設定。" @@ -6085,6 +6089,10 @@ msgstr "您還沒有建立任何應用程式專用密碼,如您想建立一個 msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." msgstr "您還沒有靜音任何帳號。要靜音帳號,請前往其個人資料並在其帳號上的選單中選擇「靜音帳號」。" +#: src/components/Lists.tsx:52 +msgid "You have reached the end" +msgstr "" + #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" msgstr "您還沒有隱藏任何文字或標籤" diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index a0a1d4f803..26b6df23b7 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -250,6 +250,8 @@ export function MessagesScreen({navigation, route}: Props) { onRetry={fetchNextPage} style={{borderColor: 'transparent'}} hasNextPage={hasNextPage} + showEndMessage={true} + endMessageText={_(msg`No more conversations to show`)} /> } onEndReachedThreshold={isNative ? 1.5 : 0} From f06a6024e6a3574847ac87942d162071496d864e Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 21 May 2024 16:16:27 +0100 Subject: [PATCH 160/277] fix to negative top of component so it moves with container growth (#4151) --- src/components/dms/ChatEmptyPill.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/dms/ChatEmptyPill.tsx b/src/components/dms/ChatEmptyPill.tsx index a6c4906a62..4633832fc3 100644 --- a/src/components/dms/ChatEmptyPill.tsx +++ b/src/components/dms/ChatEmptyPill.tsx @@ -72,7 +72,7 @@ export function ChatEmptyPill() { a.z_10, a.align_center, { - bottom: 70, + top: -50, }, ]}> Date: Tue, 21 May 2024 16:16:36 +0100 Subject: [PATCH 161/277] flip order (#4152) --- src/components/dms/ConvoMenu.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index a3440067b0..79ca34f17e 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -189,7 +189,7 @@ let ConvoMenu = ({ {isBlocking ? _(msg`Unblock account`) : _(msg`Block account`)} - + Date: Tue, 21 May 2024 18:49:46 +0100 Subject: [PATCH 162/277] close loggedout view when logging in (#4154) --- src/screens/Login/LoginForm.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index 58c100294c..dfa10668b6 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -19,6 +19,7 @@ import {cleanError} from '#/lib/strings/errors' import {createFullHandle} from '#/lib/strings/handles' import {logger} from '#/logger' import {useSessionApi} from '#/state/session' +import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {useRequestNotificationsPermission} from 'lib/notifications/notifications' import {atoms as a, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' @@ -67,6 +68,7 @@ export const LoginForm = ({ const {_} = useLingui() const {login} = useSessionApi() const requestNotificationsPermission = useRequestNotificationsPermission() + const {setShowLoggedOut} = useLoggedOutViewControls() const onPressSelectService = React.useCallback(() => { Keyboard.dismiss() @@ -113,6 +115,7 @@ export const LoginForm = ({ }, 'LoginForm', ) + setShowLoggedOut(false) requestNotificationsPermission('Login') } catch (e: any) { const errMsg = e.toString() From 630b9b77869a6f82355888a1a859198932f1f8a7 Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 21 May 2024 12:18:56 -0700 Subject: [PATCH 163/277] check `maxTouchPoints` is greater than 1, not zero (#4158) --- src/components/ProfileHoverCard/index.web.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ProfileHoverCard/index.web.tsx b/src/components/ProfileHoverCard/index.web.tsx index 60b83e110d..75eba6598e 100644 --- a/src/components/ProfileHoverCard/index.web.tsx +++ b/src/components/ProfileHoverCard/index.web.tsx @@ -43,7 +43,7 @@ const floatingMiddlewares = [ }), ] -const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0 +const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 1 export function ProfileHoverCard(props: ProfileHoverCardProps) { if (props.disable || isTouchDevice) { From 866b0b9121da0794e00b44bfee559364837c26d4 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 21 May 2024 21:33:00 +0100 Subject: [PATCH 164/277] =?UTF-8?q?[=F0=9F=90=B4]=20Fix=20convo=20menu=20o?= =?UTF-8?q?verlap=20(web)=20(#4153)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add right padding to chatlistitem to avoid overlap * reduce padding amount --- src/screens/Messages/List/ChatListItem.tsx | 45 +++++++++------------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/src/screens/Messages/List/ChatListItem.tsx b/src/screens/Messages/List/ChatListItem.tsx index ce0c7eee8e..47a5772ad3 100644 --- a/src/screens/Messages/List/ChatListItem.tsx +++ b/src/screens/Messages/List/ChatListItem.tsx @@ -192,7 +192,7 @@ function ChatListItemReady({ moderation={moderation.ui('avatar')} /> - + {lastMessage} - - {convo.unreadCount > 0 && ( - - )} + + {convo.unreadCount > 0 && ( + + )} )} From cbfb69dd1530319a8a5ad9807778015e38f3c228 Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 21 May 2024 13:37:16 -0700 Subject: [PATCH 165/277] =?UTF-8?q?[=F0=9F=90=B4]=20Support=20Japanese=20(?= =?UTF-8?q?et=20al.)=20IME=20in=20message=20input=20on=20web=20(#4159)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * support japanese et al. IME * update comment * nit --- .../Messages/Conversation/MessageInput.web.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/screens/Messages/Conversation/MessageInput.web.tsx b/src/screens/Messages/Conversation/MessageInput.web.tsx index dd7c4f6852..3e78608a70 100644 --- a/src/screens/Messages/Conversation/MessageInput.web.tsx +++ b/src/screens/Messages/Conversation/MessageInput.web.tsx @@ -26,6 +26,7 @@ export function MessageInput({ const [message, setMessage] = React.useState(getDraft) const inputStyles = useSharedInputStyles() + const isComposing = React.useRef(false) const [isFocused, setIsFocused] = React.useState(false) const [isHovered, setIsHovered] = React.useState(false) @@ -44,13 +45,15 @@ export function MessageInput({ const onKeyDown = React.useCallback( (e: React.KeyboardEvent) => { + // Don't submit the form when the Japanese or any other IME is composing + if (isComposing.current) return if (e.key === 'Enter') { if (e.shiftKey) return e.preventDefault() onSubmit() } }, - [onSubmit], + [onSubmit, isComposing], ) const onChange = React.useCallback( @@ -102,6 +105,12 @@ export function MessageInput({ autoFocus={true} onFocus={() => setIsFocused(true)} onBlur={() => setIsFocused(false)} + onCompositionStart={() => { + isComposing.current = true + }} + onCompositionEnd={() => { + isComposing.current = false + }} onChange={onChange} onKeyDown={onKeyDown} /> From 4b0e118844506357e24f0aba3ceb411bf7a14cb8 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 21 May 2024 17:14:30 -0500 Subject: [PATCH 166/277] Remove added radius, add to specific location (#4160) --- src/components/Dialog/index.tsx | 2 -- src/components/dms/NewChatDialog/index.tsx | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Dialog/index.tsx b/src/components/Dialog/index.tsx index b88159613e..315f863b5e 100644 --- a/src/components/Dialog/index.tsx +++ b/src/components/Dialog/index.tsx @@ -277,8 +277,6 @@ export const InnerFlatList = React.forwardRef< a.h_full, { marginTop: 40, - borderTopLeftRadius: 40, - borderTopRightRadius: 40, }, flatten(style), ]} diff --git a/src/components/dms/NewChatDialog/index.tsx b/src/components/dms/NewChatDialog/index.tsx index 6844531f15..c13c450c47 100644 --- a/src/components/dms/NewChatDialog/index.tsx +++ b/src/components/dms/NewChatDialog/index.tsx @@ -500,6 +500,8 @@ function SearchablePeopleList({ paddingHorizontal: 0, marginTop: 0, paddingTop: 0, + borderTopLeftRadius: 40, + borderTopRightRadius: 40, }), ]} webInnerStyle={[a.py_0, {maxWidth: 500, minWidth: 200}]} From 6522ee9bbfb5a418c1caa828ab9751b2430e8fcc Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 22 May 2024 06:07:07 -0700 Subject: [PATCH 167/277] don't use `contentVisibility` on Firefox (#4164) --- src/view/com/util/List.web.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/view/com/util/List.web.tsx b/src/view/com/util/List.web.tsx index df097bafab..7f192686da 100644 --- a/src/view/com/util/List.web.tsx +++ b/src/view/com/util/List.web.tsx @@ -504,6 +504,7 @@ export const List = memo(React.forwardRef(ListImpl)) as ( // https://stackoverflow.com/questions/7944460/detect-safari-browser const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent) +const isFirefox = /firefox|fxios/i.test(navigator.userAgent) const styles = StyleSheet.create({ sideBorders: { @@ -518,7 +519,7 @@ const styles = StyleSheet.create({ }, row: { // @ts-ignore web only - contentVisibility: isSafari ? '' : 'auto', // Safari support for this is buggy. + contentVisibility: isSafari || isFirefox ? '' : 'auto', // Safari support for this is buggy. }, minHeightViewport: { // @ts-ignore web only From 690926dd90bde4c5d53da826be11ef138b65c909 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 22 May 2024 15:52:04 +0100 Subject: [PATCH 168/277] Add note to clarify "allow new messages from" setting (#4166) --- src/screens/Messages/Settings.tsx | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/screens/Messages/Settings.tsx b/src/screens/Messages/Settings.tsx index a27c961f8d..2de355e061 100644 --- a/src/screens/Messages/Settings.tsx +++ b/src/screens/Messages/Settings.tsx @@ -12,7 +12,7 @@ import {useSession} from '#/state/session' import * as Toast from '#/view/com/util/Toast' import {ViewHeader} from '#/view/com/util/ViewHeader' import {CenteredView} from '#/view/com/util/Views' -import {atoms as a} from '#/alf' +import {atoms as a, useTheme} from '#/alf' import {Divider} from '#/components/Divider' import * as Toggle from '#/components/forms/Toggle' import {Text} from '#/components/Typography' @@ -23,6 +23,7 @@ type AllowIncoming = 'all' | 'none' | 'following' type Props = NativeStackScreenProps export function MessagesSettingsScreen({}: Props) { const {_} = useLingui() + const t = useTheme() const {currentAccount} = useSession() const {data: profile} = useProfileQuery({ did: currentAccount!.did, @@ -58,10 +59,10 @@ export function MessagesSettingsScreen({}: Props) { - Allow messages from + Allow new messages from + + + + You can continue ongoing conversations regardless of which setting + you choose. + + + {isNative && ( <> - + Notification Sounds From b93737232589c5bf158fb0611e4f253ff8fe1b08 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 22 May 2024 11:34:21 -0500 Subject: [PATCH 169/277] More retries when resuming non-stale account (#4156) --- src/state/session/agent.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/state/session/agent.ts b/src/state/session/agent.ts index 972d334259..27e1af4c2b 100644 --- a/src/state/session/agent.ts +++ b/src/state/session/agent.ts @@ -53,7 +53,7 @@ export async function createAgentAndResume( agent.session = prevSession if (!storedAccount.deactivated) { // Intentionally not awaited to unblock the UI: - networkRetry(1, () => agent.resumeSession(prevSession)) + networkRetry(3, () => agent.resumeSession(prevSession)) } } From 3ca41e4efb24809dcc5e5a5c3e678eb561fd7ad6 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 22 May 2024 18:14:15 +0100 Subject: [PATCH 170/277] =?UTF-8?q?[=F0=9F=90=B4]=20Invalidate=20list=20co?= =?UTF-8?q?nvos=20query=20on=20block=20(#4171)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * more memoization * invalidate listconvos query on block --- .../queries/messages/list-converations.ts | 38 ++++++++++--------- src/state/queries/profile.ts | 2 + 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/state/queries/messages/list-converations.ts b/src/state/queries/messages/list-converations.ts index 25ac9a16ea..493ee0d193 100644 --- a/src/state/queries/messages/list-converations.ts +++ b/src/state/queries/messages/list-converations.ts @@ -46,27 +46,29 @@ export function useUnreadMessageCount() { }) const moderationOpts = useModerationOpts() - const count = - convos.data?.pages - .flatMap(page => page.convos) - .filter(convo => convo.id !== currentConvoId) - .reduce((acc, convo) => { - const otherMember = convo.members.find( - member => member.did !== currentAccount?.did, - ) + const count = useMemo(() => { + return ( + convos.data?.pages + .flatMap(page => page.convos) + .filter(convo => convo.id !== currentConvoId) + .reduce((acc, convo) => { + const otherMember = convo.members.find( + member => member.did !== currentAccount?.did, + ) - if (!otherMember || !moderationOpts) return acc + if (!otherMember || !moderationOpts) return acc - // TODO could shadow this outside this hook and get optimistic block state - const moderation = moderateProfile(otherMember, moderationOpts) - const shouldIgnore = - convo.muted || - moderation.blocked || - otherMember.did === 'missing.invalid' - const unreadCount = !shouldIgnore && convo.unreadCount > 0 ? 1 : 0 + const moderation = moderateProfile(otherMember, moderationOpts) + const shouldIgnore = + convo.muted || + moderation.blocked || + otherMember.did === 'missing.invalid' + const unreadCount = !shouldIgnore && convo.unreadCount > 0 ? 1 : 0 - return acc + unreadCount - }, 0) ?? 0 + return acc + unreadCount + }, 0) ?? 0 + ) + }, [convos.data, currentAccount?.did, currentConvoId, moderationOpts]) return useMemo(() => { return { diff --git a/src/state/queries/profile.ts b/src/state/queries/profile.ts index 3e25359166..af8718c5e0 100644 --- a/src/state/queries/profile.ts +++ b/src/state/queries/profile.ts @@ -25,6 +25,7 @@ import {STALE} from '#/state/queries' import {resetProfilePostsQueries} from '#/state/queries/post-feed' import {updateProfileShadow} from '../cache/profile-shadow' import {useAgent, useSession} from '../session' +import {RQKEY as RQKEY_LIST_CONVOS} from './messages/list-converations' import {RQKEY as RQKEY_MY_BLOCKED} from './my-blocked-accounts' import {RQKEY as RQKEY_MY_MUTED} from './my-muted-accounts' @@ -414,6 +415,7 @@ export function useProfileBlockMutationQueue( updateProfileShadow(queryClient, did, { blockingUri: finalBlockingUri, }) + queryClient.invalidateQueries({queryKey: RQKEY_LIST_CONVOS}) }, }) From e6e7027d01b32363cdfc319a04b74064a9c38529 Mon Sep 17 00:00:00 2001 From: dan Date: Wed, 22 May 2024 18:19:07 +0100 Subject: [PATCH 171/277] Cleanup gates (#4170) * Unlaunch disable_poll_on_discover_v2 * Rm unused gates * Unlaunch autoexpand_suggestions_on_profile_follow_v2 * Launch disable_min_shell_on_foregrounding_v3 --- src/lib/statsig/gates.ts | 6 ------ .../Profile/Header/ProfileHeaderStandard.tsx | 7 +------ src/view/com/feeds/FeedPage.tsx | 13 +++---------- src/view/screens/Home.tsx | 13 +++++-------- 4 files changed, 9 insertions(+), 30 deletions(-) diff --git a/src/lib/statsig/gates.ts b/src/lib/statsig/gates.ts index b0ba7d7539..81e49e151b 100644 --- a/src/lib/statsig/gates.ts +++ b/src/lib/statsig/gates.ts @@ -1,11 +1,5 @@ export type Gate = // Keep this alphabetic please. - | 'autoexpand_suggestions_on_profile_follow_v2' - | 'disable_min_shell_on_foregrounding_v3' - | 'disable_poll_on_discover_v2' | 'reduced_onboarding_and_home_algo_v2' | 'request_notifications_permission_after_onboarding' | 'show_follow_back_label_v2' - | 'start_session_with_following_v2' - | 'test_gate_1' - | 'test_gate_2' diff --git a/src/screens/Profile/Header/ProfileHeaderStandard.tsx b/src/screens/Profile/Header/ProfileHeaderStandard.tsx index 66141e7826..f4b8d77052 100644 --- a/src/screens/Profile/Header/ProfileHeaderStandard.tsx +++ b/src/screens/Profile/Header/ProfileHeaderStandard.tsx @@ -10,9 +10,8 @@ import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useGate} from '#/lib/statsig/statsig' import {logger} from '#/logger' -import {isIOS, isWeb} from '#/platform/detection' +import {isIOS} from '#/platform/detection' import {Shadow} from '#/state/cache/types' import {useModalControls} from '#/state/modals' import { @@ -81,7 +80,6 @@ let ProfileHeaderStandard = ({ }) }, [track, openModal, profile]) - const gate = useGate() const onPressFollow = () => { requireAuth(async () => { try { @@ -95,9 +93,6 @@ let ProfileHeaderStandard = ({ )}`, ), ) - if (isWeb && gate('autoexpand_suggestions_on_profile_follow_v2')) { - setShowSuggestedFollows(true) - } } catch (e: any) { if (e?.name !== 'AbortError') { logger.error('Failed to follow', {message: String(e)}) diff --git a/src/view/com/feeds/FeedPage.tsx b/src/view/com/feeds/FeedPage.tsx index 6a9fc9346b..f0a7c62381 100644 --- a/src/view/com/feeds/FeedPage.tsx +++ b/src/view/com/feeds/FeedPage.tsx @@ -7,7 +7,7 @@ import {useNavigation} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' import {getRootNavigation, getTabState, TabState} from '#/lib/routes/helpers' -import {logEvent, useGate} from '#/lib/statsig/statsig' +import {logEvent} from '#/lib/statsig/statsig' import {isNative} from '#/platform/detection' import {listenSoftReset} from '#/state/events' import {FeedFeedbackProvider, useFeedFeedback} from '#/state/feed-feedback' @@ -58,7 +58,6 @@ export function FeedPage({ const feedFeedback = useFeedFeedback(feed, hasSession) const scrollElRef = React.useRef(null) const [hasNew, setHasNew] = React.useState(false) - const gate = useGate() const scrollToTop = React.useCallback(() => { scrollElRef.current?.scrollToOffset({ @@ -109,12 +108,6 @@ export function FeedPage({ }) }, [scrollToTop, feed, queryClient, setHasNew]) - const isDiscoverFeed = - feed === - 'feedgen|at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot' - const adjustedHasNew = - hasNew && !(isDiscoverFeed && gate('disable_poll_on_discover_v2')) - return ( @@ -136,11 +129,11 @@ export function FeedPage({ /> - {(isScrolledDown || adjustedHasNew) && ( + {(isScrolledDown || hasNew) && ( )} diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index d2d31ce6a6..1744c6651c 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -6,7 +6,7 @@ import {PROD_DEFAULT_FEED} from '#/lib/constants' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {useSetTitle} from '#/lib/hooks/useSetTitle' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' -import {logEvent, LogEvents, useGate} from '#/lib/statsig/statsig' +import {logEvent, LogEvents} from '#/lib/statsig/statsig' import {emitSoftReset} from '#/state/events' import {SavedFeedSourceInfo, usePinnedFeedsInfos} from '#/state/queries/feed' import {FeedParams} from '#/state/queries/post-feed' @@ -59,7 +59,6 @@ function HomeScreenReady({ preferences: UsePreferencesQueryResponse pinnedFeedInfos: SavedFeedSourceInfo[] }) { - const gate = useGate() const requestNotificationsPermission = useRequestNotificationsPermission() const allFeeds = React.useMemo( @@ -123,11 +122,9 @@ function HomeScreenReady({ React.useCallback(() => { const listener = AppState.addEventListener('change', nextAppState => { if (nextAppState === 'active') { - if ( - isMobile && - mode.value === 1 && - gate('disable_min_shell_on_foregrounding_v3') - ) { + if (isMobile && mode.value === 1) { + // Reveal the bottom bar so you don't miss notifications or messages. + // TODO: Experiment with only doing it when unread > 0. setMinimalShellMode(false) } } @@ -135,7 +132,7 @@ function HomeScreenReady({ return () => { listener.remove() } - }, [setMinimalShellMode, mode, isMobile, gate]), + }, [setMinimalShellMode, mode, isMobile]), ) const onPageSelected = React.useCallback( From bf8db6172fafcbc791c94ea8e8b797490306525c Mon Sep 17 00:00:00 2001 From: lauren Date: Wed, 22 May 2024 13:46:45 -0400 Subject: [PATCH 172/277] Add React Compiler (#4161) * Install babel-plugin-react-compiler * Install eslint-plugin-react-compiler * Add and configure react-compiler-runtime React Compiler uses a small cache function from React 19 at runtime. Until it's possible to use R19 on RN, this adds a userspace implementation to polyfill the cache function * Add eslint-plugin-react-compiler to config * @lingui/macro should run as the first plugin @lingui recommends running their `macro` plugin [first in the pipeline](https://lingui.dev/ref/macro). Normally with the React Compiler, the compiler plugin should run first as we want to see the original code as it was written. However, this sometimes causes conflicts with other babel plugins. In this case, it looks like the @lingui/macro plugin does some very light transformation that the compiler can still understand and compile correctly, so let's run it first. Before this commit, the compiler would cause the @lingui/macro plugin to crash because it seems like it would strip off the `extra.raw` property off of StringLiterals which was being used [here](https://github.com/lingui/js-lingui/blob/1293412c5dcc565636403443788a5b5d4ca206c1/packages/macro/src/macroJsx.ts#L395). I need to figure out why the compiler is doing that but for now this works and should be a safe change unless there were specific reasons the macro plugin was placed 2nd to last. --- .eslintrc.js | 2 + .prettierignore | 1 + babel.config.js | 8 +- lib/react-compiler-runtime/index.js | 21 ++ lib/react-compiler-runtime/package.json | 9 + package.json | 3 + yarn.lock | 356 +++++++++++++++++++++++- 7 files changed, 386 insertions(+), 14 deletions(-) create mode 100644 lib/react-compiler-runtime/index.js create mode 100644 lib/react-compiler-runtime/package.json diff --git a/.eslintrc.js b/.eslintrc.js index eb7ad04b1e..1d0b30a598 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -13,6 +13,7 @@ module.exports = { 'lingui', 'simple-import-sort', 'bsky-internal', + 'eslint-plugin-react-compiler', ], rules: { // Temporary until https://github.com/facebook/react-native/pull/43756 gets into a release. @@ -67,6 +68,7 @@ module.exports = { }, ], 'simple-import-sort/exports': 'warn', + 'react-compiler/react-compiler': 'error', }, ignorePatterns: [ '**/__mocks__/*.ts', diff --git a/.prettierignore b/.prettierignore index abc221def2..641a1b8bfc 100644 --- a/.prettierignore +++ b/.prettierignore @@ -12,3 +12,4 @@ android ios src/locale/locales +lib/react-compiler-runtime diff --git a/babel.config.js b/babel.config.js index 43b2c7bce3..a54deca7cd 100644 --- a/babel.config.js +++ b/babel.config.js @@ -19,6 +19,13 @@ module.exports = function (api) { ], ], plugins: [ + 'macros', + [ + 'babel-plugin-react-compiler', + { + runtimeModule: 'react-compiler-runtime', + }, + ], [ 'module:react-native-dotenv', { @@ -46,7 +53,6 @@ module.exports = function (api) { }, }, ], - 'macros', 'react-native-reanimated/plugin', // NOTE: this plugin MUST be last ], env: { diff --git a/lib/react-compiler-runtime/index.js b/lib/react-compiler-runtime/index.js new file mode 100644 index 0000000000..44f80e0c98 --- /dev/null +++ b/lib/react-compiler-runtime/index.js @@ -0,0 +1,21 @@ +const React = require('react') +const $empty = Symbol.for('react.memo_cache_sentinel') +/** + * DANGER: this hook is NEVER meant to be called directly! + * + * Note that this is a temporary userspace implementation of this function + * from React 19. It is not as efficient and may invalidate more frequently + * than the official API. Please upgrade to React 19 as soon as you can. + **/ +export function c(size) { + // eslint-disable-next-line react-hooks/rules-of-hooks + return React.useState(() => { + const $ = new Array(size) + for (let ii = 0; ii < size; ii++) { + $[ii] = $empty + } + // @ts-ignore + $[$empty] = true + return $ + })[0] +} diff --git a/lib/react-compiler-runtime/package.json b/lib/react-compiler-runtime/package.json new file mode 100644 index 0000000000..cb8f78bd55 --- /dev/null +++ b/lib/react-compiler-runtime/package.json @@ -0,0 +1,9 @@ +{ + "name": "react-compiler-runtime", + "version": "0.0.1", + "license": "MIT", + "main": "index.js", + "peerDependencies": { + "react": "^18.2.0" + } +} \ No newline at end of file diff --git a/package.json b/package.json index 20c501505e..92c00dfe1d 100644 --- a/package.json +++ b/package.json @@ -161,6 +161,7 @@ "psl": "^1.9.0", "react": "18.2.0", "react-avatar-editor": "^13.0.0", + "react-compiler-runtime": "file:./lib/react-compiler-runtime", "react-dom": "^18.2.0", "react-keyed-flatten-children": "^3.0.0", "react-native": "0.73.2", @@ -235,6 +236,7 @@ "babel-loader": "^9.1.2", "babel-plugin-macros": "^3.1.0", "babel-plugin-module-resolver": "^5.0.0", + "babel-plugin-react-compiler": "^0.0.0-experimental-592953e-20240517", "babel-plugin-react-native-web": "^0.18.12", "babel-preset-expo": "^10.0.0", "eslint": "^8.19.0", @@ -242,6 +244,7 @@ "eslint-plugin-ft-flow": "^2.0.3", "eslint-plugin-lingui": "^0.2.0", "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-compiler": "^0.0.0-experimental-c8b3f72-20240517", "eslint-plugin-react-native-a11y": "^3.3.0", "eslint-plugin-simple-import-sort": "^12.0.0", "html-webpack-plugin": "^5.5.0", diff --git a/yarn.lock b/yarn.lock index 495fe39f5b..c7dc9e3420 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1055,6 +1055,14 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" +"@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.2": + version "7.24.2" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae" + integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== + dependencies: + "@babel/highlight" "^7.24.2" + picocolors "^1.0.0" + "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" @@ -1065,6 +1073,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== +"@babel/compat-data@^7.23.5": + version "7.24.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.4.tgz#6f102372e9094f25d908ca0d34fc74c74606059a" + integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== + "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.16.0", "@babel/core@^7.20.0", "@babel/core@^7.20.2", "@babel/core@^7.7.2", "@babel/core@^7.8.0": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35" @@ -1107,6 +1120,27 @@ json5 "^2.2.3" semver "^6.3.1" +"@babel/core@^7.24.4": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.5.tgz#15ab5b98e101972d171aeef92ac70d8d6718f06a" + integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.24.5" + "@babel/helpers" "^7.24.5" + "@babel/parser" "^7.24.5" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/eslint-parser@^7.16.3", "@babel/eslint-parser@^7.18.2": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.10.tgz#bfdf3d1b32ad573fe7c1c3447e0b485e3a41fd09" @@ -1116,6 +1150,17 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.1" +"@babel/generator@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.0.tgz#eaf3821fa0301d9d4aef88e63d4bcc19b73ba16c" + integrity sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg== + dependencies: + "@babel/types" "^7.2.0" + jsesc "^2.5.1" + lodash "^4.17.10" + source-map "^0.5.0" + trim-right "^1.0.1" + "@babel/generator@^7.20.0", "@babel/generator@^7.22.10", "@babel/generator@^7.7.2": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" @@ -1146,6 +1191,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.5.tgz#e5afc068f932f05616b66713e28d0f04e99daeb3" + integrity sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA== + dependencies: + "@babel/types" "^7.24.5" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -1182,6 +1237,17 @@ lru-cache "^5.1.1" semver "^6.3.1" +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.10", "@babel/helper-create-class-features-plugin@^7.22.5": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz#dd2612d59eac45588021ac3d6fa976d08f4e95a3" @@ -1293,6 +1359,13 @@ dependencies: "@babel/types" "^7.22.15" +"@babel/helper-module-imports@^7.24.3": + version "7.24.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128" + integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== + dependencies: + "@babel/types" "^7.24.0" + "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" @@ -1315,6 +1388,17 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.20" +"@babel/helper-module-transforms@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz#ea6c5e33f7b262a0ae762fd5986355c45f54a545" + integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.24.3" + "@babel/helper-simple-access" "^7.24.5" + "@babel/helper-split-export-declaration" "^7.24.5" + "@babel/helper-validator-identifier" "^7.24.5" + "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" @@ -1361,6 +1445,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-simple-access@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz#50da5b72f58c16b07fbd992810be6049478e85ba" + integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ== + dependencies: + "@babel/types" "^7.24.5" + "@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" @@ -1375,6 +1466,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-split-export-declaration@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz#b9a67f06a46b0b339323617c8c6213b9055a78b6" + integrity sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q== + dependencies: + "@babel/types" "^7.24.5" + "@babel/helper-string-parser@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" @@ -1385,6 +1483,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== +"@babel/helper-string-parser@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" + integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== + "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" @@ -1395,6 +1498,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== +"@babel/helper-validator-identifier@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz#918b1a7fa23056603506370089bd990d8720db62" + integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== + "@babel/helper-validator-option@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" @@ -1405,6 +1513,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + "@babel/helper-wrap-function@^7.22.9": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614" @@ -1432,6 +1545,15 @@ "@babel/traverse" "^7.23.2" "@babel/types" "^7.23.0" +"@babel/helpers@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.5.tgz#fedeb87eeafa62b621160402181ad8585a22a40a" + integrity sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q== + dependencies: + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.22.10": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7" @@ -1450,6 +1572,16 @@ chalk "^2.4.2" js-tokens "^4.0.0" +"@babel/highlight@^7.24.2": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.5.tgz#bc0613f98e1dd0720e99b2a9ee3760194a704b6e" + integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.5" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + "@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.22.10", "@babel/parser@^7.22.5": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55" @@ -1460,6 +1592,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== +"@babel/parser@^7.24.0", "@babel/parser@^7.24.4", "@babel/parser@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.5.tgz#4a4d5ab4315579e5398a82dcf636ca80c3392790" + integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" @@ -1557,7 +1694,7 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.16.0": +"@babel/plugin-proposal-private-methods@^7.16.0", "@babel/plugin-proposal-private-methods@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== @@ -2474,6 +2611,15 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" +"@babel/template@^7.24.0": + version "7.24.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" + integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.24.0" + "@babel/types" "^7.24.0" + "@babel/traverse@^7.20.0", "@babel/traverse@^7.22.10", "@babel/traverse@^7.7.2", "@babel/traverse@^7.7.4": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.10.tgz#20252acb240e746d27c2e82b4484f199cf8141aa" @@ -2506,6 +2652,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.5.tgz#972aa0bc45f16983bf64aa1f877b2dd0eea7e6f8" + integrity sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA== + dependencies: + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.24.5" + "@babel/parser" "^7.24.5" + "@babel/types" "^7.24.5" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.22.10", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.10.tgz#4a9e76446048f2c66982d1a989dd12b8a2d2dc03" @@ -2515,6 +2677,15 @@ "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" +"@babel/types@^7.19.0", "@babel/types@^7.2.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.5.tgz#7661930afc638a5383eb0c4aee59b74f38db84d7" + integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== + dependencies: + "@babel/helper-string-parser" "^7.24.1" + "@babel/helper-validator-identifier" "^7.24.5" + to-fast-properties "^2.0.0" + "@babel/types@^7.21.2", "@babel/types@^7.22.15", "@babel/types@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" @@ -4208,6 +4379,15 @@ slash "^3.0.0" write-file-atomic "^4.0.2" +"@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^13.0.0" + "@jest/types@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" @@ -4263,6 +4443,15 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" @@ -4273,6 +4462,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + "@jridgewell/source-map@^0.3.3": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" @@ -4302,6 +4496,14 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" @@ -7615,6 +7817,14 @@ dependencies: "@types/istanbul-lib-coverage" "*" +"@types/istanbul-reports@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + "@types/istanbul-reports@^3.0.0": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" @@ -7916,6 +8126,13 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== +"@types/yargs@^13.0.0": + version "13.0.12" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.12.tgz#d895a88c703b78af0465a9de88aa92c61430b092" + integrity sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ== + dependencies: + "@types/yargs-parser" "*" + "@types/yargs@^15.0.0": version "15.0.15" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.15.tgz#e609a2b1ef9e05d90489c2f5f45bbfb2be092158" @@ -8416,7 +8633,7 @@ ansi-regex@5.0.1, ansi-regex@^5.0.0, ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-regex@^4.1.0: +ansi-regex@^4.0.0, ansi-regex@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== @@ -8936,6 +9153,19 @@ babel-plugin-polyfill-regenerator@^0.5.2: dependencies: "@babel/helper-define-polyfill-provider" "^0.4.2" +babel-plugin-react-compiler@^0.0.0-experimental-592953e-20240517: + version "0.0.0-experimental-592953e-20240517" + resolved "https://registry.yarnpkg.com/babel-plugin-react-compiler/-/babel-plugin-react-compiler-0.0.0-experimental-592953e-20240517.tgz#e800fa1550d03573cd5637218dc711f12f642249" + integrity sha512-OjG1SVaeQZaJrqkMFJatg8W/MTow8Ak5rx2SI0ETQBO1XvOk/XZGMbltNCPdFJLKghBYoBjC+Y3Ap/Xr7B01mA== + dependencies: + "@babel/generator" "7.2.0" + "@babel/types" "^7.19.0" + chalk "4" + invariant "^2.2.4" + pretty-format "^24" + zod "^3.22.4" + zod-validation-error "^2.1.0" + babel-plugin-react-native-web@^0.18.12, babel-plugin-react-native-web@~0.18.10: version "0.18.12" resolved "https://registry.yarnpkg.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.12.tgz#3e9764484492ea612a16b40135b07c2d05b7969d" @@ -9294,6 +9524,16 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4 node-releases "^2.0.13" update-browserslist-db "^1.0.11" +browserslist@^4.22.2: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -9467,6 +9707,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz" integrity sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ== +caniuse-lite@^1.0.30001587: + version "1.0.30001620" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz#78bb6f35b8fe315b96b8590597094145d0b146b4" + integrity sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew== + case-anything@^2.1.13: version "2.1.13" resolved "https://registry.yarnpkg.com/case-anything/-/case-anything-2.1.13.tgz#0cdc16278cb29a7fcdeb072400da3f342ba329e9" @@ -9503,6 +9748,14 @@ cborg@^1.6.0: resolved "https://registry.yarnpkg.com/cborg/-/cborg-1.10.2.tgz#83cd581b55b3574c816f82696307c7512db759a1" integrity sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug== +chalk@4, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" @@ -9525,14 +9778,6 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -10861,6 +11106,11 @@ electron-to-chromium@^1.4.477: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.498.tgz#cef35341123f62a35ba7084e439c911d25e0d81b" integrity sha512-4LODxAzKGVy7CJyhhN5mebwe7U2L29P+0G+HUriHnabm0d7LSff8Yn7t+Wq+2/9ze2Fu1dhX7mww090xfv7qXQ== +electron-to-chromium@^1.4.668: + version "1.4.777" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.777.tgz#f846fbba23fd11b3c6f97848cdda94896fdb8baf" + integrity sha512-n02NCwLJ3wexLfK/yQeqfywCblZqLcXphzmid5e8yVPdtEcida7li0A5WQKghHNG0FeOMCzeFOzEbtAh5riXFw== + elliptic@^6.4.1: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -11174,6 +11424,11 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -11347,6 +11602,18 @@ eslint-plugin-prettier@^4.2.1: dependencies: prettier-linter-helpers "^1.0.0" +eslint-plugin-react-compiler@^0.0.0-experimental-c8b3f72-20240517: + version "0.0.0-experimental-c8b3f72-20240517" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-compiler/-/eslint-plugin-react-compiler-0.0.0-experimental-c8b3f72-20240517.tgz#56b512aa0d6dbf051be0d297bde1d696e412bc50" + integrity sha512-cxUTFNMEKiLX6uFaRfrr2GHnB7KUHDMYLjEGzDec82ka6WyBCHg906nGSf3JvVnQKHaBDfUk7Mmv/JMvdgQB8Q== + dependencies: + "@babel/core" "^7.24.4" + "@babel/parser" "^7.24.4" + "@babel/plugin-proposal-private-methods" "^7.18.6" + hermes-parser "^0.20.1" + zod "^3.22.4" + zod-validation-error "^3.0.3" + eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" @@ -12942,6 +13209,11 @@ hermes-estree@0.18.2: resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.18.2.tgz#fd450fa1659cf074ceaa2ddeeb21674f3b2342f3" integrity sha512-KoLsoWXJ5o81nit1wSyEZnWUGy9cBna9iYMZBR7skKh7okYAYKqQ9/OczwpMHn/cH0hKDyblulGsJ7FknlfVxQ== +hermes-estree@0.20.1: + version "0.20.1" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.20.1.tgz#0b9a544cf883a779a8e1444b915fa365bef7f72d" + integrity sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg== + hermes-parser@0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.15.0.tgz#f611a297c2a2dbbfbce8af8543242254f604c382" @@ -12956,6 +13228,13 @@ hermes-parser@0.18.2: dependencies: hermes-estree "0.18.2" +hermes-parser@^0.20.1: + version "0.20.1" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.20.1.tgz#ad10597b99f718b91e283f81cbe636c50c3cff92" + integrity sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA== + dependencies: + hermes-estree "0.20.1" + hermes-profile-transformer@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz#bd0f5ecceda80dd0ddaae443469ab26fb38fc27b" @@ -15545,7 +15824,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.13, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: +lodash@^4.17.10, lodash@^4.17.13, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -16388,6 +16667,11 @@ node-releases@^2.0.13: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + node-stream-zip@^1.9.1: version "1.15.0" resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" @@ -17105,6 +17389,11 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" @@ -17909,6 +18198,16 @@ pretty-error@^4.0.0: lodash "^4.17.20" renderkid "^3.0.0" +pretty-format@^24: + version "24.9.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== + dependencies: + "@jest/types" "^24.9.0" + ansi-regex "^4.0.0" + ansi-styles "^3.2.0" + react-is "^16.8.4" + pretty-format@^26.5.2, pretty-format@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" @@ -18354,6 +18653,9 @@ react-avatar-editor@^13.0.0: "@babel/runtime" "^7.12.5" prop-types "^15.7.2" +"react-compiler-runtime@file:./lib/react-compiler-runtime": + version "0.0.1" + react-dev-utils@^12.0.1: version "12.0.1" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" @@ -18415,7 +18717,7 @@ react-freeze@^1.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-is@^16.13.0, react-is@^16.13.1, react-is@^16.7.0: +react-is@^16.13.0, react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.4: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -19810,7 +20112,7 @@ source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, sourc resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.5.6: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== @@ -20704,6 +21006,11 @@ traverse@~0.6.6: resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== + tryer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" @@ -21048,6 +21355,14 @@ update-browserslist-db@^1.0.11: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.0.13: + version "1.0.16" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" + integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + update-check@1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/update-check/-/update-check-1.5.3.tgz#45240fcfb8755a7c7fa68bbdd9eda026a41639ed" @@ -22113,7 +22428,22 @@ zeego@^1.6.2: "@radix-ui/react-dropdown-menu" "^2.0.1" sf-symbols-typescript "^1.0.0" +zod-validation-error@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-2.1.0.tgz#208eac75237dfed47c0018d2fe8fd03501bfc9ac" + integrity sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ== + +zod-validation-error@^3.0.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-3.3.0.tgz#2cfe81b62d044e0453d1aa3ae7c32a2f36dde9af" + integrity sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw== + zod@^3.14.2, zod@^3.20.2, zod@^3.21.4: version "3.22.2" resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.2.tgz#3add8c682b7077c05ac6f979fea6998b573e157b" integrity sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg== + +zod@^3.22.4: + version "3.23.8" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== From 0c2fb13516fa2a2e468f28651499637ba5c90a6c Mon Sep 17 00:00:00 2001 From: dan Date: Wed, 22 May 2024 19:04:28 +0100 Subject: [PATCH 173/277] [Temporary] Disable React Compiler lint rules (#4172) --- .eslintrc.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index 1d0b30a598..541b3d6153 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -68,7 +68,8 @@ module.exports = { }, ], 'simple-import-sort/exports': 'warn', - 'react-compiler/react-compiler': 'error', + // TODO: Reenable when we figure out why it gets stuck on CI. + // 'react-compiler/react-compiler': 'error', }, ignorePatterns: [ '**/__mocks__/*.ts', From 03655abb7cfbe8fea3f73fc4a298e54364c1de63 Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 22 May 2024 14:19:47 -0700 Subject: [PATCH 174/277] wrap web in disabled keyboard provider (#4176) --- src/App.web.tsx | 69 ++++++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/src/App.web.tsx b/src/App.web.tsx index 900ceefd7c..5c4dc4e637 100644 --- a/src/App.web.tsx +++ b/src/App.web.tsx @@ -2,6 +2,7 @@ import 'lib/sentry' // must be near top import 'view/icons' import React, {useEffect, useState} from 'react' +import {KeyboardProvider} from 'react-native-keyboard-controller' import {RootSiblingParent} from 'react-native-root-siblings' import {SafeAreaProvider} from 'react-native-safe-area-context' import {msg} from '@lingui/macro' @@ -78,39 +79,41 @@ function InnerApp() { if (!isReady) return null return ( - - - - - - - - {/* LabelDefsProvider MUST come before ModerationOptsProvider */} - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + {/* LabelDefsProvider MUST come before ModerationOptsProvider */} + + + + + + + + + + + + + + + + + + + + + + + + ) } From acf1def6c1eeea5a717ad76550341d692e92d95c Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Thu, 23 May 2024 02:09:17 +0100 Subject: [PATCH 175/277] [Session] Persist updates from inactive agent --- src/state/session/__tests__/session-test.ts | 30 ++++++++++----------- src/state/session/reducer.ts | 9 +++++-- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/state/session/__tests__/session-test.ts b/src/state/session/__tests__/session-test.ts index 403785858f..daf8d70c2c 100644 --- a/src/state/session/__tests__/session-test.ts +++ b/src/state/session/__tests__/session-test.ts @@ -872,7 +872,7 @@ describe('session', () => { expect(state.accounts[0].accessJwt).toBe('alice-access-jwt-3') }) - it('ignores updates from a stale agent', () => { + it('accepts updates from a stale agent', () => { let state = getInitialState([]) const agent1 = new BskyAgent({service: 'https://alice.com'}) @@ -928,10 +928,10 @@ describe('session', () => { ]) expect(state.accounts.length).toBe(2) expect(state.accounts[1].did).toBe('alice-did') - // Should retain the old values because Alice is not active. - expect(state.accounts[1].handle).toBe('alice.test') - expect(state.accounts[1].accessJwt).toBe('alice-access-jwt-1') - expect(state.accounts[1].refreshJwt).toBe('alice-refresh-jwt-1') + // Should update Alice's tokens because otherwise they'll be stale. + expect(state.accounts[1].handle).toBe('alice-updated.test') + expect(state.accounts[1].accessJwt).toBe('alice-access-jwt-2') + expect(state.accounts[1].refreshJwt).toBe('alice-refresh-jwt-2') expect(printState(state)).toMatchInlineSnapshot(` { "accounts": [ @@ -948,15 +948,15 @@ describe('session', () => { "service": "https://bob.com/", }, { - "accessJwt": "alice-access-jwt-1", + "accessJwt": "alice-access-jwt-2", "deactivated": false, "did": "alice-did", - "email": undefined, + "email": "alice@foo.bar", "emailAuthFactor": false, "emailConfirmed": false, - "handle": "alice.test", + "handle": "alice-updated.test", "pdsUrl": undefined, - "refreshJwt": "alice-refresh-jwt-1", + "refreshJwt": "alice-refresh-jwt-2", "service": "https://alice.com/", }, ], @@ -988,7 +988,7 @@ describe('session', () => { ]) expect(state.accounts.length).toBe(2) expect(state.accounts[0].did).toBe('bob-did') - // Should update the values because Bob is active. + // Should update Bob's tokens because otherwise they'll be stale. expect(state.accounts[0].handle).toBe('bob-updated.test') expect(state.accounts[0].accessJwt).toBe('bob-access-jwt-2') expect(state.accounts[0].refreshJwt).toBe('bob-refresh-jwt-2') @@ -1008,15 +1008,15 @@ describe('session', () => { "service": "https://bob.com/", }, { - "accessJwt": "alice-access-jwt-1", + "accessJwt": "alice-access-jwt-2", "deactivated": false, "did": "alice-did", - "email": undefined, + "email": "alice@foo.bar", "emailAuthFactor": false, "emailConfirmed": false, - "handle": "alice.test", + "handle": "alice-updated.test", "pdsUrl": undefined, - "refreshJwt": "alice-refresh-jwt-1", + "refreshJwt": "alice-refresh-jwt-2", "service": "https://alice.com/", }, ], @@ -1030,7 +1030,7 @@ describe('session', () => { } `) - // Ignore other events for inactive agent too. + // Ignore other events for inactive agent. const lastState = state agent1.session = undefined state = run(state, [ diff --git a/src/state/session/reducer.ts b/src/state/session/reducer.ts index 775a6d0381..7f30809353 100644 --- a/src/state/session/reducer.ts +++ b/src/state/session/reducer.ts @@ -68,8 +68,13 @@ export function reducer(state: State, action: Action): State { switch (action.type) { case 'received-agent-event': { const {agent, accountDid, refreshedAccount, sessionEvent} = action - if (agent !== state.currentAgentState.agent) { - // Only consider events from the active agent. + if ( + refreshedAccount === undefined && + agent !== state.currentAgentState.agent + ) { + // If the session got cleared out (e.g. due to expiry or network error) but + // this account isn't the active one, don't clear it out at this time. + // This way, if the problem is transient, it'll work on next resume. return state } if (sessionEvent === 'network-error') { From 8938fc87a089cc51cabcb7d69ec56d0c69bfffcb Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Thu, 23 May 2024 02:45:50 +0100 Subject: [PATCH 176/277] [Session] Dispose of stale agents immediately --- src/state/session/index.tsx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx index b5a985e67d..af8417f8d7 100644 --- a/src/state/session/index.tsx +++ b/src/state/session/index.tsx @@ -208,6 +208,19 @@ export function Provider({children}: React.PropsWithChildren<{}>) { if (IS_DEV && isWeb) window.agent = state.currentAgentState.agent const agent = state.currentAgentState.agent as BskyAgent + const currentAgentRef = React.useRef(agent) + React.useEffect(() => { + if (currentAgentRef.current !== agent) { + // Read the previous value and immediately advance the pointer. + const prevAgent = currentAgentRef.current + currentAgentRef.current = agent + // We never reuse agents so let's fully neutralize the previous one. + // This ensures it won't try to consume any refresh tokens. + prevAgent.session = undefined + prevAgent.setPersistSessionHandler(undefined) + } + }, [agent]) + return ( From 69f468485928f7c325eef8854caa177d72da2f0c Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 22 May 2024 19:44:37 -0700 Subject: [PATCH 177/277] Handle zero bottom inset on iOS (#4184) * set message padding to a minimum of 60 and max of 70 * adjust range --- src/screens/Messages/Conversation/MessagesList.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index ce466d95e4..a03d6bc034 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -16,10 +16,11 @@ import {useSafeAreaInsets} from 'react-native-safe-area-context' import {AppBskyRichtextFacet, RichText} from '@atproto/api' import {shortenLinks} from '#/lib/strings/rich-text-manip' -import {isIOS, isNative} from '#/platform/detection' +import {isNative} from '#/platform/detection' import {isConvoActive, useConvoActive} from '#/state/messages/convo' import {ConvoItem, ConvoStatus} from '#/state/messages/convo/types' import {useAgent} from '#/state/session' +import {clamp} from 'lib/numbers' import {ScrollProvider} from 'lib/ScrollContext' import {isWeb} from 'platform/detection' import {List} from 'view/com/util/List' @@ -221,8 +222,7 @@ export function MessagesList({ // -- Keyboard animation handling const {bottom: bottomInset} = useSafeAreaInsets() - const nativeBottomBarHeight = isIOS ? 42 : 60 - const bottomOffset = isWeb ? 0 : bottomInset + nativeBottomBarHeight + const bottomOffset = isWeb ? 0 : clamp(60 + bottomInset, 60, 75) const keyboardHeight = useSharedValue(0) const keyboardIsOpening = useSharedValue(false) From 334483ad9a77ae7a83873264565f9a85241bd50a Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 23 May 2024 03:52:46 +0100 Subject: [PATCH 178/277] [Embeds] stop adding tracking params to non-bsky.app links (#4167) * don't add tracking params on non-bsky.app links * validate facets --- bskyembed/.eslintrc | 2 +- bskyembed/src/components/embed.tsx | 5 +++-- bskyembed/src/components/link.tsx | 8 +++++--- bskyembed/src/components/post.tsx | 33 ++++++++++++++++++++++-------- bskyembed/src/screens/landing.tsx | 4 ++-- bskyembed/src/screens/post.tsx | 4 ++-- 6 files changed, 37 insertions(+), 19 deletions(-) diff --git a/bskyembed/.eslintrc b/bskyembed/.eslintrc index 339900dd09..e6e575a11c 100644 --- a/bskyembed/.eslintrc +++ b/bskyembed/.eslintrc @@ -15,6 +15,6 @@ "parserOptions": { "sourceType": "module", "ecmaVersion": "latest", - "project": "./tsconfig.json" + "project": "./bskyembed/tsconfig.json" } } \ No newline at end of file diff --git a/bskyembed/src/components/embed.tsx b/bskyembed/src/components/embed.tsx index 4457defce4..1dadfee38e 100644 --- a/bskyembed/src/components/embed.tsx +++ b/bskyembed/src/components/embed.tsx @@ -193,7 +193,7 @@ export function Embed({ function Info({children}: {children: ComponentChildren}) { return (
- +

{children}

) @@ -293,7 +293,8 @@ function ExternalEmbed({ return ( + className="w-full rounded-lg overflow-hidden border flex flex-col items-stretch" + disableTracking> {content.external.thumb && ( ) { const searchParam = new URLSearchParams(window.location.search) const ref_url = searchParam.get('ref_url') @@ -19,9 +21,9 @@ export function Link({ return ( evt.stopPropagation()} diff --git a/bskyembed/src/components/post.tsx b/bskyembed/src/components/post.tsx index 3f2c745bdd..d23c84cbfb 100644 --- a/bskyembed/src/components/post.tsx +++ b/bskyembed/src/components/post.tsx @@ -1,4 +1,9 @@ -import {AppBskyFeedDefs, AppBskyFeedPost, RichText} from '@atproto/api' +import { + AppBskyFeedDefs, + AppBskyFeedPost, + AppBskyRichtextFacet, + RichText, +} from '@atproto/api' import {h} from 'preact' import replyIcon from '../../assets/bubble_filled_stroke2_corner2_rounded.svg' @@ -56,7 +61,7 @@ export function Post({thread}: Props) { - + @@ -71,7 +76,7 @@ export function Post({thread}: Props) {
{!!post.likeCount && (
- +

{post.likeCount}

@@ -79,14 +84,14 @@ export function Post({thread}: Props) { )} {!!post.repostCount && (
- +

{post.repostCount}

)}
- +

Reply

@@ -118,16 +123,23 @@ function PostContent({record}: {record: AppBskyFeedPost.Record | null}) { let counter = 0 for (const segment of rt.segments()) { - if (segment.isLink() && segment.link) { + if ( + segment.link && + AppBskyRichtextFacet.validateLink(segment.link).success + ) { richText.push( + className="text-blue-400 hover:underline" + disableTracking={!segment.link.uri.startsWith('https://bsky.app')}> {segment.text} , ) - } else if (segment.isMention() && segment.mention) { + } else if ( + segment.mention && + AppBskyRichtextFacet.validateMention(segment.mention).success + ) { richText.push( , ) - } else if (segment.isTag() && segment.tag) { + } else if ( + segment.tag && + AppBskyRichtextFacet.validateTag(segment.tag).success + ) { richText.push( - +

Embed a Bluesky Post

@@ -125,7 +125,7 @@ function LandingPage() { placeholder={DEFAULT_POST} /> - + {loading ? ( diff --git a/bskyembed/src/screens/post.tsx b/bskyembed/src/screens/post.tsx index 365227cd47..337bf01007 100644 --- a/bskyembed/src/screens/post.tsx +++ b/bskyembed/src/screens/post.tsx @@ -52,7 +52,7 @@ function PwiOptOut({thread}: {thread: AppBskyFeedDefs.ThreadViewPost}) { - +

@@ -75,7 +75,7 @@ function ErrorMessage() { - +

Post not found, it may have been deleted. From efdcfd09e6040fd6fd9a6bfe090733ff7ebe00b3 Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 22 May 2024 20:15:38 -0700 Subject: [PATCH 179/277] Bump 1.84.0 (#4185) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 92c00dfe1d..2680b2d1bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bsky.app", - "version": "1.83.0", + "version": "1.84.0", "private": true, "engines": { "node": ">=18" From 2c6c906934a0b567e4e63025d1f69d534776b79d Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 23 May 2024 10:08:37 -0500 Subject: [PATCH 180/277] =?UTF-8?q?[=F0=9F=90=B4]=20Suspend=20event=20bus?= =?UTF-8?q?=20when=20switching=20accounts=20(#4190)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Suspend event bus when switching accounts * Make effect symmetrical --- src/state/messages/events/index.tsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/state/messages/events/index.tsx b/src/state/messages/events/index.tsx index b0be73b109..6bf7923247 100644 --- a/src/state/messages/events/index.tsx +++ b/src/state/messages/events/index.tsx @@ -1,10 +1,8 @@ import React from 'react' import {AppState} from 'react-native' -import {isWeb} from '#/platform/detection' import {MessagesEventBus} from '#/state/messages/events/agent' import {useAgent} from '#/state/session' -import {IS_DEV} from '#/env' const MessagesEventBusContext = React.createContext( null, @@ -32,9 +30,10 @@ export function MessagesEventBusProvider({ ) React.useEffect(() => { - if (isWeb && IS_DEV) { - // @ts-ignore - window.bus = bus + bus.resume() + + return () => { + bus.suspend() } }, [bus]) From d0516143423afaf6fe9c6db71ee67e5aef99b013 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 23 May 2024 08:45:24 -0700 Subject: [PATCH 181/277] implement a safari hack for ime (#4186) remove debug logs use a better hack implement a safari hack extract `isSafari` and `isFirefox` to a global variable --- src/lib/browser.native.ts | 2 ++ src/lib/browser.ts | 6 ++++++ src/lib/strings/embed-player.ts | 5 +---- .../Conversation/MessageInput.web.tsx | 20 +++++++++++++++++++ src/view/com/util/List.web.tsx | 3 +-- 5 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 src/lib/browser.native.ts create mode 100644 src/lib/browser.ts diff --git a/src/lib/browser.native.ts b/src/lib/browser.native.ts new file mode 100644 index 0000000000..3ac238b94f --- /dev/null +++ b/src/lib/browser.native.ts @@ -0,0 +1,2 @@ +export const isSafari = false +export const isFirefox = false diff --git a/src/lib/browser.ts b/src/lib/browser.ts new file mode 100644 index 0000000000..d5ecb4e851 --- /dev/null +++ b/src/lib/browser.ts @@ -0,0 +1,6 @@ +// https://stackoverflow.com/questions/7944460/detect-safari-browser +export const isSafari = /^((?!chrome|android).)*safari/i.test( + navigator.userAgent, +) + +export const isFirefox = /firefox|fxios/i.test(navigator.userAgent) diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts index d84ccc726e..54649f1431 100644 --- a/src/lib/strings/embed-player.ts +++ b/src/lib/strings/embed-player.ts @@ -1,5 +1,6 @@ import {Dimensions, Platform} from 'react-native' +import {isSafari} from 'lib/browser' import {isWeb} from 'platform/detection' const {height: SCREEN_HEIGHT} = Dimensions.get('window') @@ -353,10 +354,6 @@ export function parseEmbedPlayerFromUrl( if (id && filename && dimensions && id.includes('AAAAC')) { if (Platform.OS === 'web') { - const isSafari = /^((?!chrome|android).)*safari/i.test( - navigator.userAgent, - ) - if (isSafari) { id = id.replace('AAAAC', 'AAAP1') filename = filename.replace('.gif', '.mp4') diff --git a/src/screens/Messages/Conversation/MessageInput.web.tsx b/src/screens/Messages/Conversation/MessageInput.web.tsx index 3e78608a70..55599bed6b 100644 --- a/src/screens/Messages/Conversation/MessageInput.web.tsx +++ b/src/screens/Messages/Conversation/MessageInput.web.tsx @@ -10,6 +10,7 @@ import { useMessageDraft, useSaveMessageDraft, } from '#/state/messages/message-drafts' +import {isSafari} from 'lib/browser' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {useSharedInputStyles} from '#/components/forms/TextField' @@ -47,6 +48,25 @@ export function MessageInput({ (e: React.KeyboardEvent) => { // Don't submit the form when the Japanese or any other IME is composing if (isComposing.current) return + + // see https://github.com/bluesky-social/social-app/issues/4178 + // see https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/ + // see https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html + // + // On Safari, the final keydown event to dismiss the IME - which is the enter key - is also "Enter" below. + // Obviously, this causes problems because the final dismissal should _not_ submit the text, but should just + // stop the IME editing. This is the behavior of Chrome and Firefox, but not Safari. + // + // Keycode is deprecated, however the alternative seems to only be to compare the timestamp from the + // onCompositionEnd event to the timestamp of the keydown event, which is not reliable. For example, this hack + // uses that method: https://github.com/ProseMirror/prosemirror-view/pull/44. However, from my 500ms resulted in + // far too long of a delay, and a subsequent enter press would often just end up doing nothing. A shorter time + // frame was also not great, since it was too short to be reliable (i.e. an older system might have a larger + // time gap between the two events firing. + if (isSafari && e.key === 'Enter' && e.keyCode === 229) { + return + } + if (e.key === 'Enter') { if (e.shiftKey) return e.preventDefault() diff --git a/src/view/com/util/List.web.tsx b/src/view/com/util/List.web.tsx index 7f192686da..9d8ddedaa3 100644 --- a/src/view/com/util/List.web.tsx +++ b/src/view/com/util/List.web.tsx @@ -5,6 +5,7 @@ import {ReanimatedScrollEvent} from 'react-native-reanimated/lib/typescript/rean import {batchedUpdates} from '#/lib/batchedUpdates' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {useScrollHandlers} from '#/lib/ScrollContext' +import {isFirefox, isSafari} from 'lib/browser' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {addStyle} from 'lib/styles' @@ -503,8 +504,6 @@ export const List = memo(React.forwardRef(ListImpl)) as ( ) => React.ReactElement // https://stackoverflow.com/questions/7944460/detect-safari-browser -const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent) -const isFirefox = /firefox|fxios/i.test(navigator.userAgent) const styles = StyleSheet.create({ sideBorders: { From 9011c11eafb22eed6930b32f5749886acb3a0e76 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 23 May 2024 11:54:22 -0500 Subject: [PATCH 182/277] Reduce polling when app is backgrounded (#4192) --- src/state/messages/events/agent.ts | 8 +++++++- src/state/messages/events/const.ts | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/state/messages/events/agent.ts b/src/state/messages/events/agent.ts index 3759eb3a08..0389c77f58 100644 --- a/src/state/messages/events/agent.ts +++ b/src/state/messages/events/agent.ts @@ -4,7 +4,10 @@ import {nanoid} from 'nanoid/non-secure' import {networkRetry} from '#/lib/async/retry' import {logger} from '#/logger' -import {DEFAULT_POLL_INTERVAL} from '#/state/messages/events/const' +import { + BACKGROUND_POLL_INTERVAL, + DEFAULT_POLL_INTERVAL, +} from '#/state/messages/events/const' import { MessagesEventBusDispatch, MessagesEventBusDispatchEvent, @@ -287,6 +290,9 @@ export class MessagesEventBus { const lowest = Math.min(DEFAULT_POLL_INTERVAL, ...requested) return lowest } + case MessagesEventBusStatus.Backgrounded: { + return BACKGROUND_POLL_INTERVAL + } default: return DEFAULT_POLL_INTERVAL } diff --git a/src/state/messages/events/const.ts b/src/state/messages/events/const.ts index 921557ce5c..a7c07d0d00 100644 --- a/src/state/messages/events/const.ts +++ b/src/state/messages/events/const.ts @@ -1 +1,2 @@ export const DEFAULT_POLL_INTERVAL = 20e3 +export const BACKGROUND_POLL_INTERVAL = 60e3 From 17e0cb62a8f2de113286f154f3d7b59f32ce3669 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 23 May 2024 17:55:27 +0100 Subject: [PATCH 183/277] stop line breaks for timeelapsed (#4191) --- src/screens/Messages/List/ChatListItem.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/screens/Messages/List/ChatListItem.tsx b/src/screens/Messages/List/ChatListItem.tsx index 47a5772ad3..52fae7d291 100644 --- a/src/screens/Messages/List/ChatListItem.tsx +++ b/src/screens/Messages/List/ChatListItem.tsx @@ -216,6 +216,7 @@ function ChatListItemReady({ a.text_sm, {lineHeight: 21}, t.atoms.text_contrast_medium, + web({whiteSpace: 'preserve nowrap'}), ]}> {' '} · {timeElapsed} @@ -229,6 +230,7 @@ function ChatListItemReady({ a.text_sm, {lineHeight: 21}, t.atoms.text_contrast_medium, + web({whiteSpace: 'preserve nowrap'}), ]}> {' '} ·{' '} From 3d1ed04a70aff9c08b713392ac0a4d3856ae16e9 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 23 May 2024 12:00:56 -0500 Subject: [PATCH 184/277] =?UTF-8?q?[=F0=9F=90=B4]=20Do=20not=20init=20even?= =?UTF-8?q?t=20bus=20if=20no=20session=20(#4193)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Do not init event bus if no session * Be explicit * Simplify, fix log --- src/state/messages/events/index.tsx | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/state/messages/events/index.tsx b/src/state/messages/events/index.tsx index 6bf7923247..d972c8c6a6 100644 --- a/src/state/messages/events/index.tsx +++ b/src/state/messages/events/index.tsx @@ -2,7 +2,7 @@ import React from 'react' import {AppState} from 'react-native' import {MessagesEventBus} from '#/state/messages/events/agent' -import {useAgent} from '#/state/session' +import {useAgent, useSession} from '#/state/session' const MessagesEventBusContext = React.createContext( null, @@ -11,7 +11,9 @@ const MessagesEventBusContext = React.createContext( export function useMessagesEventBus() { const ctx = React.useContext(MessagesEventBusContext) if (!ctx) { - throw new Error('useChat must be used within a ChatProvider') + throw new Error( + 'useMessagesEventBus must be used within a MessagesEventBusProvider', + ) } return ctx } @@ -20,6 +22,26 @@ export function MessagesEventBusProvider({ children, }: { children: React.ReactNode +}) { + const {currentAccount} = useSession() + + if (!currentAccount) { + return ( + + {children} + + ) + } + + return ( + {children} + ) +} + +export function MessagesEventBusProviderInner({ + children, +}: { + children: React.ReactNode }) { const {getAgent} = useAgent() const [bus] = React.useState( From 5217876f241a991e55d789cd5faa8d8ab1890d1b Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 23 May 2024 10:01:31 -0700 Subject: [PATCH 185/277] Add padding to dialogs when keyboard is open on Android (#4182) * add keyboard padding to android dialogs * missing `keyboardDismissMode` for `ScrollableInner` * add to `MutedWords` * add to `LabelsOnMe` --- src/components/Dialog/index.tsx | 12 +++++-- src/components/KeyboardPadding.android.tsx | 31 +++++++++++++++++++ src/components/KeyboardPadding.tsx | 3 ++ src/components/ReportDialog/SubmitView.tsx | 2 ++ src/components/dialogs/MutedWords.tsx | 2 ++ .../moderation/LabelsOnMeDialog.tsx | 3 +- src/view/com/composer/GifAltText.tsx | 2 ++ src/view/com/modals/Modal.tsx | 2 ++ 8 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 src/components/KeyboardPadding.android.tsx create mode 100644 src/components/KeyboardPadding.tsx diff --git a/src/components/Dialog/index.tsx b/src/components/Dialog/index.tsx index 315f863b5e..f32e0e79ec 100644 --- a/src/components/Dialog/index.tsx +++ b/src/components/Dialog/index.tsx @@ -1,5 +1,12 @@ import React, {useImperativeHandle} from 'react' -import {Dimensions, Pressable, StyleProp, View, ViewStyle} from 'react-native' +import { + Dimensions, + Keyboard, + Pressable, + StyleProp, + View, + ViewStyle, +} from 'react-native' import Animated, {useAnimatedStyle} from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' import BottomSheet, { @@ -169,7 +176,8 @@ export function Outer({ // Android importantForAccessibility="yes" style={[a.absolute, a.inset_0]} - testID={testID}> + testID={testID} + onTouchMove={() => Keyboard.dismiss()}> { + 'worklet' + + if (maxHeight && e.height > maxHeight) { + keyboardHeight.value = maxHeight + } else { + keyboardHeight.value = e.height + } + }, + }, + [maxHeight], + ) + + const animatedStyle = useAnimatedStyle(() => ({ + height: keyboardHeight.value, + })) + + return +} diff --git a/src/components/KeyboardPadding.tsx b/src/components/KeyboardPadding.tsx new file mode 100644 index 0000000000..797d42ba0a --- /dev/null +++ b/src/components/KeyboardPadding.tsx @@ -0,0 +1,3 @@ +export function KeyboardPadding({maxHeight: _}: {maxHeight?: number}) { + return null +} diff --git a/src/components/ReportDialog/SubmitView.tsx b/src/components/ReportDialog/SubmitView.tsx index 40d655aa90..e921d102a9 100644 --- a/src/components/ReportDialog/SubmitView.tsx +++ b/src/components/ReportDialog/SubmitView.tsx @@ -15,6 +15,7 @@ import * as Dialog from '#/components/Dialog' import * as Toggle from '#/components/forms/Toggle' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import {ChevronLeft_Stroke2_Corner0_Rounded as ChevronLeft} from '#/components/icons/Chevron' +import {KeyboardPadding} from '#/components/KeyboardPadding' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' import {ReportDialogProps} from './types' @@ -221,6 +222,7 @@ export function SubmitView({ {submitting && } + ) } diff --git a/src/components/dialogs/MutedWords.tsx b/src/components/dialogs/MutedWords.tsx index 534263422d..dea819412c 100644 --- a/src/components/dialogs/MutedWords.tsx +++ b/src/components/dialogs/MutedWords.tsx @@ -28,6 +28,7 @@ import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Has import {PageText_Stroke2_Corner0_Rounded as PageText} from '#/components/icons/PageText' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import {TimesLarge_Stroke2_Corner0_Rounded as X} from '#/components/icons/Times' +import {KeyboardPadding} from '#/components/KeyboardPadding' import {Loader} from '#/components/Loader' import * as Prompt from '#/components/Prompt' import {Text} from '#/components/Typography' @@ -256,6 +257,7 @@ function MutedWordsInner() { + ) } diff --git a/src/components/moderation/LabelsOnMeDialog.tsx b/src/components/moderation/LabelsOnMeDialog.tsx index 8583a226f0..2923981fd7 100644 --- a/src/components/moderation/LabelsOnMeDialog.tsx +++ b/src/components/moderation/LabelsOnMeDialog.tsx @@ -14,6 +14,7 @@ import * as Toast from '#/view/com/util/Toast' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' +import {KeyboardPadding} from '#/components/KeyboardPadding' import {InlineLinkText} from '#/components/Link' import {Text} from '#/components/Typography' import {Divider} from '../Divider' @@ -108,8 +109,8 @@ function LabelsOnMeDialogInner(props: LabelsOnMeDialogProps) { )} - + ) } diff --git a/src/view/com/composer/GifAltText.tsx b/src/view/com/composer/GifAltText.tsx index b1f10bf2fc..cdef13352f 100644 --- a/src/view/com/composer/GifAltText.tsx +++ b/src/view/com/composer/GifAltText.tsx @@ -20,6 +20,7 @@ import * as Dialog from '#/components/Dialog' import * as TextField from '#/components/forms/TextField' import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' import {PlusSmall_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' +import {KeyboardPadding} from '#/components/KeyboardPadding' import {Text} from '#/components/Typography' import {GifEmbed} from '../util/post-embeds/GifEmbed' import {AltTextReminder} from './photos/Gallery' @@ -180,6 +181,7 @@ function AltTextInner({ + ) } diff --git a/src/view/com/modals/Modal.tsx b/src/view/com/modals/Modal.tsx index 6524813015..d82975b5e8 100644 --- a/src/view/com/modals/Modal.tsx +++ b/src/view/com/modals/Modal.tsx @@ -5,6 +5,7 @@ import BottomSheet from '@discord/bottom-sheet/src' import {useModalControls, useModals} from '#/state/modals' import {usePalette} from 'lib/hooks/usePalette' +import {KeyboardPadding} from '#/components/KeyboardPadding' import {createCustomBackdrop} from '../util/BottomSheetCustomBackdrop' import * as AddAppPassword from './AddAppPasswords' import * as AltImageModal from './AltImage' @@ -146,6 +147,7 @@ export function ModalsContainer() { handleStyle={[styles.handle, pal.view]} onChange={onBottomSheetChange}> {element} + ) } From b093e0b6739bef3fd178f5469f63871aed4d0aa2 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 23 May 2024 18:05:30 +0100 Subject: [PATCH 186/277] =?UTF-8?q?[=F0=9F=90=B4]=20better=20error=20messa?= =?UTF-8?q?ge=20for=20"Bad=20token=20scope"=20error=20(#4194)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * better error message for "Bad token scope" error * log -> sign --- src/lib/strings/errors.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/strings/errors.ts b/src/lib/strings/errors.ts index 0c11a6706c..899d8ebce4 100644 --- a/src/lib/strings/errors.ts +++ b/src/lib/strings/errors.ts @@ -11,6 +11,9 @@ export function cleanError(str: any): string { if (str.includes('Upstream Failure')) { return 'The server appears to be experiencing issues. Please try again in a few moments.' } + if (str.includes('Bad token scope')) { + return 'This feature is not available while using an App Password. Please sign in with your main password.' + } if (str.startsWith('Error: ')) { return str.slice('Error: '.length) } From 9900d329045132119ed3a2a0a801d4982ef4ba96 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 23 May 2024 10:17:50 -0700 Subject: [PATCH 187/277] Decrease thickness of border on message input (#4196) --- src/screens/Messages/Conversation/MessageInput.tsx | 2 +- src/screens/Messages/Conversation/MessageInput.web.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/screens/Messages/Conversation/MessageInput.tsx b/src/screens/Messages/Conversation/MessageInput.tsx index c690c8ec28..698fc6b7a2 100644 --- a/src/screens/Messages/Conversation/MessageInput.tsx +++ b/src/screens/Messages/Conversation/MessageInput.tsx @@ -109,7 +109,7 @@ export function MessageInput({ { padding: a.p_sm.padding - 2, paddingLeft: a.p_md.padding - 2, - borderWidth: 2, + borderWidth: 1, borderRadius: 23, borderColor: 'transparent', }, diff --git a/src/screens/Messages/Conversation/MessageInput.web.tsx b/src/screens/Messages/Conversation/MessageInput.web.tsx index 55599bed6b..78292b066f 100644 --- a/src/screens/Messages/Conversation/MessageInput.web.tsx +++ b/src/screens/Messages/Conversation/MessageInput.web.tsx @@ -94,7 +94,7 @@ export function MessageInput({ { paddingHorizontal: a.p_sm.padding - 2, paddingLeft: a.p_md.padding - 2, - borderWidth: 2, + borderWidth: 1, borderRadius: 23, borderColor: 'transparent', }, From f924465899ac46d7b3030344d000fcbc3f7feef2 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 23 May 2024 10:34:01 -0700 Subject: [PATCH 188/277] =?UTF-8?q?=E2=9C=8D=EF=B8=8F=20Add=20OTA=20Docs?= =?UTF-8?q?=20(#4187)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add OTA documentation * maybe will look better * nits * one more nit * use the right image --- docs/deploy-ota.md | 81 +++++++++++++++++++++++++++++++++ docs/img/app-build-number.png | Bin 0 -> 27910 bytes docs/img/branch-selection.png | Bin 0 -> 38628 bytes docs/img/ota-flow.png | Bin 0 -> 193872 bytes docs/img/other-ota-options.png | Bin 0 -> 34351 bytes docs/img/run-workflow.png | Bin 0 -> 147384 bytes 6 files changed, 81 insertions(+) create mode 100644 docs/deploy-ota.md create mode 100644 docs/img/app-build-number.png create mode 100644 docs/img/branch-selection.png create mode 100644 docs/img/ota-flow.png create mode 100644 docs/img/other-ota-options.png create mode 100644 docs/img/run-workflow.png diff --git a/docs/deploy-ota.md b/docs/deploy-ota.md new file mode 100644 index 0000000000..e92aebd39c --- /dev/null +++ b/docs/deploy-ota.md @@ -0,0 +1,81 @@ +# OTA Deployments + +## Overview + +![OTA Deployment](./img/ota-flow.png) + +## Internal Deployments + +Internal OTA deployments should be performed automatically upon all merges into main. In cases where the fingerprint +diff results in incompatible native changes, a new client build will automatically be ran and deployed to TestFlight +(iOS) or delivered in Slack (Android). + +## Production Deployments + +### Prerequisites + +- Remove any internal client from your device and download the client from the App Store/Google Play. This will help for +testing as well as retrieving the build number. +- You should have signed in to EAS locally through npx eas login. You will need to modify the build number in a +subsequent step. +- Identify the build number of the production app you want to deploy an update for. iOS and Android build numbers are +divergent, so you will need to find both + + ![app-build-number](./img/app-build-number.png) + +- Ensure that the commit the initial client was cut from is properly tagged in git. The tag should be in the format of 1.X.0 + - Note: If the commit is not properly tagged, then the OTA deployment will simply fail since the GitHub Action will + not be able to find a commit to fingerprint and diff against. + +### Preparation + +- Create a new branch from the git tag that the initial release was cut from if no OTA deployment has been made yet for this +client. Name this branch `1.X.0-ota-1` +- If a deployment has been made previously for this release, increment the branch name, i.e. `1.x.0-ota-2` +- If necessary, cherry-pick the commit(s) that you wish to deploy +- Ensure that the package.json’s version field is set to the appropriate value. As long as used the correct git tag +to create your branch from, this should be properly set. + +### Deployment + +- Update the build number through EAS + - Note: This isn’t strictly necessary, but having a step that takes you off of GitHub and into the terminal provides + a little “friction” to avoid fat fingering a release. Since there are legitimate reasons to just “click and deploy” + for internal builds, I felt it useful to make sure it doesn’t accidentally become a prod deployment. + - Set the build number to the appropriate build number found in the prerequisite steps. Again, this should be the + build number for the current production release you want to deploy for. + - `npx eas build:version:set -p ios` + - `npx eas build:version:set -p android` +- Run the deployment + - Navigate to https://github.com/bluesky-social/social-app/actions/workflows/bundle-deploy-eas-update.yml + - Select the “Run Workflow” dropdown + + ![run-workflow](./img/run-workflow.png) + + - Select the branch for the deployment you are releasing. + + ![branch-selection](./img/branch-selection.png) + + - Double check the branch selection. + - Select the production channel + - Enter the version for the client you are releasing to, i.e. 1.80.0 + - Note: If you do enter an incorrect version here, the deployment will either: + - Fail because the action cannot find a commit with your misentered version + - Succeed - but with no users receiving the update. This is because the version you entered will not properly + correlate to a _build number_ as well, so no clients in the wild will be able to receive the update. + + ![other-ota-options](./img/other-ota-options.png) + + - Triple check the branch selection. + - You selected the correct branch + - You selected the "Production" channel + - You entered the correct version in the format of `1.X.0`. + - Press “Run Workflow” + +In about five minutes, the new deployment should be available for download. To test: + +- Remove the internal build of the app from your device +- Download the app from the App Store/Google Play +- Launch the app once and wait approximately 15 seconds +- Relaunch the app +- Check the Settings page and scroll to the bottom. The commit hash should now be the latest commit on your deployed branch. diff --git a/docs/img/app-build-number.png b/docs/img/app-build-number.png new file mode 100644 index 0000000000000000000000000000000000000000..449309bd339bb525ad7a73b6506ecd8ba3e9e9aa GIT binary patch literal 27910 zcmdSAcUV(T(=ZHzqM{&JkglL0C>^9Fpn@P$mEHveM0)Q;M5XuM66w-=??pn7)KEk3 z2_>N>guL;7?&rCG`o8ZU-*tW8A73~pXEQr9yE`+xXLe=@R#TC`ewE=W2?@z{g;%m~ zNl3`}iRF^Zmx$k+VH?#XB-f;^WMtG7WMuBCIoVrS*_e}%yb6xjrqEIEy#v;Ndq0Ex zMii~rP1$VnDB2g4_nI$1eL;IK?k?H$pAo#=b#64Ij1AnGlceSBZg+kn=qRuDHRzN* zwtxE!?z`%Z@pWErC8V9glASGgn#n$OUjfU;1bn;@^>`?;`x`kw^g$lKg5f6;7ZUm; zQi(_ir-{70Jc-Vw>DEMdQ4%)$Qi;Cm^C^OHXu`83C zLR1limK%(07XR%1?B6smf`(+LzLLF5iYE@LpYeaZUTOgk~HpJWz*q>1#*Rcd__E zxy@{yc)ltr!#LAUCpZPIqAL4;_ zyaQLFF>5y(*KT*^cP|B>Iy~n-+;>s%b7>M(Y2pv1yHgxSVSI^=go6A6M^t;tB@X{5 z_daf0ZTP$Qf#0=}y^SLM()Q-(wXj!j4}um&sBV3hzEAtPsojw@#OVH`PiOGwTAr@t zn<0n`KZ9)cZY>$ypmJJhRuXs(*x;c7_=jzx08n@BVZr8@9#|4dTd1Aj^0>KCso< z1WG!&Ou%VzZ06Ia`X57PRc~e*-r03V{i%HZdm6f z(N6h`65$WK{5k3dL&vjgH`KeXIzBVFac3!%{65XACoy5!Z1h2QqwfnvdA{PRxRC$s z>3xwNqm>&@wBnIf?6uK>uSC%dr(aBeNE8GxWKC>1#C@$8b`WM^jne|RmO3WR%*(u zLw!WUxpXZpShC|bQwZmRkB^`frE!?{!py!`)5X>h=`Qbmdvb>MpoM39Yz|k@)k%=dYPtTpkyFFs|@}hpOusP9tQk>pBy?RQ2D)che^yPl0 z>>KhptGJvvo;Z%ahp#zTg)~Dy${c2Nt5^PT&R-pq*s|IJZZV38h&YR=R^Jtgo@T0c zss?^sA7d%-)qrc&YOnu@R8P$3do!Qw_X1yoWn>7qP{!ot{6bqPeh{frucD};cDXbc zJd{JZQMnm^;Dx=7RlFYZE&h_e*=M;7x#VuYa76}S$}MGU

T{=LCzKwflpqDZYBw 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 literal 0 HcmV?d00001 diff --git a/docs/img/branch-selection.png b/docs/img/branch-selection.png new file mode 100644 index 0000000000000000000000000000000000000000..650583687c25bb8ac35c92df7554504550fdda57 GIT binary patch literal 38628 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 literal 0 HcmV?d00001 diff --git a/docs/img/other-ota-options.png b/docs/img/other-ota-options.png new file mode 100644 index 0000000000000000000000000000000000000000..8715c65c1f766934d493413369e26a4b4836bf48 GIT binary patch literal 34351 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 literal 0 HcmV?d00001 diff --git a/docs/img/run-workflow.png b/docs/img/run-workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..f0aa2fcb1f66824ff94f5d6db2dd9d40d22db5ae GIT binary patch literal 147384 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 literal 0 HcmV?d00001 From 0e77280310e03482525b31d5a907a2820509641b Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 23 May 2024 18:57:23 +0100 Subject: [PATCH 189/277] =?UTF-8?q?[=F0=9F=90=B4]=20add=20link=20to=20chat?= =?UTF-8?q?=20settings=20from=20main=20settings=20(#4197)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add link to chat settings from main settings * move to beneath saved feeds weird ass diff on this commit lol --- src/screens/Messages/Settings.tsx | 2 +- src/view/icons/index.tsx | 2 ++ src/view/screens/Settings/index.tsx | 25 +++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/screens/Messages/Settings.tsx b/src/screens/Messages/Settings.tsx index 2de355e061..0ca87ce987 100644 --- a/src/screens/Messages/Settings.tsx +++ b/src/screens/Messages/Settings.tsx @@ -56,7 +56,7 @@ export function MessagesSettingsScreen({}: Props) { return ( - + Allow new messages from diff --git a/src/view/icons/index.tsx b/src/view/icons/index.tsx index b9af6a519c..025b903b22 100644 --- a/src/view/icons/index.tsx +++ b/src/view/icons/index.tsx @@ -9,6 +9,7 @@ import {faCirclePlay} from '@fortawesome/free-regular-svg-icons/faCirclePlay' import {faCircleUser} from '@fortawesome/free-regular-svg-icons/faCircleUser' import {faClone as farClone} from '@fortawesome/free-regular-svg-icons/faClone' import {faComment} from '@fortawesome/free-regular-svg-icons/faComment' +import {faCommentDots} from '@fortawesome/free-regular-svg-icons/faCommentDots' import {faComments} from '@fortawesome/free-regular-svg-icons/faComments' import {faCompass} from '@fortawesome/free-regular-svg-icons/faCompass' import {faEyeSlash as farEyeSlash} from '@fortawesome/free-regular-svg-icons/faEyeSlash' @@ -142,6 +143,7 @@ library.add( faClone, farClone, faComment, + faCommentDots, faCommentSlash, faComments, faCompass, diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx index c72cb96aec..078ebedabb 100644 --- a/src/view/screens/Settings/index.tsx +++ b/src/view/screens/Settings/index.tsx @@ -615,6 +615,31 @@ export function SettingsScreen({}: Props) { My Saved Feeds + navigation.navigate('MessagesSettings') + } + accessibilityRole="button" + accessibilityLabel={_(msg`Chat settings`)} + accessibilityHint={_(msg`Opens chat settings`)}> + + + + + Chat Settings + + From e5fc0baa6ae1623abc1e8d6a50de00d3927248e2 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 23 May 2024 11:04:20 -0700 Subject: [PATCH 190/277] disable alt text auto focus on Android (#4198) * disable alt text auto focus on Android * revert timeout change --- src/view/com/modals/AltImage.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/view/com/modals/AltImage.tsx b/src/view/com/modals/AltImage.tsx index 197a6079ea..ba489cde7b 100644 --- a/src/view/com/modals/AltImage.tsx +++ b/src/view/com/modals/AltImage.tsx @@ -20,7 +20,7 @@ import {usePalette} from 'lib/hooks/usePalette' import {enforceLen} from 'lib/strings/helpers' import {gradients, s} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' -import {isWeb} from 'platform/detection' +import {isAndroid, isWeb} from 'platform/detection' import {ImageModel} from 'state/models/media/image' import {Text} from '../util/text/Text' import {ScrollView, TextInput} from './util' @@ -44,6 +44,7 @@ export function Component({image}: Props) { // Autofocus hack when we open the modal. We have to wait for the animation to complete first React.useEffect(() => { + if (isAndroid) return setTimeout(() => { inputRef.current?.focus() }, 500) From 6d647551cd2fcf9d66c3795df8f6764bf60f6df1 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 23 May 2024 13:27:53 -0500 Subject: [PATCH 191/277] Log error statuses from failed resume session calls (#4174) * Add log to track how resume fails * Use safe field name * Better log * Properly catch --- src/state/session/agent.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/state/session/agent.ts b/src/state/session/agent.ts index 27e1af4c2b..45013debc2 100644 --- a/src/state/session/agent.ts +++ b/src/state/session/agent.ts @@ -53,7 +53,17 @@ export async function createAgentAndResume( agent.session = prevSession if (!storedAccount.deactivated) { // Intentionally not awaited to unblock the UI: - networkRetry(3, () => agent.resumeSession(prevSession)) + networkRetry(3, () => agent.resumeSession(prevSession)).catch( + (e: any) => { + logger.error(`networkRetry failed to resume session`, { + status: e?.status || 'unknown', + // this field name is ignored by Sentry scrubbers + safeMessage: e?.message || 'unknown', + }) + + throw e + }, + ) } } From 70f190d44f314fa91b860c29e2f04b4955c1b8b2 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 23 May 2024 11:35:49 -0700 Subject: [PATCH 192/277] Remove `getProfile` calls when loading feed (#3881) * remove unnecessary `getProfile()` calls from feed load add comments ensure only if first simplify nit handle cases where the parent is removed add a comment remove unnecessary `getProfile()` calls from feed load limit only to the first post in the returned items move the logic out of the render and into the query add the grandparent properly update `FeedItem` bump package update `FeedItem` update `post-feed` query update `FeedSlice` * nit * simplify logic * always pass `parentAuthor` * oops! * update `DebugMod` --- src/state/queries/post-feed.ts | 7 ++ src/view/com/posts/FeedItem.tsx | 117 ++++++++++++++++--------------- src/view/com/posts/FeedSlice.tsx | 8 +++ src/view/screens/DebugMod.tsx | 2 + 4 files changed, 78 insertions(+), 56 deletions(-) diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index 18c4b65a53..2851a0c2ac 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -1,6 +1,7 @@ import React, {useCallback, useEffect, useRef} from 'react' import {AppState} from 'react-native' import { + AppBskyActorDefs, AppBskyFeedDefs, AppBskyFeedPost, AtUri, @@ -72,6 +73,7 @@ export interface FeedPostSliceItem { reason?: AppBskyFeedDefs.ReasonRepost | ReasonFeedSource feedContext: string | undefined moderation: ModerationDecision + parentAuthor?: AppBskyActorDefs.ProfileViewBasic } export interface FeedPostSlice { @@ -302,6 +304,10 @@ export function usePostFeedQuery( AppBskyFeedPost.validateRecord(item.post.record) .success ) { + const parentAuthor = + item.reply?.parent?.author ?? + slice.items[i + 1]?.reply?.grandparentAuthor + return { _reactKey: `${slice._reactKey}-${i}-${item.post.uri}`, uri: item.post.uri, @@ -313,6 +319,7 @@ export function usePostFeedQuery( : item.reason, feedContext: item.feedContext || slice.feedContext, moderation: moderations[i], + parentAuthor, } } return undefined diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 5b4efe2af4..0decb81df9 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -1,6 +1,7 @@ import React, {memo, useMemo, useState} from 'react' import {StyleSheet, View} from 'react-native' import { + AppBskyActorDefs, AppBskyFeedDefs, AppBskyFeedPost, AtUri, @@ -40,7 +41,18 @@ import {PostEmbeds} from '../util/post-embeds' import {PostMeta} from '../util/PostMeta' import {Text} from '../util/text/Text' import {PreviewableUserAvatar} from '../util/UserAvatar' -import {UserInfoText} from '../util/UserInfoText' + +interface FeedItemProps { + record: AppBskyFeedPost.Record + reason: AppBskyFeedDefs.ReasonRepost | ReasonFeedSource | undefined + moderation: ModerationDecision + parentAuthor: AppBskyActorDefs.ProfileViewBasic | undefined + showReplyTo: boolean + isThreadChild?: boolean + isThreadLastChild?: boolean + isThreadParent?: boolean + feedContext: string | undefined +} export function FeedItem({ post, @@ -48,19 +60,12 @@ export function FeedItem({ reason, feedContext, moderation, + parentAuthor, + showReplyTo, isThreadChild, isThreadLastChild, isThreadParent, -}: { - post: AppBskyFeedDefs.PostView - record: AppBskyFeedPost.Record - reason: AppBskyFeedDefs.ReasonRepost | ReasonFeedSource | undefined - feedContext: string | undefined - moderation: ModerationDecision - isThreadChild?: boolean - isThreadLastChild?: boolean - isThreadParent?: boolean -}) { +}: FeedItemProps & {post: AppBskyFeedDefs.PostView}): React.ReactNode { const postShadowed = usePostShadow(post) const richText = useMemo( () => @@ -83,6 +88,8 @@ export function FeedItem({ reason={reason} feedContext={feedContext} richText={richText} + parentAuthor={parentAuthor} + showReplyTo={showReplyTo} moderation={moderation} isThreadChild={isThreadChild} isThreadLastChild={isThreadLastChild} @@ -100,19 +107,14 @@ let FeedItemInner = ({ feedContext, richText, moderation, + parentAuthor, + showReplyTo, isThreadChild, isThreadLastChild, isThreadParent, -}: { - post: Shadow - record: AppBskyFeedPost.Record - reason: AppBskyFeedDefs.ReasonRepost | ReasonFeedSource | undefined - feedContext: string | undefined +}: FeedItemProps & { richText: RichTextAPI - moderation: ModerationDecision - isThreadChild?: boolean - isThreadLastChild?: boolean - isThreadParent?: boolean + post: Shadow }): React.ReactNode => { const queryClient = useQueryClient() const {openComposer} = useComposerControls() @@ -124,14 +126,6 @@ let FeedItemInner = ({ }, [post.uri, post.author]) const {sendInteraction} = useFeedFeedbackContext() - const replyAuthorDid = useMemo(() => { - if (!record?.reply) { - return '' - } - const urip = new AtUri(record.reply.parent?.uri || record.reply.root.uri) - return urip.hostname - }, [record?.reply]) - const onPressReply = React.useCallback(() => { sendInteraction({ item: post.uri, @@ -318,34 +312,8 @@ let FeedItemInner = ({ postHref={href} onOpenAuthor={onOpenAuthor} /> - {!isThreadChild && replyAuthorDid !== '' && ( - - - - - Reply to{' '} - - - - - - + {!isThreadChild && showReplyTo && parentAuthor && ( + )} + + + + Reply to{' '} + + + + + + + ) +} + const styles = StyleSheet.create({ outer: { borderTopWidth: 1, diff --git a/src/view/com/posts/FeedSlice.tsx b/src/view/com/posts/FeedSlice.tsx index 27a9ff8c06..6d8f038b4f 100644 --- a/src/view/com/posts/FeedSlice.tsx +++ b/src/view/com/posts/FeedSlice.tsx @@ -22,6 +22,8 @@ let FeedSlice = ({slice}: {slice: FeedPostSlice}): React.ReactNode => { record={slice.items[0].record} reason={slice.items[0].reason} feedContext={slice.items[0].feedContext} + parentAuthor={slice.items[0].parentAuthor} + showReplyTo={true} moderation={slice.items[0].moderation} isThreadParent={isThreadParentAt(slice.items, 0)} isThreadChild={isThreadChildAt(slice.items, 0)} @@ -32,6 +34,8 @@ let FeedSlice = ({slice}: {slice: FeedPostSlice}): React.ReactNode => { record={slice.items[1].record} reason={slice.items[1].reason} feedContext={slice.items[1].feedContext} + parentAuthor={slice.items[1].parentAuthor} + showReplyTo={false} moderation={slice.items[1].moderation} isThreadParent={isThreadParentAt(slice.items, 1)} isThreadChild={isThreadChildAt(slice.items, 1)} @@ -43,6 +47,8 @@ let FeedSlice = ({slice}: {slice: FeedPostSlice}): React.ReactNode => { record={slice.items[last].record} reason={slice.items[last].reason} feedContext={slice.items[last].feedContext} + parentAuthor={slice.items[2].parentAuthor} + showReplyTo={false} moderation={slice.items[last].moderation} isThreadParent={isThreadParentAt(slice.items, last)} isThreadChild={isThreadChildAt(slice.items, last)} @@ -62,6 +68,8 @@ let FeedSlice = ({slice}: {slice: FeedPostSlice}): React.ReactNode => { reason={slice.items[i].reason} feedContext={slice.items[i].feedContext} moderation={slice.items[i].moderation} + parentAuthor={slice.items[i].parentAuthor} + showReplyTo={i === 0} isThreadParent={isThreadParentAt(slice.items, i)} isThreadChild={isThreadChildAt(slice.items, i)} isThreadLastChild={ diff --git a/src/view/screens/DebugMod.tsx b/src/view/screens/DebugMod.tsx index 86c6321948..77b07b8c95 100644 --- a/src/view/screens/DebugMod.tsx +++ b/src/view/screens/DebugMod.tsx @@ -803,6 +803,8 @@ function MockPostFeedItem({ post={post} record={post.record as AppBskyFeedPost.Record} moderation={moderation} + parentAuthor={undefined} + showReplyTo={false} reason={undefined} feedContext={''} /> From af20229b41bd2dedbbd52ce77b6366a09f751c7b Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 23 May 2024 11:52:36 -0700 Subject: [PATCH 193/277] Add `bundleDate`, `bundleIdentifier` to `StatsigUser` (#4199) * record event for fetched ota update * Revert "record event for fetched ota update" This reverts commit 4b49efe036c0c9605eabf1d5715586d093d60e9e. * add `bundleDate` to `StatsigUser` * include `bundleIdentifier` too * move to `custom` --- src/lib/statsig/statsig.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx index b7299be8c8..6ffca0ab4b 100644 --- a/src/lib/statsig/statsig.tsx +++ b/src/lib/statsig/statsig.tsx @@ -7,7 +7,7 @@ import {Statsig, StatsigProvider} from 'statsig-react-native-expo' import {logger} from '#/logger' import {isWeb} from '#/platform/detection' import * as persisted from '#/state/persisted' -import {IS_TESTFLIGHT} from 'lib/app-info' +import {BUNDLE_DATE, BUNDLE_IDENTIFIER, IS_TESTFLIGHT} from 'lib/app-info' import {useSession} from '../../state/session' import {timeout} from '../async/timeout' import {useNonReactiveCallback} from '../hooks/useNonReactiveCallback' @@ -22,6 +22,8 @@ type StatsigUser = { // This is the place where we can add our own stuff. // Fields here have to be non-optional to be visible in the UI. platform: 'ios' | 'android' | 'web' + bundleIdentifier: string + bundleDate: number refSrc: string refUrl: string appLanguage: string @@ -180,6 +182,8 @@ function toStatsigUser(did: string | undefined): StatsigUser { refSrc, refUrl, platform: Platform.OS as 'ios' | 'android' | 'web', + bundleIdentifier: BUNDLE_IDENTIFIER, + bundleDate: BUNDLE_DATE, appLanguage: languagePrefs.appLanguage, contentLanguages: languagePrefs.contentLanguages, }, From 5c2e99e3e6fcbc6dc5bf4f123201086558eaa047 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 23 May 2024 13:08:12 -0700 Subject: [PATCH 194/277] =?UTF-8?q?[=F0=9F=90=B4]=20Fix=20Firefox=20send?= =?UTF-8?q?=20button=20positioning=20(#4201)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * use `align_center` * revert * account for firefox textarea size differences set to `38` remove some extra stuff equal height on all platforms * use atom --- src/screens/Messages/Conversation/MessageInput.web.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/screens/Messages/Conversation/MessageInput.web.tsx b/src/screens/Messages/Conversation/MessageInput.web.tsx index 78292b066f..ab3d227b49 100644 --- a/src/screens/Messages/Conversation/MessageInput.web.tsx +++ b/src/screens/Messages/Conversation/MessageInput.web.tsx @@ -30,6 +30,7 @@ export function MessageInput({ const isComposing = React.useRef(false) const [isFocused, setIsFocused] = React.useState(false) const [isHovered, setIsHovered] = React.useState(false) + const [textAreaHeight, setTextAreaHeight] = React.useState(38) const onSubmit = React.useCallback(() => { if (message.trim() === '') { @@ -92,11 +93,12 @@ export function MessageInput({ a.flex_row, t.atoms.bg_contrast_25, { - paddingHorizontal: a.p_sm.padding - 2, + paddingRight: a.p_sm.padding - 2, paddingLeft: a.p_md.padding - 2, borderWidth: 1, borderRadius: 23, borderColor: 'transparent', + height: textAreaHeight + 23, }, isHovered && inputStyles.chromeHover, isFocused && inputStyles.chromeFocus, @@ -112,7 +114,6 @@ export function MessageInput({ t.atoms.text, { paddingTop: 10, - paddingBottom: 12, backgroundColor: 'transparent', resize: 'none', }, @@ -131,6 +132,7 @@ export function MessageInput({ onCompositionEnd={() => { isComposing.current = false }} + onHeightChange={height => setTextAreaHeight(height)} onChange={onChange} onKeyDown={onKeyDown} /> From 9096655955829b15b99ee72a16c3edd14c11a2f1 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 23 May 2024 17:21:47 -0500 Subject: [PATCH 195/277] Reduce polling (#4204) * Reduce polling a bit * Bump to 60 * Increase all * ok 3 --- src/state/messages/convo/const.ts | 4 ++-- src/state/messages/events/const.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/state/messages/convo/const.ts b/src/state/messages/convo/const.ts index 6ce100d11e..17f206c7b9 100644 --- a/src/state/messages/convo/const.ts +++ b/src/state/messages/convo/const.ts @@ -1,5 +1,5 @@ -export const ACTIVE_POLL_INTERVAL = 1e3 -export const BACKGROUND_POLL_INTERVAL = 5e3 +export const ACTIVE_POLL_INTERVAL = 3e3 +export const BACKGROUND_POLL_INTERVAL = 60e3 export const INACTIVE_TIMEOUT = 60e3 * 5 export const NETWORK_FAILURE_STATUSES = [ diff --git a/src/state/messages/events/const.ts b/src/state/messages/events/const.ts index a7c07d0d00..bfd7ce5fba 100644 --- a/src/state/messages/events/const.ts +++ b/src/state/messages/events/const.ts @@ -1,2 +1,2 @@ -export const DEFAULT_POLL_INTERVAL = 20e3 -export const BACKGROUND_POLL_INTERVAL = 60e3 +export const DEFAULT_POLL_INTERVAL = 60e3 * 5 +export const BACKGROUND_POLL_INTERVAL = 60e3 * 5 From 406993cf0e5d5fee2bac75aacc528da12c4e0289 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 23 May 2024 18:06:50 -0500 Subject: [PATCH 196/277] =?UTF-8?q?[=F0=9F=90=B4]=20Overfetch=20follow=20f?= =?UTF-8?q?or=20default=20new=20dialog=20state=20(#4205)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/dms/NewChatDialog/index.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/components/dms/NewChatDialog/index.tsx b/src/components/dms/NewChatDialog/index.tsx index c13c450c47..a6c3030439 100644 --- a/src/components/dms/NewChatDialog/index.tsx +++ b/src/components/dms/NewChatDialog/index.tsx @@ -314,9 +314,7 @@ function SearchablePeopleList({ isError, isFetching, } = useActorAutocompleteQuery(searchText, true, 12) - const {data: follows} = useProfileFollowsQuery(currentAccount?.did, { - limit: 12, - }) + const {data: follows} = useProfileFollowsQuery(currentAccount?.did) const items = useMemo(() => { let _items: Item[] = [] From d2c42cf16905a8904dcfbba4825ca5f8abc3f253 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 24 May 2024 00:10:13 +0100 Subject: [PATCH 197/277] Privileged app passwords (#4200) * add checkbox to create privileged app password * add indicator to privileged app pwds to list * bump api * oops missed the yarnlock * adjust modal padding * lowercase * one more lowercase --------- Co-authored-by: Hailey --- package.json | 2 +- src/state/queries/app-passwords.ts | 5 +- src/view/com/modals/AddAppPasswords.tsx | 187 +++++++++++++----------- src/view/screens/AppPasswords.tsx | 53 ++++--- yarn.lock | 8 +- 5 files changed, 145 insertions(+), 110 deletions(-) diff --git a/package.json b/package.json index 2680b2d1bc..4c79e29f91 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "open-analyzer": "EXPO_PUBLIC_OPEN_ANALYZER=1 yarn build-web" }, "dependencies": { - "@atproto/api": "^0.12.11", + "@atproto/api": "^0.12.13", "@bam.tech/react-native-image-resizer": "^3.0.4", "@braintree/sanitize-url": "^6.0.2", "@discord/bottom-sheet": "bluesky-social/react-native-bottom-sheet", diff --git a/src/state/queries/app-passwords.ts b/src/state/queries/app-passwords.ts index a8f8fba0f6..33009a3a4a 100644 --- a/src/state/queries/app-passwords.ts +++ b/src/state/queries/app-passwords.ts @@ -25,12 +25,13 @@ export function useAppPasswordCreateMutation() { return useMutation< ComAtprotoServerCreateAppPassword.OutputSchema, Error, - {name: string} + {name: string; privileged: boolean} >({ - mutationFn: async ({name}) => { + mutationFn: async ({name, privileged}) => { return ( await getAgent().com.atproto.server.createAppPassword({ name, + privileged, }) ).data }, diff --git a/src/view/com/modals/AddAppPasswords.tsx b/src/view/com/modals/AddAppPasswords.tsx index e6f424ed0b..d6df12657e 100644 --- a/src/view/com/modals/AddAppPasswords.tsx +++ b/src/view/com/modals/AddAppPasswords.tsx @@ -8,20 +8,23 @@ import { import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {usePalette} from '#/lib/hooks/usePalette' +import {s} from '#/lib/styles' import {logger} from '#/logger' +import {isNative} from '#/platform/detection' import {useModalControls} from '#/state/modals' import { useAppPasswordCreateMutation, useAppPasswordsQuery, } from '#/state/queries/app-passwords' -import {usePalette} from 'lib/hooks/usePalette' -import {s} from 'lib/styles' -import {isNative} from 'platform/detection' -import {Button} from '../util/forms/Button' -import {Text} from '../util/text/Text' -import * as Toast from '../util/Toast' +import {Button} from '#/view/com/util/forms/Button' +import {Text} from '#/view/com/util/text/Text' +import * as Toast from '#/view/com/util/Toast' +import {atoms as a} from '#/alf' +import * as Toggle from '#/components/forms/Toggle' +import {KeyboardPadding} from '#/components/KeyboardPadding' -export const snapPoints = ['70%'] +export const snapPoints = ['90%'] const shadesOfBlue: string[] = [ 'AliceBlue', @@ -70,6 +73,7 @@ export function Component({}: {}) { ) const [appPassword, setAppPassword] = useState() const [wasCopied, setWasCopied] = useState(false) + const [privileged, setPrivileged] = useState(false) const onCopy = React.useCallback(() => { if (appPassword) { @@ -109,7 +113,7 @@ export function Component({}: {}) { } try { - const newPassword = await mutateAppPassword({name}) + const newPassword = await mutateAppPassword({name, privileged}) if (newPassword) { setAppPassword(newPassword.password) } else { @@ -140,86 +144,98 @@ export function Component({}: {}) { return ( - - {!appPassword ? ( - - - Please enter a unique name for this App Password or use our - randomly generated one. - - - ) : ( - - - Here is your app password. + {!appPassword ? ( + <> + + + + Please enter a unique name for this App Password or use our + randomly generated one. + - - Use this to sign into the other app along with your handle. - - - )} - {!appPassword ? ( - - - - ) : ( - - - {appPassword} - - {wasCopied ? ( - - Copied - - ) : ( - + - )} - - )} - - {appPassword ? ( - - - For security reasons, you won't be able to view this again. If you - lose this password, you'll need to generate a new one. - - + + + + + Can only contain letters, numbers, spaces, dashes, and + underscores. Must be at least 4 characters long, but no more than + 32 characters long. + + + setPrivileged(val)} + name="privileged" + style={a.my_md}> + + + Allow access to your direct messages + + + ) : ( - - - Can only contain letters, numbers, spaces, dashes, and underscores. - Must be at least 4 characters long, but no more than 32 characters - long. - - + <> + + + + Here is your app password. + + + Use this to sign into the other app along with your handle. + + + + + {appPassword} + + {wasCopied ? ( + + Copied + + ) : ( + + )} + + + + + For security reasons, you won't be able to view this again. If you + lose this password, you'll need to generate a new one. + + + )} diff --git a/src/components/moderation/PostHider.tsx b/src/components/moderation/PostHider.tsx index 05cb8464eb..177104f932 100644 --- a/src/components/moderation/PostHider.tsx +++ b/src/components/moderation/PostHider.tsx @@ -18,6 +18,7 @@ import { import {Text} from '#/components/Typography' interface Props extends ComponentProps { + disabled: boolean iconSize: number iconStyles: StyleProp modui: ModerationUI @@ -27,6 +28,7 @@ interface Props extends ComponentProps { export function PostHider({ testID, href, + disabled, modui, style, children, @@ -47,7 +49,7 @@ export function PostHider({ precacheProfile(queryClient, profile) }, [queryClient, profile]) - if (!blur) { + if (!blur || (disabled && !modui.noOverride)) { return ( diff --git a/src/state/queries/post-thread.ts b/src/state/queries/post-thread.ts index 133304d2ed..4ee0eb3f9e 100644 --- a/src/state/queries/post-thread.ts +++ b/src/state/queries/post-thread.ts @@ -3,9 +3,12 @@ import { AppBskyFeedDefs, AppBskyFeedGetPostThread, AppBskyFeedPost, + ModerationDecision, + ModerationOpts, } from '@atproto/api' import {QueryClient, useQuery, useQueryClient} from '@tanstack/react-query' +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types' import {useAgent} from '#/state/session' import {findAllPostsInQueryData as findAllPostsInSearchQueryData} from 'state/queries/search-posts' @@ -21,8 +24,6 @@ export interface ThreadCtx { depth: number isHighlightedPost?: boolean hasMore?: boolean - showChildReplyLine?: boolean - showParentReplyLine?: boolean isParentLoading?: boolean isChildLoading?: boolean } @@ -63,6 +64,8 @@ export type ThreadNode = | ThreadBlocked | ThreadUnknown +export type ThreadModerationCache = WeakMap + export function usePostThreadQuery(uri: string | undefined) { const queryClient = useQueryClient() const {getAgent} = useAgent() @@ -92,9 +95,28 @@ export function usePostThreadQuery(uri: string | undefined) { }) } +export function fillThreadModerationCache( + cache: ThreadModerationCache, + node: ThreadNode, + moderationOpts: ModerationOpts, +) { + if (node.type === 'post') { + cache.set(node, moderatePost(node.post, moderationOpts)) + if (node.parent) { + fillThreadModerationCache(cache, node.parent, moderationOpts) + } + if (node.replies) { + for (const reply of node.replies) { + fillThreadModerationCache(cache, reply, moderationOpts) + } + } + } +} + export function sortThread( node: ThreadNode, opts: UsePreferencesQueryResponse['threadViewPrefs'], + modCache: ThreadModerationCache, ): ThreadNode { if (node.type !== 'post') { return node @@ -117,6 +139,18 @@ export function sortThread( } else if (bIsByOp) { return 1 // op's own reply } + + const aBlur = Boolean(modCache.get(a)?.ui('contentList').blur) + const bBlur = Boolean(modCache.get(b)?.ui('contentList').blur) + if (aBlur !== bBlur) { + if (aBlur) { + return 1 + } + if (bBlur) { + return -1 + } + } + if (opts.prioritizeFollowedUsers) { const af = a.post.author.viewer?.following const bf = b.post.author.viewer?.following @@ -126,6 +160,7 @@ export function sortThread( return 1 } } + if (opts.sort === 'oldest') { return a.post.indexedAt.localeCompare(b.post.indexedAt) } else if (opts.sort === 'newest') { @@ -141,7 +176,7 @@ export function sortThread( } return b.post.indexedAt.localeCompare(a.post.indexedAt) }) - node.replies.forEach(reply => sortThread(reply, opts)) + node.replies.forEach(reply => sortThread(reply, opts, modCache)) } return node } @@ -188,12 +223,6 @@ function responseToThreadNodes( isHighlightedPost: depth === 0, hasMore: direction === 'down' && !node.replies?.length && !!node.replyCount, - showChildReplyLine: - direction === 'up' || - (direction === 'down' && !!node.replies?.length), - showParentReplyLine: - (direction === 'up' && !!node.parent) || - (direction === 'down' && depth !== 1), }, } } else if (AppBskyFeedDefs.isBlockedPost(node)) { @@ -296,8 +325,6 @@ function threadNodeToPlaceholderThread( depth: 0, isHighlightedPost: true, hasMore: false, - showChildReplyLine: false, - showParentReplyLine: false, isParentLoading: !!node.record.reply, isChildLoading: !!node.post.replyCount, }, @@ -319,8 +346,6 @@ function postViewToPlaceholderThread( depth: 0, isHighlightedPost: true, hasMore: false, - showChildReplyLine: false, - showParentReplyLine: false, isParentLoading: !!(post.record as AppBskyFeedPost.Record).reply, isChildLoading: true, // assume yes (show the spinner) just in case }, @@ -342,8 +367,6 @@ function embedViewRecordToPlaceholderThread( depth: 0, isHighlightedPost: true, hasMore: false, - showChildReplyLine: false, - showParentReplyLine: false, isParentLoading: !!(record.value as AppBskyFeedPost.Record).reply, isChildLoading: true, // not available, so assume yes (to show the spinner) }, diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx index a52818fd14..4f7d0d3c62 100644 --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -10,8 +10,10 @@ import {ScrollProvider} from '#/lib/ScrollContext' import {isAndroid, isNative, isWeb} from '#/platform/detection' import {useModerationOpts} from '#/state/preferences/moderation-opts' import { + fillThreadModerationCache, sortThread, ThreadBlocked, + ThreadModerationCache, ThreadNode, ThreadNotFound, ThreadPost, @@ -31,6 +33,7 @@ import {List, ListMethods} from '../util/List' import {Text} from '../util/text/Text' import {ViewHeader} from '../util/ViewHeader' import {PostThreadItem} from './PostThreadItem' +import {PostThreadShowHiddenReplies} from './PostThreadShowHiddenReplies' // FlatList maintainVisibleContentPosition breaks if too many items // are prepended. This seems to be an optimal number based on *shrug*. @@ -45,8 +48,21 @@ const MAINTAIN_VISIBLE_CONTENT_POSITION = { const TOP_COMPONENT = {_reactKey: '__top_component__'} const REPLY_PROMPT = {_reactKey: '__reply__'} const LOAD_MORE = {_reactKey: '__load_more__'} +const SHOW_HIDDEN_REPLIES = {_reactKey: '__show_hidden_replies__'} +const SHOW_MUTED_REPLIES = {_reactKey: '__show_muted_replies__'} -type YieldedItem = ThreadPost | ThreadBlocked | ThreadNotFound +enum HiddenRepliesState { + Hide, + Show, + ShowAndOverridePostHider, +} + +type YieldedItem = + | ThreadPost + | ThreadBlocked + | ThreadNotFound + | typeof SHOW_HIDDEN_REPLIES + | typeof SHOW_MUTED_REPLIES type RowItem = | YieldedItem // TODO: TS doesn't actually enforce it's one of these, it only enforces matching shape. @@ -79,6 +95,9 @@ export function PostThread({ const {isMobile, isTabletOrMobile} = useWebMediaQueries() const initialNumToRender = useInitialNumToRender() const {height: windowHeight} = useWindowDimensions() + const [hiddenRepliesState, setHiddenRepliesState] = React.useState( + HiddenRepliesState.Hide, + ) const {data: preferences} = usePreferencesQuery() const { @@ -135,16 +154,33 @@ export function PostThread({ // On the web this is not necessary because we can synchronously adjust the scroll in onContentSizeChange instead. const [deferParents, setDeferParents] = React.useState(isNative) + const threadModerationCache = React.useMemo(() => { + const cache: ThreadModerationCache = new WeakMap() + if (thread && moderationOpts) { + fillThreadModerationCache(cache, thread, moderationOpts) + } + return cache + }, [thread, moderationOpts]) + const skeleton = React.useMemo(() => { const threadViewPrefs = preferences?.threadViewPrefs if (!threadViewPrefs || !thread) return null return createThreadSkeleton( - sortThread(thread, threadViewPrefs), + sortThread(thread, threadViewPrefs, threadModerationCache), hasSession, treeView, + threadModerationCache, + hiddenRepliesState !== HiddenRepliesState.Hide, ) - }, [thread, preferences?.threadViewPrefs, hasSession, treeView]) + }, [ + thread, + preferences?.threadViewPrefs, + hasSession, + treeView, + threadModerationCache, + hiddenRepliesState, + ]) const error = React.useMemo(() => { if (AppBskyFeedDefs.isNotFoundPost(thread)) { @@ -301,6 +337,24 @@ export function PostThread({ {!isMobile && } ) + } else if (item === SHOW_HIDDEN_REPLIES) { + return ( + + setHiddenRepliesState(HiddenRepliesState.ShowAndOverridePostHider) + } + /> + ) + } else if (item === SHOW_MUTED_REPLIES) { + return ( + + setHiddenRepliesState(HiddenRepliesState.ShowAndOverridePostHider) + } + /> + ) } else if (isThreadNotFound(item)) { return ( @@ -321,9 +375,12 @@ export function PostThread({ const prev = isThreadPost(posts[index - 1]) ? (posts[index - 1] as ThreadPost) : undefined - const next = isThreadPost(posts[index - 1]) - ? (posts[index - 1] as ThreadPost) + const next = isThreadPost(posts[index + 1]) + ? (posts[index + 1] as ThreadPost) : undefined + const showChildReplyLine = (next?.ctx.depth || 0) > item.ctx.depth + const showParentReplyLine = + (item.ctx.depth < 0 && !!item.parent) || item.ctx.depth > 1 const hasUnrevealedParents = index === 0 && skeleton?.parents && @@ -335,16 +392,20 @@ export function PostThread({ 0 } onPostReply={refetch} /> @@ -368,6 +429,9 @@ export function PostThread({ deferParents, treeView, refetch, + threadModerationCache, + hiddenRepliesState, + setHiddenRepliesState, ], ) @@ -437,13 +501,23 @@ function createThreadSkeleton( node: ThreadNode, hasSession: boolean, treeView: boolean, + modCache: ThreadModerationCache, + showHiddenReplies: boolean, ): ThreadSkeletonParts | null { if (!node) return null return { parents: Array.from(flattenThreadParents(node, hasSession)), highlightedPost: node, - replies: Array.from(flattenThreadReplies(node, hasSession, treeView)), + replies: Array.from( + flattenThreadReplies( + node, + hasSession, + treeView, + modCache, + showHiddenReplies, + ), + ), } } @@ -465,31 +539,76 @@ function* flattenThreadParents( } } +// The enum is ordered to make them easy to merge +enum HiddenReplyType { + None = 0, + Muted = 1, + Hidden = 2, +} + function* flattenThreadReplies( node: ThreadNode, hasSession: boolean, treeView: boolean, -): Generator { + modCache: ThreadModerationCache, + showHiddenReplies: boolean, +): Generator { if (node.type === 'post') { + // dont show pwi-opted-out posts to logged out users if (!hasSession && hasPwiOptOut(node)) { - return + return HiddenReplyType.None } + + // handle blurred items + if (node.ctx.depth > 0) { + const modui = modCache.get(node)?.ui('contentList') + if (modui?.blur) { + if (!showHiddenReplies || node.ctx.depth > 1) { + if (modui.blurs[0].type === 'muted') { + return HiddenReplyType.Muted + } + return HiddenReplyType.Hidden + } + } + } + if (!node.ctx.isHighlightedPost) { yield node } + if (node.replies?.length) { + let hiddenReplies = HiddenReplyType.None for (const reply of node.replies) { - yield* flattenThreadReplies(reply, hasSession, treeView) + let hiddenReply = yield* flattenThreadReplies( + reply, + hasSession, + treeView, + modCache, + showHiddenReplies, + ) + if (hiddenReply > hiddenReplies) { + hiddenReplies = hiddenReply + } if (!treeView && !node.ctx.isHighlightedPost) { break } } + + // show control to enable hidden replies + if (node.ctx.depth === 0) { + if (hiddenReplies === HiddenReplyType.Muted) { + yield SHOW_MUTED_REPLIES + } else if (hiddenReplies === HiddenReplyType.Hidden) { + yield SHOW_HIDDEN_REPLIES + } + } } } else if (node.type === 'not-found') { yield node } else if (node.type === 'blocked') { yield node } + return HiddenReplyType.None } function hasPwiOptOut(node: ThreadPost) { diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index f644a5366d..c44875b376 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -11,11 +11,9 @@ import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg, Plural, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import {POST_TOMBSTONE, Shadow, usePostShadow} from '#/state/cache/post-shadow' import {useLanguagePrefs} from '#/state/preferences' import {useOpenLink} from '#/state/preferences/in-app-browser' -import {useModerationOpts} from '#/state/preferences/moderation-opts' import {ThreadPost} from '#/state/queries/post-thread' import {useComposerControls} from '#/state/shell/composer' import {MAX_POST_LINES} from 'lib/constants' @@ -50,6 +48,7 @@ import {PreviewableUserAvatar} from '../util/UserAvatar' export function PostThreadItem({ post, record, + moderation, treeView, depth, prevPost, @@ -59,10 +58,12 @@ export function PostThreadItem({ showChildReplyLine, showParentReplyLine, hasPrecedingItem, + overrideBlur, onPostReply, }: { post: AppBskyFeedDefs.PostView record: AppBskyFeedPost.Record + moderation: ModerationDecision | undefined treeView: boolean depth: number prevPost: ThreadPost | undefined @@ -72,9 +73,9 @@ export function PostThreadItem({ showChildReplyLine?: boolean showParentReplyLine?: boolean hasPrecedingItem: boolean + overrideBlur: boolean onPostReply: () => void }) { - const moderationOpts = useModerationOpts() const postShadowed = usePostShadow(post) const richText = useMemo( () => @@ -84,11 +85,6 @@ export function PostThreadItem({ }), [record], ) - const moderation = useMemo( - () => - post && moderationOpts ? moderatePost(post, moderationOpts) : undefined, - [post, moderationOpts], - ) if (postShadowed === POST_TOMBSTONE) { return } @@ -110,6 +106,7 @@ export function PostThreadItem({ showChildReplyLine={showChildReplyLine} showParentReplyLine={showParentReplyLine} hasPrecedingItem={hasPrecedingItem} + overrideBlur={overrideBlur} onPostReply={onPostReply} /> ) @@ -143,6 +140,7 @@ let PostThreadItemLoaded = ({ showChildReplyLine, showParentReplyLine, hasPrecedingItem, + overrideBlur, onPostReply, }: { post: Shadow @@ -158,6 +156,7 @@ let PostThreadItemLoaded = ({ showChildReplyLine?: boolean showParentReplyLine?: boolean hasPrecedingItem: boolean + overrideBlur: boolean onPostReply: () => void }): React.ReactNode => { const pal = usePalette('default') @@ -394,6 +393,7 @@ let PostThreadItemLoaded = ({ void +}) { + const {_} = useLingui() + const t = useTheme() + const label = + type === 'muted' ? _(msg`Show muted replies`) : _(msg`Show hidden replies`) + + return ( + + ) +} diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 0decb81df9..6e7c1c7eb0 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -367,7 +367,7 @@ let PostContent = ({ modui={moderation.ui('contentList')} ignoreMute childContainerStyle={styles.contentHiderChild}> - + {richText.text ? ( {}} /> ) From fa039e542d06c2e9e24f46464b18256aa0f10b7f Mon Sep 17 00:00:00 2001 From: dan Date: Fri, 24 May 2024 01:25:11 +0100 Subject: [PATCH 199/277] Include feedContext in DOM as data- (#4206) --- src/view/com/posts/FeedItem.tsx | 3 ++- src/view/com/util/Link.tsx | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 6e7c1c7eb0..1a5f954e32 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -196,7 +196,8 @@ let FeedItemInner = ({ href={href} noFeedback accessible={false} - onBeforePress={onBeforePress}> + onBeforePress={onBeforePress} + dataSet={{feedContext}}> {isThreadChild && ( diff --git a/src/view/com/util/Link.tsx b/src/view/com/util/Link.tsx index df82124f92..865be45520 100644 --- a/src/view/com/util/Link.tsx +++ b/src/view/com/util/Link.tsx @@ -45,6 +45,7 @@ interface Props extends ComponentProps { hoverStyle?: StyleProp noFeedback?: boolean asAnchor?: boolean + dataSet?: Object | undefined anchorNoUnderline?: boolean navigationAction?: 'push' | 'replace' | 'navigate' onPointerEnter?: () => void From 85782aeb930b63995d83157f581f66e564743626 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 23 May 2024 19:45:50 -0700 Subject: [PATCH 200/277] =?UTF-8?q?[=F0=9F=90=B4]=20Don't=20submit=20the?= =?UTF-8?q?=20message=20on=20return=20press=20when=20on=20a=20phone=20(web?= =?UTF-8?q?=20input)=20(#4203)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit move this to the `onKeyDown` prop Revert "do the same for tablets" This reverts commit 47c709e2734f2acf34f89dd5aca42a75a2b56270. do the same for tablets don't submit message if the device is a phone on web move `onTouchStart` to `browser.ts` globals --- src/components/ProfileHoverCard/index.web.tsx | 3 +-- src/lib/browser.native.ts | 1 + src/lib/browser.ts | 3 ++- src/screens/Messages/Conversation/MessageInput.web.tsx | 10 +++++++--- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/components/ProfileHoverCard/index.web.tsx b/src/components/ProfileHoverCard/index.web.tsx index 75eba6598e..024867b1a3 100644 --- a/src/components/ProfileHoverCard/index.web.tsx +++ b/src/components/ProfileHoverCard/index.web.tsx @@ -11,6 +11,7 @@ import {sanitizeHandle} from '#/lib/strings/handles' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {usePrefetchProfileQuery, useProfileQuery} from '#/state/queries/profile' import {useSession} from '#/state/session' +import {isTouchDevice} from 'lib/browser' import {useProfileShadow} from 'state/cache/profile-shadow' import {formatCount} from '#/view/com/util/numeric/format' import {UserAvatar} from '#/view/com/util/UserAvatar' @@ -43,8 +44,6 @@ const floatingMiddlewares = [ }), ] -const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 1 - export function ProfileHoverCard(props: ProfileHoverCardProps) { if (props.disable || isTouchDevice) { return props.children diff --git a/src/lib/browser.native.ts b/src/lib/browser.native.ts index 3ac238b94f..fb9be56f10 100644 --- a/src/lib/browser.native.ts +++ b/src/lib/browser.native.ts @@ -1,2 +1,3 @@ export const isSafari = false export const isFirefox = false +export const isTouchDevice = true diff --git a/src/lib/browser.ts b/src/lib/browser.ts index d5ecb4e851..d178a9a64e 100644 --- a/src/lib/browser.ts +++ b/src/lib/browser.ts @@ -2,5 +2,6 @@ export const isSafari = /^((?!chrome|android).)*safari/i.test( navigator.userAgent, ) - export const isFirefox = /firefox|fxios/i.test(navigator.userAgent) +export const isTouchDevice = + 'ontouchstart' in window || navigator.maxTouchPoints > 1 diff --git a/src/screens/Messages/Conversation/MessageInput.web.tsx b/src/screens/Messages/Conversation/MessageInput.web.tsx index ab3d227b49..5d8d568ffe 100644 --- a/src/screens/Messages/Conversation/MessageInput.web.tsx +++ b/src/screens/Messages/Conversation/MessageInput.web.tsx @@ -10,7 +10,8 @@ import { useMessageDraft, useSaveMessageDraft, } from '#/state/messages/message-drafts' -import {isSafari} from 'lib/browser' +import {isSafari, isTouchDevice} from 'lib/browser' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {useSharedInputStyles} from '#/components/forms/TextField' @@ -21,6 +22,7 @@ export function MessageInput({ }: { onSendMessage: (message: string) => void }) { + const {isTabletOrDesktop} = useWebMediaQueries() const {_} = useLingui() const t = useTheme() const {getDraft, clearDraft} = useMessageDraft() @@ -74,7 +76,7 @@ export function MessageInput({ onSubmit() } }, - [onSubmit, isComposing], + [onSubmit], ) const onChange = React.useCallback( @@ -134,7 +136,9 @@ export function MessageInput({ }} onHeightChange={height => setTextAreaHeight(height)} onChange={onChange} - onKeyDown={onKeyDown} + // On mobile web phones, we want to keep the same behavior as the native app. Do not submit the message + // in these cases. + onKeyDown={isTouchDevice && isTabletOrDesktop ? undefined : onKeyDown} /> Date: Fri, 24 May 2024 10:01:30 -0500 Subject: [PATCH 201/277] Make sure failed messages enter error state (#4210) --- src/state/messages/convo/agent.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index 71b0b6f2d3..a0355ab07d 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -830,9 +830,10 @@ export class Convo { if (NETWORK_FAILURE_STATUSES.includes(e.status)) { this.pendingMessageFailure = 'recoverable' } else { + this.pendingMessageFailure = 'unrecoverable' + switch (e.message) { case 'block between recipient and sender': - this.pendingMessageFailure = 'unrecoverable' this.emitter.emit('event', { type: 'invalidate-block-state', accountDids: [ @@ -842,9 +843,14 @@ export class Convo { }) break case 'Account is disabled': - this.pendingMessageFailure = 'unrecoverable' this.dispatch({event: ConvoDispatchEvent.Disable}) break + case 'Convo not found': + case 'Account does not exist': + case 'recipient does not exist': + case 'recipient requires incoming messages to come from someone they follow': + case 'recipient has disabled incoming messages': + break default: logger.warn( `Convo handleSendMessageFailure could not handle error`, @@ -857,6 +863,7 @@ export class Convo { } } } else { + this.pendingMessageFailure = 'unrecoverable' logger.error(e, { context: `Convo handleSendMessageFailure received unknown error`, }) From afab4d512928ffd538bdc40d91aed7c592cd8a70 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Fri, 24 May 2024 11:24:20 -0700 Subject: [PATCH 202/277] Move ALT indicator right and shrink it a bit (#4213) --- src/view/com/util/images/Gallery.tsx | 4 ++-- src/view/com/util/post-embeds/index.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/view/com/util/images/Gallery.tsx b/src/view/com/util/images/Gallery.tsx index f6d2c7a1b0..f0b7ac15e7 100644 --- a/src/view/com/util/images/Gallery.tsx +++ b/src/view/com/util/images/Gallery.tsx @@ -74,12 +74,12 @@ const styles = StyleSheet.create({ position: 'absolute', // Related to margin/gap hack. This keeps the alt label in the same position // on all platforms - left: isWeb ? 8 : 5, + right: isWeb ? 8 : 5, bottom: isWeb ? 8 : 5, }, alt: { color: 'white', - fontSize: 10, + fontSize: 6, fontWeight: 'bold', }, }) diff --git a/src/view/com/util/post-embeds/index.tsx b/src/view/com/util/post-embeds/index.tsx index eb9732ee8e..8aa9919ca8 100644 --- a/src/view/com/util/post-embeds/index.tsx +++ b/src/view/com/util/post-embeds/index.tsx @@ -178,12 +178,12 @@ const styles = StyleSheet.create({ paddingHorizontal: 6, paddingVertical: 3, position: 'absolute', - left: 6, + right: 6, bottom: 6, }, alt: { color: 'white', - fontSize: 10, + fontSize: 6, fontWeight: 'bold', }, customFeedOuter: { From c0175af76a72ec270300d13db87e9617d9782bac Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 24 May 2024 13:50:50 -0500 Subject: [PATCH 203/277] Recover from initial failed firehose state (#4211) --- src/state/messages/events/agent.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/state/messages/events/agent.ts b/src/state/messages/events/agent.ts index 0389c77f58..01165256a7 100644 --- a/src/state/messages/events/agent.ts +++ b/src/state/messages/events/agent.ts @@ -210,6 +210,7 @@ export class MessagesEventBus { } case MessagesEventBusStatus.Error: { switch (action.event) { + case MessagesEventBusDispatchEvent.UpdatePoll: case MessagesEventBusDispatchEvent.Resume: { // basically reset this.status = MessagesEventBusStatus.Initializing From dc9d80d2a84927119381eeee1b16e10099f08334 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 24 May 2024 19:59:28 +0100 Subject: [PATCH 204/277] =?UTF-8?q?[=F0=9F=90=B4]=20update=20convo=20list?= =?UTF-8?q?=20from=20message=20bus=20(#4189)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update convo list from message bus * don't increase unread count if you're the sender * add refetch interval back * Fix deleted message state copy * only enable if `hasSession` * Fix logged out handling * increase refetch interval to 60s * request 10s interval when message screen active * use useAppState hook for convo resume/background * Combine forces * fix useFocusEffect logic --------- Co-authored-by: Eric Bailey --- src/lib/hooks/useAppState.ts | 15 + src/screens/Messages/List/ChatListItem.tsx | 4 +- src/screens/Messages/List/index.tsx | 28 +- src/state/messages/convo/const.ts | 1 + src/state/messages/convo/index.tsx | 41 +-- src/state/messages/index.tsx | 5 +- .../queries/messages/list-converations.ts | 196 ----------- .../queries/messages/list-converations.tsx | 317 ++++++++++++++++++ 8 files changed, 376 insertions(+), 231 deletions(-) create mode 100644 src/lib/hooks/useAppState.ts delete mode 100644 src/state/queries/messages/list-converations.ts create mode 100644 src/state/queries/messages/list-converations.tsx diff --git a/src/lib/hooks/useAppState.ts b/src/lib/hooks/useAppState.ts new file mode 100644 index 0000000000..7fb228d618 --- /dev/null +++ b/src/lib/hooks/useAppState.ts @@ -0,0 +1,15 @@ +import {useEffect, useState} from 'react' +import {AppState} from 'react-native' + +export function useAppState() { + const [state, setState] = useState(AppState.currentState) + + useEffect(() => { + const sub = AppState.addEventListener('change', nextAppState => { + setState(nextAppState) + }) + return () => sub.remove() + }, []) + + return state +} diff --git a/src/screens/Messages/List/ChatListItem.tsx b/src/screens/Messages/List/ChatListItem.tsx index 52fae7d291..a5c709a27c 100644 --- a/src/screens/Messages/List/ChatListItem.tsx +++ b/src/screens/Messages/List/ChatListItem.tsx @@ -105,7 +105,9 @@ function ChatListItemReady({ lastMessageSentAt = convo.lastMessage.sentAt } if (ChatBskyConvoDefs.isDeletedMessageView(convo.lastMessage)) { - lastMessage = _(msg`Conversation deleted`) + lastMessage = isDeletedAccount + ? _(msg`Conversation deleted`) + : _(msg`Message deleted`) } const [showActions, setShowActions] = useState(false) diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index 26b6df23b7..7c67c59d3f 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -1,16 +1,20 @@ -import React, {useCallback, useMemo, useState} from 'react' +import React, {useCallback, useEffect, useMemo, useState} from 'react' import {View} from 'react-native' import {ChatBskyConvoDefs} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {useFocusEffect} from '@react-navigation/native' import {NativeStackScreenProps} from '@react-navigation/native-stack' +import {useAppState} from '#/lib/hooks/useAppState' import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' import {MessagesTabNavigatorParams} from '#/lib/routes/types' import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' import {isNative} from '#/platform/detection' -import {useListConvos} from '#/state/queries/messages/list-converations' +import {MESSAGE_SCREEN_POLL_INTERVAL} from '#/state/messages/convo/const' +import {useMessagesEventBus} from '#/state/messages/events' +import {useListConvosQuery} from '#/state/queries/messages/list-converations' import {List} from '#/view/com/util/List' import {ViewHeader} from '#/view/com/util/ViewHeader' import {CenteredView} from '#/view/com/util/Views' @@ -52,7 +56,7 @@ export function MessagesScreen({navigation, route}: Props) { // this tab. We should immediately push to the conversation after pressing the notification. // After we push, reset with `setParams` so that this effect will fire next time we press a notification, even if // the conversation is the same as before - React.useEffect(() => { + useEffect(() => { if (pushToConversation) { navigation.navigate('MessagesConversation', { conversation: pushToConversation, @@ -61,6 +65,22 @@ export function MessagesScreen({navigation, route}: Props) { } }, [navigation, pushToConversation]) + // Request the poll interval to be 10s (or whatever the MESSAGE_SCREEN_POLL_INTERVAL is set to in the future) + // but only when the screen is active + const messagesBus = useMessagesEventBus() + const state = useAppState() + const isActive = state === 'active' + useFocusEffect( + useCallback(() => { + if (isActive) { + const unsub = messagesBus.requestPollInterval( + MESSAGE_SCREEN_POLL_INTERVAL, + ) + return () => unsub() + } + }, [messagesBus, isActive]), + ) + const renderButton = useCallback(() => { return ( & {children: React.ReactNode}) { const queryClient = useQueryClient() - const isScreenFocused = useIsFocused() const {getAgent} = useAgent() const events = useMessagesEventBus() const [convo] = useState( @@ -72,16 +71,20 @@ export function ConvoProvider({ const service = useSyncExternalStore(convo.subscribe, convo.getSnapshot) const {mutate: markAsRead} = useMarkAsReadMutation() + const appState = useAppState() + const isActive = appState === 'active' useFocusEffect( React.useCallback(() => { - convo.resume() - markAsRead({convoId}) - - return () => { - convo.background() + if (isActive) { + convo.resume() markAsRead({convoId}) + + return () => { + convo.background() + markAsRead({convoId}) + } } - }, [convo, convoId, markAsRead]), + }, [isActive, convo, convoId, markAsRead]), ) React.useEffect(() => { @@ -101,25 +104,5 @@ export function ConvoProvider({ }) }, [convo, queryClient]) - React.useEffect(() => { - const handleAppStateChange = (nextAppState: string) => { - if (isScreenFocused) { - if (nextAppState === 'active') { - convo.resume() - } else { - convo.background() - } - - markAsRead({convoId}) - } - } - - const sub = AppState.addEventListener('change', handleAppStateChange) - - return () => { - sub.remove() - } - }, [convoId, convo, isScreenFocused, markAsRead]) - return {children} } diff --git a/src/state/messages/index.tsx b/src/state/messages/index.tsx index 04ace8d60d..a379c5513b 100644 --- a/src/state/messages/index.tsx +++ b/src/state/messages/index.tsx @@ -2,13 +2,16 @@ import React from 'react' import {CurrentConvoIdProvider} from '#/state/messages/current-convo-id' import {MessagesEventBusProvider} from '#/state/messages/events' +import {ListConvosProvider} from '#/state/queries/messages/list-converations' import {MessageDraftsProvider} from './message-drafts' export function MessagesProvider({children}: {children: React.ReactNode}) { return ( - {children} + + {children} + ) diff --git a/src/state/queries/messages/list-converations.ts b/src/state/queries/messages/list-converations.ts deleted file mode 100644 index 493ee0d193..0000000000 --- a/src/state/queries/messages/list-converations.ts +++ /dev/null @@ -1,196 +0,0 @@ -import {useCallback, useMemo} from 'react' -import { - ChatBskyConvoDefs, - ChatBskyConvoListConvos, - moderateProfile, -} from '@atproto/api' -import { - InfiniteData, - QueryClient, - useInfiniteQuery, - useQueryClient, -} from '@tanstack/react-query' - -import {useCurrentConvoId} from '#/state/messages/current-convo-id' -import {useModerationOpts} from '#/state/preferences/moderation-opts' -import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' -import {useAgent, useSession} from '#/state/session' - -export const RQKEY = ['convo-list'] -type RQPageParam = string | undefined - -export function useListConvos({refetchInterval}: {refetchInterval: number}) { - const {getAgent} = useAgent() - - return useInfiniteQuery({ - queryKey: RQKEY, - queryFn: async ({pageParam}) => { - const {data} = await getAgent().api.chat.bsky.convo.listConvos( - {cursor: pageParam}, - {headers: DM_SERVICE_HEADERS}, - ) - - return data - }, - initialPageParam: undefined as RQPageParam, - getNextPageParam: lastPage => lastPage.cursor, - refetchInterval, - }) -} - -export function useUnreadMessageCount() { - const {currentConvoId} = useCurrentConvoId() - const {currentAccount} = useSession() - const convos = useListConvos({ - refetchInterval: 30_000, - }) - const moderationOpts = useModerationOpts() - - const count = useMemo(() => { - return ( - convos.data?.pages - .flatMap(page => page.convos) - .filter(convo => convo.id !== currentConvoId) - .reduce((acc, convo) => { - const otherMember = convo.members.find( - member => member.did !== currentAccount?.did, - ) - - if (!otherMember || !moderationOpts) return acc - - const moderation = moderateProfile(otherMember, moderationOpts) - const shouldIgnore = - convo.muted || - moderation.blocked || - otherMember.did === 'missing.invalid' - const unreadCount = !shouldIgnore && convo.unreadCount > 0 ? 1 : 0 - - return acc + unreadCount - }, 0) ?? 0 - ) - }, [convos.data, currentAccount?.did, currentConvoId, moderationOpts]) - - return useMemo(() => { - return { - count, - numUnread: count > 0 ? (count > 30 ? '30+' : String(count)) : undefined, - } - }, [count]) -} - -type ConvoListQueryData = { - pageParams: Array - pages: Array -} - -export function useOnDeleteMessage() { - const queryClient = useQueryClient() - - return useCallback( - (chatId: string, messageId: string) => { - queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) => { - return optimisticUpdate(chatId, old, convo => - messageId === convo.lastMessage?.id - ? { - ...convo, - lastMessage: { - $type: 'chat.bsky.convo.defs#deletedMessageView', - id: messageId, - rev: '', - }, - } - : convo, - ) - }) - }, - [queryClient], - ) -} - -export function useOnNewMessage() { - const queryClient = useQueryClient() - - return useCallback( - (chatId: string, message: ChatBskyConvoDefs.MessageView) => { - queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) => { - return optimisticUpdate(chatId, old, convo => ({ - ...convo, - lastMessage: message, - unreadCount: convo.unreadCount + 1, - })) - }) - queryClient.invalidateQueries({queryKey: RQKEY}) - }, - [queryClient], - ) -} - -export function useOnCreateConvo() { - const queryClient = useQueryClient() - - return useCallback(() => { - queryClient.invalidateQueries({queryKey: RQKEY}) - }, [queryClient]) -} - -export function useOnMarkAsRead() { - const queryClient = useQueryClient() - - return useCallback( - (chatId: string) => { - queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) => { - return optimisticUpdate(chatId, old, convo => ({ - ...convo, - unreadCount: 0, - })) - }) - }, - [queryClient], - ) -} - -function optimisticUpdate( - chatId: string, - old: ConvoListQueryData, - updateFn: (convo: ChatBskyConvoDefs.ConvoView) => ChatBskyConvoDefs.ConvoView, -) { - if (!old) { - return old - } - - return { - ...old, - pages: old.pages.map(page => ({ - ...page, - convos: page.convos.map(convo => - chatId === convo.id ? updateFn(convo) : convo, - ), - })), - } -} - -export function* findAllProfilesInQueryData( - queryClient: QueryClient, - did: string, -) { - const queryDatas = queryClient.getQueriesData< - InfiniteData - >({ - queryKey: RQKEY, - }) - for (const [_queryKey, queryData] of queryDatas) { - if (!queryData?.pages) { - continue - } - - for (const page of queryData.pages) { - for (const convo of page.convos) { - for (const member of convo.members) { - if (member.did === did) { - yield member - } - } - } - } - } -} diff --git a/src/state/queries/messages/list-converations.tsx b/src/state/queries/messages/list-converations.tsx new file mode 100644 index 0000000000..13a4a3bf21 --- /dev/null +++ b/src/state/queries/messages/list-converations.tsx @@ -0,0 +1,317 @@ +import React, { + createContext, + useCallback, + useContext, + useEffect, + useMemo, +} from 'react' +import { + ChatBskyConvoDefs, + ChatBskyConvoListConvos, + moderateProfile, +} from '@atproto/api' +import { + InfiniteData, + QueryClient, + useInfiniteQuery, + useQueryClient, +} from '@tanstack/react-query' + +import {useCurrentConvoId} from '#/state/messages/current-convo-id' +import {useMessagesEventBus} from '#/state/messages/events' +import {useModerationOpts} from '#/state/preferences/moderation-opts' +import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' +import {useAgent, useSession} from '#/state/session' + +export const RQKEY = ['convo-list'] +type RQPageParam = string | undefined + +export function useListConvosQuery() { + const {getAgent} = useAgent() + + return useInfiniteQuery({ + queryKey: RQKEY, + queryFn: async ({pageParam}) => { + const {data} = await getAgent().api.chat.bsky.convo.listConvos( + {cursor: pageParam}, + {headers: DM_SERVICE_HEADERS}, + ) + + return data + }, + initialPageParam: undefined as RQPageParam, + getNextPageParam: lastPage => lastPage.cursor, + // refetch every 60 seconds since we can't get *all* info from the logs + // i.e. reading chats on another device won't update the unread count + refetchInterval: 60_000, + }) +} + +const ListConvosContext = createContext( + null, +) + +export function useListConvos() { + const ctx = useContext(ListConvosContext) + if (!ctx) { + throw new Error('useListConvos must be used within a ListConvosProvider') + } + return ctx +} + +export function ListConvosProvider({children}: {children: React.ReactNode}) { + const {hasSession} = useSession() + + if (!hasSession) { + return ( + + {children} + + ) + } + + return {children} +} + +export function ListConvosProviderInner({ + children, +}: { + children: React.ReactNode +}) { + const {refetch, data} = useListConvosQuery() + const messagesBus = useMessagesEventBus() + const queryClient = useQueryClient() + const {currentConvoId} = useCurrentConvoId() + const {currentAccount} = useSession() + + useEffect(() => { + const unsub = messagesBus.on( + events => { + if (events.type !== 'logs') return + + events.logs.forEach(log => { + if (ChatBskyConvoDefs.isLogBeginConvo(log)) { + refetch() + } else if (ChatBskyConvoDefs.isLogLeaveConvo(log)) { + queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) => + optimisticDelete(log.convoId, old), + ) + } else if (ChatBskyConvoDefs.isLogDeleteMessage(log)) { + queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) => + optimisticUpdate(log.convoId, old, convo => + log.message.id === convo.lastMessage?.id + ? { + ...convo, + rev: log.rev, + lastMessage: log.message, + } + : convo, + ), + ) + } else if (ChatBskyConvoDefs.isLogCreateMessage(log)) { + queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) => { + if (!old) return old + + function updateConvo(convo: ChatBskyConvoDefs.ConvoView) { + if (!ChatBskyConvoDefs.isLogCreateMessage(log)) return convo + + let unreadCount = convo.unreadCount + if (convo.id !== currentConvoId) { + if ( + ChatBskyConvoDefs.isMessageView(log.message) || + ChatBskyConvoDefs.isDeletedMessageView(log.message) + ) { + if (log.message.sender.did !== currentAccount?.did) { + unreadCount++ + } + } + } else { + unreadCount = 0 + } + + return { + ...convo, + rev: log.rev, + lastMessage: log.message, + unreadCount, + } + } + + function filterConvoFromPage( + convo: ChatBskyConvoDefs.ConvoView[], + ) { + return convo.filter(c => c.id !== log.convoId) + } + + const existingConvo = getConvoFromQueryData(log.convoId, old) + + if (existingConvo) { + return { + ...old, + pages: old.pages.map((page, i) => { + if (i === 0) { + return { + ...page, + convos: [ + updateConvo(existingConvo), + ...filterConvoFromPage(page.convos), + ], + } + } + return { + ...page, + convos: filterConvoFromPage(page.convos), + } + }), + } + } else { + refetch() + } + }) + } + }) + }, + { + // get events for all chats + convoId: undefined, + }, + ) + + return () => unsub() + }, [messagesBus, currentConvoId, refetch, queryClient, currentAccount?.did]) + + const ctx = useMemo(() => { + return data?.pages.flatMap(page => page.convos) ?? [] + }, [data]) + + return ( + + {children} + + ) +} + +export function useUnreadMessageCount() { + const {currentConvoId} = useCurrentConvoId() + const {currentAccount} = useSession() + const convos = useListConvos() + const moderationOpts = useModerationOpts() + + const count = useMemo(() => { + return ( + convos + .filter(convo => convo.id !== currentConvoId) + .reduce((acc, convo) => { + const otherMember = convo.members.find( + member => member.did !== currentAccount?.did, + ) + + if (!otherMember || !moderationOpts) return acc + + const moderation = moderateProfile(otherMember, moderationOpts) + const shouldIgnore = + convo.muted || + moderation.blocked || + otherMember.did === 'missing.invalid' + const unreadCount = !shouldIgnore && convo.unreadCount > 0 ? 1 : 0 + + return acc + unreadCount + }, 0) ?? 0 + ) + }, [convos, currentAccount?.did, currentConvoId, moderationOpts]) + + return useMemo(() => { + return { + count, + numUnread: count > 0 ? (count > 30 ? '30+' : String(count)) : undefined, + } + }, [count]) +} + +type ConvoListQueryData = { + pageParams: Array + pages: Array +} + +export function useOnMarkAsRead() { + const queryClient = useQueryClient() + + return useCallback( + (chatId: string) => { + queryClient.setQueryData(RQKEY, (old: ConvoListQueryData) => { + return optimisticUpdate(chatId, old, convo => ({ + ...convo, + unreadCount: 0, + })) + }) + }, + [queryClient], + ) +} + +function optimisticUpdate( + chatId: string, + old: ConvoListQueryData, + updateFn: (convo: ChatBskyConvoDefs.ConvoView) => ChatBskyConvoDefs.ConvoView, +) { + if (!old) return old + + return { + ...old, + pages: old.pages.map(page => ({ + ...page, + convos: page.convos.map(convo => + chatId === convo.id ? updateFn(convo) : convo, + ), + })), + } +} + +function optimisticDelete(chatId: string, old: ConvoListQueryData) { + if (!old) return old + + return { + ...old, + pages: old.pages.map(page => ({ + ...page, + convos: page.convos.filter(convo => chatId !== convo.id), + })), + } +} + +function getConvoFromQueryData(chatId: string, old: ConvoListQueryData) { + for (const page of old.pages) { + for (const convo of page.convos) { + if (convo.id === chatId) { + return convo + } + } + } + return null +} + +export function* findAllProfilesInQueryData( + queryClient: QueryClient, + did: string, +) { + const queryDatas = queryClient.getQueriesData< + InfiniteData + >({ + queryKey: RQKEY, + }) + for (const [_queryKey, queryData] of queryDatas) { + if (!queryData?.pages) { + continue + } + + for (const page of queryData.pages) { + for (const convo of page.convos) { + for (const member of convo.members) { + if (member.did === did) { + yield member + } + } + } + } + } +} From 735fead673a0a44d81077c1f33e53dbfcb17a898 Mon Sep 17 00:00:00 2001 From: kodebanget <151415765+kodebanget@users.noreply.github.com> Date: Sat, 25 May 2024 03:44:44 +0700 Subject: [PATCH 205/277] Update Indonesian translation (#4165) * Update Indonesian translation * Update messages.po --------- Co-authored-by: Indonesian --- src/locale/locales/id/messages.po | 633 +++++++++++++++--------------- 1 file changed, 317 insertions(+), 316 deletions(-) diff --git a/src/locale/locales/id/messages.po b/src/locale/locales/id/messages.po index 41bcfb7ead..f35db3ea11 100644 --- a/src/locale/locales/id/messages.po +++ b/src/locale/locales/id/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: id\n" "Project-Id-Version: bluesky-id\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-05-01 11:21\n" +"PO-Revision-Date: 2024-05-22 05:38\n" "Last-Translator: \n" "Language-Team: GID0317, danninov, thinkbyte1024, mary-ext, kodebanget, oops-wtf\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -24,7 +24,7 @@ msgstr "(tidak ada email)" #: src/view/com/notifications/FeedItem.tsx:239 msgid "{0, plural, one {{formattedCount} other} other {{formattedCount} others}}" -msgstr "" +msgstr "{0, plural, other {{formattedCount} lainnya}}" #: src/components/moderation/LabelsOnMe.tsx:55 #~ msgid "{0, plural, one {# label has been placed on this account} other {# labels has been placed on this account}}" @@ -32,7 +32,7 @@ msgstr "" #: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" -msgstr "" +msgstr "{0, plural, other {# label telah diterapkan pada akun ini}}" #: src/components/moderation/LabelsOnMe.tsx:61 #~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" @@ -40,49 +40,49 @@ msgstr "" #: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" -msgstr "" +msgstr "{0, plural, other {# label telah diterapkan pada konten ini}}" #: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" -msgstr "" +msgstr "{0, plural, other {# postingan ulang}}" #: src/components/ProfileHoverCard/index.web.tsx:377 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" -msgstr "" +msgstr "{0, plural, other {pengikut}}" #: src/components/ProfileHoverCard/index.web.tsx:381 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" -msgstr "" +msgstr "{0, plural, other {mengikuti}}" #: src/view/com/util/post-ctrls/PostCtrls.tsx:245 msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" -msgstr "" +msgstr "{0, plural, other {Suka (# menyukai)}}" #: src/view/com/post-thread/PostThreadItem.tsx:359 msgid "{0, plural, one {like} other {likes}}" -msgstr "" +msgstr "{0, plural, other {suka}}" #: src/view/com/feeds/FeedSourceCard.tsx:269 msgid "{0, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{0, plural, other {Disukai oleh # pengguna}}" #: src/screens/Profile/Header/Metrics.tsx:59 msgid "{0, plural, one {post} other {posts}}" -msgstr "" +msgstr "{0, plural, other {postingan}}" #: src/view/com/util/post-ctrls/PostCtrls.tsx:204 msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" -msgstr "" +msgstr "{0, plural, other {Balas (# balasan)}}" #: src/view/com/post-thread/PostThreadItem.tsx:339 msgid "{0, plural, one {repost} other {reposts}}" -msgstr "" +msgstr "{0, plural, other {posting ulang}}" #: src/view/com/util/post-ctrls/PostCtrls.tsx:241 msgid "{0, plural, one {Unlike (# like)} other {Unlike (# likes)}}" -msgstr "" +msgstr "{0, plural, other {Batal suka (# menyukai)}}" #: src/view/screens/ProfileList.tsx:286 #~ msgid "{0} your feeds" @@ -90,15 +90,15 @@ msgstr "" #: src/components/LabelingServiceCard/index.tsx:71 msgid "{count, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{count, plural, other {Disukai oleh # pengguna}}" #: src/screens/Deactivated.tsx:207 msgid "{estimatedTimeHrs, plural, one {hour} other {hours}}" -msgstr "" +msgstr "{estimatedTimeHrs, plural, other {jam}}" #: src/screens/Deactivated.tsx:213 msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" -msgstr "" +msgstr "{estimatedTimeMins, plural, other {menit}}" #: src/components/ProfileHoverCard/index.web.tsx:458 #: src/screens/Profile/Header/Metrics.tsx:50 @@ -107,13 +107,13 @@ msgstr "{following} mengikuti" #: src/components/dms/NewChatDialog/index.tsx:171 msgid "{handle} can't be messaged" -msgstr "" +msgstr "{handle} tidak dapat dikirimi pesan" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 #: src/view/screens/ProfileFeed.tsx:585 msgid "{likeCount, plural, one {Liked by # user} other {Liked by # users}}" -msgstr "" +msgstr "{likeCount, plural, other {Disukai oleh # pengguna}}" #: src/view/shell/Drawer.tsx:461 msgid "{numUnreadNotifications} unread" @@ -121,32 +121,32 @@ msgstr "{numUnreadNotifications} belum dibaca" #: src/view/screens/PreferencesFollowingFeed.tsx:67 msgid "{value, plural, =0 {Show all replies} one {Show replies with at least # like} other {Show replies with at least # likes}}" -msgstr "" +msgstr "{value, plural, =0 {Tampilkan semua balasan} other {Tampilkan balasan dengan minimal # suka}}" #: src/view/com/threadgate/WhoCanReply.tsx:159 msgid "<0/> members" -msgstr "<0/> anggota" +msgstr "anggota <0/>" #: src/view/shell/Drawer.tsx:101 msgid "<0>{0} {1, plural, one {follower} other {followers}}" -msgstr "" +msgstr "<0>{0} {1, plural, other {pengikut}}" #: src/view/shell/Drawer.tsx:112 msgid "<0>{0} {1, plural, one {following} other {following}}" -msgstr "" +msgstr "<0>{0} {1, plural, other {mengikuti}}" #: src/view/shell/Drawer.tsx:96 #~ msgid "<0>{0} following" -#~ msgstr "<0>{0} mengikuti" +#~ msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:437 #~ msgid "<0>{followers} <1>{pluralizedFollowers}" -#~ msgstr "<0>{followers} <1>{pluralizedFollowers}" +#~ msgstr "" #: src/components/ProfileHoverCard/index.web.tsx:449 #: src/screens/Profile/Header/Metrics.tsx:45 #~ msgid "<0>{following} <1>following" -#~ msgstr "<0>{following} <1>mengikuti" +#~ msgstr "" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:31 #~ msgid "<0>Choose your<1>Recommended<2>Feeds" @@ -158,7 +158,7 @@ msgstr "" #: src/view/com/modals/SelfLabel.tsx:135 msgid "<0>Not Applicable. This warning is only available for posts with media attached." -msgstr "" +msgstr "<0>Tidak bisa diterapkan. Peringatan ini hanya tersedia untuk postingan dengan lampiran media." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 #~ msgid "<0>Welcome to<1>Bluesky" @@ -197,7 +197,7 @@ msgstr "Pengaturan Aksesibilitas" #: src/components/moderation/LabelsOnMe.tsx:42 #~ msgid "account" -#~ msgstr "akun" +#~ msgstr "" #: src/screens/Login/LoginForm.tsx:164 #: src/view/screens/Settings/index.tsx:338 @@ -224,7 +224,7 @@ msgstr "Akun Dibisukan" #: src/components/moderation/ModerationDetailsDialog.tsx:82 msgid "Account Muted by List" -msgstr "Akun Dibisukan Berdasarkan Daftar" +msgstr "Akun Dibisukan oleh Daftar" #: src/view/com/util/AccountDropdownBtn.tsx:41 msgid "Account options" @@ -305,11 +305,11 @@ msgstr "Tambah kata dan tagar untuk dibisukan" #: src/screens/Home/NoFeedsPinned.tsx:112 msgid "Add recommended feeds" -msgstr "" +msgstr "Tambahkan feed rekomendasi" #: src/screens/Feeds/NoFollowingFeed.tsx:41 msgid "Add the default feed of only people you follow" -msgstr "" +msgstr "Tambahkan feed bawaan hanya untuk orang yang Anda ikuti" #: src/view/com/modals/ChangeHandle.tsx:410 msgid "Add the following DNS record to your domain:" @@ -339,7 +339,7 @@ msgstr "Ditambahkan ke feed saya" #: src/view/screens/PreferencesFollowingFeed.tsx:172 msgid "Adjust the number of likes a reply must have to be shown in your feed." -msgstr "Atur jumlah suka dari balasan yang akan ditampilkan di feed Anda." +msgstr "Sesuaikan jumlah suka yang harus dimiliki oleh balasan agar ditampilkan di feed Anda." #: src/lib/moderation/useGlobalLabelStrings.ts:34 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:117 @@ -363,7 +363,7 @@ msgstr "Berisi semua feed yang telah Anda simpan dalam satu tempat." #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" -msgstr "" +msgstr "Izinkan pesan dari" #: src/screens/Login/ForgotPasswordForm.tsx:178 #: src/view/com/modals/ChangePassword.tsx:172 @@ -388,7 +388,7 @@ msgstr "Teks alt" #: src/view/com/util/post-embeds/GifEmbed.tsx:179 msgid "Alt Text" -msgstr "" +msgstr "Teks Alt" #: src/view/com/composer/photos/Gallery.tsx:224 msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." @@ -413,7 +413,7 @@ msgstr "Terjadi kesalahan" #: src/lib/moderation/useReportOptions.ts:27 msgid "An issue not included in these options" -msgstr "Masalah yang tidak termasuk dalam pilihan" +msgstr "Masalah lain yang tidak termasuk dalam pilihan" #: src/components/hooks/useFollowMethods.ts:35 #: src/components/hooks/useFollowMethods.ts:50 @@ -426,7 +426,7 @@ msgstr "Terjadi masalah, silakan coba lagi." #: src/screens/Onboarding/StepInterests/index.tsx:204 msgid "an unknown error occurred" -msgstr "" +msgstr "terjadi kesalahan yang tidak diketahui" #: src/view/com/notifications/FeedItem.tsx:236 #: src/view/com/threadgate/WhoCanReply.tsx:180 @@ -483,18 +483,18 @@ msgstr "Banding label \"{0}\"" #: src/components/moderation/LabelsOnMeDialog.tsx:228 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" -msgstr "" +msgstr "Banding diajukan" #: src/components/moderation/LabelsOnMeDialog.tsx:193 #~ msgid "Appeal submitted." -#~ msgstr "Banding diajukan." +#~ msgstr "" #: src/screens/Messages/Conversation/ChatDisabled.tsx:51 #: src/screens/Messages/Conversation/ChatDisabled.tsx:53 #: src/screens/Messages/Conversation/ChatDisabled.tsx:99 #: src/screens/Messages/Conversation/ChatDisabled.tsx:101 msgid "Appeal this decision" -msgstr "" +msgstr "Ajukan banding atas keputusan ini" #: src/view/screens/Settings/index.tsx:432 msgid "Appearance" @@ -503,7 +503,7 @@ msgstr "Tampilan" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:47 #: src/screens/Home/NoFeedsPinned.tsx:106 msgid "Apply default recommended feeds" -msgstr "" +msgstr "Tambahkan feed yang direkomendasikan secara default" #: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" @@ -515,7 +515,7 @@ msgstr "Anda yakin untuk menghapus kata sandi aplikasi \"{name}\"?" #: src/components/dms/MessageMenu.tsx:124 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." -msgstr "" +msgstr "Anda yakin ingin menghapus pesan ini? Pesan akan dihapus untuk Anda, tetapi tidak untuk partisipan lain." #: src/components/dms/ConvoMenu.tsx:189 #~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." @@ -523,7 +523,7 @@ msgstr "" #: src/components/dms/LeaveConvoPrompt.tsx:48 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." -msgstr "" +msgstr "Anda yakin ingin meninggalkan percakapan ini? Pesan akan dihapus untuk Anda, tetapi tidak untuk partisipan lain." #: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" @@ -551,7 +551,7 @@ msgstr "Ketelanjangan artistik atau non-erotis." #: src/screens/Signup/StepHandle.tsx:119 msgid "At least 3 characters" -msgstr "Sedikitnya 3 karakter" +msgstr "Minimal 3 karakter" #: src/components/dms/MessagesListHeader.tsx:74 #: src/components/moderation/LabelsOnMeDialog.tsx:282 @@ -596,7 +596,7 @@ msgstr "Blokir" #: src/components/dms/ConvoMenu.tsx:186 #: src/components/dms/ConvoMenu.tsx:190 msgid "Block account" -msgstr "" +msgstr "Blokir akun" #: src/view/com/profile/ProfileMenu.tsx:300 #: src/view/com/profile/ProfileMenu.tsx:307 @@ -639,7 +639,7 @@ msgstr "Akun yang diblokir tidak dapat membalas di utas Anda, menyebut Anda, ata #: src/view/screens/ModerationBlockedAccounts.tsx:117 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." -msgstr "Akun yang diblokir tidak dapat membalas postingan Anda, menyebutkan Anda, dan interaksi lain dengan Anda. Anda tidak akan melihat konten mereka dan mereka akan dicegah melihat konten Anda." +msgstr "Akun yang diblokir tidak dapat membalas postingan Anda, menyebut Anda, atau berinteraksi dengan Anda. Anda juga tidak akan melihat konten mereka dan mereka akan dicegah melihat konten Anda." #: src/view/com/post-thread/PostThread.tsx:316 msgid "Blocked post." @@ -655,7 +655,7 @@ msgstr "Pemblokiran bersifat publik. Akun yang diblokir tidak dapat membalas pos #: src/view/com/profile/ProfileMenu.tsx:353 msgid "Blocking will not prevent labels from being applied on your account, but it will stop this account from replying in your threads or interacting with you." -msgstr "Pemblokiran tidak akan mencegah label diterapkan pada akun Anda, tetapi akan menghentikan akun ini untuk membalas atau berinteraksi dengan Anda." +msgstr "Memblokir tidak akan mencegah label diterapkan pada akun Anda, tetapi akan menghentikan akun ini untuk membalas atau berinteraksi dengan Anda." #: src/view/com/auth/SplashScreen.web.tsx:154 msgid "Blog" @@ -668,7 +668,7 @@ msgstr "Bluesky" #: src/view/com/auth/server-input/index.tsx:154 msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." -msgstr "Bluesky adalah jaringan terbuka yang memungkinkan Anda memilih penyedia hosting Anda. Hosting khusus kini tersedia dalam versi beta untuk pengembang." +msgstr "Bluesky adalah jaringan terbuka di mana Anda dapat memilih penyedia hosting sendiri. Hosting kustom kini tersedia dalam versi beta untuk pengembang." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:82 @@ -687,7 +687,7 @@ msgstr "Bluesky adalah jaringan terbuka yang memungkinkan Anda memilih penyedia #: src/screens/Moderation/index.tsx:533 msgid "Bluesky will not show your profile and posts to logged-out users. Other apps may not honor this request. This does not make your account private." -msgstr "Bluesky tidak akan menampilkan profil dan postingan Anda ke pengguna yang tidak login. Aplikasi lain mungkin tidak menghormati permintaan ini. Ini tidak membuat akun Anda menjadi privat." +msgstr "Bluesky tidak akan menampilkan profil dan postingan Anda kepada pengguna yang tidak login. Aplikasi lain mungkin tidak mematuhi permintaan ini. Ini tidak membuat akun Anda menjadi privat." #: src/lib/moderation/useLabelBehaviorDescription.ts:53 msgid "Blur images" @@ -704,7 +704,7 @@ msgstr "Buku" #: src/screens/Home/NoFeedsPinned.tsx:116 #: src/screens/Home/NoFeedsPinned.tsx:123 msgid "Browse other feeds" -msgstr "" +msgstr "Telusuri feed lain" #: src/view/com/auth/SplashScreen.web.tsx:151 msgid "Business" @@ -724,7 +724,7 @@ msgstr "Oleh {0}" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:112 msgid "by @{0}" -msgstr "" +msgstr "oleh @{0}" #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" @@ -853,26 +853,26 @@ msgstr "Ubah Email Anda" #: src/view/shell/bottom-bar/BottomBar.tsx:201 #: src/view/shell/desktop/LeftNav.tsx:295 msgid "Chat" -msgstr "Chat" +msgstr "Obrolan" #: src/components/dms/ConvoMenu.tsx:80 msgid "Chat muted" -msgstr "" +msgstr "Obrolan dibisukan" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 #: src/screens/Messages/List/index.tsx:68 msgid "Chat settings" -msgstr "" +msgstr "Pengaturan obrolan" #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" -msgstr "" +msgstr "Obrolan batal dibisukan" #: src/screens/Messages/Conversation/index.tsx:26 #~ msgid "Chat with {chatId}" -#~ msgstr "Chat dengan {chatId}" +#~ msgstr "" #: src/screens/Deactivated.tsx:78 #: src/screens/Deactivated.tsx:82 @@ -905,7 +905,7 @@ msgstr "Pilih Layanan" #: src/screens/Onboarding/StepFinished.tsx:238 msgid "Choose the algorithms that power your custom feeds." -msgstr "Pilih algoritma yang akan digunakan untuk feed khusus Anda." +msgstr "Pilih algoritma yang akan digunakan untuk feed kustom Anda." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:85 @@ -914,7 +914,7 @@ msgstr "Pilih algoritma yang akan digunakan untuk feed khusus Anda." #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:107 msgid "Choose this color as your avatar" -msgstr "" +msgstr "Pilih warna ini sebagai avatar Anda" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:104 msgid "Choose your main feeds" @@ -971,7 +971,7 @@ msgstr "Klik di sini untuk membuka menu tagar dari {tag}" #: src/components/dms/MessageItem.tsx:223 msgid "Click to retry failed message" -msgstr "" +msgstr "Ketuk untuk mengirim ulang pesan yang gagal" #: src/screens/Onboarding/index.tsx:47 msgid "Climate" @@ -979,7 +979,7 @@ msgstr "Iklim" #: src/components/dms/ChatEmptyPill.tsx:39 msgid "Clip 🐴 clop 🐴" -msgstr "" +msgstr "Keletak 🐴 keletuk 🐴" #: src/components/dialogs/GifSelect.tsx:301 #: src/components/dms/NewChatDialog/index.tsx:439 @@ -1020,7 +1020,7 @@ msgstr "Tutup penampil gambar" #: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" -msgstr "" +msgstr "Tutup modal" #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" @@ -1119,7 +1119,7 @@ msgstr "Konfirmasi hapus akun" #: src/screens/Moderation/index.tsx:301 msgid "Confirm your age:" -msgstr "Konfirmasikan usia Anda:" +msgstr "Konfirmasi usia Anda:" #: src/screens/Moderation/index.tsx:292 msgid "Confirm your birthdate" @@ -1145,7 +1145,7 @@ msgstr "Hubungi pusat bantuan" #: src/components/moderation/LabelsOnMe.tsx:42 #~ msgid "content" -#~ msgstr "konten" +#~ msgstr "" #: src/lib/moderation/useGlobalLabelStrings.ts:18 msgid "Content Blocked" @@ -1178,7 +1178,7 @@ msgstr "Peringatan konten" #: src/components/Menu/index.web.tsx:83 msgid "Context menu backdrop, click to close the menu." -msgstr "Latar belakang menu konteks, klik untuk menutup menu." +msgstr "Latar menu konteks, klik untuk menutup menu." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:161 #: src/screens/Onboarding/StepFollowingFeed.tsx:154 @@ -1191,7 +1191,7 @@ msgstr "Lanjutkan" #: src/components/AccountList.tsx:113 msgid "Continue as {0} (currently signed in)" -msgstr "Lanjutkan sebagai {0} (saat ini masuk)" +msgstr "Lanjutkan sebagai {0} (sudah masuk)" #: src/screens/Onboarding/StepFollowingFeed.tsx:151 #: src/screens/Onboarding/StepInterests/index.tsx:260 @@ -1212,7 +1212,7 @@ msgstr "Lanjutkan ke langkah berikutnya tanpa mengikuti akun apa pun" #: src/screens/Messages/List/ChatListItem.tsx:108 msgid "Conversation deleted" -msgstr "" +msgstr "Percakapan dihapus" #: src/screens/Onboarding/index.tsx:56 msgid "Cooking" @@ -1268,7 +1268,7 @@ msgstr "Salin tautan postingan" #: src/components/dms/MessageMenu.tsx:87 #: src/components/dms/MessageMenu.tsx:89 msgid "Copy message text" -msgstr "" +msgstr "Salin teks pesan" #: src/view/com/util/forms/PostDropdownBtn.tsx:256 #: src/view/com/util/forms/PostDropdownBtn.tsx:258 @@ -1282,7 +1282,7 @@ msgstr "Kebijakan Hak Cipta" #: src/components/dms/LeaveConvoPrompt.tsx:39 msgid "Could not leave chat" -msgstr "" +msgstr "Tidak dapat meninggalkan obrolan" #: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" @@ -1298,7 +1298,7 @@ msgstr "Tidak dapat memuat daftar" #: src/components/dms/ConvoMenu.tsx:86 msgid "Could not mute chat" -msgstr "" +msgstr "Tidak dapat membisukan obrolan" #: src/components/dms/ConvoMenu.tsx:68 #~ msgid "Could not unmute chat" @@ -1324,7 +1324,7 @@ msgstr "Buat akun" #: src/screens/Onboarding/StepProfile/index.tsx:286 msgid "Create an avatar instead" -msgstr "" +msgstr "Buat avatar saja" #: src/view/com/modals/AddAppPasswords.tsx:227 msgid "Create App Password" @@ -1363,7 +1363,7 @@ msgstr "Domain kustom" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:107 #: src/view/screens/Feeds.tsx:823 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." -msgstr "Feed khusus yang dibuat oleh komunitas memberikan pengalaman baru dan membantu Anda menemukan konten yang Anda sukai." +msgstr "Feed kustom yang dibangun oleh komunitas memberikan pengalaman baru dan membantu Anda menemukan konten yang Anda sukai." #: src/view/screens/PreferencesExternalEmbeds.tsx:56 msgid "Customize media from external sites." @@ -1407,11 +1407,11 @@ msgstr "Hapus akun" #: src/view/com/modals/DeleteAccount.tsx:87 #~ msgid "Delete Account" -#~ msgstr "Hapus Akun" +#~ msgstr "" #: src/view/com/modals/DeleteAccount.tsx:97 msgid "Delete Account <0>\"<1>{0}<2>\"" -msgstr "" +msgstr "Hapus Akun <0>\"<1>{0}<2>\"" #: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" @@ -1424,11 +1424,11 @@ msgstr "Hapus kata sandi aplikasi?" #: src/view/screens/Settings/index.tsx:835 #: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" -msgstr "" +msgstr "Hapus catatan deklarasi obrolan" #: src/components/dms/MessageMenu.tsx:99 msgid "Delete for me" -msgstr "" +msgstr "Hapus untuk saya" #: src/view/screens/ProfileList.tsx:470 msgid "Delete List" @@ -1436,11 +1436,11 @@ msgstr "Hapus Daftar" #: src/components/dms/MessageMenu.tsx:122 msgid "Delete message" -msgstr "" +msgstr "Hapus pesan" #: src/components/dms/MessageMenu.tsx:97 msgid "Delete message for me" -msgstr "" +msgstr "Hapus pesan untuk saya" #: src/view/com/modals/DeleteAccount.tsx:233 msgid "Delete my account" @@ -1473,7 +1473,7 @@ msgstr "Postingan dihapus." #: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" -msgstr "" +msgstr "Hapus catatan deklarasi obrolan" #: src/view/com/modals/CreateOrEditList.tsx:303 #: src/view/com/modals/CreateOrEditList.tsx:324 @@ -1484,7 +1484,7 @@ msgstr "Deskripsi" #: src/view/com/composer/GifAltText.tsx:140 msgid "Descriptive alt text" -msgstr "" +msgstr "Teks alt deskriptif" #: src/view/com/composer/Composer.tsx:250 msgid "Did you want to say anything?" @@ -1496,7 +1496,7 @@ msgstr "Redup" #: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" -msgstr "" +msgstr "Pesan langsung telah hadir!" #: src/view/screens/AccessibilitySettings.tsx:94 msgid "Disable autoplay for GIFs" @@ -1504,7 +1504,7 @@ msgstr "Nonaktifkan pemutaran otomatis untuk GIF" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:90 msgid "Disable Email 2FA" -msgstr "Nonaktfikan Email 2FA" +msgstr "Nonaktifkan Email 2FA" #: src/view/screens/AccessibilitySettings.tsx:108 msgid "Disable haptic feedback" @@ -1543,7 +1543,7 @@ msgstr "Cegah aplikasi untuk menampilkan akun saya ke pengguna yang tidak login" #: src/view/com/posts/FollowingEmptyState.tsx:74 #: src/view/com/posts/FollowingEndOfFeed.tsx:75 msgid "Discover new custom feeds" -msgstr "Temukan feed khusus baru" +msgstr "Temukan feed kustom baru" #: src/view/screens/Feeds.tsx:820 msgid "Discover New Feeds" @@ -1654,7 +1654,7 @@ msgstr "contoh: Spammer" #: src/view/com/modals/CreateOrEditList.tsx:315 msgid "e.g. The posters who never miss." -msgstr "contoh: Pemosting yang selalu tepat sasaran." +msgstr "contoh: Pemosting yang selalu kekinian." #: src/view/com/modals/CreateOrEditList.tsx:316 msgid "e.g. Users that repeatedly reply with ads." @@ -1800,7 +1800,7 @@ msgstr "Aktifkan pemutar media untuk" #: src/view/screens/PreferencesFollowingFeed.tsx:146 msgid "Enable this setting to only see replies between people you follow." -msgstr "Aktifkan opsi ini untuk hanya menampilkan balasan dari akun yang Anda ikuti." +msgstr "Aktifkan opsi ini untuk menampilkan balasan hanya dari akun yang Anda ikuti." #: src/components/dialogs/EmbedConsent.tsx:94 msgid "Enable this source only" @@ -1831,7 +1831,7 @@ msgstr "Masukkan kata sandi" #: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 msgid "Enter a word or tag" -msgstr "Masukkan kata atau tag" +msgstr "Masukkan kata atau tagar" #: src/view/com/modals/VerifyEmail.tsx:113 msgid "Enter Confirmation Code" @@ -1872,7 +1872,7 @@ msgstr "Masukkan nama pengguna dan kata sandi Anda" #: src/view/screens/Settings/ExportCarDialog.tsx:47 msgid "Error occurred while saving file" -msgstr "" +msgstr "Terjadi kesalahan saat menyimpan berkas" #: src/screens/Signup/StepCaptcha/index.tsx:51 msgid "Error receiving captcha response." @@ -1889,14 +1889,14 @@ msgstr "Semua orang" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 msgid "Everybody can reply" -msgstr "" +msgstr "Semua orang dapat membalas" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" -msgstr "" +msgstr "Semua orang" #: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" @@ -1904,7 +1904,7 @@ msgstr "Menyebut atau membalas secara berlebihan" #: src/lib/moderation/useReportOptions.ts:80 msgid "Excessive or unwanted messages" -msgstr "" +msgstr "Pesan yang berlebihan atau tidak diinginkan" #: src/view/com/modals/DeleteAccount.tsx:241 msgid "Exits account deletion process" @@ -1984,7 +1984,7 @@ msgstr "Gagal membuat daftar. Periksa koneksi internet Anda dan coba lagi." #: src/components/dms/MessageMenu.tsx:59 msgid "Failed to delete message" -msgstr "" +msgstr "Gagal menghapus pesan" #: src/view/com/util/forms/PostDropdownBtn.tsx:139 msgid "Failed to delete post, please try again" @@ -1996,7 +1996,7 @@ msgstr "Gagal memuat GIF" #: src/screens/Messages/Conversation/MessageListError.tsx:23 msgid "Failed to load past messages" -msgstr "" +msgstr "Gagal memuat pesan terdahulu" #: src/screens/Messages/Conversation/MessageListError.tsx:28 #~ msgid "Failed to load past messages." @@ -2013,7 +2013,7 @@ msgstr "Gagal menyimpan gambar: {0}" #: src/components/dms/MessageItem.tsx:216 msgid "Failed to send" -msgstr "" +msgstr "Gagal mengirim" #: src/screens/Messages/Conversation/MessageListError.tsx:29 #~ msgid "Failed to send message(s)." @@ -2022,12 +2022,12 @@ msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:224 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." -msgstr "" +msgstr "Gagal mengirimkan banding, silakan coba lagi." #: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" -msgstr "" +msgstr "Gagal memperbarui pengaturan" #: src/Navigation.tsx:203 msgid "Feed" @@ -2035,7 +2035,7 @@ msgstr "Feed" #: src/view/com/feeds/FeedSourceCard.tsx:219 msgid "Feed by {0}" -msgstr "Feed oleh {0}" +msgstr "Feed {0}" #: src/view/screens/Feeds.tsx:735 msgid "Feed offline" @@ -2062,7 +2062,7 @@ msgstr "Feed" #: src/view/screens/SavedFeeds.tsx:179 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." -msgstr "Feed adalah algoritma khusus yang dibuat oleh pengguna dengan sedikit keahlian pengkodean. <0/> untuk informasi lebih lanjut." +msgstr "Feeds adalah algoritma kustom yang dibuat pengguna dengan sedikit keahlian pemrograman. <0/> untuk informasi lebih lanjut." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 msgid "Feeds can be topical as well!" @@ -2074,7 +2074,7 @@ msgstr "Isi Berkas" #: src/view/screens/Settings/ExportCarDialog.tsx:43 msgid "File saved successfully!" -msgstr "" +msgstr "Berkas berhasil disimpan!" #: src/lib/moderation/useLabelBehaviorDescription.ts:66 msgid "Filter from feeds" @@ -2108,11 +2108,11 @@ msgstr "Temukan postingan dan pengguna di Bluesky" #: src/view/screens/PreferencesFollowingFeed.tsx:110 msgid "Fine-tune the content you see on your Following feed." -msgstr "Sesuaikan konten yang ingin Anda lihat di feed Following." +msgstr "Sesuaikan konten yang Anda lihat di feed Mengikuti." #: src/view/screens/PreferencesThreads.tsx:60 msgid "Fine-tune the discussion threads." -msgstr "Atur utasan diskusi." +msgstr "Sesuaikan utasan diskusi." #: src/screens/Onboarding/index.tsx:50 msgid "Fitness" @@ -2178,7 +2178,7 @@ msgstr "Diikuti oleh {0}" #: src/view/com/modals/Threadgate.tsx:98 msgid "Followed users" -msgstr "Pengguna yang diikuti" +msgstr "Pengguna yang Anda ikuti" #: src/view/screens/PreferencesFollowingFeed.tsx:153 msgid "Followed users only" @@ -2210,7 +2210,7 @@ msgstr "Mengikuti {0}" #: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" -msgstr "Preferensi feed Following" +msgstr "Preferensi feed Mengikuti" #: src/Navigation.tsx:269 #: src/view/com/home/HomeHeaderLayout.web.tsx:64 @@ -2218,7 +2218,7 @@ msgstr "Preferensi feed Following" #: src/view/screens/PreferencesFollowingFeed.tsx:103 #: src/view/screens/Settings/index.tsx:575 msgid "Following Feed Preferences" -msgstr "Preferensi Feed Following" +msgstr "Preferensi Feed Mengikuti" #: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" @@ -2272,7 +2272,7 @@ msgstr "Galeri" #: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" -msgstr "" +msgstr "Memulai" #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 @@ -2281,7 +2281,7 @@ msgstr "Memulai" #: src/screens/Onboarding/StepProfile/index.tsx:228 msgid "Give your profile a face" -msgstr "" +msgstr "Beri wajah pada profil Anda" #: src/lib/moderation/useReportOptions.ts:38 msgid "Glaring violations of law or terms of service" @@ -2331,7 +2331,7 @@ msgstr "Ke Beranda" #: src/screens/Messages/List/ChatListItem.tsx:156 msgid "Go to conversation with {0}" -msgstr "" +msgstr "Buka percakapan dengan {0}" #: src/screens/Login/ForgotPasswordForm.tsx:172 #: src/view/com/modals/ChangePassword.tsx:169 @@ -2340,11 +2340,11 @@ msgstr "Berikutnya" #: src/components/dms/ConvoMenu.tsx:165 msgid "Go to profile" -msgstr "" +msgstr "Buka profil" #: src/components/dms/ConvoMenu.tsx:162 msgid "Go to user's profile" -msgstr "" +msgstr "Buka profil pengguna" #: src/lib/moderation/useGlobalLabelStrings.ts:46 msgid "Graphic Media" @@ -2381,7 +2381,7 @@ msgstr "Bantuan" #: src/screens/Onboarding/StepProfile/index.tsx:231 msgid "Help people know you're not a bot by uploading a picture or creating an avatar." -msgstr "" +msgstr "Beri tahu orang-orang bahwa Anda bukan bot dengan mengunggah gambar atau membuat avatar." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:140 msgid "Here are some accounts for you to follow" @@ -2389,11 +2389,11 @@ msgstr "Berikut beberapa akun untuk Anda ikuti" #: src/screens/Onboarding/StepTopicalFeeds.tsx:89 msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "Berikut beberapa feed topik yang populer. Anda dapat memilih untuk mengikuti sebanyak yang Anda suka." +msgstr "Berikut beberapa feed topikal yang populer. Anda dapat memilih untuk mengikuti sebanyak yang Anda suka." #: src/screens/Onboarding/StepTopicalFeeds.tsx:84 msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "Berikut beberapa feed topik terdasarkan minat Anda: {interestsText}. Anda dapat memilih untuk mengikuti sebanyak yang Anda suka." +msgstr "Berikut beberapa feed topikal berdasarkan minat Anda: {interestsText}. Anda dapat memilih untuk mengikuti sebanyak yang Anda suka." #: src/view/com/modals/AddAppPasswords.tsx:154 msgid "Here is your app password." @@ -2437,7 +2437,7 @@ msgstr "Sembunyikan daftar pengguna" #: src/view/com/posts/FeedErrorMessage.tsx:118 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." -msgstr "Hmm, ada masalah yang terjadi saat menghubungi server feed. Harap beri tahu pemilik feed tentang masalah ini." +msgstr "Hmm, terjadi masalah saat menghubungi server feed. Harap beri tahu pemilik feed tentang masalah ini." #: src/view/com/posts/FeedErrorMessage.tsx:106 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." @@ -2457,7 +2457,7 @@ msgstr "Hmm, kami kesulitan menemukan feed ini. Mungkin sudah dihapus." #: src/screens/Moderation/index.tsx:59 msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." -msgstr "Hmmmm, sepertinya kami kesulitan memuat data ini. Lihat di bawah untuk keterangan lebih lanjut. Jika tetap eror, mohon hubungi kami." +msgstr "Hmmmm, tampaknya kami mengalami kesulitan memuat data ini. Lihat detail lebih lanjut di bawah ini. Jika masalah berlanjut, silakan hubungi kami." #: src/screens/Profile/ErrorState.tsx:31 msgid "Hmmmm, we couldn't load that moderation service." @@ -2480,7 +2480,7 @@ msgstr "Host:" #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" -msgstr "Provider hosting" +msgstr "Penyedia hosting" #: src/view/com/modals/InAppBrowserConsent.tsx:44 msgid "How should we open this link?" @@ -2503,7 +2503,7 @@ msgstr "Saya punya domain sendiri" #: src/components/dms/BlockedByListDialog.tsx:56 #: src/components/dms/ReportConversationPrompt.tsx:22 msgid "I understand" -msgstr "" +msgstr "Saya mengerti" #: src/view/com/lightbox/Lightbox.web.tsx:185 msgid "If alt text is long, toggles alt text expanded state" @@ -2547,7 +2547,7 @@ msgstr "Impersonasi atau klaim palsu tentang identitas atau afiliasi" #: src/lib/moderation/useReportOptions.ts:85 msgid "Inappropriate messages or explicit links" -msgstr "" +msgstr "Pesan tidak pantas atau tautan eksplisit" #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" @@ -2595,7 +2595,7 @@ msgstr "Masukkan handle pengguna Anda" #: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" -msgstr "" +msgstr "Memperkenalkan Pesan Langsung" #: src/screens/Login/LoginForm.tsx:129 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 @@ -2644,7 +2644,7 @@ msgstr "Jurnalisme" #: src/components/moderation/LabelsOnMe.tsx:59 #~ msgid "label has been placed on this {labelTarget}" -#~ msgstr "label telah diterapkan pada {labelTarget} ini" +#~ msgstr "" #: src/components/moderation/ContentHider.tsx:144 msgid "Labeled by {0}." @@ -2652,7 +2652,7 @@ msgstr "Dilabeli oleh {0}." #: src/components/moderation/ContentHider.tsx:142 msgid "Labeled by the author." -msgstr "Dilabeli oleh penulis." +msgstr "Dilabeli oleh pemosting." #: src/view/screens/Profile.tsx:191 msgid "Labels" @@ -2660,11 +2660,11 @@ msgstr "Label" #: src/screens/Profile/Sections/Labels.tsx:163 msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." -msgstr "Label adalah anotasi pada pengguna dan konten. Label dapat digunakan untuk menyembunyikan, memperingatkan, dan mengkategorikan jaringan." +msgstr "Label adalah anotasi yang diterapkan pada pengguna dan konten. Label dapat digunakan untuk menyembunyikan, memperingatkan, dan mengkategorikan jaringan." #: src/components/moderation/LabelsOnMe.tsx:61 #~ msgid "labels have been placed on this {labelTarget}" -#~ msgstr "label telah diterapkan pada {labelTarget} ini" +#~ msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:79 msgid "Labels on your account" @@ -2720,12 +2720,12 @@ msgstr "Pelajari lebih lanjut." #: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" -msgstr "" +msgstr "Tinggalkan" #: src/components/dms/MessagesListBlockedFooter.tsx:66 #: src/components/dms/MessagesListBlockedFooter.tsx:73 msgid "Leave chat" -msgstr "" +msgstr "Tinggalkan obrolan" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:139 @@ -2733,7 +2733,7 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:209 #: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" -msgstr "" +msgstr "Tinggalkan percakapan" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." @@ -2766,7 +2766,7 @@ msgstr "Terang" #: src/view/com/util/post-ctrls/PostCtrls.tsx:197 #~ msgid "Like" -#~ msgstr "Suka" +#~ msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:267 #: src/view/screens/ProfileFeed.tsx:570 @@ -2787,21 +2787,21 @@ msgstr "Disukai Oleh" #: src/view/com/feeds/FeedSourceCard.tsx:268 #~ msgid "Liked by {0} {1}" -#~ msgstr "Disukai oleh {0} {1}" +#~ msgstr "" #: src/components/LabelingServiceCard/index.tsx:72 #~ msgid "Liked by {count} {0}" -#~ msgstr "Disukai oleh {count} {0}" +#~ msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:287 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:301 #: src/view/screens/ProfileFeed.tsx:600 #~ msgid "Liked by {likeCount} {0}" -#~ msgstr "Disukai oleh {likeCount} {0}" +#~ msgstr "" #: src/view/com/notifications/FeedItem.tsx:168 msgid "liked your custom feed" -msgstr "menyukai feed khusus Anda" +msgstr "menyukai feed kustom Anda" #: src/view/com/notifications/FeedItem.tsx:153 msgid "liked your post" @@ -2829,7 +2829,7 @@ msgstr "Daftar diblokir" #: src/view/com/feeds/FeedSourceCard.tsx:221 msgid "List by {0}" -msgstr "Daftar oleh {0}" +msgstr "Daftar {0}" #: src/view/screens/ProfileList.tsx:396 msgid "List deleted" @@ -2862,7 +2862,7 @@ msgstr "Daftar" #: src/components/dms/BlockedByListDialog.tsx:39 msgid "Lists blocking this user:" -msgstr "" +msgstr "Daftar yang memblokir pengguna ini:" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" @@ -2908,11 +2908,11 @@ msgstr "Seperti XXXXX-XXXXX" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:39 msgid "Looks like you haven't saved any feeds! Use our recommendations or browse more below." -msgstr "" +msgstr "Sepertinya Anda belum menyimpan feed apa pun! Gunakan rekomendasi kami atau telusuri lebih banyak di bawah ini." #: src/screens/Home/NoFeedsPinned.tsx:96 msgid "Looks like you unpinned all your feeds. But don't worry, you can add some below 😄" -msgstr "" +msgstr "Sepertinya Anda menghapus semua feed tersemat. Tapi jangan khawatir, Anda dapat menambahkan beberapa feed di bawah ini 😄" #: src/screens/Feeds/NoFollowingFeed.tsx:38 #~ msgid "Looks like you're missing a following feed." @@ -2920,11 +2920,11 @@ msgstr "" #: src/screens/Feeds/NoFollowingFeed.tsx:37 msgid "Looks like you're missing a following feed. <0>Click here to add one." -msgstr "" +msgstr "Sepertinya Anda kehilangan feed mengikuti. <0>Klik di sini untuk menambahkan." #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" -msgstr "Pastikan ini adalah website yang Anda tuju!" +msgstr "Pastikan ini adalah situs web yang Anda tuju!" #: src/components/dialogs/MutedWords.tsx:82 msgid "Manage your muted words and tags" @@ -2933,7 +2933,7 @@ msgstr "Kelola kata dan tagar yang dibisukan" #: src/components/dms/ConvoMenu.tsx:149 #: src/components/dms/ConvoMenu.tsx:156 msgid "Mark as read" -msgstr "" +msgstr "Tandai telah dibaca" #: src/view/screens/AccessibilitySettings.tsx:89 #: src/view/screens/Profile.tsx:195 @@ -2946,7 +2946,7 @@ msgstr "pengguna yang disebutkan" #: src/view/com/modals/Threadgate.tsx:93 msgid "Mentioned users" -msgstr "Pengguna yang disebutkan" +msgstr "Pengguna yang Anda sebut" #: src/view/com/util/ViewHeader.tsx:89 #: src/view/screens/Search/Search.tsx:649 @@ -2955,11 +2955,11 @@ msgstr "Menu" #: src/components/dms/MessageProfileButton.tsx:67 msgid "Message {0}" -msgstr "" +msgstr "Kirim pesan ke {0}" #: src/components/dms/MessageMenu.tsx:58 msgid "Message deleted" -msgstr "" +msgstr "Pesan dihapus" #: src/view/com/posts/FeedErrorMessage.tsx:201 msgid "Message from server: {0}" @@ -2967,12 +2967,12 @@ msgstr "Pesan dari server: {0}" #: src/screens/Messages/Conversation/MessageInput.tsx:119 msgid "Message input field" -msgstr "" +msgstr "Kotak input pesan" #: src/screens/Messages/Conversation/MessageInput.tsx:62 #: src/screens/Messages/Conversation/MessageInput.web.tsx:37 msgid "Message is too long" -msgstr "" +msgstr "Pesan terlalu panjang" #: src/screens/Messages/List/index.tsx:301 msgid "Message settings" @@ -2987,7 +2987,7 @@ msgstr "Pesan" #: src/Navigation.tsx:307 #~ msgid "Messaging settings" -#~ msgstr "Pengaturan perpesanan" +#~ msgstr "" #: src/lib/moderation/useReportOptions.ts:46 msgid "Misleading Account" @@ -3006,7 +3006,7 @@ msgstr "Detail moderasi" #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" -msgstr "Daftar moderasi oleh {0}" +msgstr "Daftar moderasi {0}" #: src/view/screens/ProfileList.tsx:842 msgid "Moderation list by <0/>" @@ -3054,7 +3054,7 @@ msgstr "Moderator telah memilih untuk menetapkan peringatan umum pada konten." #: src/view/com/post-thread/PostThreadItem.tsx:542 msgid "More" -msgstr "Lainnya" +msgstr "Lebih lanjut" #: src/view/shell/desktop/Feeds.tsx:55 msgid "More feeds" @@ -3092,7 +3092,7 @@ msgstr "Bisukan semua postingan {displayTag}" #: src/components/dms/ConvoMenu.tsx:170 #: src/components/dms/ConvoMenu.tsx:176 msgid "Mute conversation" -msgstr "" +msgstr "Bisukan percakapan" #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" @@ -3113,15 +3113,15 @@ msgstr "Bisukan daftar" #: src/view/screens/ProfileList.tsx:672 msgid "Mute these accounts?" -msgstr "Bisukan akun ini?" +msgstr "Bisukan akun-akun ini?" #: src/components/dialogs/MutedWords.tsx:126 msgid "Mute this word in post text and tags" -msgstr "Bisukan kata ini di teks dan tag postingan" +msgstr "Bisukan kata ini di teks postingan dan tagar" #: src/components/dialogs/MutedWords.tsx:141 msgid "Mute this word in tags only" -msgstr "Bisukan kata ini di tag saja" +msgstr "Bisukan kata ini hanya dalam tagar" #: src/view/com/util/forms/PostDropdownBtn.tsx:321 #: src/view/com/util/forms/PostDropdownBtn.tsx:327 @@ -3131,7 +3131,7 @@ msgstr "Bisukan utasan" #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:339 msgid "Mute words & tags" -msgstr "Bisukan kata & tag" +msgstr "Bisukan kata & tagar" #: src/view/com/lists/ListCard.tsx:102 msgid "Muted" @@ -3160,7 +3160,7 @@ msgstr "Kata & tagar yang dibisukan" #: src/view/screens/ProfileList.tsx:674 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." -msgstr "Pembisuan akun bersifat privat. Akun yang dibisukan tetap dapat berinteraksi dengan Anda, namun Anda tidak akan melihat postingan atau notifikasi dari mereka." +msgstr "Pembisuan bersifat privat. Akun yang dibisukan tetap dapat berinteraksi dengan Anda, tetapi Anda tidak akan melihat postingan atau notifikasi dari mereka." #: src/components/dialogs/BirthDateSettings.tsx:35 #: src/components/dialogs/BirthDateSettings.tsx:38 @@ -3242,11 +3242,11 @@ msgstr "Baru" #: src/screens/Messages/List/index.tsx:311 #: src/screens/Messages/List/index.tsx:318 msgid "New chat" -msgstr "" +msgstr "Obrolan baru" #: src/components/dms/NewMessagesPill.tsx:92 msgid "New messages" -msgstr "" +msgstr "Pesan baru" #: src/view/com/modals/CreateOrEditList.tsx:255 msgid "New Moderation List" @@ -3345,11 +3345,11 @@ msgstr "Tidak lebih dari 253 karakter" #: src/screens/Messages/List/ChatListItem.tsx:97 msgid "No messages yet" -msgstr "" +msgstr "Belum ada pesan" #: src/screens/Messages/List/index.tsx:254 msgid "No more conversations to show" -msgstr "" +msgstr "Tidak ada percakapan lain untuk ditampilkan" #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" @@ -3360,7 +3360,7 @@ msgstr "Belum ada notifikasi!" #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" -msgstr "" +msgstr "Tidak seorang pun" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 @@ -3369,11 +3369,11 @@ msgstr "Tidak ada hasil" #: src/components/dms/NewChatDialog/index.tsx:380 msgid "No results" -msgstr "" +msgstr "Tidak ada hasil" #: src/components/Lists.tsx:207 msgid "No results found" -msgstr "Tidak ada hasil yang ditemukan" +msgstr "Tidak ditemukan hasil" #: src/view/screens/Feeds.tsx:555 msgid "No results found for \"{query}\"" @@ -3404,7 +3404,7 @@ msgstr "Tak seorang pun" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 msgid "Nobody can reply" -msgstr "" +msgstr "Tidak ada yang dapat membalas" #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 @@ -3417,7 +3417,7 @@ msgstr "Ketelanjangan Non-Seksual" #: src/view/com/modals/SelfLabel.tsx:135 #~ msgid "Not Applicable." -#~ msgstr "Tidak Berlaku." +#~ msgstr "" #: src/Navigation.tsx:116 #: src/view/screens/Profile.tsx:100 @@ -3437,19 +3437,19 @@ msgstr "Catatan tentang berbagi" #: src/screens/Moderation/index.tsx:540 msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." -msgstr "Catatan: Bluesky merupakan jaringan terbuka dan publik. Pengaturan ini hanya akan membatasi visibilitas konten Anda pada aplikasi dan website Bluesky, dan aplikasi lain mungkin tidak mengindahkan pengaturan ini. Konten Anda mungkin tetap ditampilkan kepada pengguna yang tidak login oleh aplikasi dan website lain." +msgstr "Catatan: Bluesky merupakan jaringan terbuka dan publik. Pengaturan ini hanya akan membatasi visibilitas konten Anda pada aplikasi dan situs web Bluesky, dan aplikasi lain mungkin tidak menghormati pengaturan ini. Konten Anda mungkin tetap ditampilkan kepada pengguna yang tidak login oleh aplikasi dan website lain." #: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" -msgstr "" +msgstr "Kosong" #: src/screens/Messages/Settings.tsx:108 msgid "Notification sounds" -msgstr "" +msgstr "Suara notifikasi" #: src/screens/Messages/Settings.tsx:105 msgid "Notification Sounds" -msgstr "" +msgstr "Suara Notifikasi" #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 @@ -3463,7 +3463,7 @@ msgstr "Notifikasi" #: src/components/dms/MessageItem.tsx:161 msgid "Now" -msgstr "" +msgstr "Sekarang" #: src/view/com/modals/SelfLabel.tsx:104 msgid "Nudity" @@ -3475,7 +3475,7 @@ msgstr "Ketelanjangan atau konten dewasa yang tidak dilabeli sedemikian rupa" #: src/screens/Signup/index.tsx:145 #~ msgid "of" -#~ msgstr "dari" +#~ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:11 msgid "Off" @@ -3513,11 +3513,11 @@ msgstr "Satu atau lebih gambar belum ada teks alt." #: src/screens/Onboarding/StepProfile/index.tsx:120 msgid "Only .jpg and .png files are supported" -msgstr "" +msgstr "Hanya mendukung berkas .jpg dan .png" #: src/view/com/threadgate/WhoCanReply.tsx:100 msgid "Only {0} can reply." -msgstr "Hanya {0} dapat membalas." +msgstr "Hanya {0} yang dapat membalas." #: src/screens/Signup/StepHandle.tsx:98 msgid "Only contains letters, numbers, and hyphens" @@ -3525,7 +3525,7 @@ msgstr "Hanya berisi huruf, angka, dan tanda hubung" #: src/components/Lists.tsx:88 msgid "Oops, something went wrong!" -msgstr "Oops, sepertinya ada yang salah!" +msgstr "Ups, sepertinya ada yang salah!" #: src/components/Lists.tsx:191 #: src/view/screens/AppPasswords.tsx:67 @@ -3539,12 +3539,12 @@ msgstr "Buka" #: src/screens/Onboarding/StepProfile/index.tsx:280 msgid "Open avatar creator" -msgstr "" +msgstr "Buka pembuat avatar" #: src/screens/Messages/List/ChatListItem.tsx:162 #: src/screens/Messages/List/ChatListItem.tsx:163 msgid "Open conversation options" -msgstr "" +msgstr "Buka opsi percakapan" #: src/view/com/composer/Composer.tsx:560 #: src/view/com/composer/Composer.tsx:561 @@ -3561,7 +3561,7 @@ msgstr "Buka tautan dengan browser dalam aplikasi" #: src/components/dms/ActionsWrapper.tsx:87 msgid "Open message options" -msgstr "" +msgstr "Buka opsi pesan" #: src/screens/Moderation/index.tsx:227 msgid "Open muted words and tags settings" @@ -3573,7 +3573,7 @@ msgstr "Buka navigasi" #: src/view/com/util/forms/PostDropdownBtn.tsx:217 msgid "Open post options menu" -msgstr "Buka menu pilihan postingan" +msgstr "Buka menu opsi postingan" #: src/view/screens/Settings/index.tsx:805 #: src/view/screens/Settings/index.tsx:815 @@ -3640,19 +3640,19 @@ msgstr "Membuka daftar kode undangan" #: src/view/screens/Settings/index.tsx:775 msgid "Opens modal for account deletion confirmation. Requires email code" -msgstr "Membuka modal untuk konfirmasi penghapusan akun. Membutuhkan kode email" +msgstr "Buka modal untuk konfirmasi penghapusan akun. Membutuhkan kode email" #: src/view/screens/Settings/index.tsx:733 msgid "Opens modal for changing your Bluesky password" -msgstr "Membuka modal untuk mengubah kata sandi Bluesky Anda" +msgstr "Buka modal untuk mengubah kata sandi Bluesky Anda" #: src/view/screens/Settings/index.tsx:688 msgid "Opens modal for choosing a new Bluesky handle" -msgstr "Buka modal untuk memilih handle baru Bluesky" +msgstr "Membuka modal untuk memilih handle baru Bluesky" #: src/view/screens/Settings/index.tsx:756 msgid "Opens modal for downloading your Bluesky account data (repository)" -msgstr "Membuka modal untuk mengunduh data akun (repositori) Bluesky Anda" +msgstr "Buka modal untuk mengunduh data akun (repositori) Bluesky Anda" #: src/view/screens/Settings/index.tsx:953 msgid "Opens modal for email verification" @@ -3681,11 +3681,11 @@ msgstr "Buka halaman dengan semua feed tersimpan" #: src/view/screens/Settings/index.tsx:666 msgid "Opens the app password settings" -msgstr "Membuka pengaturan kata sandi aplikasi" +msgstr "Buka pengaturan kata sandi aplikasi" #: src/view/screens/Settings/index.tsx:567 msgid "Opens the Following feed preferences" -msgstr "Membuka preferensi feed Following" +msgstr "Membuka preferensi feed Mengikuti" #: src/view/com/modals/LinkWarning.tsx:93 msgid "Opens the linked website" @@ -3693,7 +3693,7 @@ msgstr "Membuka situs web tertaut" #: src/screens/Messages/List/index.tsx:86 #~ msgid "Opens the message settings page" -#~ msgstr "Membuka halaman pengaturan perpesanan" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:806 #: src/view/screens/Settings/index.tsx:816 @@ -3735,7 +3735,7 @@ msgstr "Lainnya..." #: src/screens/Messages/Conversation/ChatDisabled.tsx:28 msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." -msgstr "" +msgstr "Moderator kami telah meninjau laporan dan memutuskan untuk menonaktifkan akses Anda ke obrolan di Bluesky." #: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 @@ -3771,7 +3771,7 @@ msgstr "Jeda" #: src/view/screens/Search/Search.tsx:379 msgid "People" -msgstr "Orang-orang" +msgstr "Orang" #: src/Navigation.tsx:171 msgid "People followed by @{0}" @@ -3812,11 +3812,11 @@ msgstr "Feed Tersemat" #: src/view/screens/ProfileList.tsx:288 msgid "Pinned to your feeds" -msgstr "" +msgstr "Disematkan ke feed Anda" #: src/view/com/util/post-embeds/GifEmbed.tsx:36 msgid "Play" -msgstr "Mainkan" +msgstr "Putar" #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:123 msgid "Play {0}" @@ -3829,7 +3829,7 @@ msgstr "Putar {0}" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" -msgstr "Mainkan atau jeda GIF" +msgstr "Putar atau jeda GIF" #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:57 #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:58 @@ -3858,7 +3858,7 @@ msgstr "Harap konfirmasi email Anda sebelum mengubahnya. Ini adalah persyaratan #: src/view/com/modals/AddAppPasswords.tsx:91 msgid "Please enter a name for your app password. All spaces is not allowed." -msgstr "Masukkan nama untuk kata sandi aplikasi Anda. Semua spasi tidak diperbolehkan." +msgstr "Masukkan nama untuk kata sandi aplikasi Anda. Tidak diperbolehkan menggunakan spasi." #: src/view/com/modals/AddAppPasswords.tsx:146 msgid "Please enter a unique name for this App Password or use our randomly generated one." @@ -3882,12 +3882,12 @@ msgstr "Jelaskan menurut Anda mengapa {0} salah menerapkan label ini" #: src/screens/Messages/Conversation/ChatDisabled.tsx:110 msgid "Please explain why you think your chats were incorrectly disabled" -msgstr "" +msgstr "Mohon jelaskan mengapa menurut Anda obrolan Anda dinonaktifkan secara keliru" #: src/lib/hooks/useAccountSwitcher.ts:48 #: src/lib/hooks/useAccountSwitcher.ts:58 msgid "Please sign in as @{0}" -msgstr "" +msgstr "Silakan masuk sebagai @{0}" #: src/view/com/modals/VerifyEmail.tsx:109 msgid "Please Verify Your Email" @@ -3914,7 +3914,7 @@ msgstr "Posting" #: src/view/com/post-thread/PostThread.tsx:295 msgctxt "description" msgid "Post" -msgstr "Posting" +msgstr "Postingan" #: src/view/com/post-thread/PostThreadItem.tsx:176 msgid "Post by {0}" @@ -3937,12 +3937,12 @@ msgstr "Postingan disembunyikan" #: src/components/moderation/ModerationDetailsDialog.tsx:97 #: src/lib/moderation/useModerationCauseDescription.ts:99 msgid "Post Hidden by Muted Word" -msgstr "Postingan Disembunyikan oleh Kata yang Dibisukan" +msgstr "Disembunyikan oleh Kata yang Dibisukan" #: src/components/moderation/ModerationDetailsDialog.tsx:100 #: src/lib/moderation/useModerationCauseDescription.ts:108 msgid "Post Hidden by You" -msgstr "Postingan Disembunyikan oleh Anda" +msgstr "Postingan yang Anda sembunyikan" #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" @@ -3979,7 +3979,7 @@ msgstr "Tautan yang Mungkin Menyesatkan" #: src/screens/Messages/Conversation/MessageListError.tsx:19 msgid "Press to attempt reconnection" -msgstr "" +msgstr "Tekan untuk mencoba menghubungkan kembali" #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" @@ -4024,7 +4024,7 @@ msgstr "Kebijakan Privasi" #: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." -msgstr "" +msgstr "Berkirim pesan secara pribadi dengan pengguna lain." #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." @@ -4049,7 +4049,7 @@ msgstr "Profil diperbarui" #: src/view/screens/Settings/index.tsx:966 msgid "Protect your account by verifying your email." -msgstr "Amankan akun Anda dengan memverifikasi email Anda." +msgstr "Verifikasi email untuk mengamankan akun Anda." #: src/screens/Onboarding/StepFinished.tsx:204 msgid "Public" @@ -4057,7 +4057,7 @@ msgstr "Publik" #: src/view/screens/ModerationModlists.tsx:61 msgid "Public, shareable lists of users to mute or block in bulk." -msgstr "Daftar publik yang dapat dibagikan oleh pengguna untuk dibisukan atau diblokir secara massal." +msgstr "Daftar publik yang dapat dibagikan untuk memblokir atau membisukan pengguna secara massal." #: src/view/screens/Lists.tsx:61 msgid "Public, shareable lists which can drive feeds." @@ -4095,7 +4095,7 @@ msgstr "Rasio" #: src/components/dms/ReportDialog.tsx:172 msgid "Reason:" -msgstr "" +msgstr "Alasan:" #: src/components/dms/MessageReportDialog.tsx:149 #~ msgid "Reason: {0}" @@ -4103,7 +4103,7 @@ msgstr "" #: src/view/screens/Search/Search.tsx:886 msgid "Recent Searches" -msgstr "Pencarian terakhir" +msgstr "Pencarian Terakhir" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:117 #~ msgid "Recommended Feeds" @@ -4115,11 +4115,11 @@ msgstr "Pencarian terakhir" #: src/screens/Messages/Conversation/MessageListError.tsx:20 msgid "Reconnect" -msgstr "" +msgstr "Hubungkan kembali" #: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" -msgstr "" +msgstr "Memuat ulang percakapan" #: src/components/dialogs/MutedWords.tsx:286 #: src/view/com/feeds/FeedSourceCard.tsx:285 @@ -4140,7 +4140,7 @@ msgstr "Hapus Avatar" #: src/view/com/util/UserBanner.tsx:155 msgid "Remove Banner" -msgstr "Hapus Banner" +msgstr "Hapus Spanduk" #: src/view/com/posts/FeedErrorMessage.tsx:169 #: src/view/com/posts/FeedShutdownMsg.tsx:113 @@ -4209,12 +4209,12 @@ msgstr "Menghapus gambar pra tinjau bawaan dari {0}" #: src/view/com/util/post-embeds/QuoteEmbed.tsx:224 msgid "Removes quoted post" -msgstr "Hapus kutipan postingan" +msgstr "Hapus postingan yang dikutip" #: src/view/com/posts/FeedShutdownMsg.tsx:126 #: src/view/com/posts/FeedShutdownMsg.tsx:130 msgid "Replace with Discover" -msgstr "" +msgstr "Ganti dengan Discover" #: src/view/screens/Profile.tsx:194 msgid "Replies" @@ -4249,7 +4249,7 @@ msgstr "Membalas <0><1/>" #: src/components/dms/MessagesListBlockedFooter.tsx:77 #: src/components/dms/MessagesListBlockedFooter.tsx:84 msgid "Report" -msgstr "" +msgstr "Laporkan" #: src/components/dms/ConvoMenu.tsx:146 #: src/components/dms/ConvoMenu.tsx:150 @@ -4265,7 +4265,7 @@ msgstr "Laporkan Akun" #: src/components/dms/ConvoMenu.tsx:198 #: src/components/dms/ReportConversationPrompt.tsx:18 msgid "Report conversation" -msgstr "" +msgstr "Laporkan percakapan" #: src/components/ReportDialog/index.tsx:49 msgid "Report dialog" @@ -4282,7 +4282,7 @@ msgstr "Laporkan Daftar" #: src/components/dms/MessageMenu.tsx:105 msgid "Report message" -msgstr "" +msgstr "Laporkan pesan" #: src/view/com/util/forms/PostDropdownBtn.tsx:363 #: src/view/com/util/forms/PostDropdownBtn.tsx:365 @@ -4305,7 +4305,7 @@ msgstr "Laporkan daftar ini" #: src/components/dms/ReportDialog.tsx:140 #: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Report this message" -msgstr "" +msgstr "Laporkan pesan ini" #: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" @@ -4492,7 +4492,7 @@ msgstr "Simpan potongan gambar" #: src/view/screens/ProfileFeed.tsx:331 #: src/view/screens/ProfileFeed.tsx:337 msgid "Save to my feeds" -msgstr "Tambakan ke feed saya" +msgstr "Simpan ke feed saya" #: src/view/screens/SavedFeeds.tsx:144 msgid "Saved Feeds" @@ -4500,11 +4500,11 @@ msgstr "Feed Tersimpan" #: src/view/com/lightbox/Lightbox.tsx:82 msgid "Saved to your camera roll" -msgstr "" +msgstr "Disimpan ke rol kamera Anda" #: src/view/com/lightbox/Lightbox.tsx:81 #~ msgid "Saved to your camera roll." -#~ msgstr "Disimpan ke rol kamera Anda." +#~ msgstr "" #: src/view/screens/ProfileFeed.tsx:200 #: src/view/screens/ProfileList.tsx:299 @@ -4525,7 +4525,7 @@ msgstr "Menyimpan pengaturan pemangkasan gambar" #: src/components/dms/ChatEmptyPill.tsx:33 msgid "Say hello!" -msgstr "" +msgstr "Katakan halo!" #: src/screens/Onboarding/index.tsx:48 msgid "Science" @@ -4586,7 +4586,7 @@ msgstr "Cari GIF" #: src/components/dms/NewChatDialog/index.tsx:290 #: src/components/dms/NewChatDialog/index.tsx:291 msgid "Search profiles" -msgstr "" +msgstr "Cari profil" #: src/components/dialogs/GifSelect.tsx:159 msgid "Search Tenor" @@ -4602,7 +4602,7 @@ msgstr "Lihat postingan {truncatedTag}" #: src/components/TagMenu/index.web.tsx:83 msgid "See {truncatedTag} posts by user" -msgstr "Lihat postingan {truncatedTag} oleh pengguna" +msgstr "Lihat postingan {truncatedTag} dari pengguna" #: src/components/TagMenu/index.tsx:128 msgid "See <0>{displayTag} posts" @@ -4610,7 +4610,7 @@ msgstr "Lihat postingan <0>{displayTag}" #: src/components/TagMenu/index.tsx:187 msgid "See <0>{displayTag} posts by this user" -msgstr "Lihat postingan <0>{displayTag} oleh pengguna ini" +msgstr "Lihat postingan <0>{displayTag} dari pengguna ini" #: src/view/com/notifications/FeedItem.tsx:411 #: src/view/com/util/UserAvatar.tsx:402 @@ -4631,7 +4631,7 @@ msgstr "Pilih {item}" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:67 msgid "Select a color" -msgstr "" +msgstr "Pilih warna" #: src/screens/Login/ChooseAccountForm.tsx:85 msgid "Select account" @@ -4639,11 +4639,11 @@ msgstr "Pilih akun" #: src/screens/Onboarding/StepProfile/AvatarCircle.tsx:66 msgid "Select an avatar" -msgstr "" +msgstr "Pilih avatar" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:65 msgid "Select an emoji" -msgstr "" +msgstr "Pilih emoji" #: src/screens/Login/index.tsx:120 msgid "Select from an existing account" @@ -4675,7 +4675,7 @@ msgstr "Pilih beberapa akun di bawah ini untuk diikuti" #: src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx:83 msgid "Select the {emojiName} emoji as your avatar" -msgstr "" +msgstr "Pilih emoji {emojiName} sebagai avatar Anda" #: src/components/ReportDialog/SubmitView.tsx:135 msgid "Select the moderation service(s) to report to" @@ -4683,11 +4683,11 @@ msgstr "Pilih layanan moderasi untuk melaporkan" #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." -msgstr "Pilih layanan yang akan menampung data Anda." +msgstr "Pilih layanan yang akan menyimpan data Anda." #: src/screens/Onboarding/StepTopicalFeeds.tsx:100 msgid "Select topical feeds to follow from the list below" -msgstr "Pilih feed topik untuk diikuti dari daftar di bawah ini" +msgstr "Pilih feed topikal untuk diikuti dari daftar di bawah ini" #: src/screens/Onboarding/StepModeration/index.tsx:63 msgid "Select what you want to see (or not see), and we’ll handle the rest." @@ -4699,7 +4699,7 @@ msgstr "Pilih bahasa yang ingin Anda sertakan dalam feed langganan Anda. Jika ti #: src/view/screens/LanguageSettings.tsx:98 msgid "Select your app language for the default text to display in the app." -msgstr "Pilih bahasa untuk teks yang akan ditampilkan dalam aplikasi." +msgstr "Pilih bahasa untuk teks default yang akan ditampilkan dalam aplikasi." #: src/screens/Signup/StepInfo/index.tsx:135 msgid "Select your date of birth" @@ -4723,7 +4723,7 @@ msgstr "Pilih feed algoritma sekunder Anda" #: src/components/dms/ChatEmptyPill.tsx:38 msgid "Send a neat website!" -msgstr "" +msgstr "Kirimkan situs web yang bagus!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 @@ -4747,7 +4747,7 @@ msgstr "Kirim masukan" #: src/screens/Messages/Conversation/MessageInput.tsx:144 #: src/screens/Messages/Conversation/MessageInput.web.tsx:110 msgid "Send message" -msgstr "" +msgstr "Kirim pesan" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 @@ -4860,7 +4860,7 @@ msgstr "Aktivitas seksual atau ketelanjangan erotis." #: src/lib/moderation/useGlobalLabelStrings.ts:38 msgid "Sexually Suggestive" -msgstr "Mengarah ke Seksualitas" +msgstr "Bermuatan Seksual" #: src/view/com/lightbox/Lightbox.tsx:142 msgctxt "action" @@ -4878,11 +4878,11 @@ msgstr "Bagikan" #: src/components/dms/ChatEmptyPill.tsx:37 msgid "Share a cool story!" -msgstr "" +msgstr "Bagikan cerita seru!" #: src/components/dms/ChatEmptyPill.tsx:36 msgid "Share a fun fact!" -msgstr "" +msgstr "Bagikan fakta menarik!" #: src/view/com/profile/ProfileMenu.tsx:373 #: src/view/com/util/forms/PostDropdownBtn.tsx:420 @@ -4902,7 +4902,7 @@ msgstr "Bagikan Tautan" #: src/components/dms/ChatEmptyPill.tsx:34 msgid "Share your favorite feed!" -msgstr "" +msgstr "Bagikan feed favorit Anda!" #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" @@ -4918,11 +4918,11 @@ msgstr "Tampilkan" #: src/view/screens/PreferencesFollowingFeed.tsx:68 #~ msgid "Show all replies" -#~ msgstr "Tampilkan semua balasan" +#~ msgstr "" #: src/view/com/util/post-embeds/GifEmbed.tsx:167 msgid "Show alt text" -msgstr "" +msgstr "Tampilkan teks alt" #: src/components/moderation/ScreenHider.tsx:169 #: src/components/moderation/ScreenHider.tsx:172 @@ -4940,12 +4940,12 @@ msgstr "Tampilkan lencana dan saring dari feed" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 msgid "Show follows similar to {0}" -msgstr "Tampilkan berikut ini mirip dengan {0}" +msgstr "Tampilkan pengguna lain yang serupa dengan {0}" #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" -msgstr "" +msgstr "Tampilkan lebih sedikit" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 @@ -4956,7 +4956,7 @@ msgstr "Tampilkan Lebih Lanjut" #: src/view/com/util/forms/PostDropdownBtn.tsx:297 #: src/view/com/util/forms/PostDropdownBtn.tsx:299 msgid "Show more like this" -msgstr "" +msgstr "Tampilkan lebih banyak" #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" @@ -4996,7 +4996,7 @@ msgstr "Tampilkan balasan di feed Mengikuti" #: src/view/screens/PreferencesFollowingFeed.tsx:70 #~ msgid "Show replies with at least {value} {0}" -#~ msgstr "Tampilkan balasan dengan setidaknya {value} {0}" +#~ msgstr "" #: src/view/screens/PreferencesFollowingFeed.tsx:187 msgid "Show Reposts" @@ -5114,11 +5114,11 @@ msgstr "Pengembang Perangkat Lunak" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 msgid "Some people can reply" -msgstr "" +msgstr "Beberapa orang dapat membalas" #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" -msgstr "" +msgstr "Terjadi kesalahan" #: src/components/ReportDialog/index.tsx:59 #: src/screens/Moderation/index.tsx:114 @@ -5141,11 +5141,11 @@ msgstr "Urutkan balasan ke postingan yang sama berdasarkan:" #: src/components/moderation/LabelsOnMeDialog.tsx:168 #~ msgid "Source:" -#~ msgstr "Asal:" +#~ msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:169 msgid "Source: <0>{0}" -msgstr "" +msgstr "Sumber: <0>{0}" #: src/lib/moderation/useReportOptions.ts:66 #: src/lib/moderation/useReportOptions.ts:79 @@ -5166,31 +5166,31 @@ msgstr "Persegi" #: src/components/dms/NewChatDialog/index.tsx:469 msgid "Start a new chat" -msgstr "" +msgstr "Mulai obrolan baru" #: src/components/dms/NewChatDialog/index.tsx:139 msgid "Start chat with {displayName}" -msgstr "" +msgstr "Mulai obrolan dengan {displayName}" #: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" -msgstr "" +msgstr "Mulai mengobrol" #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" -#~ msgstr "Halaman status" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:908 msgid "Status Page" -msgstr "" +msgstr "Halaman Status" #: src/screens/Signup/index.tsx:145 #~ msgid "Step" -#~ msgstr "Langkah" +#~ msgstr "" #: src/screens/Signup/index.tsx:154 msgid "Step {0} of {1}" -msgstr "" +msgstr "Langkah {0} dari {1}" #: src/view/screens/Settings/index.tsx:302 msgid "Storage cleared, you need to restart the app now." @@ -5210,7 +5210,7 @@ msgstr "Kirim" #: src/view/screens/ProfileList.tsx:643 msgid "Subscribe" -msgstr "Langganan" +msgstr "Berlangganan" #: src/screens/Profile/Sections/Labels.tsx:201 msgid "Subscribe to @{0} to use these labels:" @@ -5223,7 +5223,7 @@ msgstr "Berlangganan Pelabel" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:172 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:307 msgid "Subscribe to the {0} feed" -msgstr "Langganan ke feed {0}" +msgstr "Berlangganan ke feed {0}" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:194 msgid "Subscribe to this labeler" @@ -5231,11 +5231,11 @@ msgstr "Berlangganan pelabel ini" #: src/view/screens/ProfileList.tsx:639 msgid "Subscribe to this list" -msgstr "Langganan ke daftar ini" +msgstr "Berlangganan ke daftar ini" #: src/view/screens/Search/Search.tsx:417 msgid "Suggested Follows" -msgstr "Saran untuk Diikuti" +msgstr "Disarankan untuk Mengikuti" #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 msgid "Suggested for you" @@ -5294,7 +5294,7 @@ msgstr "Teknologi" #: src/components/dms/ChatEmptyPill.tsx:35 msgid "Tell a joke!" -msgstr "" +msgstr "Ceritakan sebuah lelucon!" #: src/view/shell/desktop/RightNav.tsx:85 msgid "Terms" @@ -5330,7 +5330,7 @@ msgstr "Terima kasih. Laporan Anda telah terkirim." #: src/view/com/modals/ChangeHandle.tsx:459 msgid "That contains the following:" -msgstr "Yang berisi konten berikut:" +msgstr "Berisi hal berikut:" #: src/screens/Signup/index.tsx:87 msgid "That handle is already taken." @@ -5343,7 +5343,7 @@ msgstr "Akun ini dapat berinteraksi kembali dengan Anda setelah pemblokiran dibu #: src/components/moderation/ModerationDetailsDialog.tsx:127 #~ msgid "the author" -#~ msgstr "pembuat" +#~ msgstr "" #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" @@ -5355,15 +5355,15 @@ msgstr "Kebijakan Hak Cipta telah dipindahkan ke <0/>" #: src/view/com/posts/FeedShutdownMsg.tsx:66 msgid "The feed has been replaced with Discover." -msgstr "" +msgstr "Feed telah diganti dengan Discover." #: src/components/moderation/LabelsOnMeDialog.tsx:65 msgid "The following labels were applied to your account." -msgstr "Label berikut ini telah diterapkan pada akun Anda." +msgstr "Label berikut telah diterapkan pada akun Anda." #: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your content." -msgstr "Label berikut ini telah diterapkan pada konten Anda." +msgstr "Label berikut telah diterapkan pada konten Anda." #: src/screens/Onboarding/Layout.tsx:58 msgid "The following steps will help customize your Bluesky experience." @@ -5403,7 +5403,7 @@ msgstr "Ada masalah saat menghapus feed ini. Periksa koneksi internet Anda dan c #: src/view/com/posts/FeedShutdownMsg.tsx:70 #: src/view/screens/ProfileFeed.tsx:205 msgid "There was an an issue updating your feeds, please check your internet connection and try again." -msgstr "Ada masalah saat memperbarui feed Anda, periksa koneksi internet Anda dan coba lagi." +msgstr "Ada masalah saat memperbarui feed Anda, periksa koneksi internet dan coba lagi." #: src/components/dialogs/GifSelect.tsx:202 msgid "There was an issue connecting to Tenor." @@ -5493,7 +5493,7 @@ msgstr "Berikut adalah akun populer yang mungkin Anda sukai:" #: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" -msgstr "Ini {screenDescription} telah ditandai:" +msgstr "{screenDescription} ini telah ditandai:" #: src/components/moderation/ScreenHider.tsx:111 msgid "This account has requested that users sign in to view their profile." @@ -5501,7 +5501,7 @@ msgstr "Akun ini mewajibkan pengguna untuk masuk agar bisa melihat profilnya." #: src/components/dms/BlockedByListDialog.tsx:34 msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." -msgstr "" +msgstr "Akun ini diblokir oleh satu atau lebih daftar moderasi Anda. Untuk membuka blokir, silakan kunjungi daftar tersebut secara langsung dan hapus pengguna ini." #: src/components/moderation/LabelsOnMeDialog.tsx:240 msgid "This appeal will be sent to <0>{0}." @@ -5509,11 +5509,11 @@ msgstr "Banding ini akan dikirim ke <0>{0}." #: src/screens/Messages/Conversation/ChatDisabled.tsx:104 msgid "This appeal will be sent to Bluesky's moderation service." -msgstr "" +msgstr "Banding ini akan dikirimkan ke layanan moderasi Bluesky." #: src/screens/Messages/Conversation/MessageListError.tsx:18 msgid "This chat was disconnected" -msgstr "" +msgstr "Obrolan ini telah terputus" #: src/screens/Messages/Conversation/MessageListError.tsx:26 #~ msgid "This chat was disconnected due to a network error." @@ -5542,7 +5542,7 @@ msgstr "Konten ini tidak dapat dilihat tanpa akun Bluesky." #: src/view/screens/Settings/ExportCarDialog.tsx:94 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost." -msgstr "Fitur ini masih dalam versi beta. Anda dapat membaca lebih lanjut tentang ekspor repositori di <0>blogpost ini." +msgstr "Fitur ini masih dalam versi beta. Anda dapat membaca lebih lanjut tentang ekspor repositori di <0>postingan blog ini." #: src/view/com/posts/FeedErrorMessage.tsx:121 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." @@ -5560,7 +5560,7 @@ msgstr "Feed ini kosong! Anda mungkin perlu mengikuti lebih banyak pengguna atau #: src/view/com/posts/FeedShutdownMsg.tsx:97 msgid "This feed is no longer online. We are showing <0>Discover instead." -msgstr "" +msgstr "Feed ini tidak lagi online. Kami akan menampilkan <0>Discover sebagai gantinya." #: src/components/dialogs/BirthDateSettings.tsx:41 msgid "This information is not shared with other users." @@ -5572,15 +5572,15 @@ msgstr "Ini penting jika Anda butuh untuk mengganti email atau reset kata sandi #: src/components/moderation/ModerationDetailsDialog.tsx:124 #~ msgid "This label was applied by {0}." -#~ msgstr "Label ini diterapkan oleh {0}." +#~ msgstr "" #: src/components/moderation/ModerationDetailsDialog.tsx:127 msgid "This label was applied by <0>{0}." -msgstr "" +msgstr "Label ini diterapkan oleh <0>{0}." #: src/components/moderation/ModerationDetailsDialog.tsx:125 msgid "This label was applied by the author." -msgstr "" +msgstr "Label ini diterapkan oleh pemosting." #: src/components/moderation/LabelsOnMeDialog.tsx:165 #~ msgid "This label was applied by you" @@ -5588,15 +5588,15 @@ msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:167 msgid "This label was applied by you." -msgstr "" +msgstr "Label ini diterapkan oleh Anda." #: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." -msgstr "Pelabel ini belum menyatakan label yang dia publikasikan, dan mungkin tidak aktif." +msgstr "Pelabel ini belum menyatakan label apa yang diterbitkannya, dan mungkin tidak aktif." #: src/view/com/modals/LinkWarning.tsx:72 msgid "This link is taking you to the following website:" -msgstr "Tautan ini akan membawa Anda ke website:" +msgstr "Tautan ini akan membawa Anda ke situs web berikut:" #: src/view/screens/ProfileList.tsx:906 msgid "This list is empty!" @@ -5641,7 +5641,7 @@ msgstr "Pengguna ini tidak memiliki pengikut." #: src/components/dms/MessagesListBlockedFooter.tsx:60 msgid "This user has blocked you" -msgstr "" +msgstr "Pengguna ini telah memblokir Anda" #: src/components/moderation/ModerationDetailsDialog.tsx:72 #: src/lib/moderation/useModerationCauseDescription.ts:68 @@ -5650,7 +5650,7 @@ msgstr "Pengguna ini telah memblokir Anda. Anda tidak dapat melihat konten merek #: src/lib/moderation/useGlobalLabelStrings.ts:30 msgid "This user has requested that their content only be shown to signed-in users." -msgstr "Pengguna ini telah meminta agar kontennya hanya ditampilkan ke pengguna yang masuk." +msgstr "Pengguna ini telah meminta agar kontennya hanya ditampilkan kepada pengguna yang sudah masuk." #: src/components/moderation/ModerationDetailsDialog.tsx:55 msgid "This user is included in the <0>{0} list which you have blocked." @@ -5666,7 +5666,7 @@ msgstr "Pengguna ini tidak mengikuti siapa pun." #: src/view/com/modals/SelfLabel.tsx:137 #~ msgid "This warning is only available for posts with media attached." -#~ msgstr "Peringatan ini hanya tersedia untuk postingan dengan lampiran media." +#~ msgstr "" #: src/components/dialogs/MutedWords.tsx:283 msgid "This will delete {0} from your muted words. You can always add it back later." @@ -5691,11 +5691,11 @@ msgstr "Preferensi Utas" #: src/view/screens/Settings/DisableEmail2FADialog.tsx:102 msgid "To disable the email 2FA method, please verify your access to the email address." -msgstr "Untuk menonaktifkan metode 2FA email, silakan verifikasi akses Anda ke alamat email." +msgstr "Untuk menonaktifkan metode 2FA melalui email, silakan verifikasi akses Anda ke alamat email tersebut." #: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "Untuk melaporkan percakapan, silakan laporkan salah satu pesannya melalui laman percakapan. Ini akan membantu moderator kami memahami konteks masalah Anda." #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" @@ -5740,7 +5740,7 @@ msgstr "Autentikasi dua faktor" #: src/screens/Messages/Conversation/MessageInput.tsx:120 msgid "Type your message here" -msgstr "" +msgstr "Ketik pesan Anda di sini" #: src/view/com/modals/ChangeHandle.tsx:422 msgid "Type:" @@ -5782,7 +5782,7 @@ msgstr "Buka blokir" #: src/components/dms/ConvoMenu.tsx:186 #: src/components/dms/ConvoMenu.tsx:190 msgid "Unblock account" -msgstr "" +msgstr "Buka blokir akun" #: src/view/com/profile/ProfileMenu.tsx:299 #: src/view/com/profile/ProfileMenu.tsx:305 @@ -5792,7 +5792,7 @@ msgstr "Buka blokir Akun" #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" -msgstr "Buka blokir Akun?" +msgstr "Buka Blokir Akun?" #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:56 @@ -5821,7 +5821,7 @@ msgstr "Batal Ikuti Akun" #: src/view/com/util/post-ctrls/PostCtrls.tsx:197 #~ msgid "Unlike" -#~ msgstr "Tidak suka" +#~ msgstr "" #: src/view/screens/ProfileFeed.tsx:570 msgid "Unlike this feed" @@ -5847,7 +5847,7 @@ msgstr "Batal bisukan semua postingan {displayTag}" #: src/components/dms/ConvoMenu.tsx:174 msgid "Unmute conversation" -msgstr "" +msgstr "Bunyikan percakapan" #: src/components/dms/ConvoMenu.tsx:140 #~ msgid "Unmute notifications" @@ -5865,7 +5865,7 @@ msgstr "Lepas sematan" #: src/view/screens/ProfileFeed.tsx:287 msgid "Unpin from home" -msgstr "Batal sematkan dari beranda" +msgstr "Lepaskan sematan dari beranda" #: src/view/screens/ProfileList.tsx:499 msgid "Unpin moderation list" @@ -5873,7 +5873,7 @@ msgstr "Lepas sematan daftar moderasi" #: src/view/screens/ProfileList.tsx:289 msgid "Unpinned from your feeds" -msgstr "" +msgstr "Lepaskan sematan dari feed Anda" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:228 msgid "Unsubscribe" @@ -5906,7 +5906,7 @@ msgstr "Memperbarui..." #: src/screens/Onboarding/StepProfile/index.tsx:284 msgid "Upload a photo instead" -msgstr "" +msgstr "Unggah foto saja" #: src/view/com/modals/ChangeHandle.tsx:448 msgid "Upload a text file to:" @@ -5945,7 +5945,7 @@ msgstr "Gunakan bsky.social sebagai penyedia hosting" #: src/view/com/modals/ChangeHandle.tsx:512 msgid "Use default provider" -msgstr "Gunakan layanan bawaan" +msgstr "Gunakan penyedia handle bawaan" #: src/view/com/modals/InAppBrowserConsent.tsx:56 #: src/view/com/modals/InAppBrowserConsent.tsx:58 @@ -5959,7 +5959,7 @@ msgstr "Gunakan peramban bawaan saya" #: src/screens/Feeds/NoSavedFeedsOfAnyType.tsx:53 msgid "Use recommended" -msgstr "" +msgstr "Gunakan rekomendasi" #: src/view/com/modals/ChangeHandle.tsx:394 msgid "Use the DNS panel" @@ -5980,11 +5980,11 @@ msgstr "Pengguna Diblokir" #: src/lib/moderation/useModerationCauseDescription.ts:48 msgid "User Blocked by \"{0}\"" -msgstr "Pengguna Diblokir oleh \"{0}\"" +msgstr "Diblokir oleh \"{0}\"" #: src/components/dms/BlockedByListDialog.tsx:27 msgid "User blocked by list" -msgstr "" +msgstr "Pengguna diblokir oleh daftar" #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" @@ -5992,7 +5992,7 @@ msgstr "Pengguna Diblokir oleh Daftar" #: src/lib/moderation/useModerationCauseDescription.ts:66 msgid "User Blocking You" -msgstr "Pengguna Memblokir Anda" +msgstr "Pengguna yang Memblokir Anda" #: src/components/moderation/ModerationDetailsDialog.tsx:70 msgid "User Blocks You" @@ -6001,7 +6001,7 @@ msgstr "Pengguna Memblokir Anda" #: src/view/com/lists/ListCard.tsx:85 #: src/view/com/modals/UserAddRemoveLists.tsx:198 msgid "User list by {0}" -msgstr "Daftar pengguna oleh {0}" +msgstr "Daftar pengguna {0}" #: src/view/screens/ProfileList.tsx:830 msgid "User list by <0/>" @@ -6011,7 +6011,7 @@ msgstr "Daftar pengguna oleh<0/>" #: src/view/com/modals/UserAddRemoveLists.tsx:196 #: src/view/screens/ProfileList.tsx:828 msgid "User list by you" -msgstr "Daftar pengguna oleh Anda" +msgstr "Daftar pengguna Anda" #: src/view/com/modals/CreateOrEditList.tsx:198 msgid "User list created" @@ -6042,7 +6042,7 @@ msgstr "pengguna yang diikuti <0/>" #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" -msgstr "" +msgstr "Pengguna yang saya ikuti" #: src/view/com/modals/Threadgate.tsx:106 msgid "Users in \"{0}\"" @@ -6058,11 +6058,11 @@ msgstr "Nilai:" #: src/view/com/modals/ChangeHandle.tsx:510 #~ msgid "Verify {0}" -#~ msgstr "Verifikasi {0}" +#~ msgstr "" #: src/view/com/modals/ChangeHandle.tsx:504 msgid "Verify DNS Record" -msgstr "" +msgstr "Verifikasi DNS" #: src/view/screens/Settings/index.tsx:927 msgid "Verify email" @@ -6083,7 +6083,7 @@ msgstr "Verifikasi Email Baru" #: src/view/com/modals/ChangeHandle.tsx:505 msgid "Verify Text File" -msgstr "" +msgstr "Verifikasi Berkas" #: src/view/com/modals/VerifyEmail.tsx:111 msgid "Verify Your Email" @@ -6091,11 +6091,11 @@ msgstr "Verifikasi Email Anda" #: src/view/screens/Settings/index.tsx:852 #~ msgid "Version {0}" -#~ msgstr "Versi {0}" +#~ msgstr "" #: src/view/screens/Settings/index.tsx:880 msgid "Version {appVersion} {bundleInfo}" -msgstr "" +msgstr "Versi {appVersion} {bundleInfo}" #: src/screens/Onboarding/index.tsx:54 msgid "Video Games" @@ -6146,7 +6146,7 @@ msgstr "Lihat pengguna yang menyukai feed ini" #: src/view/com/modals/LinkWarning.tsx:89 #: src/view/com/modals/LinkWarning.tsx:95 msgid "Visit Site" -msgstr "Kunjungi Halaman" +msgstr "Kunjungi Situs" #: src/components/moderation/LabelPreference.tsx:135 #: src/lib/moderation/useLabelBehaviorDescription.ts:17 @@ -6169,7 +6169,7 @@ msgstr "Kami tidak dapat menemukan hasil apa pun untuk tagar tersebut." #: src/screens/Messages/Conversation/index.tsx:95 msgid "We couldn't load this conversation" -msgstr "" +msgstr "Kami tidak dapat memuat percakapan ini" #: src/screens/Deactivated.tsx:139 msgid "We estimate {estimatedTime} until your account is ready." @@ -6213,7 +6213,7 @@ msgstr "Kami akan menggunakan ini untuk menyesuaikan pengalaman Anda." #: src/components/dms/NewChatDialog/index.tsx:328 msgid "We're having network issues, try again" -msgstr "" +msgstr "Kami mengalami masalah jaringan, coba lagi" #: src/screens/Signup/index.tsx:142 msgid "We're so excited to have you join us!" @@ -6225,7 +6225,7 @@ msgstr "Mohon maaf, kami tidak dapat menyelesaikan daftar ini. Jika hal ini teru #: src/components/dialogs/MutedWords.tsx:229 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." -msgstr "Mohon maaf, untuk saat ini kami tidak dapat memuat kata yang Anda dibisukan. Silakan coba lagi." +msgstr "Mohon maaf, untuk saat ini kami tidak dapat memuat kata yang Anda bisukan. Silakan coba lagi." #: src/view/screens/Search/Search.tsx:262 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." @@ -6265,7 +6265,7 @@ msgstr "Bahasa apa yang ingin Anda lihat di feed Anda?" #: src/components/dms/MessagesNUX.tsx:110 #: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" -msgstr "" +msgstr "Siapa yang dapat mengirim pesan kepada Anda?" #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" @@ -6274,7 +6274,7 @@ msgstr "Siapa yang dapat membalas" #: src/screens/Home/NoFeedsPinned.tsx:92 #: src/screens/Messages/List/index.tsx:165 msgid "Whoops!" -msgstr "" +msgstr "Waduh!" #: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" @@ -6290,7 +6290,7 @@ msgstr "Mengapa daftar ini perlu ditinjau?" #: src/components/ReportDialog/SelectReportOptionView.tsx:60 msgid "Why should this message be reviewed?" -msgstr "" +msgstr "Mengapa pesan ini perlu ditinjau?" #: src/components/ReportDialog/SelectReportOptionView.tsx:51 msgid "Why should this post be reviewed?" @@ -6307,7 +6307,7 @@ msgstr "Lebar" #: src/screens/Messages/Conversation/MessageInput.tsx:121 #: src/screens/Messages/Conversation/MessageInput.web.tsx:98 msgid "Write a message" -msgstr "" +msgstr "Tulis pesan" #: src/view/com/composer/Composer.tsx:503 msgid "Write post" @@ -6334,7 +6334,7 @@ msgstr "Ya" #: src/components/dms/MessageItem.tsx:174 msgid "Yesterday, {time}" -msgstr "" +msgstr "Kemarin, {time}" #: src/screens/Deactivated.tsx:136 msgid "You are in line." @@ -6347,7 +6347,7 @@ msgstr "Anda tidak mengikuti siapa pun." #: src/view/com/posts/FollowingEmptyState.tsx:67 #: src/view/com/posts/FollowingEndOfFeed.tsx:68 msgid "You can also discover new Custom Feeds to follow." -msgstr "Anda juga dapat menemukan Feed Khusus baru untuk diikuti." +msgstr "Anda juga bisa menemukan Feed Kustom baru untuk diikuti." #: src/screens/Onboarding/StepFollowingFeed.tsx:143 msgid "You can change these settings later." @@ -6355,7 +6355,7 @@ msgstr "Anda dapat mengubah pengaturan ini nanti." #: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." -msgstr "" +msgstr "Anda dapat mengubah ini kapan saja." #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 @@ -6376,7 +6376,7 @@ msgstr "Anda tidak memiliki feed yang disematkan." #: src/view/screens/Feeds.tsx:477 #~ msgid "You don't have any saved feeds!" -#~ msgstr "Anda tidak memiliki feed yang disimpan!" +#~ msgstr "" #: src/view/screens/SavedFeeds.tsx:157 msgid "You don't have any saved feeds." @@ -6388,7 +6388,7 @@ msgstr "Anda telah memblokir atau diblokir oleh penulis ini." #: src/components/dms/MessagesListBlockedFooter.tsx:58 msgid "You have blocked this user" -msgstr "" +msgstr "Anda telah memblokir pengguna ini" #: src/components/moderation/ModerationDetailsDialog.tsx:66 #: src/lib/moderation/useModerationCauseDescription.ts:50 @@ -6422,7 +6422,7 @@ msgstr "Anda telah membisukan pengguna ini" #: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" -msgstr "" +msgstr "Anda belum melakukan percakapan. Mulai sekarang!" #: src/view/com/feeds/ProfileFeedgens.tsx:144 msgid "You have no feeds." @@ -6435,11 +6435,11 @@ msgstr "Anda tidak punya daftar." #: src/screens/Messages/List/index.tsx:200 #~ msgid "You have no messages yet. Start a conversation with someone!" -#~ msgstr "Anda belum memiliki pesan. Mulailah percakapan dengan seseorang!" +#~ msgstr "" #: src/view/screens/ModerationBlockedAccounts.tsx:134 msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." -msgstr "Anda belum memblokir akun apa pun. Untuk memblokir akun, buka profilnya dan pilih \"Blokir akun\" dari menu di akunnya." +msgstr "Anda belum memblokir akun apa pun. Untuk memblokir akun, buka profil mereka dan pilih \"Blokir akun\" dari menu di akunnya." #: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." @@ -6447,19 +6447,19 @@ msgstr "Anda belum membuat kata sandi aplikasi. Anda dapat membuatnya dengan men #: src/view/screens/ModerationMutedAccounts.tsx:133 msgid "You have not muted any accounts yet. To mute an account, go to their profile and select \"Mute account\" from the menu on their account." -msgstr "Anda belum membisukan akun apa pun. Untuk membisukan akun, buka profilnya dan pilih \"Bisukan akun\" dari menu di akunnya." +msgstr "Anda belum membisukan akun apa pun. Untuk membisukan akun, buka profil mereka dan pilih \"Bisukan akun\" dari menu di akunnya." #: src/components/Lists.tsx:52 msgid "You have reached the end" -msgstr "" +msgstr "Anda telah mencapai akhir" #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" -msgstr "Anda belum membisukan kata atau tag apa pun" +msgstr "Anda belum membisukan kata atau tagar apa pun" #: src/components/moderation/LabelsOnMeDialog.tsx:86 msgid "You may appeal non-self labels if you feel they were placed in error." -msgstr "" +msgstr "Anda dapat mengajukan banding atas label non-mandiri jika Anda merasa label tersebut ditempatkan secara tidak tepat." #: src/components/moderation/LabelsOnMeDialog.tsx:91 msgid "You may appeal these labels if you feel they were placed in error." @@ -6475,7 +6475,7 @@ msgstr "Anda harus berusia 18 tahun atau lebih untuk mengaktifkan konten dewasa" #: src/components/ReportDialog/SubmitView.tsx:205 msgid "You must select at least one labeler for a report" -msgstr "Anda harus memilih setidaknya satu pelabel untuk laporan" +msgstr "Anda harus memilih setidaknya satu pelabel untuk sebuah laporan" #: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "You will no longer receive notifications for this thread" @@ -6491,7 +6491,7 @@ msgstr "Anda akan menerima email berisikan \"kode reset\". Masukkan kode tersebu #: src/screens/Messages/List/ChatListItem.tsx:101 msgid "You: {0}" -msgstr "" +msgstr "Anda: {0}" #: src/screens/Onboarding/StepModeration/index.tsx:60 msgid "You're in control" @@ -6510,7 +6510,7 @@ msgstr "Anda siap untuk mulai!" #: src/components/moderation/ModerationDetailsDialog.tsx:98 #: src/lib/moderation/useModerationCauseDescription.ts:101 msgid "You've chosen to hide a word or tag within this post." -msgstr "Anda telah memilih untuk menyembunyikan kata atau tag di dalam postingan ini." +msgstr "Anda telah memilih untuk menyembunyikan kata atau tagar dalam postingan ini." #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." @@ -6526,7 +6526,7 @@ msgstr "Akun Anda telah dihapus" #: src/view/screens/Settings/ExportCarDialog.tsx:66 msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately." -msgstr "Semua catatan data publik dalam repositori akun Anda dapat diunduh sebagai file \"CAR\". Tidak termasuk konten media seperti gambar dan data pribadi yang harus diunduh secara terpisah." +msgstr "Semua catatan data publik dalam repositori akun Anda dapat diunduh sebagai berkas \"CAR\". Tidak termasuk konten media seperti gambar dan data pribadi yang harus diunduh secara terpisah." #: src/screens/Signup/StepInfo/index.tsx:123 msgid "Your birth date" @@ -6534,7 +6534,7 @@ msgstr "Tanggal lahir Anda" #: src/screens/Messages/Conversation/ChatDisabled.tsx:25 msgid "Your chats have been disabled" -msgstr "" +msgstr "Obrolan Anda telah dinonaktifkan" #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." @@ -6584,7 +6584,7 @@ msgstr "Postingan Anda telah dipublikasikan" #: src/screens/Onboarding/StepFinished.tsx:208 msgid "Your posts, likes, and blocks are public. Mutes are private." -msgstr "Postingan, suka, dan blokir Anda bersifat publik. Bisukan bersifat privat." +msgstr "Postingan, suka, dan pemblokiran Anda bersifat publik. Sedangkan pembisuan bersifat privat." #: src/view/screens/Settings/index.tsx:146 msgid "Your profile" @@ -6596,8 +6596,9 @@ msgstr "Balasan Anda telah dipublikasikan" #: src/components/dms/ReportDialog.tsx:160 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "" +msgstr "Laporan Anda akan dikirim ke Layanan Moderasi Bluesky" #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Handle Anda" + From 55b50e694dda045416060d78ee8f85dd66b26091 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Be=C3=A0?= Date: Fri, 24 May 2024 22:45:08 +0200 Subject: [PATCH 206/277] Update catalan messages.po (#4149) * Update messages.po New lines added, new lines localized. Check it please @jordimas @darccio @surfdude29 * Update catalan messages.po Corrections by @surfdude29 * Update messages.po apply @jordimas corrections --- src/locale/locales/ca/messages.po | 154 +++++++++++++++--------------- 1 file changed, 77 insertions(+), 77 deletions(-) diff --git a/src/locale/locales/ca/messages.po b/src/locale/locales/ca/messages.po index a9bdb73400..52249b5fba 100644 --- a/src/locale/locales/ca/messages.po +++ b/src/locale/locales/ca/messages.po @@ -34,7 +34,7 @@ msgstr "{0, plural, one {{formattedCount} other} other {{formattedCount} others} #: src/components/moderation/LabelsOnMe.tsx:55 msgid "{0, plural, one {# label has been placed on this account} other {# labels have been placed on this account}}" -msgstr "" +msgstr "{0, plural, one {# etiqueta s'ha aplicat a aquest compte} other {# etiquetes s'han aplicat a aquest compte}}" #: src/components/moderation/LabelsOnMe.tsx:61 #~ msgid "{0, plural, one {# label has been placed on this content} other {# labels has been placed on this content}}" @@ -42,7 +42,7 @@ msgstr "" #: src/components/moderation/LabelsOnMe.tsx:61 msgid "{0, plural, one {# label has been placed on this content} other {# labels have been placed on this content}}" -msgstr "" +msgstr "{0, plural, one {# etiqueta s'ha aplicat a aquest contingut} other {# etiquetes s'han aplicat a aquest contingut}}" #: src/view/com/util/post-ctrls/RepostButton.tsx:62 msgid "{0, plural, one {# repost} other {# reposts}}" @@ -117,7 +117,7 @@ msgstr "{following} seguint" #: src/components/dms/NewChatDialog/index.tsx:171 msgid "{handle} can't be messaged" -msgstr "" +msgstr "No es poden enviar missatges a {handle}" #: src/view/shell/desktop/RightNav.tsx:151 #~ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" @@ -412,7 +412,7 @@ msgstr "Tots els canals que has desat, en un sol lloc." #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 msgid "Allow messages from" -msgstr "" +msgstr "Permet missatges de" #: src/screens/Login/ForgotPasswordForm.tsx:178 #: src/view/com/modals/ChangePassword.tsx:172 @@ -580,19 +580,19 @@ msgstr "Confirmes que vols eliminar la contrasenya de l'aplicació \"{name}\"?" #: src/components/dms/MessageMenu.tsx:123 #~ msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for other participants." -#~ msgstr "Estàs segur que vols esborrar aquest missatge? El missatge s'esborrarà per a tu, però no per als altres participants." +#~ msgstr "Estàs segur que vols esborrar aquest missatge? El missatge s'esborrarà per a tu, però no per a l'altre participant." #: src/components/dms/MessageMenu.tsx:124 msgid "Are you sure you want to delete this message? The message will be deleted for you, but not for the other participant." -msgstr "" +msgstr "Estàs segur que vols esborrar aquest missatge? El missatge s'esborrarà per a tu, però no per als altres participants." #: src/components/dms/ConvoMenu.tsx:189 #~ msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for other participants." -#~ msgstr "Estàs segur que vols abandonar aquesta conversa? El missatge s'esborrarà per a tu, però no per als altres participants." +#~ msgstr "Estàs segur que vols abandonar aquesta conversa? Els missatges s'esborraran per a tu, però no per als altres participants." #: src/components/dms/LeaveConvoPrompt.tsx:48 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." -msgstr "" +msgstr "Estàs segur que vols abandonar aquesta conversa? Els missatge s'esborraran per a tu, però no per a l'altre participant." #: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" @@ -1085,7 +1085,7 @@ msgstr "Clica aquí per a obrir el menú d'etiquetes per {tag}" #: src/components/dms/MessageItem.tsx:223 msgid "Click to retry failed message" -msgstr "" +msgstr "Clica aquí per provar d'enviar el missatge de nou" #: src/screens/Onboarding/index.tsx:47 msgid "Climate" @@ -1093,7 +1093,7 @@ msgstr "Clima" #: src/components/dms/ChatEmptyPill.tsx:39 msgid "Clip 🐴 clop 🐴" -msgstr "" +msgstr "Clip 🐴 clop 🐴" #: src/components/dialogs/GifSelect.tsx:301 #: src/components/dms/NewChatDialog/index.tsx:439 @@ -1134,7 +1134,7 @@ msgstr "Tanca el visor d'imatges" #: src/components/dms/MessagesNUX.tsx:162 msgid "Close modal" -msgstr "" +msgstr "Tanca el modal" #: src/view/shell/index.web.tsx:61 msgid "Close navigation footer" @@ -1348,7 +1348,7 @@ msgstr "Continua sense seguir cap compte" #: src/screens/Messages/List/ChatListItem.tsx:108 msgid "Conversation deleted" -msgstr "" +msgstr "Conversa esborrada" #: src/screens/Onboarding/index.tsx:56 msgid "Cooking" @@ -1580,7 +1580,7 @@ msgstr "Vols eliminar la contrasenya d'aplicació?" #: src/view/screens/Settings/index.tsx:835 #: src/view/screens/Settings/index.tsx:838 msgid "Delete chat declaration record" -msgstr "" +msgstr "Suprimeix el registre de declaració de xat" #: src/components/dms/MessageMenu.tsx:99 msgid "Delete for me" @@ -1633,7 +1633,7 @@ msgstr "Publicació eliminada." #: src/view/screens/Settings/index.tsx:836 msgid "Deletes the chat declaration record" -msgstr "" +msgstr "Suprimeix el registre de declaració de xat" #: src/view/com/modals/CreateOrEditList.tsx:303 #: src/view/com/modals/CreateOrEditList.tsx:324 @@ -1664,7 +1664,7 @@ msgstr "Tènue" #: src/components/dms/MessagesNUX.tsx:88 msgid "Direct messages are here!" -msgstr "" +msgstr "Els missatges directes són aquí!" #: src/view/screens/AccessibilitySettings.tsx:94 msgid "Disable autoplay for GIFs" @@ -2010,7 +2010,7 @@ msgstr "Fi del canal" #: src/components/Lists.tsx:52 #~ msgid "End of list" -#~ msgstr "" +#~ msgstr "Fi de la llista" #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" @@ -2093,14 +2093,14 @@ msgstr "Tothom" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 msgid "Everybody can reply" -msgstr "" +msgstr "Tothom pot respondre" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 #: src/screens/Messages/Settings.tsx:74 #: src/screens/Messages/Settings.tsx:77 msgid "Everyone" -msgstr "" +msgstr "Tothom" #: src/lib/moderation/useReportOptions.ts:67 msgid "Excessive mentions or replies" @@ -2204,7 +2204,7 @@ msgstr "No s'han pogut carregar els GIF" #: src/screens/Messages/Conversation/MessageListError.tsx:23 msgid "Failed to load past messages" -msgstr "" +msgstr "No s'han pogut carregar els missatges anteriors" #: src/screens/Messages/Conversation/MessageListError.tsx:28 #~ msgid "Failed to load past messages." @@ -2221,7 +2221,7 @@ msgstr "Error en desar la imatge: {0}" #: src/components/dms/MessageItem.tsx:216 msgid "Failed to send" -msgstr "" +msgstr "No s'ha pogut enviar" #: src/screens/Messages/Conversation/MessageListError.tsx:29 #~ msgid "Failed to send message(s)." @@ -2230,12 +2230,12 @@ msgstr "" #: src/components/moderation/LabelsOnMeDialog.tsx:224 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." -msgstr "" +msgstr "No s'ha pogut enviar l'apel·lació, torna-ho a provar." #: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 msgid "Failed to update settings" -msgstr "" +msgstr "No s'ha pogut actualitzar la configuració" #: src/Navigation.tsx:203 msgid "Feed" @@ -2500,7 +2500,7 @@ msgstr "Galeria" #: src/components/dms/MessagesNUX.tsx:168 msgid "Get started" -msgstr "" +msgstr "Comença" #: src/view/com/modals/VerifyEmail.tsx:197 #: src/view/com/modals/VerifyEmail.tsx:199 @@ -2559,7 +2559,7 @@ msgstr "Ves a l'inici" #: src/screens/Messages/List/ChatListItem.tsx:156 msgid "Go to conversation with {0}" -msgstr "" +msgstr "Ves a la conversa amb {0}" #: src/screens/Login/ForgotPasswordForm.tsx:172 #: src/view/com/modals/ChangePassword.tsx:169 @@ -2800,7 +2800,7 @@ msgstr "Suplantació d'identitat o afirmacions falses sobre identitat o afiliaci #: src/lib/moderation/useReportOptions.ts:85 msgid "Inappropriate messages or explicit links" -msgstr "" +msgstr "Missatges inapropiats o enllaços explícits" #: src/screens/Login/SetNewPasswordForm.tsx:127 msgid "Input code sent to your email for password reset" @@ -2868,7 +2868,7 @@ msgstr "Introdueix el teu identificador d'usuari" #: src/components/dms/MessagesNUX.tsx:82 msgid "Introducing Direct Messages" -msgstr "" +msgstr "Presentació dels missatges directes" #: src/screens/Login/LoginForm.tsx:129 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 @@ -3027,7 +3027,7 @@ msgstr "Surt" #: src/components/dms/MessagesListBlockedFooter.tsx:66 #: src/components/dms/MessagesListBlockedFooter.tsx:73 msgid "Leave chat" -msgstr "" +msgstr "Surt del xat" #: src/components/dms/ConvoMenu.tsx:136 #: src/components/dms/ConvoMenu.tsx:139 @@ -3173,7 +3173,7 @@ msgstr "Llistes" #: src/components/dms/BlockedByListDialog.tsx:39 msgid "Lists blocking this user:" -msgstr "" +msgstr "Llistes que bloquegen aquest usuari:" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 @@ -3243,7 +3243,7 @@ msgstr "Sembla que has deixat tots els teus canals sense fixar. No passa res, en #: src/screens/Feeds/NoFollowingFeed.tsx:37 msgid "Looks like you're missing a following feed. <0>Click here to add one." -msgstr "" +msgstr "Sembla que et falta el canal del Seguits. <0>Clica aquí per a afegir-ne un." #: src/view/com/modals/LinkWarning.tsx:79 msgid "Make sure this is where you intend to go!" @@ -3286,7 +3286,7 @@ msgstr "Menú" #: src/components/dms/MessageProfileButton.tsx:67 msgid "Message {0}" -msgstr "" +msgstr "Missatge {0}" #: src/components/dms/MessageMenu.tsx:58 msgid "Message deleted" @@ -3439,7 +3439,7 @@ msgstr "Silencia totes les publicacions {displayTag}" #: src/components/dms/ConvoMenu.tsx:170 #: src/components/dms/ConvoMenu.tsx:176 msgid "Mute conversation" -msgstr "" +msgstr "Silencia la conversa" #: src/components/dialogs/MutedWords.tsx:148 msgid "Mute in tags only" @@ -3610,7 +3610,7 @@ msgstr "Xat nou" #: src/components/dms/NewMessagesPill.tsx:92 msgid "New messages" -msgstr "" +msgstr "Nous missatges" #: src/view/com/modals/CreateOrEditList.tsx:255 msgid "New Moderation List" @@ -3717,7 +3717,7 @@ msgstr "Encara no tens cap missatge" #: src/screens/Messages/List/index.tsx:254 msgid "No more conversations to show" -msgstr "" +msgstr "No hi ha més converses per a mostrar" #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" @@ -3728,7 +3728,7 @@ msgstr "Encara no tens cap notificació" #: src/screens/Messages/Settings.tsx:92 #: src/screens/Messages/Settings.tsx:95 msgid "No one" -msgstr "" +msgstr "Ningú" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:101 #: src/view/com/composer/text-input/web/Autocomplete.tsx:195 @@ -3737,7 +3737,7 @@ msgstr "Cap resultat" #: src/components/dms/NewChatDialog/index.tsx:380 msgid "No results" -msgstr "" +msgstr "Cap resultat" #: src/components/Lists.tsx:207 msgid "No results found" @@ -3772,7 +3772,7 @@ msgstr "Ningú" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 msgid "Nobody can reply" -msgstr "" +msgstr "Ningú pot respondre" #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 @@ -3809,15 +3809,15 @@ msgstr "Nota: Bluesky és una xarxa oberta i pública. Aquesta configuració tan #: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" -msgstr "" +msgstr "Aquí no hi ha res" #: src/screens/Messages/Settings.tsx:108 msgid "Notification sounds" -msgstr "" +msgstr "Sons de les notificacions" #: src/screens/Messages/Settings.tsx:105 msgid "Notification Sounds" -msgstr "" +msgstr "Sons de les notificacions" #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 @@ -3920,7 +3920,7 @@ msgstr "Obre el creador d'avatars" #: src/screens/Messages/List/ChatListItem.tsx:162 #: src/screens/Messages/List/ChatListItem.tsx:163 msgid "Open conversation options" -msgstr "" +msgstr "Obre les opcions de les converses" #: src/view/com/composer/Composer.tsx:560 #: src/view/com/composer/Composer.tsx:561 @@ -3937,7 +3937,7 @@ msgstr "Obre els enllaços al navegador de l'aplicació" #: src/components/dms/ActionsWrapper.tsx:87 msgid "Open message options" -msgstr "" +msgstr "Obre les opcions dels missatges" #: src/screens/Moderation/index.tsx:227 msgid "Open muted words and tags settings" @@ -4147,7 +4147,7 @@ msgstr "Un altre…" #: src/screens/Messages/Conversation/ChatDisabled.tsx:28 msgid "Our moderators have reviewed reports and decided to disable your access to chats on Bluesky." -msgstr "" +msgstr "Els nostres moderadors han revisat els informes i han decidit desactivar el teu accés als xats a Bluesky." #: src/components/Lists.tsx:208 #: src/view/screens/NotFound.tsx:45 @@ -4228,7 +4228,7 @@ msgstr "Canals de notícies fixats" #: src/view/screens/ProfileList.tsx:288 msgid "Pinned to your feeds" -msgstr "" +msgstr "Fixat als teus canals" #: src/view/com/util/post-embeds/GifEmbed.tsx:36 msgid "Play" @@ -4241,7 +4241,7 @@ msgstr "Reprodueix {0}" #: src/screens/Messages/Settings.tsx:97 #: src/screens/Messages/Settings.tsx:104 #~ msgid "Play notification sounds" -#~ msgstr "" +#~ msgstr "Reprodueix els sons de notificació" #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" @@ -4310,7 +4310,7 @@ msgstr "Explica per què creieu que aquesta etiqueta ha estat aplicada incorrect #: src/screens/Messages/Conversation/ChatDisabled.tsx:110 msgid "Please explain why you think your chats were incorrectly disabled" -msgstr "" +msgstr "Expliqueu perquè creus que els teus xats s'han desactivat incorrectament" #: src/lib/hooks/useAccountSwitcher.ts:48 #: src/lib/hooks/useAccountSwitcher.ts:58 @@ -4425,7 +4425,7 @@ msgstr "Enllaç potencialment enganyós" #: src/screens/Messages/Conversation/MessageListError.tsx:19 msgid "Press to attempt reconnection" -msgstr "" +msgstr "Prem per provar de connectar de nou" #: src/components/forms/HostingProvider.tsx:46 msgid "Press to change hosting provider" @@ -4470,7 +4470,7 @@ msgstr "Política de privacitat" #: src/components/dms/MessagesNUX.tsx:91 msgid "Privately chat with other users." -msgstr "" +msgstr "Xateja en privat amb altres usuaris." #: src/screens/Login/ForgotPasswordForm.tsx:156 msgid "Processing..." @@ -4545,7 +4545,7 @@ msgstr "Proporcions" #: src/components/dms/ReportDialog.tsx:172 msgid "Reason:" -msgstr "" +msgstr "Raó:" #: src/components/dms/MessageReportDialog.tsx:149 #~ msgid "Reason: {0}" @@ -4565,11 +4565,11 @@ msgstr "Cerques recents" #: src/screens/Messages/Conversation/MessageListError.tsx:20 msgid "Reconnect" -msgstr "" +msgstr "Torna a connectar" #: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" -msgstr "" +msgstr "Carrega les converses de nou" #: src/components/dialogs/MutedWords.tsx:286 #: src/view/com/feeds/FeedSourceCard.tsx:285 @@ -5015,7 +5015,7 @@ msgstr "Desa la configuració de retall d'imatges" #: src/components/dms/ChatEmptyPill.tsx:33 msgid "Say hello!" -msgstr "" +msgstr "Digues hola!" #: src/screens/Onboarding/index.tsx:48 msgid "Science" @@ -5246,7 +5246,7 @@ msgstr "Selecciona els teus canals algorítmics secundaris" #: src/components/dms/ChatEmptyPill.tsx:38 msgid "Send a neat website!" -msgstr "" +msgstr "Envia un lloc web net!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 @@ -5456,11 +5456,11 @@ msgstr "Comparteix" #: src/components/dms/ChatEmptyPill.tsx:37 msgid "Share a cool story!" -msgstr "" +msgstr "Comparteix una història interessant!" #: src/components/dms/ChatEmptyPill.tsx:36 msgid "Share a fun fact!" -msgstr "" +msgstr "Comparteix una dada divertida!" #: src/view/com/profile/ProfileMenu.tsx:373 #: src/view/com/util/forms/PostDropdownBtn.tsx:420 @@ -5480,7 +5480,7 @@ msgstr "Comparteix l'enllaç" #: src/components/dms/ChatEmptyPill.tsx:34 msgid "Share your favorite feed!" -msgstr "" +msgstr "Comparteix el teu canal preferit!" #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" @@ -5718,7 +5718,7 @@ msgstr "Desenvolupament de programari" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 msgid "Some people can reply" -msgstr "" +msgstr "Algunes persones poden respondre" #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" @@ -5761,7 +5761,7 @@ msgstr "Ordena les respostes a la mateixa publicació per:" #: src/components/moderation/LabelsOnMeDialog.tsx:169 msgid "Source: <0>{0}" -msgstr "" +msgstr "Font: <0>{0}" #: src/lib/moderation/useReportOptions.ts:66 #: src/lib/moderation/useReportOptions.ts:79 @@ -5790,11 +5790,11 @@ msgstr "Comença un nou xat" #: src/components/dms/NewChatDialog/index.tsx:139 msgid "Start chat with {displayName}" -msgstr "" +msgstr "Comença un xat amb {displayName}" #: src/components/dms/MessagesNUX.tsx:161 msgid "Start chatting" -msgstr "" +msgstr "Comença a xatejar" #: src/view/screens/Settings/index.tsx:862 #~ msgid "Status page" @@ -5926,7 +5926,7 @@ msgstr "Tecnologia" #: src/components/dms/ChatEmptyPill.tsx:35 msgid "Tell a joke!" -msgstr "" +msgstr "Explica un acudit!" #: src/view/shell/desktop/RightNav.tsx:85 msgid "Terms" @@ -6144,7 +6144,7 @@ msgstr "Aquest compte ha sol·licitat que els usuaris estiguin registrats per a #: src/components/dms/BlockedByListDialog.tsx:34 msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." -msgstr "" +msgstr "Aquest compte està bloquejat per una o més de les teves llistes de moderació. Per desbloquejar-lo, visita les llistes directament i elimina aquest usuari." #: src/components/moderation/LabelsOnMeDialog.tsx:240 msgid "This appeal will be sent to <0>{0}." @@ -6152,11 +6152,11 @@ msgstr "Aquesta apel·lació s'enviarà a <0>{0}." #: src/screens/Messages/Conversation/ChatDisabled.tsx:104 msgid "This appeal will be sent to Bluesky's moderation service." -msgstr "" +msgstr "Aquesta apel·lació s'enviarà al servei de moderació de Bluesky." #: src/screens/Messages/Conversation/MessageListError.tsx:18 msgid "This chat was disconnected" -msgstr "" +msgstr "Aquest xat s'ha desconnectat" #: src/screens/Messages/Conversation/MessageListError.tsx:26 #~ msgid "This chat was disconnected due to a network error." @@ -6239,7 +6239,7 @@ msgstr "Aquesta etiqueta ha estat aplicada per l'autor." #: src/components/moderation/LabelsOnMeDialog.tsx:167 msgid "This label was applied by you." -msgstr "" +msgstr "Aquesta etiqueta ha estat aplicada per tu." #: src/screens/Profile/Sections/Labels.tsx:188 msgid "This labeler hasn't declared what labels it publishes, and may not be active." @@ -6292,7 +6292,7 @@ msgstr "Aquest usuari no té cap seguidor." #: src/components/dms/MessagesListBlockedFooter.tsx:60 msgid "This user has blocked you" -msgstr "" +msgstr "Aquest usuari t'ha bloquejat" #: src/components/moderation/ModerationDetailsDialog.tsx:72 #: src/lib/moderation/useModerationCauseDescription.ts:68 @@ -6453,7 +6453,7 @@ msgstr "Desbloqueja" #: src/components/dms/ConvoMenu.tsx:186 #: src/components/dms/ConvoMenu.tsx:190 msgid "Unblock account" -msgstr "" +msgstr "Desbloqueja el compte" #: src/view/com/profile/ProfileMenu.tsx:299 #: src/view/com/profile/ProfileMenu.tsx:305 @@ -6526,7 +6526,7 @@ msgstr "Deixa de silenciar totes les publicacions amb {displayTag}" #: src/components/dms/ConvoMenu.tsx:174 msgid "Unmute conversation" -msgstr "" +msgstr "Deixa de silenciar la conversa" #: src/components/dms/ConvoMenu.tsx:140 #~ msgid "Unmute notifications" @@ -6552,7 +6552,7 @@ msgstr "Desancora la llista de moderació" #: src/view/screens/ProfileList.tsx:289 msgid "Unpinned from your feeds" -msgstr "" +msgstr "Ja no està fix als teus canals" #: src/view/screens/ProfileFeed.tsx:346 #~ msgid "Unsave" @@ -6675,7 +6675,7 @@ msgstr "Usuari bloquejat per \"{0}\"" #: src/components/dms/BlockedByListDialog.tsx:27 msgid "User blocked by list" -msgstr "" +msgstr "Usuari bloquejat per una llista" #: src/components/moderation/ModerationDetailsDialog.tsx:53 msgid "User Blocked by List" @@ -6737,7 +6737,7 @@ msgstr "usuaris seguits per <0/>" #: src/screens/Messages/Settings.tsx:83 #: src/screens/Messages/Settings.tsx:86 msgid "Users I follow" -msgstr "" +msgstr "Els usuaris als que segueixo" #: src/view/com/modals/Threadgate.tsx:106 msgid "Users in \"{0}\"" @@ -6920,7 +6920,7 @@ msgstr "Ho farem servir per a personalitzar la teva experiència." #: src/components/dms/NewChatDialog/index.tsx:328 msgid "We're having network issues, try again" -msgstr "" +msgstr "Tenim problemes de xarxa, torna-ho a provar" #: src/screens/Signup/index.tsx:142 msgid "We're so excited to have you join us!" @@ -6979,7 +6979,7 @@ msgstr "Quins idiomes t'agradaria veure en els teus canals algorítmics?" #: src/components/dms/MessagesNUX.tsx:110 #: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" -msgstr "" +msgstr "Qui et pot enviar missatges?" #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" @@ -7077,7 +7077,7 @@ msgstr "Pots canviar aquests paràmetres més endavant." #: src/components/dms/MessagesNUX.tsx:119 msgid "You can change this at any time." -msgstr "" +msgstr "Pots canviar-ho quan vulguis." #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 @@ -7110,7 +7110,7 @@ msgstr "Has bloquejat l'autor o has estat bloquejat per ell." #: src/components/dms/MessagesListBlockedFooter.tsx:58 msgid "You have blocked this user" -msgstr "" +msgstr "Has bloquejat aquest usuari" #: src/components/moderation/ModerationDetailsDialog.tsx:66 #: src/lib/moderation/useModerationCauseDescription.ts:50 @@ -7148,7 +7148,7 @@ msgstr "Has silenciat aquest usuari" #: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" -msgstr "" +msgstr "Encara no tens cap conversa. Comença'n una!" #: src/view/com/feeds/ProfileFeedgens.tsx:144 msgid "You have no feeds." @@ -7185,7 +7185,7 @@ msgstr "Encara no has silenciat cap compte. per a silenciar un compte, ves al se #: src/components/Lists.tsx:52 msgid "You have reached the end" -msgstr "" +msgstr "Has arribat al final" #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" @@ -7272,7 +7272,7 @@ msgstr "La teva data de naixement" #: src/screens/Messages/Conversation/ChatDisabled.tsx:25 msgid "Your chats have been disabled" -msgstr "" +msgstr "Els teus xats s'han desactivat" #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." From 350e936b8ce2a155041626f3dd58d3359fef73aa Mon Sep 17 00:00:00 2001 From: Minseo Lee Date: Sat, 25 May 2024 05:45:56 +0900 Subject: [PATCH 207/277] Update Korean localization (#4148) * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po --- src/locale/locales/ko/messages.po | 658 +++++++++++++++--------------- 1 file changed, 323 insertions(+), 335 deletions(-) diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index fe572ae4a2..0f4e451bf0 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ko\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-05-19 14:27+0900\n" +"PO-Revision-Date: 2024-05-24 16:50+0900\n" "Last-Translator: quiple\n" "Language-Team: quiple, lens0021, HaruChanHeart, hazzzi, heartade\n" "Plural-Forms: \n" @@ -33,12 +33,12 @@ msgstr "이 콘텐츠에 {0, plural, other {#}}개의 라벨이 지정됨" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "{0, plural, other {#}}개" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "팔로워" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "팔로우 중" @@ -47,7 +47,7 @@ msgstr "팔로우 중" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "좋아요 ({0, plural, other {#}}개)" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "좋아요" @@ -63,7 +63,7 @@ msgstr "게시물" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "답글 ({0, plural, other {#}}개)" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "재게시" @@ -83,14 +83,14 @@ msgstr "시간" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "분" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} 팔로우 중" #: src/components/dms/NewChatDialog/index.tsx:171 msgid "{handle} can't be messaged" -msgstr "{handle}에게 메시지를 보낼 수 없습니다" +msgstr "{handle} 님에게 메시지를 보낼 수 없습니다" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:286 #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:299 @@ -126,7 +126,7 @@ msgstr "<0>해당 없음. 이 경고는 미디어가 첨부된 게시물에 msgid "⚠Invalid Handle" msgstr "⚠잘못된 핸들" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "2단계 인증" @@ -153,9 +153,9 @@ msgstr "접근성 설정" msgid "Accessibility Settings" msgstr "접근성 설정" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "계정" @@ -188,7 +188,7 @@ msgstr "계정 옵션" msgid "Account removed from quick access" msgstr "빠른 액세스에서 계정 제거" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "계정 차단 해제됨" @@ -201,7 +201,7 @@ msgstr "계정 언팔로우함" msgid "Account unmuted" msgstr "계정 언뮤트됨" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -222,26 +222,26 @@ msgstr "이 리스트에 사용자 추가" msgid "Add account" msgstr "계정 추가" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "대체 텍스트 추가" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "앱 비밀번호 추가" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "구성 설정에 뮤트 단어 추가" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "뮤트할 단어 및 태그 추가" @@ -290,7 +290,7 @@ msgid "Adult content is disabled." msgstr "성인 콘텐츠가 비활성화되어 있습니다." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "고급" @@ -298,10 +298,15 @@ msgstr "고급" msgid "All the feeds you've saved, right in one place." msgstr "저장한 모든 피드를 한 곳에서 확인하세요." -#: src/screens/Messages/Settings.tsx:61 -#: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" -msgstr "메시지를 허용할 대상" +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "다이렉트 메시지 접근 허용" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "새 메시지를 허용할 대상" #: src/screens/Login/ForgotPasswordForm.tsx:178 #: src/view/com/modals/ChangePassword.tsx:172 @@ -312,13 +317,13 @@ msgstr "이미 코드가 있나요?" msgid "Already signed in as @{0}" msgstr "이미 @{0}(으)로 로그인했습니다" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -383,38 +388,38 @@ msgstr "반사회적 행위" msgid "App Language" msgstr "앱 언어" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "앱 비밀번호 삭제됨" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "앱 비밀번호 이름에는 문자, 숫자, 공백, 대시, 밑줄만 사용할 수 있습니다." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "앱 비밀번호 이름은 4자 이상이어야 합니다." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "앱 비밀번호 설정" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "앱 비밀번호" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "이의신청" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "\"{0}\" 라벨 이의신청" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "이의신청 제출함" @@ -424,7 +429,7 @@ msgstr "이의신청 제출함" #: src/screens/Messages/Conversation/ChatDisabled.tsx:99 #: src/screens/Messages/Conversation/ChatDisabled.tsx:101 msgid "Appeal this decision" -msgstr "" +msgstr "이 결정에 이의신청" #: src/view/screens/Settings/index.tsx:432 msgid "Appearance" @@ -435,7 +440,7 @@ msgstr "모양" msgid "Apply default recommended feeds" msgstr "기본 추천 피드 적용하기" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "앱 비밀번호 \"{name}\"을(를) 삭제하시겠습니까?" @@ -445,7 +450,7 @@ msgstr "정말 이 메시지를 삭제하시겠습니까? 나에게 보이는 #: src/components/dms/LeaveConvoPrompt.tsx:48 msgid "Are you sure you want to leave this conversation? Your messages will be deleted for you, but not for the other participant." -msgstr "정말 이 대화를 종료하시겠습니까? 나에게 보이는 메시지는 삭제되지만 상대방에게는 삭제되지 않습니다." +msgstr "정말 이 대화에서 나가시겠습니까? 나에게 보이는 메시지는 삭제되지만 상대방에게는 삭제되지 않습니다." #: src/view/com/feeds/FeedSourceCard.tsx:282 msgid "Are you sure you want to remove {0} from your feeds?" @@ -455,7 +460,7 @@ msgstr "피드에서 {0}을(를) 제거하시겠습니까?" msgid "Are you sure you'd like to discard this draft?" msgstr "이 초안을 삭제하시겠습니까?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "정말인가요?" @@ -476,14 +481,14 @@ msgid "At least 3 characters" msgstr "3자 이상" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -510,7 +515,7 @@ msgstr "생년월일" msgid "Birthday:" msgstr "생년월일:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "차단" @@ -563,7 +568,7 @@ msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션하거나 기타 다른 방식으로 나와 상호작용할 수 없습니다. 차단한 계정의 콘텐츠를 볼 수 없으며 해당 계정도 내 콘텐츠를 볼 수 없게 됩니다." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "차단된 게시물." @@ -645,7 +650,7 @@ msgstr "내가 만듦" msgid "Camera" msgstr "카메라" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "글자, 숫자, 공백, 대시, 밑줄만 포함할 수 있습니다. 길이는 4자 이상이어야 하고 32자를 넘지 않아야 합니다." @@ -722,12 +727,12 @@ msgctxt "action" msgid "Change" msgstr "변경" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "핸들 변경" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "핸들 변경" @@ -735,12 +740,12 @@ msgstr "핸들 변경" msgid "Change my email" msgstr "내 이메일 변경하기" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "비밀번호 변경" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "비밀번호 변경" @@ -766,9 +771,15 @@ msgstr "대화 뮤트됨" #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 #: src/screens/Messages/List/index.tsx:68 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "대화 설정" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "대화 설정" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "대화 언뮤트됨" @@ -778,7 +789,7 @@ msgstr "대화 언뮤트됨" msgid "Check my status" msgstr "내 상태 확인" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "이메일에서 로그인 코드를 확인한 후 여기에 입력하세요." @@ -810,19 +821,19 @@ msgstr "기본 피드 선택" msgid "Choose your password" msgstr "비밀번호를 입력하세요" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "모든 레거시 스토리지 데이터 지우기" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "모든 레거시 스토리지 데이터 지우기 (이후 다시 시작)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "모든 스토리지 데이터 지우기" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" @@ -831,11 +842,11 @@ msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" msgid "Clear search query" msgstr "검색어 지우기" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "모든 레거시 스토리지 데이터를 지웁니다" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "모든 스토리지 데이터를 지웁니다" @@ -857,10 +868,10 @@ msgstr "기후" #: src/components/dms/ChatEmptyPill.tsx:39 msgid "Clip 🐴 clop 🐴" -msgstr "" +msgstr "다그닥 🐴 다그닥 🐴" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1003,7 +1014,7 @@ msgstr "나이를 확인하세요:" msgid "Confirm your birthdate" msgstr "생년월일 확인" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1013,7 +1024,7 @@ msgstr "생년월일 확인" msgid "Confirmation code" msgstr "인증 코드" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "연결 중…" @@ -1086,13 +1097,13 @@ msgstr "계정을 팔로우하지 않고 다음 단계로 계속하기" #: src/screens/Messages/List/ChatListItem.tsx:108 msgid "Conversation deleted" -msgstr "" +msgstr "대화 삭제됨" #: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "요리" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "복사됨" @@ -1102,7 +1113,7 @@ msgid "Copied build version to clipboard" msgstr "빌드 버전 클립보드에 복사됨" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1113,11 +1124,11 @@ msgstr "클립보드에 복사됨" msgid "Copied!" msgstr "복사했습니다!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "앱 비밀번호를 복사합니다" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "복사" @@ -1156,7 +1167,7 @@ msgstr "저작권 정책" #: src/components/dms/LeaveConvoPrompt.tsx:39 msgid "Could not leave chat" -msgstr "대화를 종료할 수 없습니다" +msgstr "대화에서 나갈 수 없습니다" #: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" @@ -1166,10 +1177,6 @@ msgstr "피드를 불러올 수 없습니다" msgid "Could not load list" msgstr "리스트를 불러올 수 없습니다" -#: src/components/dms/NewChat.tsx:264 -#~ msgid "Could not load profiles. Please try again later." -#~ msgstr "프로필을 불러올 수 없습니다. 나중에 다시 시도하세요." - #: src/components/dms/ConvoMenu.tsx:86 msgid "Could not mute chat" msgstr "대화를 뮤트할 수 없습니다" @@ -1196,7 +1203,7 @@ msgstr "계정 만들기" msgid "Create an avatar instead" msgstr "대신 아바타 만들기" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "앱 비밀번호 만들기" @@ -1209,7 +1216,7 @@ msgstr "새 계정 만들기" msgid "Create report for {0}" msgstr "{0}에 대한 신고 작성하기" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0}에 생성됨" @@ -1252,7 +1259,7 @@ msgstr "어두운 테마" msgid "Date of birth" msgstr "생년월일" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "검토 디버그" @@ -1262,12 +1269,12 @@ msgstr "디버그 패널" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "삭제" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "계정 삭제" @@ -1275,16 +1282,16 @@ msgstr "계정 삭제" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "<0>\"<1>{0}<2>\" 계정 삭제" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "앱 비밀번호 삭제" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "앱 비밀번호를 삭제하시겠습니까?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "대화 신고 기록 삭제" @@ -1308,7 +1315,7 @@ msgstr "내게 보이는 메시지 삭제" msgid "Delete my account" msgstr "내 계정 삭제" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "내 계정 삭제…" @@ -1329,11 +1336,11 @@ msgstr "이 게시물을 삭제하시겠습니까?" msgid "Deleted" msgstr "삭제됨" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "삭제된 게시물." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "대화 신고 기록을 삭제합니다" @@ -1344,7 +1351,7 @@ msgstr "대화 신고 기록을 삭제합니다" msgid "Description" msgstr "설명" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "설명이 포함된 대체 텍스트" @@ -1375,11 +1382,11 @@ msgstr "햅틱 피드백 끄기" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" -msgstr "비활성화됨" +msgstr "사용 안 함" #: src/view/com/composer/Composer.tsx:579 msgid "Discard" @@ -1439,8 +1446,8 @@ msgstr "도메인을 확인했습니다." #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1552,12 +1559,12 @@ msgid "Edit my profile" msgstr "내 프로필 편집" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "프로필 편집" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "프로필 편집" @@ -1660,21 +1667,17 @@ msgstr "내가 팔로우하는 사람들 간의 답글만 표시합니다." msgid "Enable this source only" msgstr "이 소스에서만 사용" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" -msgstr "활성화됨" +msgstr "사용" #: src/screens/Profile/Sections/Feed.tsx:104 msgid "End of feed" msgstr "피드 끝" -#: src/components/Lists.tsx:52 -#~ msgid "End of list" -#~ msgstr "" - -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "이 앱 비밀번호의 이름 입력" @@ -1682,8 +1685,8 @@ msgstr "이 앱 비밀번호의 이름 입력" msgid "Enter a password" msgstr "비밀번호 입력" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "단어 또는 태그 입력" @@ -1743,12 +1746,12 @@ msgstr "모두" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 msgid "Everybody can reply" -msgstr "" +msgstr "누구나 답글을 달 수 있음" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "모두" @@ -1798,12 +1801,12 @@ msgstr "노골적이거나 불쾌감을 줄 수 있는 미디어." msgid "Explicit sexual images." msgstr "노골적인 성적 이미지." -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "내 데이터 내보내기" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "내 데이터 내보내기" @@ -1819,16 +1822,16 @@ msgstr "외부 미디어는 웹사이트가 나와 내 기기에 대한 정보 #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "외부 미디어 설정" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "외부 미디어 설정" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "앱 비밀번호를 만들지 못했습니다." @@ -1860,13 +1863,13 @@ msgstr "이미지를 저장하지 못함: {0}" msgid "Failed to send" msgstr "전송 실패" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." -msgstr "" +msgstr "이의신청을 제출하지 못했습니다. 다시 시도하세요." #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "설정을 업데이트하지 못했습니다" @@ -1956,10 +1959,10 @@ msgstr "가로로 뒤집기" msgid "Flip vertically" msgstr "세로로 뒤집기" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -1971,7 +1974,7 @@ msgid "Follow" msgstr "팔로우" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "{0} 님을 팔로우" @@ -2014,9 +2017,9 @@ msgstr "이(가) 나를 팔로우했습니다" msgid "Followers" msgstr "팔로워" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2025,7 +2028,7 @@ msgstr "팔로워" msgid "Following" msgstr "팔로우 중" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "{0} 님을 팔로우했습니다" @@ -2057,7 +2060,7 @@ msgstr "음식" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "보안상의 이유로 이메일 주소로 인증 코드를 보내야 합니다." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "보안상의 이유로 이 비밀번호는 다시 볼 수 없습니다. 이 비밀번호를 분실한 경우 새 비밀번호를 생성해야 합니다." @@ -2066,11 +2069,11 @@ msgstr "보안상의 이유로 이 비밀번호는 다시 볼 수 없습니다. msgid "Forgot Password" msgstr "비밀번호 분실" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "비밀번호를 잊으셨나요?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "분실" @@ -2082,7 +2085,7 @@ msgstr "잦은 원치 않는 콘텐츠 게시" msgid "From @{sanitizedAuthor}" msgstr "@{sanitizedAuthor} 님의 태그" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "<0/>에서" @@ -2130,7 +2133,7 @@ msgstr "뒤로" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2147,7 +2150,7 @@ msgstr "홈으로 이동" #: src/screens/Messages/List/ChatListItem.tsx:156 msgid "Go to conversation with {0}" -msgstr "" +msgstr "{0} 님과의 대화로 이동합니다" #: src/screens/Login/ForgotPasswordForm.tsx:172 #: src/view/com/modals/ChangePassword.tsx:169 @@ -2211,13 +2214,13 @@ msgstr "다음은 인기 있는 화제 피드입니다. 원하는 만큼 피드 msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "다음은 사용자의 관심사를 기반으로 한 몇 가지 주제별 피드입니다: {interestsText}. 원하는 만큼 많은 피드를 팔로우할 수 있습니다." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "앱 비밀번호입니다." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2239,7 +2242,7 @@ msgid "Hide post" msgstr "게시물 숨기기" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "콘텐츠 숨기기" @@ -2292,7 +2295,7 @@ msgid "Host:" msgstr "호스트:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2353,7 +2356,7 @@ msgstr "불법 및 긴급 사항" msgid "Image" msgstr "이미지" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "이미지 대체 텍스트" @@ -2373,7 +2376,7 @@ msgstr "비밀번호 재설정을 위해 이메일로 전송된 코드를 입력 msgid "Input confirmation code for account deletion" msgstr "계정 삭제를 위한 인증 코드를 입력합니다" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "앱 비밀번호의 이름을 입력합니다" @@ -2385,19 +2388,19 @@ msgstr "새 비밀번호를 입력합니다" msgid "Input password for account deletion" msgstr "계정을 삭제하기 위해 비밀번호를 입력합니다" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "이메일로 전송된 코드를 입력합니다" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "{identifier}에 연결된 비밀번호를 입력합니다" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "가입 시 사용한 사용자 이름 또는 이메일 주소를 입력합니다" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "비밀번호를 입력합니다" @@ -2413,16 +2416,16 @@ msgstr "사용자 핸들을 입력합니다" msgid "Introducing Direct Messages" msgstr "다이렉트 메시지 소개" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "잘못된 2단계 인증 코드입니다." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "유효하지 않거나 지원되지 않는 게시물 기록" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "잘못된 사용자 이름 또는 비밀번호" @@ -2474,11 +2477,11 @@ msgstr "라벨" msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "라벨은 사용자 및 콘텐츠에 대한 주석입니다. 네트워크를 숨기고, 경고하고, 분류하는 데 사용할 수 있습니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "내 계정의 라벨" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "내 콘텐츠의 라벨" @@ -2513,7 +2516,7 @@ msgstr "더 알아보기" msgid "Learn more about the moderation applied to this content." msgstr "이 콘텐츠에 적용된 검토 설정에 대해 자세히 알아보세요." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "이 경고에 대해 더 알아보기" @@ -2528,7 +2531,7 @@ msgstr "더 알아보기" #: src/components/dms/LeaveConvoPrompt.tsx:50 msgid "Leave" -msgstr "종료" +msgstr "나가기" #: src/components/dms/MessagesListBlockedFooter.tsx:66 #: src/components/dms/MessagesListBlockedFooter.tsx:73 @@ -2541,7 +2544,7 @@ msgstr "대화 떠나기" #: src/components/dms/ConvoMenu.tsx:209 #: src/components/dms/LeaveConvoPrompt.tsx:46 msgid "Leave conversation" -msgstr "대화 종료" +msgstr "대화 나가기" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." @@ -2601,7 +2604,7 @@ msgstr "이(가) 내 게시물을 좋아합니다" msgid "Likes" msgstr "좋아요" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "이 게시물을 좋아요 표시합니다" @@ -2659,7 +2662,7 @@ msgid "Load new notifications" msgstr "새 알림 불러오기" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2712,7 +2715,7 @@ msgstr "팔로우 중 피드가 누락된 것 같습니다. <0>이곳을 클릭 msgid "Make sure this is where you intend to go!" msgstr "이곳이 당신이 가고자 하는 곳인지 확인하세요!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "뮤트한 단어 및 태그 관리" @@ -2741,7 +2744,7 @@ msgstr "메뉴" #: src/components/dms/MessageProfileButton.tsx:67 msgid "Message {0}" -msgstr "" +msgstr "{0} 님에게 메시지 보내기" #: src/components/dms/MessageMenu.tsx:58 msgid "Message deleted" @@ -2756,7 +2759,7 @@ msgid "Message input field" msgstr "메시지 입력 필드" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "메시지가 너무 깁니다" @@ -2876,11 +2879,11 @@ msgstr "모든 {displayTag} 게시물 뮤트" msgid "Mute conversation" msgstr "대화 뮤트" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "태그에서만 뮤트" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "글 및 태그에서 뮤트" @@ -2892,11 +2895,11 @@ msgstr "리스트 뮤트" msgid "Mute these accounts?" msgstr "이 계정들을 뮤트하시겠습니까?" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "게시물 글 및 태그에서 이 단어 뮤트하기" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "태그에서만 이 단어 뮤트하기" @@ -2960,7 +2963,7 @@ msgstr "내 저장한 피드" msgid "My Saved Feeds" msgstr "내 저장한 피드" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "이름" @@ -2980,7 +2983,7 @@ msgid "Nature" msgstr "자연" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "다음 화면으로 이동합니다" @@ -3032,7 +3035,7 @@ msgstr "새 비밀번호" msgid "New Password" msgstr "새 비밀번호" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "새 게시물" @@ -3066,8 +3069,8 @@ msgstr "뉴스" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3089,10 +3092,6 @@ msgstr "다음 이미지" msgid "No" msgstr "아니요" -#: src/screens/Messages/List/index.tsx:156 -#~ msgid "No chats yet" -#~ msgstr "대화 없음" - #: src/view/screens/ProfileFeed.tsx:559 #: src/view/screens/ProfileList.tsx:822 msgid "No description" @@ -3106,7 +3105,7 @@ msgstr "DNS 패널 없음" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "인기 GIF를 찾을 수 없습니다. Tenor에 문제가 있을 수 있습니다." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "더 이상 {0} 님을 팔로우하지 않음" @@ -3120,7 +3119,7 @@ msgstr "아직 메시지가 없습니다" #: src/screens/Messages/List/index.tsx:254 msgid "No more conversations to show" -msgstr "" +msgstr "더 이상 표시할 대화가 없습니다" #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" @@ -3128,8 +3127,8 @@ msgstr "아직 알림이 없습니다." #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "없음" @@ -3138,7 +3137,7 @@ msgstr "없음" msgid "No result" msgstr "결과 없음" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "결과 없음" @@ -3160,10 +3159,6 @@ msgstr "{query}에 대한 결과를 찾을 수 없습니다" msgid "No search results found for \"{search}\"." msgstr "\"{search}\"에 대한 검색 결과를 찾을 수 없습니다." -#: src/components/dms/NewChat.tsx:263 -#~ msgid "No search results found for \"{searchText}\"." -#~ msgstr "\"{searchText}\"에 대한 검색 결과를 찾을 수 없습니다." - #: src/components/dialogs/EmbedConsent.tsx:105 #: src/components/dialogs/EmbedConsent.tsx:112 msgid "No thanks" @@ -3175,7 +3170,7 @@ msgstr "없음" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 msgid "Nobody can reply" -msgstr "" +msgstr "아무도 답글을 달 수 없음" #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 @@ -3208,15 +3203,15 @@ msgstr "참고: Bluesky는 개방형 공개 네트워크입니다. 이 설정은 #: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" -msgstr "" +msgstr "빈 페이지" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" -msgstr "" +msgstr "알림음" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" -msgstr "" +msgstr "알림음" #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 @@ -3291,7 +3286,7 @@ msgid "Oops, something went wrong!" msgstr "이런, 뭔가 잘못되었습니다!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "이런!" @@ -3307,7 +3302,7 @@ msgstr "아바타 생성기 열기" #: src/screens/Messages/List/ChatListItem.tsx:162 #: src/screens/Messages/List/ChatListItem.tsx:163 msgid "Open conversation options" -msgstr "" +msgstr "대화 옵션 열기" #: src/view/com/composer/Composer.tsx:560 #: src/view/com/composer/Composer.tsx:561 @@ -3318,13 +3313,13 @@ msgstr "이모티콘 선택기 열기" msgid "Open feed options menu" msgstr "피드 옵션 메뉴 열기" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "링크를 인앱 브라우저로 열기" #: src/components/dms/ActionsWrapper.tsx:87 msgid "Open message options" -msgstr "" +msgstr "메시지 옵션 열기" #: src/screens/Moderation/index.tsx:227 msgid "Open muted words and tags settings" @@ -3338,12 +3333,12 @@ msgstr "내비게이션 열기" msgid "Open post options menu" msgstr "게시물 옵션 메뉴 열기" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "스토리북 페이지 열기" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "시스템 로그 열기" @@ -3367,6 +3362,10 @@ msgstr "이 알림에서 확장된 사용자 목록을 엽니다" msgid "Opens camera on device" msgstr "기기에서 카메라를 엽니다" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "대화 설정을 엽니다" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "답글 작성 상자를 엽니다" @@ -3379,7 +3378,7 @@ msgstr "구성 가능한 언어 설정을 엽니다" msgid "Opens device photo gallery" msgstr "기기의 사진 갤러리를 엽니다" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "외부 임베드 설정을 엽니다" @@ -3401,23 +3400,23 @@ msgstr "GIF 선택 대화 상자를 엽니다" msgid "Opens list of invite codes" msgstr "초대 코드 목록을 엽니다" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "계정 삭제 확인을 위한 대화 상자를 엽니다. 이메일 코드가 필요합니다" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "Bluesky 비밀번호 변경을 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "새로운 Bluesky 핸들을 선택하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Bluesky 계정 데이터(저장소)를 다운로드하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "이메일 인증을 위한 대화 상자를 엽니다" @@ -3429,7 +3428,7 @@ msgstr "사용자 지정 도메인을 사용하기 위한 대화 상자를 엽 msgid "Opens moderation settings" msgstr "검토 설정을 엽니다" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "비밀번호 재설정 양식을 엽니다" @@ -3442,7 +3441,7 @@ msgstr "저장한 피드를 편집할 수 있는 화면을 엽니다" msgid "Opens screen with all saved feeds" msgstr "모든 저장한 피드 화면을 엽니다" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "비밀번호 설정을 엽니다" @@ -3454,12 +3453,12 @@ msgstr "팔로우 중 피드 설정을 엽니다" msgid "Opens the linked website" msgstr "연결된 웹사이트를 엽니다" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "스토리북 페이지를 엽니다" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "시스템 로그 페이지를 엽니다" @@ -3472,7 +3471,7 @@ msgid "Option {0} of {numItems}" msgstr "{numItems}개 중 {0}번째 옵션" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "선택 사항으로 아래에 추가 정보를 입력하세요:" @@ -3505,7 +3504,7 @@ msgstr "페이지를 찾을 수 없음" msgid "Page Not Found" msgstr "페이지를 찾을 수 없음" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3581,11 +3580,6 @@ msgstr "재생" msgid "Play {0}" msgstr "{0} 재생" -#: src/screens/Messages/Settings.tsx:97 -#: src/screens/Messages/Settings.tsx:104 -#~ msgid "Play notification sounds" -#~ msgstr "알림 소리 재생" - #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" msgstr "GIP를 재생하거나 일시 정지합니다" @@ -3615,15 +3609,15 @@ msgstr "인증 캡차를 완료해 주세요." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "이메일을 변경하기 전에 이메일을 확인해 주세요. 이는 이메일 변경 도구가 추가되는 동안 일시적으로 요구되는 사항이며 곧 제거될 예정입니다." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "앱 비밀번호의 이름을 입력하세요. 모든 공백 문자는 허용되지 않습니다." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "이 앱 비밀번호에 대해 고유한 이름을 입력하거나 무작위로 생성된 이름을 사용합니다." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "뮤트할 단어나 태그 또는 문구를 입력하세요" @@ -3635,13 +3629,13 @@ msgstr "이메일을 입력하세요." msgid "Please enter your password as well:" msgstr "비밀번호도 입력해 주세요:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "{0} 님이 이 라벨을 잘못 적용했다고 생각하는 이유를 설명해 주세요" #: src/screens/Messages/Conversation/ChatDisabled.tsx:110 msgid "Please explain why you think your chats were incorrectly disabled" -msgstr "" +msgstr "채팅이 잘못 비활성화되었다고 생각하는 이유를 설명해 주세요" #: src/lib/hooks/useAccountSwitcher.ts:48 #: src/lib/hooks/useAccountSwitcher.ts:58 @@ -3670,12 +3664,12 @@ msgctxt "action" msgid "Post" msgstr "게시하기" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "게시물" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "{0} 님의 게시물" @@ -3689,7 +3683,7 @@ msgstr "@{0} 님의 게시물" msgid "Post deleted" msgstr "게시물 삭제됨" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "게시물 숨김" @@ -3711,8 +3705,8 @@ msgstr "게시물 언어" msgid "Post Languages" msgstr "게시물 언어" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "게시물을 찾을 수 없음" @@ -3724,7 +3718,7 @@ msgstr "게시물" msgid "Posts" msgstr "게시물" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "게시물의 글 및 태그에 따라 게시물을 뮤트할 수 있습니다." @@ -3763,7 +3757,7 @@ msgstr "주 언어" msgid "Prioritize Your Follows" msgstr "내 팔로우 먼저 표시" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "개인정보" @@ -3771,7 +3765,7 @@ msgstr "개인정보" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "개인정보 처리방침" @@ -3784,7 +3778,7 @@ msgstr "다른 사용자와 비공개로 채팅하세요." msgid "Processing..." msgstr "처리 중…" -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "프로필" @@ -3801,7 +3795,7 @@ msgstr "프로필" msgid "Profile updated" msgstr "프로필 업데이트됨" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "이메일을 인증하여 계정을 보호하세요." @@ -3861,9 +3855,9 @@ msgstr "다시 연결" #: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" -msgstr "" +msgstr "대화 다시 불러오기" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -3914,7 +3908,7 @@ msgstr "이미지 제거" msgid "Remove image preview" msgstr "이미지 미리보기 제거" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "목록에서 뮤트한 단어 제거" @@ -3976,7 +3970,7 @@ msgid "Reply Filters" msgstr "답글 필터" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "<0><1/> 님에게 보내는 답글" @@ -4020,11 +4014,6 @@ msgstr "메시지 신고" msgid "Report post" msgstr "게시물 신고" -#: src/components/dms/ReportDialog.tsx:167 -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 -#~ msgid "Report this account" -#~ msgstr "이 계정 신고하기" - #: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "이 콘텐츠 신고하기" @@ -4041,7 +4030,7 @@ msgstr "이 리스트 신고하기" #: src/components/dms/ReportDialog.tsx:140 #: src/components/ReportDialog/SelectReportOptionView.tsx:59 msgid "Report this message" -msgstr "이 메시지 신고" +msgstr "이 메시지 신고하기" #: src/components/ReportDialog/SelectReportOptionView.tsx:50 msgid "Report this post" @@ -4072,11 +4061,11 @@ msgstr "재게시 또는 게시물 인용" msgid "Reposted By" msgstr "재게시한 사용자" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "{0} 님이 재게시함" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "<0><1/> 님이 재게시함" @@ -4084,7 +4073,7 @@ msgstr "<0><1/> 님이 재게시함" msgid "reposted your post" msgstr "이(가) 내 게시물을 재게시했습니다" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "이 게시물의 재게시" @@ -4123,8 +4112,8 @@ msgstr "재설정 코드" msgid "Reset Code" msgstr "재설정 코드" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "온보딩 상태 초기화" @@ -4132,20 +4121,20 @@ msgstr "온보딩 상태 초기화" msgid "Reset password" msgstr "비밀번호 재설정" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "설정 상태 초기화" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "온보딩 상태 초기화" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "설정 상태 초기화" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "로그인을 다시 시도합니다" @@ -4157,8 +4146,8 @@ msgstr "오류가 발생한 마지막 작업을 다시 시도합니다" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4183,8 +4172,8 @@ msgid "Returns to previous page" msgstr "이전 페이지로 돌아갑니다" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4197,7 +4186,7 @@ msgctxt "action" msgid "Save" msgstr "저장" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "대체 텍스트 저장" @@ -4249,7 +4238,7 @@ msgstr "이미지 자르기 설정을 저장합니다" #: src/components/dms/ChatEmptyPill.tsx:33 msgid "Say hello!" -msgstr "" +msgstr "인사해 보세요!" #: src/screens/Onboarding/index.tsx:48 msgid "Science" @@ -4293,10 +4282,6 @@ msgstr "{displayTag} 태그를 사용한 @{authorHandle} 님의 모든 게시물 msgid "Search for all posts with tag {displayTag}" msgstr "{displayTag} 태그를 사용한 모든 게시물 검색" -#: src/components/dms/NewChat.tsx:248 -#~ msgid "Search for someone to start a conversation with." -#~ msgstr "대화를 시작할 사람을 검색하세요." - #: src/view/com/auth/LoggedOut.tsx:105 #: src/view/com/auth/LoggedOut.tsx:106 #: src/view/com/modals/ListAddRemoveUsers.tsx:70 @@ -4397,7 +4382,7 @@ msgstr "아래에서 팔로우할 계정을 선택하세요" msgid "Select the {emojiName} emoji as your avatar" msgstr "{emojiName} 이모티콘을 아바타로 선택하기" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "신고할 검토 서비스를 선택하세요." @@ -4443,7 +4428,7 @@ msgstr "보조 알고리즘 피드를 선택하세요" #: src/components/dms/ChatEmptyPill.tsx:38 msgid "Send a neat website!" -msgstr "" +msgstr "멋진 웹사이트 링크를 보내 보세요!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 @@ -4465,14 +4450,14 @@ msgid "Send feedback" msgstr "피드백 보내기" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "메시지 보내기" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "신고 보내기" @@ -4566,7 +4551,6 @@ msgid "Sets image aspect ratio to wide" msgstr "이미지 비율을 가로로 길게 설정합니다" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4598,11 +4582,11 @@ msgstr "공유" #: src/components/dms/ChatEmptyPill.tsx:37 msgid "Share a cool story!" -msgstr "" +msgstr "멋진 이야기를 전하세요!" #: src/components/dms/ChatEmptyPill.tsx:36 msgid "Share a fun fact!" -msgstr "" +msgstr "재미있는 사실을 전하세요!" #: src/view/com/profile/ProfileMenu.tsx:373 #: src/view/com/util/forms/PostDropdownBtn.tsx:420 @@ -4622,7 +4606,7 @@ msgstr "링크 공유" #: src/components/dms/ChatEmptyPill.tsx:34 msgid "Share your favorite feed!" -msgstr "" +msgstr "좋아하는 피드를 공유해 보세요!" #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" @@ -4630,7 +4614,7 @@ msgstr "연결된 웹사이트를 공유합니다" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4654,10 +4638,14 @@ msgstr "배지 표시" msgid "Show badge and filter from feeds" msgstr "배지 표시 및 피드에서 필터링" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "{0} 님과 비슷한 팔로우 표시" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "숨겨진 답글 표시" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4665,7 +4653,7 @@ msgstr "이런 항목 덜 보기" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "더 보기" @@ -4674,6 +4662,10 @@ msgstr "더 보기" msgid "Show more like this" msgstr "이런 항목 더 보기" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "뮤트된 답글 표시" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "내 피드에서 게시물 표시" @@ -4719,7 +4711,7 @@ msgid "Show reposts in Following" msgstr "팔로우 중 피드에 재게시 표시" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "콘텐츠 표시" @@ -4743,7 +4735,7 @@ msgstr "피드에 {0} 님의 게시물을 표시합니다" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -4826,7 +4818,7 @@ msgstr "소프트웨어 개발" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 msgid "Some people can reply" -msgstr "" +msgstr "몇몇 사람들이 답글을 달 수 있음" #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" @@ -4839,7 +4831,7 @@ msgid "Something went wrong, please try again." msgstr "알 수 없는 오류가 발생했습니다. 다시 시도해 주세요." #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "죄송합니다. 세션이 만료되었습니다. 다시 로그인해 주세요." @@ -4851,7 +4843,7 @@ msgstr "답글 정렬" msgid "Sort replies to the same post by:" msgstr "동일한 게시물에 대한 답글을 정렬하는 기준입니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "출처: <0>{0}" @@ -4872,7 +4864,7 @@ msgstr "스포츠" msgid "Square" msgstr "정사각형" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "새 대화 시작하기" @@ -4884,7 +4876,7 @@ msgstr "{displayName} 님과 대화 시작하기" msgid "Start chatting" msgstr "대화 시작하기" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "상태 페이지" @@ -4897,12 +4889,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "스토리북" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -4968,11 +4960,11 @@ msgstr "로그인한 계정을 전환합니다" msgid "System" msgstr "시스템" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "시스템 로그" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "태그" @@ -4994,7 +4986,7 @@ msgstr "기술" #: src/components/dms/ChatEmptyPill.tsx:35 msgid "Tell a joke!" -msgstr "" +msgstr "농담해 보세요!" #: src/view/shell/desktop/RightNav.tsx:85 msgid "Terms" @@ -5002,7 +4994,7 @@ msgstr "이용약관" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5014,17 +5006,17 @@ msgstr "서비스 이용약관" msgid "Terms used violate community standards" msgstr "커뮤니티 기준을 위반하는 용어 사용" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "글" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "텍스트 입력 필드" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "감사합니다. 신고를 전송했습니다." @@ -5036,7 +5028,7 @@ msgstr "텍스트 파일 내용:" msgid "That handle is already taken." msgstr "이 핸들은 이미 사용 중입니다." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "차단을 해제하면 이 계정이 나와 상호작용할 수 있게 됩니다." @@ -5053,11 +5045,11 @@ msgstr "저작권 정책을 <0/>(으)로 이동했습니다" msgid "The feed has been replaced with Discover." msgstr "피드를 Discover로 교체했습니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "내 계정에 다음 라벨이 적용되었습니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "내 콘텐츠에 다음 라벨이 적용되었습니다." @@ -5065,8 +5057,8 @@ msgstr "내 콘텐츠에 다음 라벨이 적용되었습니다." msgid "The following steps will help customize your Bluesky experience." msgstr "다음 단계는 Bluesky 환경을 맞춤 설정하는 데 도움이 됩니다." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "게시물이 삭제되었을 수 있습니다." @@ -5137,7 +5129,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "리스트를 가져오는 동안 문제가 발생했습니다. 이곳을 탭하여 다시 시도하세요." #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "신고를 전송하는 동안 문제가 발생했습니다. 인터넷 연결을 확인해 주세요." @@ -5145,13 +5137,13 @@ msgstr "신고를 전송하는 동안 문제가 발생했습니다. 인터넷 msgid "There was an issue syncing your preferences with the server" msgstr "설정을 서버와 동기화하는 동안 문제가 발생했습니다" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "앱 비밀번호를 가져오는 동안 문제가 발생했습니다" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5195,13 +5187,13 @@ msgstr "이 계정의 프로필을 보려면 로그인해야 합니다." msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "이 계정은 하나 이상의 검토 리스트에 의해 차단되었습니다. 차단을 해제하려면 해당 리스트로 직접 이동하여 이 사용자를 제거하세요." -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "이 이의신청은 <0>{0}에게 보내집니다." #: src/screens/Messages/Conversation/ChatDisabled.tsx:104 msgid "This appeal will be sent to Bluesky's moderation service." -msgstr "" +msgstr "이 이의신청은 Bluesky Moderation Service로 보내집니다." #: src/screens/Messages/Conversation/MessageListError.tsx:18 msgid "This chat was disconnected" @@ -5266,7 +5258,7 @@ msgstr "이 라벨은 {0}이(가) 적용했습니다." msgid "This label was applied by the author." msgstr "이 라벨은 작성자가 적용했습니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "이 라벨은 내가 적용했습니다." @@ -5286,11 +5278,11 @@ msgstr "이 리스트는 비어 있습니다." msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "이 검토 서비스는 사용할 수 없습니다. 자세한 내용은 아래를 참조하세요. 이 문제가 지속되면 문의해 주세요." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "이 이름은 이미 사용 중입니다" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "이 게시물은 삭제되었습니다." @@ -5344,7 +5336,7 @@ msgstr "이 사용자는 내가 뮤트한 <0>{0} 리스트에 포함되어 msgid "This user isn't following anyone." msgstr "이 사용자는 아무도 팔로우하지 않았습니다." -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "뮤트한 단어에서 {0}이(가) 삭제됩니다. 나중에 언제든지 다시 추가할 수 있습니다." @@ -5377,7 +5369,7 @@ msgstr "대화를 신고하려면 대화 화면에서 해당 메시지 중 하 msgid "To whom would you like to send this report?" msgstr "이 신고를 누구에게 보내시겠습니까?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "뮤트한 단어 옵션 사이를 전환합니다." @@ -5410,7 +5402,7 @@ msgctxt "action" msgid "Try again" msgstr "다시 시도" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "2단계 인증" @@ -5432,7 +5424,7 @@ msgstr "리스트 언뮤트" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5443,14 +5435,14 @@ msgstr "서비스에 연결할 수 없습니다. 인터넷 연결을 확인하 #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "차단 해제" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "차단 해제" @@ -5465,7 +5457,7 @@ msgstr "계정 차단 해제" msgid "Unblock Account" msgstr "계정 차단 해제" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "계정을 차단 해제하시겠습니까?" @@ -5486,7 +5478,7 @@ msgstr "언팔로우" msgid "Unfollow" msgstr "언팔로우" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "{0} 님을 언팔로우" @@ -5599,7 +5591,7 @@ msgstr "라이브러리에서 업로드" msgid "Use a file on your server" msgstr "서버에 있는 파일을 사용합니다" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "앱 비밀번호를 사용하면 계정이나 비밀번호에 대한 전체 접근 권한을 제공하지 않고도 다른 Bluesky 클라이언트에 로그인할 수 있습니다." @@ -5629,7 +5621,7 @@ msgstr "추천 사용" msgid "Use the DNS panel" msgstr "DNS 패널을 사용합니다" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "이 비밀번호와 핸들을 사용하여 다른 앱에 로그인하세요." @@ -5689,7 +5681,7 @@ msgstr "사용자 리스트 업데이트됨" msgid "User Lists" msgstr "사용자 리스트" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "사용자 이름 또는 이메일 주소" @@ -5703,8 +5695,8 @@ msgstr "<0/> 님이 팔로우한 사용자" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "내가 팔로우하는 사용자" @@ -5724,15 +5716,15 @@ msgstr "값:" msgid "Verify DNS Record" msgstr "DNS 레코드 인증" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "이메일 인증" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "내 이메일 인증하기" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "내 이메일 인증하기" @@ -5749,7 +5741,7 @@ msgstr "텍스트 파일 인증" msgid "Verify Your Email" msgstr "이메일 인증하기" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "버전 {appVersion} {bundleInfo}" @@ -5773,7 +5765,7 @@ msgstr "세부 정보 보기" msgid "View details for reporting a copyright violation" msgstr "저작권 위반 신고에 대한 세부 정보 보기" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "전체 스레드 보기" @@ -5781,8 +5773,8 @@ msgstr "전체 스레드 보기" msgid "View information about these labels" msgstr "이 라벨에 대한 정보 보기" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "프로필 보기" @@ -5839,7 +5831,7 @@ msgstr "즐거운 시간 되시기 바랍니다. Bluesky의 다음 특징을 기 msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "팔로우한 사용자의 게시물이 부족합니다. 대신 <0/>의 최신 게시물을 표시합니다." -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "게시물이 표시되지 않을 수 있으므로 많은 게시물에 자주 등장하는 단어는 피하는 것이 좋습니다." @@ -5867,7 +5859,7 @@ msgstr "계정이 준비되면 알려드리겠습니다." msgid "We'll use this to help customize your experience." msgstr "이를 통해 사용자 환경을 맞춤 설정할 수 있습니다." -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "네트워크 문제가 발생했습니다. 다시 시도하세요" @@ -5879,7 +5871,7 @@ msgstr "함께하게 되어 정말 기뻐요!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "죄송하지만 이 리스트를 불러올 수 없습니다. 이 문제가 계속되면 리스트 작성자인 @{handleOrDid}에게 문의하세요." -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "죄송하지만 현재 뮤트한 단어를 불러올 수 없습니다. 다시 시도해 주세요." @@ -5917,7 +5909,7 @@ msgstr "알고리즘 피드에 어떤 언어를 표시하시겠습니까?" #: src/components/dms/MessagesNUX.tsx:110 #: src/components/dms/MessagesNUX.tsx:124 msgid "Who can message you?" -msgstr "누구의 메시지를 허용할까요?" +msgstr "누구의 메시지를 허용하시겠습니까?" #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" @@ -5928,10 +5920,6 @@ msgstr "답글을 달 수 있는 사람" msgid "Whoops!" msgstr "이런!" -#: src/components/ReportDialog/SelectReportOptionView.tsx:63 -#~ msgid "Why should this account be reviewed?" -#~ msgstr "이 계정을 검토해야 하는 이유는 무엇인가요?" - #: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "이 콘텐츠를 검토해야 하는 이유는 무엇인가요?" @@ -5961,7 +5949,7 @@ msgid "Wide" msgstr "가로" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "메시지를 입력하세요" @@ -6013,6 +6001,10 @@ msgstr "이 설정은 나중에 변경할 수 있습니다." msgid "You can change this at any time." msgstr "언제든지 변경할 수 있습니다." +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "어떤 설정을 선택하든 진행 중인 대화를 계속할 수 있습니다." + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6034,7 +6026,7 @@ msgstr "고정한 피드가 없습니다." msgid "You don't have any saved feeds." msgstr "저장한 피드가 없습니다." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "작성자를 차단했거나 작성자가 나를 차단했습니다." @@ -6072,13 +6064,9 @@ msgstr "내가 이 계정을 뮤트했습니다." msgid "You have muted this user" msgstr "내가 이 사용자를 뮤트했습니다" -#: src/screens/Messages/List/index.tsx:158 -#~ msgid "You have no chats yet. Start a conversation with someone!" -#~ msgstr "아직 대화가 없습니다. 다른 사람과 대화를 시작해 보세요!" - #: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" -msgstr "" +msgstr "아직 대화가 없습니다. 시작해 보세요!" #: src/view/com/feeds/ProfileFeedgens.tsx:144 msgid "You have no feeds." @@ -6093,7 +6081,7 @@ msgstr "리스트가 없습니다." msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "아직 어떤 계정도 차단하지 않았습니다. 계정을 차단하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 차단\"을 선택하세요." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "아직 앱 비밀번호를 생성하지 않았습니다. 아래 버튼을 눌러 생성할 수 있습니다." @@ -6103,17 +6091,17 @@ msgstr "아직 어떤 계정도 뮤트하지 않았습니다. 계정을 뮤트 #: src/components/Lists.tsx:52 msgid "You have reached the end" -msgstr "" +msgstr "끝에 도달했습니다" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "아직 어떤 단어나 태그도 뮤트하지 않았습니다" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "비셀프 라벨이 잘못 지정되었다고 생각되면 이의신청할 수 있습니다." -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "이 라벨이 잘못 지정되었다고 생각되면 이의신청할 수 있습니다." @@ -6125,7 +6113,7 @@ msgstr "가입하려면 만 13세 이상이어야 합니다." msgid "You must be 18 years or older to enable adult content" msgstr "성인 콘텐츠를 사용하려면 만 18세 이상이어야 합니다." -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "신고하려면 하나 이상의 라벨을 선택해야 합니다." @@ -6222,7 +6210,7 @@ msgstr "내 전체 핸들:" msgid "Your full handle will be <0>@{0}" msgstr "내 전체 핸들: <0>@{0}" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "뮤트한 단어" @@ -6248,7 +6236,7 @@ msgstr "내 답글을 게시했습니다" #: src/components/dms/ReportDialog.tsx:160 msgid "Your report will be sent to the Bluesky Moderation Service" -msgstr "신고가 Bluesky Moderation Service로 전송됩니다." +msgstr "신고가 Bluesky Moderation Service로 보내집니다." #: src/screens/Signup/index.tsx:166 msgid "Your user handle" From 96b5fecdb9a2e8d9f2a21961964a3b966d37e79e Mon Sep 17 00:00:00 2001 From: Frudrax Cheng Date: Sat, 25 May 2024 04:46:47 +0800 Subject: [PATCH 208/277] Updated Chinese translation (#4147) * Update zh-TW to latest commit * fixe p.p. for "blocked" * Update zh-TW to latest commit * Update messages.po * Remove superseded strings * Clean zh-TW * TW: Update messages.po * TW: improve translation Co-Authored-By: cirx <133132480+cirx1e@users.noreply.github.com> * CN: extract * Update zh-CN to latest commit * TW: Update * improve zh-CN translate * BOTH: fix "Following {0}" * CN: Update * TW: Update * BOTH: fix msgid "You can continue ongoing conversations regardless of which setting you choose." --------- Co-authored-by: Kuwa Lee Co-authored-by: cirx <133132480+cirx1e@users.noreply.github.com> --- src/locale/locales/zh-CN/messages.po | 612 +++++++++++++------------- src/locale/locales/zh-TW/messages.po | 614 +++++++++++++-------------- 2 files changed, 613 insertions(+), 613 deletions(-) diff --git a/src/locale/locales/zh-CN/messages.po b/src/locale/locales/zh-CN/messages.po index 4acb02a271..9dc697bbdf 100644 --- a/src/locale/locales/zh-CN/messages.po +++ b/src/locale/locales/zh-CN/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: zh_CN\n" "Project-Id-Version: zh-CN for bluesky-social-app\n" "Report-Msgid-Bugs-To: Frudrax Cheng \n" -"PO-Revision-Date: 2024-05-20 09:30+0800\n" +"PO-Revision-Date: 2024-05-24 10:26+0800\n" "Last-Translator: Frudrax Cheng \n" "Language-Team: Frudrax Cheng (auroursa), Simon Chan (RitsukiP), U2FsdGVkX1, Mikan Harada (mitian233), IceCodeNew\n" "Plural-Forms: \n" @@ -47,7 +47,7 @@ msgstr "{0, plural, one {正在关注} other {正在关注}}" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "{0, plural, one {喜欢 (# 个喜欢)} other {喜欢 (# 个喜欢)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "{0, plural, one {喜欢} other {喜欢}}" @@ -63,7 +63,7 @@ msgstr "{0, plural, one {帖子} other {帖子}}" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "{0, plural, one {回复 (# 个回复)} other {回复 (# 个回复)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "{0, plural, one {转发} other {转发}}" @@ -126,7 +126,7 @@ msgstr "<0>不适用。 这个警告仅适用于附加媒体内容的帖子 msgid "⚠Invalid Handle" msgstr "⚠无效的用户识别符" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "两步验证" @@ -153,9 +153,9 @@ msgstr "无障碍设置" msgid "Accessibility Settings" msgstr "无障碍设置" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "账户" @@ -188,7 +188,7 @@ msgstr "账户选项" msgid "Account removed from quick access" msgstr "已从快速访问中移除账户" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "已取消屏蔽账户" @@ -201,7 +201,7 @@ msgstr "已取消关注账户" msgid "Account unmuted" msgstr "已取消隐藏账户" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -222,26 +222,26 @@ msgstr "将用户添加至列表" msgid "Add account" msgstr "添加账户" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "新增替代文字" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "新增应用专用密码" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "为配置的设置添加隐藏词汇" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "添加隐藏词和标签" @@ -290,7 +290,7 @@ msgid "Adult content is disabled." msgstr "成人内容显示已被禁用。" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "详细设置" @@ -298,10 +298,15 @@ msgstr "详细设置" msgid "All the feeds you've saved, right in one place." msgstr "你保存的所有资讯源都集中在一处。" -#: src/screens/Messages/Settings.tsx:61 -#: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" -msgstr "允许接收来自以下来源的私信" +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "允许读取你的私信" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "允许以下来源发起新对话" #: src/screens/Login/ForgotPasswordForm.tsx:178 #: src/view/com/modals/ChangePassword.tsx:172 @@ -312,13 +317,13 @@ msgstr "已经有验证码了?" msgid "Already signed in as @{0}" msgstr "已以@{0}身份登录" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -383,38 +388,38 @@ msgstr "反社会行为" msgid "App Language" msgstr "应用语言" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "应用专用密码已删除" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "应用专用密码只能包含字母、数字、空格、破折号及下划线。" -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "应用专用密码必须至少为 4 个字符。" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "应用专用密码设置" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "应用专用密码" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "申诉" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "申诉 \"{0}\" 标记" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "申诉已提交" @@ -424,7 +429,7 @@ msgstr "申诉已提交" #: src/screens/Messages/Conversation/ChatDisabled.tsx:99 #: src/screens/Messages/Conversation/ChatDisabled.tsx:101 msgid "Appeal this decision" -msgstr "" +msgstr "对此结果提出申诉" #: src/view/screens/Settings/index.tsx:432 msgid "Appearance" @@ -435,7 +440,7 @@ msgstr "外观" msgid "Apply default recommended feeds" msgstr "使用默认推荐的资讯源" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "你确定要删除这条应用专用密码 \"{name}\" 吗?" @@ -455,7 +460,7 @@ msgstr "你确定要从你的资讯源中删除 {0} 吗?" msgid "Are you sure you'd like to discard this draft?" msgstr "你确定要丢弃这段草稿吗?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "你确定吗?" @@ -476,14 +481,14 @@ msgid "At least 3 characters" msgstr "至少 3 个字符" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -510,7 +515,7 @@ msgstr "生日" msgid "Birthday:" msgstr "生日:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "屏蔽" @@ -563,7 +568,7 @@ msgstr "被屏蔽的账户无法在你的帖子中回复、提及你或以其他 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "被屏蔽的账户无法在你的帖子中回复、提及你或以其他方式与你互动。你将不会看到他们所发的内容,同样他们也无法查看你的内容。" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "已屏蔽帖子。" @@ -645,7 +650,7 @@ msgstr "来自你" msgid "Camera" msgstr "相机" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "只能包含字母、数字、空格、破折号及下划线。 长度必须至少 4 个字符,但不超过 32 个字符。" @@ -722,12 +727,12 @@ msgctxt "action" msgid "Change" msgstr "更改" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "更改用户识别符" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "更改用户识别符" @@ -735,12 +740,12 @@ msgstr "更改用户识别符" msgid "Change my email" msgstr "更改我的邮箱地址" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "更改密码" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "更改密码" @@ -766,9 +771,15 @@ msgstr "已隐藏对话" #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 #: src/screens/Messages/List/index.tsx:68 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "私信设置" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "私信设置" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "已解除隐藏对话" @@ -778,7 +789,7 @@ msgstr "已解除隐藏对话" msgid "Check my status" msgstr "检查我的状态" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "在这里输入刚才发送到你电子邮箱里的验证码。" @@ -810,19 +821,19 @@ msgstr "选择你的主要资讯源" msgid "Choose your password" msgstr "选择你的密码" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "清除所有旧存储数据" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "清除所有旧存储数据(并重启)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "清除所有数据" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "清除所有数据(并重启)" @@ -831,11 +842,11 @@ msgstr "清除所有数据(并重启)" msgid "Clear search query" msgstr "清除搜索历史记录" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "清除所有旧版存储数据" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "清除所有数据" @@ -857,10 +868,10 @@ msgstr "气象" #: src/components/dms/ChatEmptyPill.tsx:39 msgid "Clip 🐴 clop 🐴" -msgstr "" +msgstr "哒哒🐴哒哒🐴" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1003,7 +1014,7 @@ msgstr "确认你的年龄:" msgid "Confirm your birthdate" msgstr "确认你的出生日期" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1013,7 +1024,7 @@ msgstr "确认你的出生日期" msgid "Confirmation code" msgstr "验证码" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "连接中..." @@ -1086,13 +1097,13 @@ msgstr "继续下一步,不关注任何账户" #: src/screens/Messages/List/ChatListItem.tsx:108 msgid "Conversation deleted" -msgstr "" +msgstr "对话已删除" #: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "烹饪" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "已复制" @@ -1102,7 +1113,7 @@ msgid "Copied build version to clipboard" msgstr "已复制构建版本号至剪贴板" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1113,11 +1124,11 @@ msgstr "已复制至剪贴板" msgid "Copied!" msgstr "已复制!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "已复制应用专用密码" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "复制" @@ -1192,7 +1203,7 @@ msgstr "创建一个账户" msgid "Create an avatar instead" msgstr "创建一个头像" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "创建应用专用密码" @@ -1205,7 +1216,7 @@ msgstr "创建新的账户" msgid "Create report for {0}" msgstr "创建 {0} 的举报" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} 已创建" @@ -1248,7 +1259,7 @@ msgstr "深色模式" msgid "Date of birth" msgstr "生日" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "调试内容审核" @@ -1258,12 +1269,12 @@ msgstr "调试面板" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "删除" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "删除账户" @@ -1271,16 +1282,16 @@ msgstr "删除账户" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "删除账户 <0>\"<1>{0}<2>\"" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "删除应用专用密码" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "删除应用专用密码?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "删除聊天记录" @@ -1304,7 +1315,7 @@ msgstr "为我删除私信" msgid "Delete my account" msgstr "删除我的账户" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "删除我的账户…" @@ -1325,11 +1336,11 @@ msgstr "删除这条帖子?" msgid "Deleted" msgstr "已删除" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "已删除帖子。" -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "删除聊天记录" @@ -1340,7 +1351,7 @@ msgstr "删除聊天记录" msgid "Description" msgstr "描述" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "描述替代文字" @@ -1371,8 +1382,8 @@ msgstr "关闭触感反馈" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "关闭" @@ -1435,8 +1446,8 @@ msgstr "域名已认证!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1548,12 +1559,12 @@ msgid "Edit my profile" msgstr "编辑个人资料" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "编辑个人资料" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "编辑个人资料" @@ -1656,8 +1667,8 @@ msgstr "启用这个设置项将仅显示你已关注用户的回复。" msgid "Enable this source only" msgstr "仅启用这个来源" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "已启用" @@ -1666,11 +1677,7 @@ msgstr "已启用" msgid "End of feed" msgstr "已到末尾" -#: src/components/Lists.tsx:52 -#~ msgid "End of list" -#~ msgstr "" - -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "为这个应用专用密码命名" @@ -1678,8 +1685,8 @@ msgstr "为这个应用专用密码命名" msgid "Enter a password" msgstr "输入密码" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "输入一个词或标签" @@ -1739,12 +1746,12 @@ msgstr "所有人" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 msgid "Everybody can reply" -msgstr "" +msgstr "所有人都可以回复" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "所有人" @@ -1794,12 +1801,12 @@ msgstr "明确或潜在引起不适的媒体内容。" msgid "Explicit sexual images." msgstr "明确的性暗示图片。" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "导出账户数据" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "导出账户数据" @@ -1815,16 +1822,16 @@ msgstr "外部媒体可能允许网站收集有关你和你设备的有关信息 #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "外部媒体首选项" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "外部媒体设置" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "创建应用专用密码失败。" @@ -1856,13 +1863,13 @@ msgstr "无法保存这张图片:{0}" msgid "Failed to send" msgstr "无法发送私信" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." -msgstr "" +msgstr "无法提交申诉,请再试一次。" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "无法更新设置" @@ -1955,7 +1962,7 @@ msgstr "垂直翻转" #: src/components/ProfileHoverCard/index.web.tsx:413 #: src/components/ProfileHoverCard/index.web.tsx:424 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -1967,7 +1974,7 @@ msgid "Follow" msgstr "关注" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "关注 {0}" @@ -2012,7 +2019,7 @@ msgstr "关注者" #: src/components/ProfileHoverCard/index.web.tsx:412 #: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2021,9 +2028,9 @@ msgstr "关注者" msgid "Following" msgstr "正在关注" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" -msgstr "正在关注 {0}" +msgstr "已关注 {0}" #: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" @@ -2053,7 +2060,7 @@ msgstr "食物" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "出于安全原因,我们需要向你的电子邮箱发送验证码。" -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "出于安全原因,你将无法再次查看此内容。如果你丢失了该密码,则需要生成一个新的密码。" @@ -2062,11 +2069,11 @@ msgstr "出于安全原因,你将无法再次查看此内容。如果你丢失 msgid "Forgot Password" msgstr "忘记密码" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "忘记密码?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "忘记?" @@ -2078,7 +2085,7 @@ msgstr "频繁发布不受欢迎的内容" msgid "From @{sanitizedAuthor}" msgstr "来自 @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "来自 <0/>" @@ -2126,7 +2133,7 @@ msgstr "返回" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2143,7 +2150,7 @@ msgstr "返回主页" #: src/screens/Messages/List/ChatListItem.tsx:156 msgid "Go to conversation with {0}" -msgstr "" +msgstr "转到与 {0} 的对话" #: src/screens/Login/ForgotPasswordForm.tsx:172 #: src/view/com/modals/ChangePassword.tsx:169 @@ -2207,13 +2214,13 @@ msgstr "这里有一些流行的资讯源供你挑选。" msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "这里有一些基于你兴趣所推荐的资讯源供你挑选:{interestsText}。关注的资讯源数量没有限制。" -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "这里是你的应用专用密码。" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2235,7 +2242,7 @@ msgid "Hide post" msgstr "隐藏帖子" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "隐藏内容" @@ -2288,7 +2295,7 @@ msgid "Host:" msgstr "主机:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2349,7 +2356,7 @@ msgstr "违法" msgid "Image" msgstr "图片" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "图片替代文本" @@ -2369,7 +2376,7 @@ msgstr "输入发送到你电子邮箱的验证码以重置密码" msgid "Input confirmation code for account deletion" msgstr "输入删除用户的验证码" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "输入应用专用密码名称" @@ -2381,19 +2388,19 @@ msgstr "输入新的密码" msgid "Input password for account deletion" msgstr "输入密码以删除账户" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "输入发送至你电子邮箱的验证码" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "输入与 {identifier} 关联的密码" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "输入注册时使用的用户名或电子邮箱" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "输入你的密码" @@ -2409,16 +2416,16 @@ msgstr "输入你的用户识别符" msgid "Introducing Direct Messages" msgstr "介绍私信" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "无效的两步验证码。" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "帖子记录无效或不受支持" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "用户名或密码无效" @@ -2470,11 +2477,11 @@ msgstr "标记" msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "标记是对特定内容及用户的提示。可以针对特定内容默认隐藏内容、显示警告或直接显示。" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "你账户上的标记" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "你内容上的标记" @@ -2509,7 +2516,7 @@ msgstr "了解详情" msgid "Learn more about the moderation applied to this content." msgstr "了解更多有关审核应用于此内容的详细信息。" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "了解有关这个警告的更多详情" @@ -2597,7 +2604,7 @@ msgstr "喜欢了你的帖子" msgid "Likes" msgstr "喜欢" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "这条帖子的喜欢数" @@ -2655,7 +2662,7 @@ msgid "Load new notifications" msgstr "加载新的通知" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2708,7 +2715,7 @@ msgstr "看起来你似乎缺少\"正在关注\"资讯源。<0>点击这里来 msgid "Make sure this is where you intend to go!" msgstr "请确认目标页面地址是否正确!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "管理你的隐藏词和标签" @@ -2737,7 +2744,7 @@ msgstr "菜单" #: src/components/dms/MessageProfileButton.tsx:67 msgid "Message {0}" -msgstr "" +msgstr "私信 {0}" #: src/components/dms/MessageMenu.tsx:58 msgid "Message deleted" @@ -2752,7 +2759,7 @@ msgid "Message input field" msgstr "私信输入栏" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:40 msgid "Message is too long" msgstr "私信过长" @@ -2872,11 +2879,11 @@ msgstr "隐藏所有 {displayTag} 的帖子" msgid "Mute conversation" msgstr "静音对话" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "仅隐藏标签" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "隐藏词汇和标签" @@ -2888,11 +2895,11 @@ msgstr "隐藏列表" msgid "Mute these accounts?" msgstr "隐藏这些账户?" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "在帖子文本和标签中隐藏该词" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "仅在标签中隐藏该词" @@ -2956,7 +2963,7 @@ msgstr "我保存的资讯源" msgid "My Saved Feeds" msgstr "我保存的资讯源" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "名称" @@ -2976,7 +2983,7 @@ msgid "Nature" msgstr "自然" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "转到下一页" @@ -3028,7 +3035,7 @@ msgstr "新密码" msgid "New Password" msgstr "新密码" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "新帖子" @@ -3062,8 +3069,8 @@ msgstr "新闻" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3085,10 +3092,6 @@ msgstr "下一张图片" msgid "No" msgstr "停用" -#: src/screens/Messages/List/index.tsx:156 -#~ msgid "No chats yet" -#~ msgstr "目前还没有任何私信" - #: src/view/screens/ProfileFeed.tsx:559 #: src/view/screens/ProfileList.tsx:822 msgid "No description" @@ -3102,7 +3105,7 @@ msgstr "没有 DNS 面板" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "未找到精选 GIF,Tensor 可能存在问题。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "不再关注 {0}" @@ -3116,7 +3119,7 @@ msgstr "目前还没有任何私信" #: src/screens/Messages/List/index.tsx:254 msgid "No more conversations to show" -msgstr "" +msgstr "没有更多对话可显示" #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" @@ -3124,8 +3127,8 @@ msgstr "还没有通知!" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "没有人" @@ -3134,7 +3137,7 @@ msgstr "没有人" msgid "No result" msgstr "没有结果" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "没有结果" @@ -3167,7 +3170,7 @@ msgstr "没有人" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 msgid "Nobody can reply" -msgstr "" +msgstr "没有人可以回复" #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 @@ -3200,15 +3203,15 @@ msgstr "注意:Bluesky 是一个开放的公共网络。这个设置项仅限 #: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" -msgstr "" +msgstr "这里什么也没有" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" -msgstr "" +msgstr "通知提示音" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" -msgstr "" +msgstr "通知提示音" #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 @@ -3283,7 +3286,7 @@ msgid "Oops, something went wrong!" msgstr "糟糕,发生了一些错误!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "Oops!" @@ -3299,7 +3302,7 @@ msgstr "开启头像创建工具" #: src/screens/Messages/List/ChatListItem.tsx:162 #: src/screens/Messages/List/ChatListItem.tsx:163 msgid "Open conversation options" -msgstr "" +msgstr "开启对话选项" #: src/view/com/composer/Composer.tsx:560 #: src/view/com/composer/Composer.tsx:561 @@ -3310,13 +3313,13 @@ msgstr "开启表情符号选择器" msgid "Open feed options menu" msgstr "开启资讯源选项菜单" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "在内置浏览器中打开链接" #: src/components/dms/ActionsWrapper.tsx:87 msgid "Open message options" -msgstr "" +msgstr "开启私信选项" #: src/screens/Moderation/index.tsx:227 msgid "Open muted words and tags settings" @@ -3330,12 +3333,12 @@ msgstr "打开导航" msgid "Open post options menu" msgstr "开启帖子选项菜单" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "开启 Storybook 界面" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "开启系统日志" @@ -3359,6 +3362,10 @@ msgstr "展开这条通知中的扩展用户列表" msgid "Opens camera on device" msgstr "开启设备相机" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "开启私信设置" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "开启编辑器" @@ -3371,7 +3378,7 @@ msgstr "开启可配置的语言设置" msgid "Opens device photo gallery" msgstr "开启设备相册" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "开启外部嵌入设置" @@ -3393,23 +3400,23 @@ msgstr "开启 GIF 选择对话框" msgid "Opens list of invite codes" msgstr "开启邀请码列表" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "需要邮件验证以继续进行账户删除操作" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "开启密码修改界面" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "开启创建新的用户识别符界面" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "开启你的 Bluesky 用户资料(存储库)下载页面" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "开启电子邮箱确认界面" @@ -3421,7 +3428,7 @@ msgstr "开启使用自定义域名的模式" msgid "Opens moderation settings" msgstr "开启内容审核设置" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "开启密码重置申请" @@ -3434,7 +3441,7 @@ msgstr "开启用于编辑已保存资讯源的界面" msgid "Opens screen with all saved feeds" msgstr "开启包含所有已保存资讯源的界面" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "开启应用专用密码设置界面" @@ -3446,12 +3453,12 @@ msgstr "开启\"正在关注\"资讯源首选项" msgid "Opens the linked website" msgstr "开启链接的网页" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "开启 Storybook 界面" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "开启系统日志界面" @@ -3464,7 +3471,7 @@ msgid "Option {0} of {numItems}" msgstr "第 {0} 个选项,共 {numItems} 个" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "可选在下方提供额外信息:" @@ -3497,7 +3504,7 @@ msgstr "无法找到这个页面" msgid "Page Not Found" msgstr "无法找到这个页面" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3573,11 +3580,6 @@ msgstr "播放" msgid "Play {0}" msgstr "播放 {0}" -#: src/screens/Messages/Settings.tsx:97 -#: src/screens/Messages/Settings.tsx:104 -#~ msgid "Play notification sounds" -#~ msgstr "播放通知提示音" - #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" msgstr "播放或暂停 GIF" @@ -3607,15 +3609,15 @@ msgstr "请完成 Captcha 验证。" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "更改前请先确认你的电子邮箱。这是新增电子邮箱更新工具的临时要求,这个限制将很快被移除。" -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "请输入应用专用密码的名称,不允许使用空格。" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "请输入这个应用专用密码的唯一名称,或使用我们提供的随机生成名称。" -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "请输入一个有效的词、标签或短语" @@ -3627,13 +3629,13 @@ msgstr "请输入你的电子邮箱。" msgid "Please enter your password as well:" msgstr "请输入你的密码:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "请解释为什么你认为这个标记是由 {0} 错误应用的" #: src/screens/Messages/Conversation/ChatDisabled.tsx:110 msgid "Please explain why you think your chats were incorrectly disabled" -msgstr "" +msgstr "请解释为什么你认为你的私信被错误禁用" #: src/lib/hooks/useAccountSwitcher.ts:48 #: src/lib/hooks/useAccountSwitcher.ts:58 @@ -3662,12 +3664,12 @@ msgctxt "action" msgid "Post" msgstr "发布" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "发布" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "{0} 的帖子" @@ -3681,7 +3683,7 @@ msgstr "@{0} 的帖子" msgid "Post deleted" msgstr "已删除帖子" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "已隐藏帖子" @@ -3703,8 +3705,8 @@ msgstr "帖子语言" msgid "Post Languages" msgstr "帖子语言" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "无法找到帖子" @@ -3716,7 +3718,7 @@ msgstr "帖子" msgid "Posts" msgstr "帖子" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "帖子可以根据其文本、标签或两者来隐藏。" @@ -3755,7 +3757,7 @@ msgstr "首选语言" msgid "Prioritize Your Follows" msgstr "优先显示关注者" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "隐私" @@ -3763,7 +3765,7 @@ msgstr "隐私" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "隐私政策" @@ -3776,7 +3778,7 @@ msgstr "与其他用户开始私信。" msgid "Processing..." msgstr "处理中..." -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "个人资料" @@ -3793,7 +3795,7 @@ msgstr "个人资料" msgid "Profile updated" msgstr "个人资料已更新" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "通过验证电子邮箱来保护你的账户。" @@ -3853,9 +3855,9 @@ msgstr "重新连接" #: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" -msgstr "" +msgstr "重新加载对话" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -3906,7 +3908,7 @@ msgstr "删除图片" msgid "Remove image preview" msgstr "删除图片预览" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "从你的隐藏词汇列表中删除" @@ -3968,7 +3970,7 @@ msgid "Reply Filters" msgstr "回复过滤器" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "回复 <0><1/>" @@ -4012,11 +4014,6 @@ msgstr "举报私信" msgid "Report post" msgstr "举报帖子" -#: src/components/dms/ReportDialog.tsx:167 -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 -#~ msgid "Report this account" -#~ msgstr "举报这个账号" - #: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "举报此内容" @@ -4064,11 +4061,11 @@ msgstr "转发或引用帖子" msgid "Reposted By" msgstr "转发" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "由 {0} 转发" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "由 <0><1/> 转发" @@ -4076,7 +4073,7 @@ msgstr "由 <0><1/> 转发" msgid "reposted your post" msgstr "转发你的帖子" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "转发这条帖子" @@ -4115,8 +4112,8 @@ msgstr "确认码" msgid "Reset Code" msgstr "确认码" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "重置引导流程状态" @@ -4124,20 +4121,20 @@ msgstr "重置引导流程状态" msgid "Reset password" msgstr "重置密码" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "重置首选项状态" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "重置引导流程状态" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "重置首选项状态" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "重试登录" @@ -4149,8 +4146,8 @@ msgstr "重试上次出错的操作" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4175,8 +4172,8 @@ msgid "Returns to previous page" msgstr "回到上一页" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4189,7 +4186,7 @@ msgctxt "action" msgid "Save" msgstr "保存" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "保存替代文字" @@ -4241,7 +4238,7 @@ msgstr "保存图片裁剪设置" #: src/components/dms/ChatEmptyPill.tsx:33 msgid "Say hello!" -msgstr "" +msgstr "说嗨!" #: src/screens/Onboarding/index.tsx:48 msgid "Science" @@ -4385,7 +4382,7 @@ msgstr "选择以下一些账户进行关注" msgid "Select the {emojiName} emoji as your avatar" msgstr "选择 {emojiName} 作为你的头像" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "请选择你要向哪个内容审核服务提供方提交举报" @@ -4431,7 +4428,7 @@ msgstr "选择你的资讯源次要算法" #: src/components/dms/ChatEmptyPill.tsx:38 msgid "Send a neat website!" -msgstr "" +msgstr "发送一个你认为很有趣的网站!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 @@ -4453,14 +4450,14 @@ msgid "Send feedback" msgstr "提交反馈" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:141 msgid "Send message" msgstr "发送私信" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "提交举报" @@ -4554,7 +4551,6 @@ msgid "Sets image aspect ratio to wide" msgstr "将图片纵横比设置为宽" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4586,11 +4582,11 @@ msgstr "分享" #: src/components/dms/ChatEmptyPill.tsx:37 msgid "Share a cool story!" -msgstr "" +msgstr "分享一个很酷的事!" #: src/components/dms/ChatEmptyPill.tsx:36 msgid "Share a fun fact!" -msgstr "" +msgstr "分享一个有趣的事实!" #: src/view/com/profile/ProfileMenu.tsx:373 #: src/view/com/util/forms/PostDropdownBtn.tsx:420 @@ -4610,7 +4606,7 @@ msgstr "分享链接" #: src/components/dms/ChatEmptyPill.tsx:34 msgid "Share your favorite feed!" -msgstr "" +msgstr "分享你最喜欢的资讯源!" #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" @@ -4618,7 +4614,7 @@ msgstr "分享链接的网站" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4642,10 +4638,14 @@ msgstr "显示徽章" msgid "Show badge and filter from feeds" msgstr "显示徽章并从资讯源中过滤" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "显示类似于 {0} 的关注者" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "显示已隐藏的回复" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4653,7 +4653,7 @@ msgstr "更少显示类似这样的" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "显示更多" @@ -4662,6 +4662,10 @@ msgstr "显示更多" msgid "Show more like this" msgstr "更多显示类似这样的" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "显示已隐藏的回复" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "显示来自已储存资讯源的帖子" @@ -4707,7 +4711,7 @@ msgid "Show reposts in Following" msgstr "在关注中显示转发" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "显示内容" @@ -4731,7 +4735,7 @@ msgstr "在你的资讯源中显示来自 {0} 的帖子" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -4814,7 +4818,7 @@ msgstr "程序开发" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 msgid "Some people can reply" -msgstr "" +msgstr "一些人可以回复" #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" @@ -4827,7 +4831,7 @@ msgid "Something went wrong, please try again." msgstr "出了点问题,请重试。" #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "很抱歉,你的登录会话已过期,请重新登录。" @@ -4839,7 +4843,7 @@ msgstr "回复排序" msgid "Sort replies to the same post by:" msgstr "对同一帖子的回复进行排序:" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "来源:<0>{0}" @@ -4860,7 +4864,7 @@ msgstr "运动" msgid "Square" msgstr "方块" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "开始一个新私信" @@ -4872,7 +4876,7 @@ msgstr "与 {displayName} 开始私信" msgid "Start chatting" msgstr "开始私信" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "状态页" @@ -4885,12 +4889,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "已清除存储,请立即重启应用。" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -4956,11 +4960,11 @@ msgstr "切换你登录的账户" msgid "System" msgstr "系统" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "系统日志" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "标签" @@ -4982,7 +4986,7 @@ msgstr "科技" #: src/components/dms/ChatEmptyPill.tsx:35 msgid "Tell a joke!" -msgstr "" +msgstr "讲个笑话!" #: src/view/shell/desktop/RightNav.tsx:85 msgid "Terms" @@ -4990,7 +4994,7 @@ msgstr "条款" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5002,17 +5006,17 @@ msgstr "服务条款" msgid "Terms used violate community standards" msgstr "用词违反了社群准则" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "文本" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "文本输入框" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "谢谢,你的举报已提交。" @@ -5024,7 +5028,7 @@ msgstr "其中包含以下内容:" msgid "That handle is already taken." msgstr "该用户识别符已被占用。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "解除屏蔽后,该账户将能够与你互动。" @@ -5041,11 +5045,11 @@ msgstr "版权许可已迁移至 <0/>" msgid "The feed has been replaced with Discover." msgstr "资讯源已替换为\"Discover\"。" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "以下标记已应用到你的账户。" -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "以下标记已应用到你的内容。" @@ -5053,8 +5057,8 @@ msgstr "以下标记已应用到你的内容。" msgid "The following steps will help customize your Bluesky experience." msgstr "以下步骤将帮助定制你的 Bluesky 体验。" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "这条帖子可能已被删除。" @@ -5125,7 +5129,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "刷新列表时出现问题,点击重试。" #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "提交举报时出现问题,请检查你的网络连接。" @@ -5133,13 +5137,13 @@ msgstr "提交举报时出现问题,请检查你的网络连接。" msgid "There was an issue syncing your preferences with the server" msgstr "与服务器同步首选项时出现问题" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "获取应用专用密码时出现问题" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5183,13 +5187,13 @@ msgstr "这个账户要求登录后才能查看其个人资料。" msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "这个账号已被你的一个或多个内容审核列表所屏蔽。要解除屏蔽,请从内容审核列表中删除这个账号。" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "这条申诉将发送至 <0>{0}。" #: src/screens/Messages/Conversation/ChatDisabled.tsx:104 msgid "This appeal will be sent to Bluesky's moderation service." -msgstr "" +msgstr "此申诉将提交给 Bluesky 内容审核服务。" #: src/screens/Messages/Conversation/MessageListError.tsx:18 msgid "This chat was disconnected" @@ -5254,7 +5258,7 @@ msgstr "这个标签是由 <0>{0} 标记的。" msgid "This label was applied by the author." msgstr "这个标签是由该作者标记的。" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "这个标签是由你标记的。" @@ -5274,11 +5278,11 @@ msgstr "这个列表为空!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "此内容审核提供服务不可用,请查看下方获取更多详情。如果问题持续存在,请联系我们。" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "该名称已被使用" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "这条帖子已被删除。" @@ -5332,7 +5336,7 @@ msgstr "这个用户包含在你已隐藏的 <0>{0} 列表中。" msgid "This user isn't following anyone." msgstr "这个账户目前没有关注任何人。" -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "这将从你的隐藏词汇中删除 {0}。你随时可以重新添加。" @@ -5359,13 +5363,13 @@ msgstr "在关闭电子邮件两步验证前,请先验证你的电子邮箱地 #: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "要举报对话,请在会话中选择一条私信并举报。这有助于使内容审核服务提供方了解有关问题的背景信息。" #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "你想将举报提交给谁?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "在隐藏词汇选项之间切换。" @@ -5398,7 +5402,7 @@ msgctxt "action" msgid "Try again" msgstr "重试" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "两步验证" @@ -5420,7 +5424,7 @@ msgstr "取消隐藏列表" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5431,14 +5435,14 @@ msgstr "无法连接到服务,请检查互联网连接。" #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "取消屏蔽" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "取消屏蔽" @@ -5453,7 +5457,7 @@ msgstr "取消屏蔽账户" msgid "Unblock Account" msgstr "取消屏蔽账户" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "取消屏蔽账户?" @@ -5474,7 +5478,7 @@ msgstr "取消关注" msgid "Unfollow" msgstr "取消关注" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "取消关注 {0}" @@ -5587,7 +5591,7 @@ msgstr "从照片图库上传" msgid "Use a file on your server" msgstr "使用你服务器上的文件" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "使用应用专用密码登录到其他 Bluesky 客户端,而无需对其授予你账户或密码的完全访问权限。" @@ -5617,7 +5621,7 @@ msgstr "使用推荐" msgid "Use the DNS panel" msgstr "使用 DNS 面板" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "使用这个和你的用户识别符一起登录其他应用。" @@ -5677,7 +5681,7 @@ msgstr "用户列表已更新" msgid "User Lists" msgstr "用户列表" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "用户名或电子邮箱" @@ -5691,8 +5695,8 @@ msgstr "关注 <0/> 的用户" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "我关注的用户" @@ -5712,15 +5716,15 @@ msgstr "值:" msgid "Verify DNS Record" msgstr "验证 DNS 记录" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "验证邮箱" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "验证我的邮箱" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "验证我的邮箱" @@ -5737,7 +5741,7 @@ msgstr "验证文本文件" msgid "Verify Your Email" msgstr "验证你的邮箱" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "版本 {appVersion} {bundleInfo}" @@ -5761,7 +5765,7 @@ msgstr "查看详情" msgid "View details for reporting a copyright violation" msgstr "查看举报版权侵权的详情" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "查看整个讨论串" @@ -5827,7 +5831,7 @@ msgstr "我们希望你在此度过愉快的时光。请记住,Bluesky 是:" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "我们已经看完了你关注的帖子。这是来自 <0/> 的最新消息。" -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "不建议你添加会出现在许多帖子中的常见词汇,这可能导致你的时间线上没有帖子可显示。" @@ -5855,7 +5859,7 @@ msgstr "我们会在你的账户准备好时通知你。" msgid "We'll use this to help customize your experience." msgstr "我们将使用这些信息来帮助定制你的体验。" -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "我们遇到了网络问题,请再试一次" @@ -5867,7 +5871,7 @@ msgstr "我们非常高兴你加入我们!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "很抱歉,我们无法解析这个列表。如果问题持续发生,请联系列表创建者,@{handleOrDid}。" -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "很抱歉,我们无法加载你的隐藏词汇列表。请重试。" @@ -5916,10 +5920,6 @@ msgstr "谁可以回复" msgid "Whoops!" msgstr "糟糕!" -#: src/components/ReportDialog/SelectReportOptionView.tsx:63 -#~ msgid "Why should this account be reviewed?" -#~ msgstr "为什么应该审核此账户?" - #: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "为什么应该审核此内容?" @@ -5949,7 +5949,7 @@ msgid "Wide" msgstr "宽" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:122 msgid "Write a message" msgstr "编写私信" @@ -6001,6 +6001,10 @@ msgstr "你可以稍后在设置中更改。" msgid "You can change this at any time." msgstr "你可以随时修改此设置项。" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "无论你使用哪种设置,都不会影响已发起的对话。" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6022,7 +6026,7 @@ msgstr "你目前还没有任何固定的资讯源。" msgid "You don't have any saved feeds." msgstr "你目前还没有任何保存的资讯源。" -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "你已屏蔽该帖子作者,或你已被该作者屏蔽。" @@ -6060,13 +6064,9 @@ msgstr "你已隐藏这个账户。" msgid "You have muted this user" msgstr "你已隐藏这个用户" -#: src/screens/Messages/List/index.tsx:158 -#~ msgid "You have no chats yet. Start a conversation with someone!" -#~ msgstr "你还没有任何私信,立即与其他人展开对话吧!" - #: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" -msgstr "" +msgstr "你还没有任何私信,立即与其他人展开对话吧!" #: src/view/com/feeds/ProfileFeedgens.tsx:144 msgid "You have no feeds." @@ -6081,7 +6081,7 @@ msgstr "你还没有建立任何列表。" msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "你还没有屏蔽任何账户。要屏蔽账户,请转到其个人资料并在其账户上的菜单中选择 \"屏蔽账户\"。" -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "你尚未创建任何应用专用密码,可以通过点击下面的按钮来创建一个。" @@ -6091,17 +6091,17 @@ msgstr "你还没有隐藏任何账户。要隐藏账户,请转到其个人资 #: src/components/Lists.tsx:52 msgid "You have reached the end" -msgstr "" +msgstr "你已经到末尾了" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "你还没有隐藏任何词或标签" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "如果你认为由他人放置标签的标记信息有误,你可以提出申诉。" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "如果你认为标签的标记信息有误,你可以提出申诉。" @@ -6113,7 +6113,7 @@ msgstr "你必须年满13岁及以上才能注册。" msgid "You must be 18 years or older to enable adult content" msgstr "你必须年满18岁及以上才能启用成人内容" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "你必须选择至少一个标记者进行举报" @@ -6210,7 +6210,7 @@ msgstr "你的完整用户识别符将修改为" msgid "Your full handle will be <0>@{0}" msgstr "你的完整用户识别符将修改为 <0>@{0}" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "你的隐藏词汇" diff --git a/src/locale/locales/zh-TW/messages.po b/src/locale/locales/zh-TW/messages.po index 527d190477..bf563fd4fd 100644 --- a/src/locale/locales/zh-TW/messages.po +++ b/src/locale/locales/zh-TW/messages.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: zh-TW for bluesky-social-app\n" "POT-Creation-Date: \n" "Report-Msgid-Bugs-To: Kuwa Lee , Frudrax Cheng \n" -"PO-Revision-Date: 2024-05-19 11:24+0800\n" +"PO-Revision-Date: 2024-05-24 10:26+0800\n" "Last-Translator: \n" "Language-Team: Frudrax Cheng , Kuwa Lee , noeFly, snowleo208, Kisaragi Hiu, Yi-Jyun Pan, toto6038, cirx1e\n" "Language: zh_TW\n" @@ -47,7 +47,7 @@ msgstr "{0, plural, one {個跟隨中} other {個跟隨中}}" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "{0, plural, one {喜歡(# 個喜歡)} other {喜歡(# 個喜歡)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "{0, plural, one {喜歡} other {喜歡}}" @@ -63,7 +63,7 @@ msgstr "{0, plural, one {則貼文} other {則貼文}}" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "{0, plural, one {回覆(# 個回覆)} other {回覆(# 個回覆)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "{0, plural, one {轉貼} other {轉貼}}" @@ -126,7 +126,7 @@ msgstr "<0>不適用。 此警告只適用於附帶媒體的貼文。" msgid "⚠Invalid Handle" msgstr "⚠無效的帳號代碼" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "雙重驗證" @@ -153,9 +153,9 @@ msgstr "無障礙設定" msgid "Accessibility Settings" msgstr "無障礙設定" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "帳號" @@ -188,7 +188,7 @@ msgstr "帳號選項" msgid "Account removed from quick access" msgstr "已從快速存取中移除帳號" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "已解除封鎖帳號" @@ -201,7 +201,7 @@ msgstr "已取消跟隨帳號" msgid "Account unmuted" msgstr "已取消靜音帳號" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -222,26 +222,26 @@ msgstr "將用戶新增至此列表" msgid "Add account" msgstr "新增帳號" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "新增替代文字" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "新增應用程式專用密碼" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "在已配置的設定中新增靜音文字" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "新增靜音文字及標籤" @@ -290,7 +290,7 @@ msgid "Adult content is disabled." msgstr "成人內容已停用。" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "進階設定" @@ -298,10 +298,15 @@ msgstr "進階設定" msgid "All the feeds you've saved, right in one place." msgstr "以下是您保存的動態源。" -#: src/screens/Messages/Settings.tsx:61 -#: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" -msgstr "允許來自這些人的訊息:" +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "允許存取您的私人訊息" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "允許這些人發起新對話:" #: src/screens/Login/ForgotPasswordForm.tsx:178 #: src/view/com/modals/ChangePassword.tsx:172 @@ -312,13 +317,13 @@ msgstr "已經有重置碼了?" msgid "Already signed in as @{0}" msgstr "已以 @{0} 身份登入" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -383,38 +388,38 @@ msgstr "反社會行為" msgid "App Language" msgstr "應用程式語言" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "應用程式專用密碼已刪除" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "應用程式專用密碼只能包含字母、數字、空格、破折號及底線。" -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "應用程式專用密碼名稱必須至少為 4 個字元。" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "應用程式專用密碼設定" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "應用程式專用密碼" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "申訴" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "申訴「{0}」標記" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "已提交申訴" @@ -424,7 +429,7 @@ msgstr "已提交申訴" #: src/screens/Messages/Conversation/ChatDisabled.tsx:99 #: src/screens/Messages/Conversation/ChatDisabled.tsx:101 msgid "Appeal this decision" -msgstr "" +msgstr "對此決定提出上訴" #: src/view/screens/Settings/index.tsx:432 msgid "Appearance" @@ -435,7 +440,7 @@ msgstr "外觀" msgid "Apply default recommended feeds" msgstr "使用預設推薦的動態源" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "您確定要刪除這個應用程式專用密碼「{name}」嗎?" @@ -455,7 +460,7 @@ msgstr "您確定要從您的動態中移除 {0} 嗎?" msgid "Are you sure you'd like to discard this draft?" msgstr "您確定要捨棄此草稿嗎?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "您確定嗎?" @@ -476,14 +481,14 @@ msgid "At least 3 characters" msgstr "至少 3 個字元" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -510,7 +515,7 @@ msgstr "生日" msgid "Birthday:" msgstr "生日:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "封鎖" @@ -544,7 +549,7 @@ msgstr "封鎖這些帳號?" #: src/view/com/lists/ListCard.tsx:110 #: src/view/com/util/post-embeds/QuoteEmbed.tsx:71 msgid "Blocked" -msgstr "已封鎖" +msgstr "已被封鎖" #: src/screens/Moderation/index.tsx:267 msgid "Blocked accounts" @@ -563,7 +568,7 @@ msgstr "被封鎖的帳號無法在您的討論串中回覆、提及您,或以 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "被封鎖的帳號無法在您的討論串中回覆、提及您,或以其他方式與您互動。您將看不到他們的內容,他們也會被阻止看到您的內容。" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "已封鎖貼文。" @@ -645,7 +650,7 @@ msgstr "來自您" msgid "Camera" msgstr "相機" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "只能包含字母、數字、空格、破折號及底線。長度必須至少 4 個字元,但不超過 32 個字元。" @@ -722,12 +727,12 @@ msgctxt "action" msgid "Change" msgstr "變更" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "變更帳號代碼" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "變更帳號代碼" @@ -735,12 +740,12 @@ msgstr "變更帳號代碼" msgid "Change my email" msgstr "變更我的電子郵件地址" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "變更密碼" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "變更密碼" @@ -766,9 +771,15 @@ msgstr "對話已靜音" #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 #: src/screens/Messages/List/index.tsx:68 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "對話設定" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "對話設定" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "對話已解除靜音" @@ -778,7 +789,7 @@ msgstr "對話已解除靜音" msgid "Check my status" msgstr "檢查我的狀態" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "在此輸入寄送至您電子郵件地址的驗證碼。" @@ -810,19 +821,19 @@ msgstr "選擇您的主要動態源" msgid "Choose your password" msgstr "選擇您的密碼" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "清除所有殘存資料" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "清除所有殘存資料(並重啟)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "清除所有資料" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "清除所有資料(並重啟)" @@ -831,11 +842,11 @@ msgstr "清除所有資料(並重啟)" msgid "Clear search query" msgstr "清除搜尋記錄" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "清除所有遺留資料" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "清除所有資料" @@ -857,10 +868,10 @@ msgstr "氣象" #: src/components/dms/ChatEmptyPill.tsx:39 msgid "Clip 🐴 clop 🐴" -msgstr "" +msgstr "達達的馬蹄🐴是美麗的錯誤🐴" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1003,7 +1014,7 @@ msgstr "確認您的年齡:" msgid "Confirm your birthdate" msgstr "確認您的出生日期" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1013,7 +1024,7 @@ msgstr "確認您的出生日期" msgid "Confirmation code" msgstr "驗證碼" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "連線中…" @@ -1086,13 +1097,13 @@ msgstr "繼續下一步,不跟隨任何帳號" #: src/screens/Messages/List/ChatListItem.tsx:108 msgid "Conversation deleted" -msgstr "" +msgstr "對話已刪除" #: src/screens/Onboarding/index.tsx:56 msgid "Cooking" msgstr "烹飪" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "已複製" @@ -1102,7 +1113,7 @@ msgid "Copied build version to clipboard" msgstr "已複製建構版本號至剪貼簿" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1113,11 +1124,11 @@ msgstr "已複製至剪貼簿" msgid "Copied!" msgstr "已複製!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "複製應用程式專用密碼" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "複製" @@ -1192,7 +1203,7 @@ msgstr "建立一個帳號" msgid "Create an avatar instead" msgstr "或是建立一個頭像" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "建立應用程式專用密碼" @@ -1205,7 +1216,7 @@ msgstr "建立新帳號" msgid "Create report for {0}" msgstr "建立 {0} 的檢舉" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} 已建立" @@ -1248,7 +1259,7 @@ msgstr "深色主題" msgid "Date of birth" msgstr "出生日期" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "內容管理偵錯" @@ -1258,12 +1269,12 @@ msgstr "偵錯面板" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "刪除" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "刪除帳號" @@ -1271,16 +1282,16 @@ msgstr "刪除帳號" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "刪除帳號 <0>「<1>{0}<2>」" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "刪除應用程式專用密碼" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "刪除應用程式專用密碼?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "刪除對話聲明紀錄" @@ -1304,7 +1315,7 @@ msgstr "為我刪除訊息" msgid "Delete my account" msgstr "刪除我的帳號" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "刪除我的帳號…" @@ -1325,11 +1336,11 @@ msgstr "刪除這條貼文?" msgid "Deleted" msgstr "已刪除" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "已刪除貼文。" -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "刪除對話聲明紀錄" @@ -1340,7 +1351,7 @@ msgstr "刪除對話聲明紀錄" msgid "Description" msgstr "描述" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "生動的替代文字" @@ -1371,8 +1382,8 @@ msgstr "關閉觸覺回饋" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "停用" @@ -1435,8 +1446,8 @@ msgstr "網域已驗證!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1548,12 +1559,12 @@ msgid "Edit my profile" msgstr "編輯我的個人資料" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "編輯個人資料" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "編輯個人資料" @@ -1656,8 +1667,8 @@ msgstr "啟用此設定將只顯示您跟隨的人之間的回覆。" msgid "Enable this source only" msgstr "僅啟用此來源" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "啟用" @@ -1666,11 +1677,7 @@ msgstr "啟用" msgid "End of feed" msgstr "已經到底部啦!" -#: src/components/Lists.tsx:52 -#~ msgid "End of list" -#~ msgstr "" - -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "輸入此應用程式專用密碼的名稱" @@ -1678,8 +1685,8 @@ msgstr "輸入此應用程式專用密碼的名稱" msgid "Enter a password" msgstr "輸入密碼" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "輸入文字或標籤" @@ -1739,12 +1746,12 @@ msgstr "所有人" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 msgid "Everybody can reply" -msgstr "" +msgstr "所有人都可以回覆" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "所有人" @@ -1794,12 +1801,12 @@ msgstr "露骨或可能令人不安的媒體內容。" msgid "Explicit sexual images." msgstr "露骨的情色圖片。" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "匯出我的資料" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "匯出我的資料" @@ -1815,16 +1822,16 @@ msgstr "外部媒體可能允許網站收集有關您和您裝置的資料。在 #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "外部媒體偏好" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "外部媒體設定" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "建立應用程式專用密碼失敗。" @@ -1856,13 +1863,13 @@ msgstr "無法儲存圖片:{0}" msgid "Failed to send" msgstr "無法傳送" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." -msgstr "" +msgstr "無法提交申訴,請重試。" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "無法更新設定" @@ -1955,7 +1962,7 @@ msgstr "垂直翻轉" #: src/components/ProfileHoverCard/index.web.tsx:413 #: src/components/ProfileHoverCard/index.web.tsx:424 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -1967,7 +1974,7 @@ msgid "Follow" msgstr "跟隨" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "跟隨 {0}" @@ -2012,7 +2019,7 @@ msgstr "跟隨者" #: src/components/ProfileHoverCard/index.web.tsx:412 #: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2021,9 +2028,9 @@ msgstr "跟隨者" msgid "Following" msgstr "跟隨中" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" -msgstr "跟隨中: {0}" +msgstr "已跟隨 {0}" #: src/view/screens/Settings/index.tsx:566 msgid "Following feed preferences" @@ -2053,7 +2060,7 @@ msgstr "食物" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "為了保護您的帳號安全,我們需要將驗證碼發送到您的電子郵件地址。" -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "為了保護您的帳號安全,您將無法再次查看此內容。如果您丟失了此密碼,您將需要再產生一個新的密碼。" @@ -2062,11 +2069,11 @@ msgstr "為了保護您的帳號安全,您將無法再次查看此內容。如 msgid "Forgot Password" msgstr "忘記密碼" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "忘記密碼?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "忘記?" @@ -2078,7 +2085,7 @@ msgstr "頻繁發佈不當內容" msgid "From @{sanitizedAuthor}" msgstr "來自 @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "來自 <0/>" @@ -2126,7 +2133,7 @@ msgstr "返回" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2143,7 +2150,7 @@ msgstr "前往首頁" #: src/screens/Messages/List/ChatListItem.tsx:156 msgid "Go to conversation with {0}" -msgstr "" +msgstr "與 {0} 對話" #: src/screens/Login/ForgotPasswordForm.tsx:172 #: src/view/com/modals/ChangePassword.tsx:169 @@ -2207,13 +2214,13 @@ msgstr "這裡有一些熱門的話題動態源。跟隨的動態源數量沒有 msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "這裡有一些根據您的興趣({interestsText})所推薦的熱門話題動態源。跟隨的動態源數量沒有限制。" -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "這是您的應用程式專用密碼。" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2235,7 +2242,7 @@ msgid "Hide post" msgstr "隱藏貼文" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "隱藏內容" @@ -2288,7 +2295,7 @@ msgid "Host:" msgstr "主機:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2349,7 +2356,7 @@ msgstr "違法" msgid "Image" msgstr "圖片" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "圖片替代文字" @@ -2369,7 +2376,7 @@ msgstr "輸入發送到您電子郵件地址的重設碼以重設密碼" msgid "Input confirmation code for account deletion" msgstr "輸入刪除帳號的驗證碼" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "輸入應用程式專用密碼名稱" @@ -2381,19 +2388,19 @@ msgstr "輸入新密碼" msgid "Input password for account deletion" msgstr "輸入密碼以刪除帳號" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "輸入寄送至您電子郵件地址的驗證碼" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "輸入與 {identifier} 關聯的密碼" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "輸入註冊時使用的用戶名稱或電子郵件地址" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "輸入您的密碼" @@ -2409,16 +2416,16 @@ msgstr "輸入您的帳號代碼" msgid "Introducing Direct Messages" msgstr "為您隆重介紹「私人訊息」" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "無效的雙重驗證碼。" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "無效或不支援的貼文紀錄" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "用戶名稱或密碼無效" @@ -2470,11 +2477,11 @@ msgstr "標記" msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "標記是對用戶和內容的標註,可用於隱藏、警告和對網路進行分類。" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "您帳號上的標記" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "您內容上的標記" @@ -2509,7 +2516,7 @@ msgstr "瞭解詳情" msgid "Learn more about the moderation applied to this content." msgstr "詳細了解套用於此內容的內容管理。" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "瞭解有關此警告的更多資訊" @@ -2597,7 +2604,7 @@ msgstr "已喜歡您的貼文" msgid "Likes" msgstr "喜歡" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "這條貼文的喜歡數" @@ -2655,7 +2662,7 @@ msgid "Load new notifications" msgstr "載入新的通知" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2708,7 +2715,7 @@ msgstr "您看起來需要「Following」動態源,<0>點選這裡來新增。 msgid "Make sure this is where you intend to go!" msgstr "請確認這是您想要去的的地方!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "管理您靜音的文字和標籤" @@ -2737,7 +2744,7 @@ msgstr "選單" #: src/components/dms/MessageProfileButton.tsx:67 msgid "Message {0}" -msgstr "" +msgstr "給 {0} 傳送訊息" #: src/components/dms/MessageMenu.tsx:58 msgid "Message deleted" @@ -2752,7 +2759,7 @@ msgid "Message input field" msgstr "訊息輸入欄位" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:40 msgid "Message is too long" msgstr "訊息太長了" @@ -2872,11 +2879,11 @@ msgstr "將所有 {displayTag} 貼文靜音" msgid "Mute conversation" msgstr "靜音對話" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "僅靜音標籤" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "靜音文字和標籤" @@ -2888,11 +2895,11 @@ msgstr "靜音列表" msgid "Mute these accounts?" msgstr "靜音這些帳號?" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "在貼文內容和話題標籤中隱藏該文字" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "僅在話題標籤中隱藏該文字" @@ -2956,7 +2963,7 @@ msgstr "我儲存的動態源" msgid "My Saved Feeds" msgstr "我儲存的動態源" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "名稱" @@ -2976,7 +2983,7 @@ msgid "Nature" msgstr "自然" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "切換到下一畫面" @@ -3028,7 +3035,7 @@ msgstr "新密碼" msgid "New Password" msgstr "新密碼" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "新貼文" @@ -3062,8 +3069,8 @@ msgstr "新聞" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3085,10 +3092,6 @@ msgstr "下一張圖片" msgid "No" msgstr "關" -#: src/screens/Messages/List/index.tsx:156 -#~ msgid "No chats yet" -#~ msgstr "還沒有對話" - #: src/view/screens/ProfileFeed.tsx:559 #: src/view/screens/ProfileList.tsx:822 msgid "No description" @@ -3102,7 +3105,7 @@ msgstr "無 DNS 控制台" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "未找到精選 GIF,Tenor 可能發生問題。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "不再跟隨 {0}" @@ -3116,7 +3119,7 @@ msgstr "還沒有訊息" #: src/screens/Messages/List/index.tsx:254 msgid "No more conversations to show" -msgstr "" +msgstr "已經沒有對話啦!" #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" @@ -3124,8 +3127,8 @@ msgstr "還沒有通知!" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "沒有人" @@ -3134,7 +3137,7 @@ msgstr "沒有人" msgid "No result" msgstr "沒有結果" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "沒有結果" @@ -3167,7 +3170,7 @@ msgstr "沒有人" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 msgid "Nobody can reply" -msgstr "" +msgstr "沒有人可以回覆" #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 @@ -3200,15 +3203,15 @@ msgstr "注意:Bluesky 是一個開放且公開的網路。此設定僅限制 #: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" -msgstr "" +msgstr "這裡什麼也沒有" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" -msgstr "" +msgstr "通知音效" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" -msgstr "" +msgstr "通知音效" #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 @@ -3283,7 +3286,7 @@ msgid "Oops, something went wrong!" msgstr "糟糕,發生了錯誤!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "糟糕!" @@ -3299,7 +3302,7 @@ msgstr "開啟頭像創建工具" #: src/screens/Messages/List/ChatListItem.tsx:162 #: src/screens/Messages/List/ChatListItem.tsx:163 msgid "Open conversation options" -msgstr "" +msgstr "開啟對話選項" #: src/view/com/composer/Composer.tsx:560 #: src/view/com/composer/Composer.tsx:561 @@ -3310,13 +3313,13 @@ msgstr "開啟表情符號選擇器" msgid "Open feed options menu" msgstr "開啟動態選項選單" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "在內建瀏覽器中開啟連結" #: src/components/dms/ActionsWrapper.tsx:87 msgid "Open message options" -msgstr "" +msgstr "開啟訊息選項" #: src/screens/Moderation/index.tsx:227 msgid "Open muted words and tags settings" @@ -3330,12 +3333,12 @@ msgstr "開啟導覽" msgid "Open post options menu" msgstr "開啟貼文選項選單" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "開啟故事書頁面" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "開啟系統日誌" @@ -3359,6 +3362,10 @@ msgstr "展開此通知的用戶列表" msgid "Opens camera on device" msgstr "開啟裝置相機" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "打開對話設定" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "開啟編輯器" @@ -3371,7 +3378,7 @@ msgstr "開啟可以更改的語言設定" msgid "Opens device photo gallery" msgstr "開啟裝置相簿" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "開啟外部連結嵌入設定" @@ -3393,23 +3400,23 @@ msgstr "開啟 GIF 選擇對話框" msgid "Opens list of invite codes" msgstr "開啟邀請碼列表" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "開啟帳號刪除的確認彈窗。需要電子郵件驗證碼" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "開啟修改 Bluesky 密碼的彈窗" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "開啟創建新 Bluesky 帳號代碼的彈窗" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "開啟下載 Bluesky 帳號數據(存儲庫)的彈窗" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "開啟驗證電子郵件的彈窗" @@ -3421,7 +3428,7 @@ msgstr "開啟使用自訂網域的彈窗" msgid "Opens moderation settings" msgstr "開啟內容管理設定" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "開啟密碼重設表單" @@ -3434,7 +3441,7 @@ msgstr "開啟編輯已儲存的動態源之畫面" msgid "Opens screen with all saved feeds" msgstr "開啟包含所有已儲存的動態源之畫面" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "開啟應用程式專用密碼設定畫面" @@ -3446,12 +3453,12 @@ msgstr "開啟「Following」動態源偏好" msgid "Opens the linked website" msgstr "開啟網站連結" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "開啟故事書頁面" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "開啟系統日誌頁面" @@ -3464,7 +3471,7 @@ msgid "Option {0} of {numItems}" msgstr "{0} 選項,共 {numItems} 個" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "在以下提供額外訊息(可選):" @@ -3497,7 +3504,7 @@ msgstr "頁面不存在" msgid "Page Not Found" msgstr "頁面不存在" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3573,11 +3580,6 @@ msgstr "播放" msgid "Play {0}" msgstr "播放 {0}" -#: src/screens/Messages/Settings.tsx:97 -#: src/screens/Messages/Settings.tsx:104 -#~ msgid "Play notification sounds" -#~ msgstr "播放通知音效" - #: src/view/com/util/post-embeds/GifEmbed.tsx:35 msgid "Play or pause the GIF" msgstr "播放或暫停 GIF" @@ -3607,15 +3609,15 @@ msgstr "請完成 Captcha 驗證。" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "更改前請先確認您的電子郵件地址。這是電子郵件更新工具的臨時要求,此限制將很快被移除。" -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "請輸入應用程式專用密碼的名稱。所有空格均不允許使用。" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "請輸入此應用程式專用密碼的唯一名稱,或使用我們提供的隨機生成名稱。" -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "請輸入有效的文字或標籤進行靜音" @@ -3627,13 +3629,13 @@ msgstr "請輸入您的電子郵件。" msgid "Please enter your password as well:" msgstr "請輸入您的密碼:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "請解釋您認為 {0} 不正確套用此標記的原因" #: src/screens/Messages/Conversation/ChatDisabled.tsx:110 msgid "Please explain why you think your chats were incorrectly disabled" -msgstr "" +msgstr "請解釋您認為我們不該停用您對話功能的原因" #: src/lib/hooks/useAccountSwitcher.ts:48 #: src/lib/hooks/useAccountSwitcher.ts:58 @@ -3662,12 +3664,12 @@ msgctxt "action" msgid "Post" msgstr "發佈" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "發佈" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "{0} 的貼文" @@ -3681,7 +3683,7 @@ msgstr "@{0} 的貼文" msgid "Post deleted" msgstr "貼文已刪除" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "貼文已隱藏" @@ -3703,8 +3705,8 @@ msgstr "貼文語言" msgid "Post Languages" msgstr "貼文語言" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "找不到貼文" @@ -3716,7 +3718,7 @@ msgstr "貼文" msgid "Posts" msgstr "貼文" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "可以靜音貼文所包含的文字和標籤。" @@ -3755,7 +3757,7 @@ msgstr "主要語言" msgid "Prioritize Your Follows" msgstr "優先顯示跟隨者" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "隱私" @@ -3763,7 +3765,7 @@ msgstr "隱私" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "隱私政策" @@ -3776,7 +3778,7 @@ msgstr "和其他用戶進行私人對話。" msgid "Processing..." msgstr "處理中…" -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "個人檔案" @@ -3793,7 +3795,7 @@ msgstr "個人檔案" msgid "Profile updated" msgstr "個人檔案已更新" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "通過驗證電子郵件地址來保護您的帳號。" @@ -3853,9 +3855,9 @@ msgstr "重新連線" #: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" -msgstr "" +msgstr "重新載入對話" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -3906,7 +3908,7 @@ msgstr "刪除圖片" msgid "Remove image preview" msgstr "刪除圖片預覽" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "從您的列表中移除靜音文字" @@ -3968,7 +3970,7 @@ msgid "Reply Filters" msgstr "回覆過濾器" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "對 <0><1/> 回覆" @@ -4012,11 +4014,6 @@ msgstr "檢舉訊息" msgid "Report post" msgstr "檢舉貼文" -#: src/components/dms/ReportDialog.tsx:167 -#: src/components/ReportDialog/SelectReportOptionView.tsx:62 -#~ msgid "Report this account" -#~ msgstr "檢舉這個用戶" - #: src/components/ReportDialog/SelectReportOptionView.tsx:43 msgid "Report this content" msgstr "檢舉這個內容" @@ -4064,11 +4061,11 @@ msgstr "轉貼或引用貼文" msgid "Reposted By" msgstr "轉貼" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "由 {0} 轉貼" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "由 <0><1/> 轉貼" @@ -4076,7 +4073,7 @@ msgstr "由 <0><1/> 轉貼" msgid "reposted your post" msgstr "轉貼您的貼文" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "轉貼這則貼文" @@ -4115,8 +4112,8 @@ msgstr "重設碼" msgid "Reset Code" msgstr "重設碼" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "重設初始設定進行狀態" @@ -4124,20 +4121,20 @@ msgstr "重設初始設定進行狀態" msgid "Reset password" msgstr "重設密碼" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "重設偏好狀態" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "重設初始設定狀態" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "重設偏好狀態" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "重試登入" @@ -4149,8 +4146,8 @@ msgstr "重試上次出錯的操作" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4175,8 +4172,8 @@ msgid "Returns to previous page" msgstr "返回上一頁" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4189,7 +4186,7 @@ msgctxt "action" msgid "Save" msgstr "儲存" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "儲存替代文字" @@ -4241,7 +4238,7 @@ msgstr "保存圖片裁剪設定" #: src/components/dms/ChatEmptyPill.tsx:33 msgid "Say hello!" -msgstr "" +msgstr "說句「你好!👋」" #: src/screens/Onboarding/index.tsx:48 msgid "Science" @@ -4385,7 +4382,7 @@ msgstr "在下面選擇一些帳號來跟隨" msgid "Select the {emojiName} emoji as your avatar" msgstr "選擇 {emojiName} emoji 作為您的頭像" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "選擇要檢舉的內容管理服務提供者" @@ -4431,7 +4428,7 @@ msgstr "選擇您的動態的次要算法" #: src/components/dms/ChatEmptyPill.tsx:38 msgid "Send a neat website!" -msgstr "" +msgstr "發送一個妙趣的網站!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 @@ -4453,14 +4450,14 @@ msgid "Send feedback" msgstr "提交意見" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:141 msgid "Send message" msgstr "重送訊息" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "提交檢舉" @@ -4554,7 +4551,6 @@ msgid "Sets image aspect ratio to wide" msgstr "將圖像的寬高比設定為寬" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4586,11 +4582,11 @@ msgstr "分享" #: src/components/dms/ChatEmptyPill.tsx:37 msgid "Share a cool story!" -msgstr "" +msgstr "分享一個有趣的故事!" #: src/components/dms/ChatEmptyPill.tsx:36 msgid "Share a fun fact!" -msgstr "" +msgstr "分享一個趣聞!📰" #: src/view/com/profile/ProfileMenu.tsx:373 #: src/view/com/util/forms/PostDropdownBtn.tsx:420 @@ -4610,7 +4606,7 @@ msgstr "分享連結" #: src/components/dms/ChatEmptyPill.tsx:34 msgid "Share your favorite feed!" -msgstr "" +msgstr "分享你喜愛的動態!" #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" @@ -4618,7 +4614,7 @@ msgstr "分享網站的連結" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4642,10 +4638,14 @@ msgstr "顯示標記" msgid "Show badge and filter from feeds" msgstr "顯示標記並從動態源中篩選" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "顯示類似於 {0} 的跟隨者" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "顯示隱藏回覆" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4653,7 +4653,7 @@ msgstr "顯示更少此類內容" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "顯示更多" @@ -4662,6 +4662,10 @@ msgstr "顯示更多" msgid "Show more like this" msgstr "顯示更多此類內容" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "顯示靜音回覆" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "顯示來自我的動態源之貼文" @@ -4707,7 +4711,7 @@ msgid "Show reposts in Following" msgstr "在「Following」中顯示轉貼貼文" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "顯示內容" @@ -4731,7 +4735,7 @@ msgstr "在您的動態中顯示來自 {0} 的貼文" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -4814,7 +4818,7 @@ msgstr "軟體開發" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 msgid "Some people can reply" -msgstr "" +msgstr "僅部分人可以回覆" #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" @@ -4827,7 +4831,7 @@ msgid "Something went wrong, please try again." msgstr "發生了一些問題,請重試。" #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "抱歉!您的登入會話已過期。請重新登入。" @@ -4839,7 +4843,7 @@ msgstr "排序回覆" msgid "Sort replies to the same post by:" msgstr "對同一貼文的回覆進行排序:" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "來源:<0>{0}" @@ -4860,7 +4864,7 @@ msgstr "運動" msgid "Square" msgstr "方塊" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "開始新對話" @@ -4872,7 +4876,7 @@ msgstr "與 {displayName} 開始對話" msgid "Start chatting" msgstr "開始對話" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "服務運作狀態頁面" @@ -4885,12 +4889,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "已清除儲存資料,您需要立即重啟應用程式。" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "故事書" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -4956,11 +4960,11 @@ msgstr "切換您登入的帳號" msgid "System" msgstr "系統" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "系統日誌" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "標籤" @@ -4982,7 +4986,7 @@ msgstr "科技" #: src/components/dms/ChatEmptyPill.tsx:35 msgid "Tell a joke!" -msgstr "" +msgstr "說個笑話!🤡" #: src/view/shell/desktop/RightNav.tsx:85 msgid "Terms" @@ -4990,7 +4994,7 @@ msgstr "條款" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5002,17 +5006,17 @@ msgstr "服務條款" msgid "Terms used violate community standards" msgstr "所使用的文字違反了社群標準" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "文字" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "文字輸入框" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "謝謝,您的檢舉已提交。" @@ -5024,7 +5028,7 @@ msgstr "其中包含以下內容:" msgid "That handle is already taken." msgstr "這個帳號代碼已被使用。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "解除封鎖後,該帳號將能夠與您互動。" @@ -5041,11 +5045,11 @@ msgstr "版權政策已移動到 <0/>" msgid "The feed has been replaced with Discover." msgstr "此動態源已由「Discover」取代。" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "以下標記已套用到您的帳號。" -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "以下標記已套用到您的內容。" @@ -5053,8 +5057,8 @@ msgstr "以下標記已套用到您的內容。" msgid "The following steps will help customize your Bluesky experience." msgstr "以下步驟將幫助自訂您的 Bluesky 體驗。" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "這則貼文可能已被刪除。" @@ -5125,7 +5129,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "取得列表時發生問題,點擊這裡重試。" #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "提交您的檢舉時出現問題,請檢查您的網路連線。" @@ -5133,13 +5137,13 @@ msgstr "提交您的檢舉時出現問題,請檢查您的網路連線。" msgid "There was an issue syncing your preferences with the server" msgstr "與伺服器同步偏好時發生問題" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "取得應用程式專用密碼時發生問題" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5183,13 +5187,13 @@ msgstr "此帳號要求使用者登入後才能查看其個人資料。" msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "此帳號已被一個或多個內容管理清單封鎖。若要解除封鎖,請直接瀏覽這些清單並刪除此使用者。" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "此申訴將被提交至 <0>{0}。" #: src/screens/Messages/Conversation/ChatDisabled.tsx:104 msgid "This appeal will be sent to Bluesky's moderation service." -msgstr "" +msgstr "此申訴將發送至 Bluesky 的內容管理服務。" #: src/screens/Messages/Conversation/MessageListError.tsx:18 msgid "This chat was disconnected" @@ -5254,7 +5258,7 @@ msgstr "此標記由 <0>{0} 添加。" msgid "This label was applied by the author." msgstr "此標記由發布者添加。" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "此標記由您添加。" @@ -5274,11 +5278,11 @@ msgstr "此列表為空!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "此內容管理服務暫時無法使用,詳情請見下文。如果問題持續存在,請與我們聯絡。" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "此名稱已被使用" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "這則貼文已被刪除。" @@ -5332,7 +5336,7 @@ msgstr "此用戶包含在您已靜音的 <0>{0} 列表中。" msgid "This user isn't following anyone." msgstr "此用戶未跟隨任何人。" -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "這將從您的靜音文字中刪除 {0},您隨時可以在稍後添加回來。" @@ -5359,13 +5363,13 @@ msgstr "若要關閉電子郵件雙重驗證,請驗證您的電子郵件地址 #: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "若要檢舉對話,請透過對話畫面檢舉其中一則訊息。這可以讓我們的內容管理者了解問題的來龍去脈。" #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" msgstr "您希望向誰提交此檢舉?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "在靜音文字選項之間切換。" @@ -5398,7 +5402,7 @@ msgctxt "action" msgid "Try again" msgstr "重試" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "雙重驗證" @@ -5420,7 +5424,7 @@ msgstr "取消靜音列表" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5431,14 +5435,14 @@ msgstr "無法連線到服務,請檢查您的網路連線。" #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "解除封鎖" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "解除封鎖" @@ -5453,7 +5457,7 @@ msgstr "解除封鎖帳號" msgid "Unblock Account" msgstr "解除封鎖帳號" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "解除封鎖?" @@ -5474,7 +5478,7 @@ msgstr "取消跟隨" msgid "Unfollow" msgstr "取消跟隨" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "取消跟隨 {0}" @@ -5587,7 +5591,7 @@ msgstr "從圖片庫上傳" msgid "Use a file on your server" msgstr "使用您伺服器上的檔案" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "使用應用程式專用密碼登入到其他 Bluesky 客戶端,而無需提供完整的帳號權限和密碼。" @@ -5617,7 +5621,7 @@ msgstr "使用推薦" msgid "Use the DNS panel" msgstr "使用 DNS 控制台" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "使用這個和您的帳號代碼一起登入其他應用程式。" @@ -5677,7 +5681,7 @@ msgstr "已更新用戶列表" msgid "User Lists" msgstr "用戶列表" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "帳號代碼或電子郵件地址" @@ -5691,8 +5695,8 @@ msgstr "被 <0/> 跟隨的用戶" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "我跟隨的用戶" @@ -5712,15 +5716,15 @@ msgstr "值:" msgid "Verify DNS Record" msgstr "驗證 DNS 紀錄" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "驗證電子郵件" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "驗證我的電子郵件" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "驗證我的電子郵件" @@ -5737,7 +5741,7 @@ msgstr "驗證文字檔案" msgid "Verify Your Email" msgstr "驗證您的電子郵件" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "版本 {appVersion} {bundleInfo}" @@ -5761,7 +5765,7 @@ msgstr "查看詳細資訊" msgid "View details for reporting a copyright violation" msgstr "查看詳細資訊以檢舉侵犯版權" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "查看整個討論串" @@ -5827,7 +5831,7 @@ msgstr "我們希望您在此度過愉快的時光。請記住,Bluesky 是:" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "您已看完了您跟隨的貼文。這是來自 <0/> 的最新貼文。" -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "我們建議避免新增在許多貼文中常用的文字,因為這可能令您看不到任何貼文。" @@ -5855,7 +5859,7 @@ msgstr "我們會在您的帳號準備好時通知您。" msgid "We'll use this to help customize your experience." msgstr "我們將使用這些資訊來幫助定制您的體驗。" -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "我們遇到網路問題,請重試" @@ -5867,7 +5871,7 @@ msgstr "我們非常高興您加入我們!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "很抱歉,我們無法解析此列表。如果問題持續發生,請聯繫列表建立者 @{handleOrDid}。" -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "很抱歉,我們目前無法載入您的靜音文字。請稍後再試。" @@ -5916,10 +5920,6 @@ msgstr "誰可以回覆" msgid "Whoops!" msgstr "哎呀!" -#: src/components/ReportDialog/SelectReportOptionView.tsx:63 -#~ msgid "Why should this account be reviewed?" -#~ msgstr "為什麼應該審查這個帳號?" - #: src/components/ReportDialog/SelectReportOptionView.tsx:44 msgid "Why should this content be reviewed?" msgstr "為什麼應該審查這個內容?" @@ -5949,7 +5949,7 @@ msgid "Wide" msgstr "寬" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:122 msgid "Write a message" msgstr "撰寫訊息" @@ -6001,6 +6001,10 @@ msgstr "您可以往後在設定中更改。" msgid "You can change this at any time." msgstr "您可以隨時變更該設定。" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "無論選擇哪種設定,都不會影響已發起的對話。" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6022,7 +6026,7 @@ msgstr "您目前還沒有任何釘選的動態源。" msgid "You don't have any saved feeds." msgstr "您目前還沒有任何已儲存的動態源。" -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "您已封鎖該作者,或您已被該作者封鎖。" @@ -6060,13 +6064,9 @@ msgstr "您已隱藏這個帳號。" msgid "You have muted this user" msgstr "您已靜音這個用戶" -#: src/screens/Messages/List/index.tsx:158 -#~ msgid "You have no chats yet. Start a conversation with someone!" -#~ msgstr "您還沒有對話,與其他用戶開始對話!" - #: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" -msgstr "" +msgstr "您還沒有對話,與其他用戶開始對話吧!" #: src/view/com/feeds/ProfileFeedgens.tsx:144 msgid "You have no feeds." @@ -6081,7 +6081,7 @@ msgstr "您沒有建立任何列表。" msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "您還沒有封鎖任何帳號。要封鎖帳號,請前往其個人資料並在其帳號上的選單中選擇「封鎖帳號」。" -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "您還沒有建立任何應用程式專用密碼,如您想建立一個,按下面的按鈕。" @@ -6091,17 +6091,17 @@ msgstr "您還沒有靜音任何帳號。要靜音帳號,請前往其個人資 #: src/components/Lists.tsx:52 msgid "You have reached the end" -msgstr "" +msgstr "已經到底部啦!" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "您還沒有隱藏任何文字或標籤" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "如果您認為非標記的放置有誤,且標記並非由您添加,您可以提出申訴。" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "如果您覺得這些標籤是錯誤的,您可以申訴這些標籤。" @@ -6113,7 +6113,7 @@ msgstr "您必須年滿 13 歲才能註冊。" msgid "You must be 18 years or older to enable adult content" msgstr "您必須年滿 18 歲才能啟用成人內容" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "您必須選擇至少一個標記者來提交檢舉" @@ -6210,7 +6210,7 @@ msgstr "您的完整帳號代碼將修改為" msgid "Your full handle will be <0>@{0}" msgstr "您的完整帳號代碼將修改為 <0>@{0}" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "您的靜音文字" From 642941f41d9f92bc655c7a202a4af37131f910d5 Mon Sep 17 00:00:00 2001 From: Takayuki KUSANO <65759+tkusano@users.noreply.github.com> Date: Sat, 25 May 2024 05:47:17 +0900 Subject: [PATCH 209/277] Updated Japanese translation (#4144) * Updated Japanese translation * Updated Japanese translation to resolve conflicts and updated msg * Updated Japanese translation ref. #4145 * changed the "Clip clop" translation * Updated Japanese translation * Updated Japanese translation * Updated Japanese translation --- src/locale/locales/ja/messages.po | 94 ++++++++++++++++++------------- 1 file changed, 56 insertions(+), 38 deletions(-) diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index dc5f8c2f52..497629cb55 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: ja\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-05-19 01:48+0900\n" +"PO-Revision-Date: 2024-05-24 09:20+0900\n" "Last-Translator: tkusano\n" "Language-Team: Hima-Zinn, tkusano, dolciss, oboenikui, noritada, middlingphys, hibiki, reindex-ot, haoyayoi, vyv03354\n" "Plural-Forms: \n" @@ -298,10 +298,15 @@ msgstr "高度な設定" msgid "All the feeds you've saved, right in one place." msgstr "保存したすべてのフィードを1箇所にまとめます。" +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "ダイレクトメッセージへのアクセスを許可" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" -msgstr "誰からのメッセージを許可するか:" +msgid "Allow new messages from" +msgstr "新しいメッセージを誰から受け取れるか:" #: src/screens/Login/ForgotPasswordForm.tsx:178 #: src/view/com/modals/ChangePassword.tsx:172 @@ -424,7 +429,7 @@ msgstr "異議申し立てを提出しました" #: src/screens/Messages/Conversation/ChatDisabled.tsx:99 #: src/screens/Messages/Conversation/ChatDisabled.tsx:101 msgid "Appeal this decision" -msgstr "" +msgstr "この決定に異議を申し立てる" #: src/view/screens/Settings/index.tsx:432 msgid "Appearance" @@ -769,6 +774,11 @@ msgstr "チャットをミュートしました" msgid "Chat settings" msgstr "チャットの設定" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "チャットの設定" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "チャットのミュートを解除しました" @@ -857,7 +867,7 @@ msgstr "気象" #: src/components/dms/ChatEmptyPill.tsx:39 msgid "Clip 🐴 clop 🐴" -msgstr "" +msgstr "パカラッ 🐴 パカラッ 🐴" #: src/components/dialogs/GifSelect.tsx:301 #: src/components/dms/NewChatDialog/index.tsx:439 @@ -1086,7 +1096,7 @@ msgstr "アカウントをフォローせずに次のステップへ進む" #: src/screens/Messages/List/ChatListItem.tsx:108 msgid "Conversation deleted" -msgstr "" +msgstr "会話が削除されました" #: src/screens/Onboarding/index.tsx:56 msgid "Cooking" @@ -1666,10 +1676,6 @@ msgstr "有効" msgid "End of feed" msgstr "フィードの終わり" -#: src/components/Lists.tsx:52 -#~ msgid "End of list" -#~ msgstr "" - #: src/view/com/modals/AddAppPasswords.tsx:167 msgid "Enter a name for this App Password" msgstr "このアプリパスワードの名前を入力" @@ -1739,7 +1745,7 @@ msgstr "全員" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:42 msgid "Everybody can reply" -msgstr "" +msgstr "誰でも返信可能" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 @@ -1859,7 +1865,7 @@ msgstr "送信に失敗" #: src/components/moderation/LabelsOnMeDialog.tsx:224 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." -msgstr "" +msgstr "異議申し立ての送信に失敗しました。再度試してください。" #: src/components/dms/MessagesNUX.tsx:60 #: src/screens/Messages/Settings.tsx:34 @@ -2143,7 +2149,7 @@ msgstr "ホームへ" #: src/screens/Messages/List/ChatListItem.tsx:156 msgid "Go to conversation with {0}" -msgstr "" +msgstr "{0}との会話へ" #: src/screens/Login/ForgotPasswordForm.tsx:172 #: src/view/com/modals/ChangePassword.tsx:169 @@ -2737,7 +2743,7 @@ msgstr "メニュー" #: src/components/dms/MessageProfileButton.tsx:67 msgid "Message {0}" -msgstr "" +msgstr "{0}へメッセージを送る" #: src/components/dms/MessageMenu.tsx:58 msgid "Message deleted" @@ -3116,7 +3122,7 @@ msgstr "メッセージはありません" #: src/screens/Messages/List/index.tsx:254 msgid "No more conversations to show" -msgstr "" +msgstr "これ以上表示できる会話はありません" #: src/view/com/notifications/Feed.tsx:110 msgid "No notifications yet!" @@ -3167,7 +3173,7 @@ msgstr "返信不可" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:44 msgid "Nobody can reply" -msgstr "" +msgstr "誰も返信できない" #: src/components/LikedByList.tsx:79 #: src/components/LikesDialog.tsx:99 @@ -3200,15 +3206,15 @@ msgstr "注記:Blueskyはオープンでパブリックなネットワーク #: src/screens/Messages/List/index.tsx:195 msgid "Nothing here" -msgstr "" +msgstr "何もありません" #: src/screens/Messages/Settings.tsx:108 msgid "Notification sounds" -msgstr "" +msgstr "通知音" #: src/screens/Messages/Settings.tsx:105 msgid "Notification Sounds" -msgstr "" +msgstr "通知音" #: src/Navigation.tsx:515 #: src/view/screens/Notifications.tsx:124 @@ -3299,7 +3305,7 @@ msgstr "アバター・クリエイターを開く" #: src/screens/Messages/List/ChatListItem.tsx:162 #: src/screens/Messages/List/ChatListItem.tsx:163 msgid "Open conversation options" -msgstr "" +msgstr "会話のオプションを開く" #: src/view/com/composer/Composer.tsx:560 #: src/view/com/composer/Composer.tsx:561 @@ -3316,7 +3322,7 @@ msgstr "アプリ内ブラウザーでリンクを開く" #: src/components/dms/ActionsWrapper.tsx:87 msgid "Open message options" -msgstr "" +msgstr "メッセージのオプションを開く" #: src/screens/Moderation/index.tsx:227 msgid "Open muted words and tags settings" @@ -3359,6 +3365,10 @@ msgstr "この通知内のユーザーの拡張リストを開く" msgid "Opens camera on device" msgstr "デバイスのカメラを開く" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "チャットの設定を開く" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "編集画面を開く" @@ -3633,7 +3643,7 @@ msgstr "{0}によって適用されたこのラベルが誤りであると思わ #: src/screens/Messages/Conversation/ChatDisabled.tsx:110 msgid "Please explain why you think your chats were incorrectly disabled" -msgstr "" +msgstr "チャットが間違って無効化されたと考える理由を説明してください" #: src/lib/hooks/useAccountSwitcher.ts:48 #: src/lib/hooks/useAccountSwitcher.ts:58 @@ -3853,7 +3863,7 @@ msgstr "再接続" #: src/screens/Messages/List/index.tsx:180 msgid "Reload conversations" -msgstr "" +msgstr "会話を再読み込み" #: src/components/dialogs/MutedWords.tsx:286 #: src/view/com/feeds/FeedSourceCard.tsx:285 @@ -4241,7 +4251,7 @@ msgstr "画像の切り抜き設定を保存" #: src/components/dms/ChatEmptyPill.tsx:33 msgid "Say hello!" -msgstr "" +msgstr "よろしく!" #: src/screens/Onboarding/index.tsx:48 msgid "Science" @@ -4431,7 +4441,7 @@ msgstr "2番目のフィードのアルゴリズムを選択してください #: src/components/dms/ChatEmptyPill.tsx:38 msgid "Send a neat website!" -msgstr "" +msgstr "素敵なウェブサイトを送って!" #: src/view/com/modals/VerifyEmail.tsx:210 #: src/view/com/modals/VerifyEmail.tsx:212 @@ -4586,11 +4596,11 @@ msgstr "共有" #: src/components/dms/ChatEmptyPill.tsx:37 msgid "Share a cool story!" -msgstr "" +msgstr "クールなストーリーをシェアして!" #: src/components/dms/ChatEmptyPill.tsx:36 msgid "Share a fun fact!" -msgstr "" +msgstr "面白いことをシェアして!" #: src/view/com/profile/ProfileMenu.tsx:373 #: src/view/com/util/forms/PostDropdownBtn.tsx:420 @@ -4610,7 +4620,7 @@ msgstr "リンクを共有" #: src/components/dms/ChatEmptyPill.tsx:34 msgid "Share your favorite feed!" -msgstr "" +msgstr "お気に入りのフィードをシェアして!" #: src/view/com/modals/LinkWarning.tsx:92 msgid "Shares the linked website" @@ -4646,6 +4656,10 @@ msgstr "バッジの表示とフィードからのフィルタリング" msgid "Show follows similar to {0}" msgstr "{0}に似たおすすめのフォロー候補を表示" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "隠れている返信を表示" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4662,6 +4676,10 @@ msgstr "さらに表示" msgid "Show more like this" msgstr "このような投稿の表示を増やす" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "ミュートした返信を表示" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "マイフィードからの投稿を表示" @@ -4814,7 +4832,7 @@ msgstr "ソフトウェア開発" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:45 msgid "Some people can reply" -msgstr "" +msgstr "一部の人が返信可能" #: src/screens/Messages/Conversation/index.tsx:94 msgid "Something went wrong" @@ -4982,7 +5000,7 @@ msgstr "テクノロジー" #: src/components/dms/ChatEmptyPill.tsx:35 msgid "Tell a joke!" -msgstr "" +msgstr "ジョークを言って!" #: src/view/shell/desktop/RightNav.tsx:85 msgid "Terms" @@ -5189,7 +5207,7 @@ msgstr "この申し立ては<0>{0}に送られます。" #: src/screens/Messages/Conversation/ChatDisabled.tsx:104 msgid "This appeal will be sent to Bluesky's moderation service." -msgstr "" +msgstr "この異議申し立てはBlueskyのモデレーション・サービスに送られます。" #: src/screens/Messages/Conversation/MessageListError.tsx:18 msgid "This chat was disconnected" @@ -5359,7 +5377,7 @@ msgstr "メールでの2要素認証を無効にするには、メールアド #: src/components/dms/ReportConversationPrompt.tsx:20 msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue." -msgstr "" +msgstr "会話を報告するには、会話の画面からメッセージのうちの一つを報告してください。それによって問題の文脈をモデレーターが理解できるようになります。" #: src/components/ReportDialog/SelectLabelerView.tsx:33 msgid "To whom would you like to send this report?" @@ -6001,6 +6019,10 @@ msgstr "これらの設定はあとで変更できます。" msgid "You can change this at any time." msgstr "これはいつでも変更できます。" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "どの設定を選択しても進行中の会話は続けることができます。" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6060,13 +6082,9 @@ msgstr "このアカウントをミュートしました。" msgid "You have muted this user" msgstr "このユーザーをミュートしました" -#: src/screens/Messages/List/index.tsx:152 -#~ msgid "You have no chats yet. Start a conversation with someone!" -#~ msgstr "まだチャットしていません。誰かと会話を初めましょう!" - #: src/screens/Messages/List/index.tsx:205 msgid "You have no conversations yet. Start one!" -msgstr "" +msgstr "まだ会話していません。始めましょう!" #: src/view/com/feeds/ProfileFeedgens.tsx:144 msgid "You have no feeds." @@ -6091,7 +6109,7 @@ msgstr "ミュートしているアカウントはまだありません。アカ #: src/components/Lists.tsx:52 msgid "You have reached the end" -msgstr "" +msgstr "最後まで到達しました" #: src/components/dialogs/MutedWords.tsx:249 msgid "You haven't muted any words or tags yet" From e6d26186a9e529069b392dbe909dd059295c615b Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Fri, 24 May 2024 13:48:16 -0700 Subject: [PATCH 210/277] Run intl extract (#4217) --- src/locale/locales/ca/messages.po | 580 +++++++++++++------------- src/locale/locales/de/messages.po | 578 +++++++++++++------------- src/locale/locales/en/messages.po | 578 +++++++++++++------------- src/locale/locales/es/messages.po | 578 +++++++++++++------------- src/locale/locales/fi/messages.po | 578 +++++++++++++------------- src/locale/locales/fr/messages.po | 580 +++++++++++++------------- src/locale/locales/ga/messages.po | 578 +++++++++++++------------- src/locale/locales/hi/messages.po | 578 +++++++++++++------------- src/locale/locales/id/messages.po | 581 ++++++++++++++------------- src/locale/locales/it/messages.po | 578 +++++++++++++------------- src/locale/locales/ja/messages.po | 549 ++++++++++++------------- src/locale/locales/ko/messages.po | 33 +- src/locale/locales/pt-BR/messages.po | 578 +++++++++++++------------- src/locale/locales/tr/messages.po | 578 +++++++++++++------------- src/locale/locales/uk/messages.po | 578 +++++++++++++------------- src/locale/locales/zh-CN/messages.po | 57 +-- src/locale/locales/zh-TW/messages.po | 57 +-- 17 files changed, 4318 insertions(+), 3899 deletions(-) diff --git a/src/locale/locales/ca/messages.po b/src/locale/locales/ca/messages.po index 52249b5fba..58c733e91c 100644 --- a/src/locale/locales/ca/messages.po +++ b/src/locale/locales/ca/messages.po @@ -48,12 +48,12 @@ msgstr "{0, plural, one {# etiqueta s'ha aplicat a aquest contingut} other {# et msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "{0, plural, one {# republicació} other {# republicacions}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "{0, plural, one {seguidor} other {seguidors}}" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "{0, plural, one {seguint} other {seguint}}" @@ -62,7 +62,7 @@ msgstr "{0, plural, one {seguint} other {seguint}}" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "{0, plural, one {Like (# m'agrada)} other {Like (# m'agrades)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "{0, plural, one {m'agrada} other {m'agrades}}" @@ -78,7 +78,7 @@ msgstr "{0, plural, one {publicació} other {publicacions}}" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "{0, plural, one {Resposta per (# reply)} other {Resposta per (# replies)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "{0, plural, one {republicació} other {republicacions}}" @@ -110,7 +110,7 @@ msgstr "{estimatedTimeHrs, plural, one {hora} other {hores}}" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "{estimatedTimeMins, plural, one {minut} other {minuts}}" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} seguint" @@ -196,7 +196,7 @@ msgstr "<0>No aplicable. Aquesta advertència només està disponible per pu msgid "⚠Invalid Handle" msgstr "⚠Identificador invàlid" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "Confirmació 2FA" @@ -235,9 +235,9 @@ msgstr "Configuració d'accessibilitat" #~ msgid "account" #~ msgstr "compte" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "Compte" @@ -270,7 +270,7 @@ msgstr "Opcions del compte" msgid "Account removed from quick access" msgstr "Compte eliminat de l'accés ràpid" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "Compte desbloquejat" @@ -283,7 +283,7 @@ msgstr "Compte no seguit" msgid "Account unmuted" msgstr "Compte no silenciat" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -304,12 +304,12 @@ msgstr "Afegeix un usuari a aquesta llista" msgid "Add account" msgstr "Afegeix un compte" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Afegeix text alternatiu" @@ -317,9 +317,9 @@ msgstr "Afegeix text alternatiu" #~ msgid "Add ALT text" #~ msgstr "Afegeix text alternatiu" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Afegeix una contrasenya d'aplicació" @@ -340,11 +340,11 @@ msgstr "Afegeix una contrasenya d'aplicació" #~ msgid "Add link card:" #~ msgstr "Afegeix una targeta a l'enllaç:" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "Afegeix paraula silenciada a la configuració" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "Afegeix les paraules i etiquetes silenciades" @@ -401,7 +401,7 @@ msgid "Adult content is disabled." msgstr "El contingut per a adults està deshabilitat." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "Avançat" @@ -409,10 +409,20 @@ msgstr "Avançat" msgid "All the feeds you've saved, right in one place." msgstr "Tots els canals que has desat, en un sol lloc." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" -msgstr "Permet missatges de" +#~ msgid "Allow messages from" +#~ msgstr "Permet missatges de" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 #: src/view/com/modals/ChangePassword.tsx:172 @@ -423,13 +433,13 @@ msgstr "Ja tens un codi?" msgid "Already signed in as @{0}" msgstr "Ja estàs registrat com a @{0}" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -498,19 +508,19 @@ msgstr "Comportament antisocial" msgid "App Language" msgstr "Idioma de l'aplicació" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Contrasenya de l'aplicació esborrada" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "La contrasenya de l'aplicació només pot estar formada per lletres, números, espais, guions i guions baixos." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "La contrasenya de l'aplicació ha de ser d'almenys 4 caràcters." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "Configuració de la contrasenya d'aplicació" @@ -519,17 +529,17 @@ msgstr "Configuració de la contrasenya d'aplicació" #~ msgstr "Contrasenyes de l'aplicació" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "Contrasenyes de l'aplicació" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "Apel·la" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "Apel·la \"{0}\" etiqueta" @@ -545,7 +555,7 @@ msgstr "Apel·la \"{0}\" etiqueta" #~ msgid "Appeal Decision" #~ msgstr "Decisión de apelación" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "Apel·lació enviada" @@ -574,7 +584,7 @@ msgstr "Aparença" msgid "Apply default recommended feeds" msgstr "Aplica els canals recomanats per defecte" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Confirmes que vols eliminar la contrasenya de l'aplicació \"{name}\"?" @@ -602,7 +612,7 @@ msgstr "Confirmes que vols eliminar {0} dels teus canals?" msgid "Are you sure you'd like to discard this draft?" msgstr "Confirmes que vols descartar aquest esborrany?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "Ho confirmes?" @@ -627,14 +637,14 @@ msgid "At least 3 characters" msgstr "Almenys 3 caràcters" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -666,7 +676,7 @@ msgstr "Aniversari" msgid "Birthday:" msgstr "Aniversari:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "Bloqueja" @@ -723,7 +733,7 @@ msgstr "Els comptes bloquejats no poden respondre cap fil teu, ni anomenar-te ni msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Els comptes bloquejats no poden respondre a cap fil teu, ni anomenar-te ni interactuar amb tu de cap manera. No veuràs mai el seu contingut ni ells el teu." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "Publicació bloquejada." @@ -840,7 +850,7 @@ msgstr "per tu" msgid "Camera" msgstr "Càmera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Només pot tenir lletres, números, espais, guions i guions baixos. Ha de tenir almenys 4 caràcters i no més de 32." @@ -925,12 +935,12 @@ msgctxt "action" msgid "Change" msgstr "Canvia" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "Canvia l'identificador" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "Canvia l'identificador" @@ -938,12 +948,12 @@ msgstr "Canvia l'identificador" msgid "Change my email" msgstr "Canvia el meu correu" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "Canvia la contrasenya" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "Canvia la contrasenya" @@ -972,10 +982,16 @@ msgstr "Xat silenciat" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "Configuració del xat" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "Xat no silenciat" @@ -997,7 +1013,7 @@ msgstr "Comprova el meu estat" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Mira alguns usuaris recomanats. Segueix-los per a veure altres usuaris similars." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "Comprova el teu correu electrònic per a obtenir un codi d'inici de sessió i introdueix-lo aquí." @@ -1038,19 +1054,19 @@ msgstr "Tria els teus canals principals" msgid "Choose your password" msgstr "Tria la teva contrasenya" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "Esborra totes les dades antigues emmagatzemades" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "Esborra totes les dades antigues emmagatzemades (i després reinicia)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "Esborra totes les dades emmagatzemades" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "Esborra totes les dades emmagatzemades (i després reinicia)" @@ -1059,11 +1075,11 @@ msgstr "Esborra totes les dades emmagatzemades (i després reinicia)" msgid "Clear search query" msgstr "Esborra la cerca" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "Esborra totes les dades antigues emmagatzemades" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "Esborra totes les dades emmagatzemades" @@ -1096,7 +1112,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "Clip 🐴 clop 🐴" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1249,7 +1265,7 @@ msgstr "Confirma la teva edat:" msgid "Confirm your birthdate" msgstr "Confirma la teva data de naixement" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1263,7 +1279,7 @@ msgstr "Codi de confirmació" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "Confirma afegir {email} a la llista d'espera" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "Connectant…" @@ -1346,7 +1362,7 @@ msgstr "Continua" msgid "Continue to the next step without following any accounts" msgstr "Continua sense seguir cap compte" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "Conversa esborrada" @@ -1354,7 +1370,7 @@ msgstr "Conversa esborrada" msgid "Cooking" msgstr "Cuina" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Copiat" @@ -1364,7 +1380,7 @@ msgid "Copied build version to clipboard" msgstr "Número de versió copiat en memòria" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1375,11 +1391,11 @@ msgstr "Copiat en memòria" msgid "Copied!" msgstr "Copiat" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Copia la contrasenya d'aplicació" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Copia" @@ -1470,7 +1486,7 @@ msgstr "Crea un compte" msgid "Create an avatar instead" msgstr "Enlloc d'això, crea un avatar" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Crea una contrasenya d'aplicació" @@ -1483,7 +1499,7 @@ msgstr "Crea un nou compte" msgid "Create report for {0}" msgstr "Crea un informe per a {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Creat {0}" @@ -1542,7 +1558,7 @@ msgstr "Tema fosc" msgid "Date of birth" msgstr "Data de naixement" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "Moderació de depuració" @@ -1552,12 +1568,12 @@ msgstr "Panell de depuració" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "Elimina" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "Elimina el compte" @@ -1569,16 +1585,16 @@ msgstr "Elimina el compte" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "Elimina el compte <0>\"<1>{0}<2>\"" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Elimina la contrasenya d'aplicació" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Vols eliminar la contrasenya d'aplicació?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "Suprimeix el registre de declaració de xat" @@ -1606,7 +1622,7 @@ msgstr "Elimina el meu compte" #~ msgid "Delete my account…" #~ msgstr "Elimina el meu compte…" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "Elimina el meu compte…" @@ -1627,11 +1643,11 @@ msgstr "Vols eliminar aquesta publicació?" msgid "Deleted" msgstr "Eliminat" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "Publicació eliminada." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "Suprimeix el registre de declaració de xat" @@ -1642,7 +1658,7 @@ msgstr "Suprimeix el registre de declaració de xat" msgid "Description" msgstr "Descripció" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "Text alternatiu descriptiu" @@ -1689,8 +1705,8 @@ msgstr "Desactiva la retroalimentació hàptica" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Deshabilitat" @@ -1765,8 +1781,8 @@ msgstr "Domini verificat!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1886,12 +1902,12 @@ msgid "Edit my profile" msgstr "Edita el meu perfil" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "Edita el perfil" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "Edita el perfil" @@ -1998,8 +2014,8 @@ msgstr "Activa aquesta opció per a veure només les respostes entre els comptes msgid "Enable this source only" msgstr "Habilita només per aquesta font" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Habilitat" @@ -2012,7 +2028,7 @@ msgstr "Fi del canal" #~ msgid "End of list" #~ msgstr "Fi de la llista" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Posa un nom a aquesta contrasenya d'aplicació" @@ -2020,8 +2036,8 @@ msgstr "Posa un nom a aquesta contrasenya d'aplicació" msgid "Enter a password" msgstr "Introdueix una contrasenya" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "Introdueix una lletra o etiqueta" @@ -2097,8 +2113,8 @@ msgstr "Tothom pot respondre" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "Tothom" @@ -2152,12 +2168,12 @@ msgstr "Contingut explícit o potencialment pertorbador." msgid "Explicit sexual images." msgstr "Imatges sexuals explícites." -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "Exporta les meves dades" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "Exporta les meves dades" @@ -2173,16 +2189,16 @@ msgstr "El contingut extern pot permetre que algunes webs recullin informació s #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "Preferència del contingut extern" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "Configuració del contingut extern" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "No s'ha pogut crear la contrasenya d'aplicació." @@ -2227,13 +2243,13 @@ msgstr "No s'ha pogut enviar" #~ msgid "Failed to send message(s)." #~ msgstr "Error en enviar missatge(s)." -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "No s'ha pogut enviar l'apel·lació, torna-ho a provar." #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "No s'ha pogut actualitzar la configuració" @@ -2347,10 +2363,10 @@ msgstr "Gira horitzontalment" msgid "Flip vertically" msgstr "Gira verticalment" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2362,7 +2378,7 @@ msgid "Follow" msgstr "Segueix" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Segueix {0}" @@ -2413,9 +2429,9 @@ msgstr "Seguidors" #~ msgid "following" #~ msgstr "seguint" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2424,7 +2440,7 @@ msgstr "Seguidors" msgid "Following" msgstr "Seguint" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "Seguint {0}" @@ -2456,7 +2472,7 @@ msgstr "Menjar" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Per motius de seguretat necessitem enviar-te un codi de confirmació al teu correu." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Per motius de seguretat no podràs tornar-la a veure. Si perds aquesta contrasenya necessitaràs generar-ne una de nova." @@ -2473,11 +2489,11 @@ msgstr "Per motius de seguretat no podràs tornar-la a veure. Si perds aquesta c msgid "Forgot Password" msgstr "He oblidat la contrasenya" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "Has oblidat la contrasenya?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "Oblidada?" @@ -2489,7 +2505,7 @@ msgstr "Publica contingut no desitjat freqüentment" msgid "From @{sanitizedAuthor}" msgstr "De @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "De <0/>" @@ -2537,7 +2553,7 @@ msgstr "Ves enrere" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2557,7 +2573,7 @@ msgstr "Ves a l'inici" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Ves a @{queryMaybeHandle}" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "Ves a la conversa amb {0}" @@ -2627,13 +2643,13 @@ msgstr "Aquí tens alguns canals d'actualitat populars. Pots seguir-ne tants com msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "Aquí tens uns quants canals d'actualitat basats en els teus interessos: {interestsText}. Pots seguir-ne tants com vulguis." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Aquí tens la teva contrasenya d'aplicació." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2655,7 +2671,7 @@ msgid "Hide post" msgstr "Amaga l'entrada" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "Amaga el contingut" @@ -2719,7 +2735,7 @@ msgid "Host:" msgstr "Allotjament:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2785,7 +2801,7 @@ msgstr "Il·legal i urgent" msgid "Image" msgstr "Imatge" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Text alternatiu de la imatge" @@ -2818,7 +2834,7 @@ msgstr "Introdueix el codi de confirmació per a eliminar el compte" #~ msgid "Input invite code to proceed" #~ msgstr "Introdueix el codi d'invitació per a continuar" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Introdueix un nom per la contrasenya d'aplicació" @@ -2834,15 +2850,15 @@ msgstr "Introdueix la contrasenya per a eliminar el compte" #~ msgid "Input phone number for SMS verification" #~ msgstr "Introdueix el telèfon per la verificació per SMS" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "Introdueix el codi que has rebut per correu" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "Introdueix la contrasenya lligada a {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "Introdueix el nom d'usuari o correu que vas utilitzar per a registrar-te" @@ -2854,7 +2870,7 @@ msgstr "Introdueix el nom d'usuari o correu que vas utilitzar per a registrar-te #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Introdueix el teu correu per a afegir-te a la llista d'espera de Bluesky" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "Introdueix la teva contrasenya" @@ -2870,16 +2886,16 @@ msgstr "Introdueix el teu identificador d'usuari" msgid "Introducing Direct Messages" msgstr "Presentació dels missatges directes" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "El codi de confirmació 2FA no és vàlid." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Registre de publicació no vàlid o no admès" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "Nom d'usuari o contrasenya incorrectes" @@ -2960,11 +2976,11 @@ msgstr "Les etiquetes són anotacions sobre els usuaris i el contingut. Poden se #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "S'han posat etiquetes a aquest {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Etiquetes al teu compte" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Etiquetes al teu contingut" @@ -3007,7 +3023,7 @@ msgstr "Més informació" msgid "Learn more about the moderation applied to this content." msgstr "Més informació sobre la moderació que s'ha aplicat a aquest contingut." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Més informació d'aquesta advertència" @@ -3122,7 +3138,7 @@ msgstr "li ha agradat la teva publicació" msgid "Likes" msgstr "M'agrades" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "M'agrades a aquesta publicació" @@ -3185,7 +3201,7 @@ msgid "Load new notifications" msgstr "Carrega noves notificacions" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -3249,7 +3265,7 @@ msgstr "Sembla que et falta el canal del Seguits. <0>Clica aquí per a afegir-ne msgid "Make sure this is where you intend to go!" msgstr "Assegura't que és aquí on vols anar!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "Gestiona les teves etiquetes i paraules silenciades" @@ -3289,6 +3305,7 @@ msgid "Message {0}" msgstr "Missatge {0}" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "Missatge esborrat" @@ -3305,18 +3322,18 @@ msgid "Message input field" msgstr "Camp d'entrada del missatge" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "El missatge és massa llarg" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "Configuració dels missatges" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "Missatges" @@ -3441,11 +3458,11 @@ msgstr "Silencia totes les publicacions {displayTag}" msgid "Mute conversation" msgstr "Silencia la conversa" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "Silencia només a les etiquetes" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "Silencia a les etiquetes i al text" @@ -3466,11 +3483,11 @@ msgstr "Vols silenciar aquests comptes?" #~ msgid "Mute this List" #~ msgstr "Silencia aquesta llista" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "Silencia aquesta paraula en el text de les publicacions i a les etiquetes" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "Silencia aquesta paraula només a les etiquetes" @@ -3538,7 +3555,7 @@ msgstr "Els meus canals desats" #~ msgid "my-server.com" #~ msgstr "el-meu-servidor.com" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "Nom" @@ -3558,7 +3575,7 @@ msgid "Nature" msgstr "Natura" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Navega a la pantalla següent" @@ -3603,8 +3620,8 @@ msgid "New" msgstr "Nova" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "Xat nou" @@ -3624,7 +3641,7 @@ msgstr "Nova contrasenya" msgid "New Password" msgstr "Nova contrasenya" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "Nova publicació" @@ -3662,8 +3679,8 @@ msgstr "Notícies" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3703,7 +3720,7 @@ msgstr "No hi ha panell de DNS" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "No s'han trobat GIF destacats. Pot haver-hi un problema amb Tenor." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "Ja no segueixes a {0}" @@ -3715,7 +3732,7 @@ msgstr "No pot tenir més de 253 caràcters" msgid "No messages yet" msgstr "Encara no tens cap missatge" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "No hi ha més converses per a mostrar" @@ -3725,8 +3742,8 @@ msgstr "Encara no tens cap notificació" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "Ningú" @@ -3735,7 +3752,7 @@ msgstr "Ningú" msgid "No result" msgstr "Cap resultat" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "Cap resultat" @@ -3807,15 +3824,15 @@ msgstr "Nota sobre compartir" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky és una xarxa oberta i pública. Aquesta configuració tan sols limita el teu contingut a l'aplicació de Bluesky i a la web, altres aplicacions poden no respectar-ho. El teu contingut pot ser mostrat a usuaris no connectats per altres aplicacions i webs." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "Aquí no hi ha res" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "Sons de les notificacions" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "Sons de les notificacions" @@ -3900,7 +3917,7 @@ msgid "Oops, something went wrong!" msgstr "Ostres, alguna cosa ha anat malament!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "Ostres!" @@ -3917,8 +3934,8 @@ msgstr "Obre el creador d'avatars" #~ msgid "Open content filtering settings" #~ msgstr "Obre la configuració del filtre de contingut" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "Obre les opcions de les converses" @@ -3931,7 +3948,7 @@ msgstr "Obre el selector d'emojis" msgid "Open feed options menu" msgstr "Obre el menú de les opcions del canal" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "Obre els enllaços al navegador de l'aplicació" @@ -3955,12 +3972,12 @@ msgstr "Obre la navegació" msgid "Open post options menu" msgstr "Obre el menú de les opcions de publicació" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "Obre la pàgina d'historial" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "Obre el registre del sistema" @@ -3984,6 +4001,10 @@ msgstr "Obre una llista expandida d'usuaris en aquesta notificació" msgid "Opens camera on device" msgstr "Obre la càmera del dispositiu" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "Obre el compositor" @@ -4000,7 +4021,7 @@ msgstr "Obre la galeria fotogràfica del dispositiu" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Obre l'editor del perfil per a editar el nom, avatar, imatge de fons i descripció" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "Obre la configuració per les incrustacions externes" @@ -4034,7 +4055,7 @@ msgstr "Obre el diàleg per a triar GIF" msgid "Opens list of invite codes" msgstr "Obre la llista de codis d'invitació" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Obre el modal per a la confirmació de l'eliminació del compte. Requereix codi de correu electrònic" @@ -4042,19 +4063,19 @@ msgstr "Obre el modal per a la confirmació de l'eliminació del compte. Requere #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Obre el modal per a confirmar l'eliminació del compte. Requereix un codi de correu" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "Obre el modal per a canviar la contrasenya de Bluesky" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Obre el modal per a triar un nou identificador de Bluesky" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Obre el modal per a baixar les dades del vostre compte Bluesky (repositori)" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "Obre el modal per a verificar el correu" @@ -4066,7 +4087,7 @@ msgstr "Obre el modal per a utilitzar un domini personalitzat" msgid "Opens moderation settings" msgstr "Obre la configuració de la moderació" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "Obre el formulari de restabliment de la contrasenya" @@ -4079,7 +4100,7 @@ msgstr "Obre pantalla per a editar els canals desats" msgid "Opens screen with all saved feeds" msgstr "Obre la pantalla amb tots els canals desats" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "Obre la configuració de les contrasenyes d'aplicació" @@ -4103,12 +4124,12 @@ msgstr "Obre la web enllaçada" #~ msgid "Opens the message settings page" #~ msgstr "Obre la pàgina de configuració dels missatges" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "Obre la pàgina de l'historial" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "Obre la pàgina de registres del sistema" @@ -4121,7 +4142,7 @@ msgid "Option {0} of {numItems}" msgstr "Opció {0} de {numItems}" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "Opcionalment, proporciona informació addicional a continuació:" @@ -4158,7 +4179,7 @@ msgstr "Pàgina no trobada" msgid "Page Not Found" msgstr "Pàgina no trobada" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -4272,7 +4293,7 @@ msgstr "Completa el captcha de verificació." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Confirma el teu correu abans de canviar-lo. Aquest és un requisit temporal mentre no s'afegeixin eines per a actualitzar el correu. Aviat no serà necessari." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Introdueix un nom per a la contrasenya de la vostra aplicació. No es permeten tot en espais." @@ -4280,11 +4301,11 @@ msgstr "Introdueix un nom per a la contrasenya de la vostra aplicació. No es pe #~ msgid "Please enter a phone number that can receive SMS text messages." #~ msgstr "Introdueix un telèfon que pugui rebre missatges SMS" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Introdueix un nom únic per aquesta contrasenya d'aplicació o fes servir un nom generat aleatòriament." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Introdueix una paraula, una etiqueta o una frase vàlida per a silenciar" @@ -4304,7 +4325,7 @@ msgstr "Introdueix el teu correu." msgid "Please enter your password as well:" msgstr "Introdueix la teva contrasenya també:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Explica per què creieu que aquesta etiqueta ha estat aplicada incorrectament per {0}" @@ -4351,7 +4372,7 @@ msgctxt "action" msgid "Post" msgstr "Publica" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "Publicació" @@ -4362,7 +4383,7 @@ msgstr "Publicació" #~ msgid "Post" #~ msgstr "Publicació" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "Publicació per {0}" @@ -4376,7 +4397,7 @@ msgstr "Publicació per @{0}" msgid "Post deleted" msgstr "Publicació eliminada" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Publicació oculta" @@ -4398,8 +4419,8 @@ msgstr "Idioma de la publicació" msgid "Post Languages" msgstr "Idiomes de les publicacions" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Publicació no trobada" @@ -4411,7 +4432,7 @@ msgstr "publicacions" msgid "Posts" msgstr "Publicacions" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "Les publicacions es poder silenciar segons el seu text, etiquetes o ambdues." @@ -4455,7 +4476,7 @@ msgstr "Idioma principal" msgid "Prioritize Your Follows" msgstr "Prioritza els usuaris que segueixes" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privacitat" @@ -4463,7 +4484,7 @@ msgstr "Privacitat" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de privacitat" @@ -4476,7 +4497,7 @@ msgstr "Xateja en privat amb altres usuaris." msgid "Processing..." msgstr "Processant…" -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "perfil" @@ -4493,7 +4514,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "Perfil actualitzat" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "Protegeix el teu compte verificant el teu correu." @@ -4567,11 +4588,11 @@ msgstr "Cerques recents" msgid "Reconnect" msgstr "Torna a connectar" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "Carrega les converses de nou" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4626,7 +4647,7 @@ msgstr "Elimina la imatge" msgid "Remove image preview" msgstr "Elimina la visualització prèvia de la imatge" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "Elimina la paraula silenciada de la teva llista" @@ -4702,7 +4723,7 @@ msgstr "Filtres de resposta" #~ msgstr "Resposta a <0/>" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Resposta a <0><1/>" @@ -4806,7 +4827,7 @@ msgstr "Republica o cita la publicació" msgid "Reposted By" msgstr "Republicat per" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "Republicat per {0}" @@ -4818,7 +4839,7 @@ msgstr "Republicat per {0}" #~ msgid "Reposted by <0/>" #~ msgstr "Republicada per <0/>" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "Republicat per <0><1/>" @@ -4826,7 +4847,7 @@ msgstr "Republicat per <0><1/>" msgid "reposted your post" msgstr "ha republicat la teva publicació" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Republicacions d'aquesta publicació" @@ -4873,8 +4894,8 @@ msgstr "Codi de restabliment" #~ msgid "Reset onboarding" #~ msgstr "Restableix la incorporació" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "Restableix l'estat de la incorporació" @@ -4886,20 +4907,20 @@ msgstr "Restableix la contrasenya" #~ msgid "Reset preferences" #~ msgstr "Restableix les preferències" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "Restableix l'estat de les preferències" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "Restableix l'estat de la incorporació" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "Restableix l'estat de les preferències" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "Torna a intentar iniciar sessió" @@ -4911,8 +4932,8 @@ msgstr "Torna a intentar l'última acció, que ha donat error" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4945,8 +4966,8 @@ msgstr "Torna a la pàgina anterior" #~ msgstr "ENTORN DE PROVES. Les publicacions i els comptes no són permanents." #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4959,7 +4980,7 @@ msgctxt "action" msgid "Save" msgstr "Desa" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Desa el text alternatiu" @@ -5192,7 +5213,7 @@ msgstr "Selecciona alguns d'aquests comptes per a seguir-los" msgid "Select the {emojiName} emoji as your avatar" msgstr "Selecciona el {emojiName} emoji com al teu avatar" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "Selecciona els serveis de moderació als quals voleu informar" @@ -5272,14 +5293,14 @@ msgid "Send feedback" msgstr "Envia comentari" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "Envia el missatge" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "Envia informe" @@ -5424,7 +5445,6 @@ msgstr "Estableix la relació d'aspecte de la imatge com a ampla" #~ msgstr "Estableix el servidor pel cient de Bluesky" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5488,7 +5508,7 @@ msgstr "Comparteix la web enllaçada" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -5520,10 +5540,14 @@ msgstr "Mostra la insígnia i filtra-ho dels canals" #~ msgid "Show embeds from {0}" #~ msgstr "Mostra els incrustats de {0}" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "Mostra seguidors semblants a {0}" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -5531,7 +5555,7 @@ msgstr "Mostra'n menys com aquest" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "Mostra més" @@ -5540,6 +5564,10 @@ msgstr "Mostra més" msgid "Show more like this" msgstr "Mostra'n més com aquest" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Mostra les publicacions dels meus canals" @@ -5589,7 +5617,7 @@ msgid "Show reposts in Following" msgstr "Mostra les republicacions al canal Seguint" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "Mostra el contingut" @@ -5617,7 +5645,7 @@ msgstr "Mostra les publicacions de {0} al teu canal" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -5743,7 +5771,7 @@ msgstr "Alguna cosa ha fallat, torna-ho a provar." #~ msgstr "Alguna cosa ha fallat. Comprova el teu correu i torna-ho a provar." #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "La teva sessió ha caducat. Torna a iniciar-la." @@ -5759,7 +5787,7 @@ msgstr "Ordena les respostes a la mateixa publicació per:" #~ msgid "Source:" #~ msgstr "Font:" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "Font: <0>{0}" @@ -5784,7 +5812,7 @@ msgstr "Quadrat" #~ msgid "Staging" #~ msgstr "Posada en escena" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "Comença un nou xat" @@ -5800,7 +5828,7 @@ msgstr "Comença a xatejar" #~ msgid "Status page" #~ msgstr "Pàgina d'estat" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "Pàgina d'estat" @@ -5821,12 +5849,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "L'emmagatzematge s'ha esborrat, cal que reinicieu l'aplicació ara." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Historial" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5896,11 +5924,11 @@ msgstr "Canvia en compte amb el que tens iniciada la sessió" msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "Registres del sistema" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "etiqueta" @@ -5934,7 +5962,7 @@ msgstr "Condicions" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5946,17 +5974,17 @@ msgstr "Condicions del servei" msgid "Terms used violate community standards" msgstr "Els termes utilitzats infringeixen els estàndards de la comunitat" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "text" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Camp d'introducció de text" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "Gràcies. El teu informe s'ha enviat." @@ -5968,7 +5996,7 @@ msgstr "Això conté els següents:" msgid "That handle is already taken." msgstr "Aquest identificador ja està agafat." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "El compte podrà interactuar amb tu després del desbloqueig." @@ -5989,11 +6017,11 @@ msgstr "La política de drets d'autoria ha estat traslladada a <0/>" msgid "The feed has been replaced with Discover." msgstr "S'ha canviat el canal per Discover." -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Les següents etiquetes s'han aplicat al teu compte." -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Les següents etiquetes s'han aplicat als teus continguts." @@ -6001,8 +6029,8 @@ msgstr "Les següents etiquetes s'han aplicat als teus continguts." msgid "The following steps will help customize your Bluesky experience." msgstr "Els següents passos t'ajudaran a personalitzar la teva experiència a Bluesky." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "És possible que la publicació s'hagi esborrat." @@ -6081,7 +6109,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Hi ha hagut un problema en obtenir les teves llistes. Toca aquí per a tornar-ho a provar." #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "S'ha produït un problema en enviar el teu informe. Comprova la teva connexió a Internet." @@ -6089,13 +6117,13 @@ msgstr "S'ha produït un problema en enviar el teu informe. Comprova la teva con msgid "There was an issue syncing your preferences with the server" msgstr "Hi ha hagut un problema en sincronitzar les teves preferències amb el servidor" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Hi ha hagut un problema en obtenir les teves contrasenyes d'aplicació" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -6146,7 +6174,7 @@ msgstr "Aquest compte ha sol·licitat que els usuaris estiguin registrats per a msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "Aquest compte està bloquejat per una o més de les teves llistes de moderació. Per desbloquejar-lo, visita les llistes directament i elimina aquest usuari." -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "Aquesta apel·lació s'enviarà a <0>{0}." @@ -6237,7 +6265,7 @@ msgstr "Aquesta etiqueta ha estat aplicada per l'autor." #~ msgid "This label was applied by you" #~ msgstr "Aquesta etiqueta ha estat aplicada per tu" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "Aquesta etiqueta ha estat aplicada per tu." @@ -6257,11 +6285,11 @@ msgstr "Aquesta llista està buida!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Aquest servei de moderació no està disponible. Mira a continuació per a obtenir més detalls. Si aquest problema persisteix, posa't en contacte amb nosaltres." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "Aquest nom ja està en ús" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "Aquesta publicació ha estat esborrada." @@ -6331,7 +6359,7 @@ msgstr "Aquest usuari no segueix a ningú." #~ msgid "This warning is only available for posts with media attached." #~ msgstr "Aquesta advertència només està disponible per publicacions amb contingut adjuntat." -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Això suprimirà {0} de les teves paraules silenciades. Sempre la pots tornar a afegir més tard." @@ -6368,7 +6396,7 @@ msgstr "Per informar d'una conversa, informa d'un dels seus missatges a través msgid "To whom would you like to send this report?" msgstr "A qui vols enviar aquest informe?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Commuta entre les opcions de paraules silenciades." @@ -6405,7 +6433,7 @@ msgstr "Torna-ho a provar" #~ msgid "Try again" #~ msgstr "Torna-ho a provar" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "Autenticació de dos factors" @@ -6427,7 +6455,7 @@ msgstr "Deixa de silenciar la llista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -6438,14 +6466,14 @@ msgstr "No es pot contactar amb el teu servei. Comprova la teva connexió a inte #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "Desbloqueja" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "Desbloqueja" @@ -6460,7 +6488,7 @@ msgstr "Desbloqueja el compte" msgid "Unblock Account" msgstr "Desbloqueja el compte" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "Vols desbloquejar el compte?" @@ -6481,7 +6509,7 @@ msgstr "Deixa de seguir" msgid "Unfollow" msgstr "Deixa de seguir" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "Deixa de seguir a {0}" @@ -6622,7 +6650,7 @@ msgstr "Puja de la biblioteca" msgid "Use a file on your server" msgstr "Utilitza un fitxer del teu servidor" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilitza les contrasenyes d'aplicació per a iniciar sessió en altres clients de Bluesky, sense haver de donar accés total al teu compte o contrasenya." @@ -6652,7 +6680,7 @@ msgstr "Utilitza els recomanats" msgid "Use the DNS panel" msgstr "Utilitza el panell de DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Utilitza-ho per a iniciar sessió a l'altra aplicació, juntament amb el teu identificador." @@ -6720,7 +6748,7 @@ msgstr "Llista d'usuaris actualitzada" msgid "User Lists" msgstr "Llistes d'usuaris" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "Nom d'usuari o correu" @@ -6734,8 +6762,8 @@ msgstr "usuaris seguits per <0/>" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "Els usuaris als que segueixo" @@ -6763,15 +6791,15 @@ msgstr "Valor:" msgid "Verify DNS Record" msgstr "Verifica els registres de DNS" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "Verifica el correu" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "Verifica el meu correu" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "Verifica el meu correu" @@ -6792,7 +6820,7 @@ msgstr "Verifica el teu correu" #~ msgid "Version {0}" #~ msgstr "Versió {0}" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "Versió {appVersion} {bundleInfo}" @@ -6816,7 +6844,7 @@ msgstr "Veure els detalls" msgid "View details for reporting a copyright violation" msgstr "Veure els detalls per a informar d'una infracció dels drets d'autor" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "Veure el fil de debat complet" @@ -6824,8 +6852,8 @@ msgstr "Veure el fil de debat complet" msgid "View information about these labels" msgstr "Mostra informació sobre aquestes etiquetes" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Veure el perfil" @@ -6886,7 +6914,7 @@ msgstr "Esperem que t'ho passis pipa. Recorda que Bluesky és:" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "Ja no hi ha més publicacions dels usuaris que segueixes. Aquí n'hi ha altres de <0/>." -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "Recomanem evitar les paraules habituals que apareixen en moltes publicacions, ja que pot provocar que no es mostri cap publicació." @@ -6918,7 +6946,7 @@ msgstr "T'informarem quan el teu compte estigui llest." msgid "We'll use this to help customize your experience." msgstr "Ho farem servir per a personalitzar la teva experiència." -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "Tenim problemes de xarxa, torna-ho a provar" @@ -6930,7 +6958,7 @@ msgstr "Ens fa molta il·lusió que t'uneixis a nosaltres!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Ho sentim, però no hem pogut resoldre aquesta llista. Si això continua, posa't en contacte amb el creador de la llista, @{handleOrDid}." -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Ho sentim, però no hem pogut carregar les teves paraules silenciades en aquest moment. Torna-ho a provar." @@ -6986,7 +7014,7 @@ msgid "Who can reply" msgstr "Qui hi pot respondre" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "Vaja!" @@ -7019,7 +7047,7 @@ msgid "Wide" msgstr "Amplada" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "Escriu un missatge" @@ -7079,6 +7107,10 @@ msgstr "Pots canviar aquests paràmetres més endavant." msgid "You can change this at any time." msgstr "Pots canviar-ho quan vulguis." +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -7104,7 +7136,7 @@ msgstr "No tens cap canal fixat." msgid "You don't have any saved feeds." msgstr "No tens cap canal desat." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Has bloquejat l'autor o has estat bloquejat per ell." @@ -7146,7 +7178,7 @@ msgstr "Has silenciat aquest usuari" #~ msgid "You have muted this user." #~ msgstr "Has silenciat aquest usuari." -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "Encara no tens cap conversa. Comença'n una!" @@ -7171,7 +7203,7 @@ msgstr "Encara no has bloquejat cap compte. Per a bloquejar un compte, ves al se #~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." #~ msgstr "Encara no has bloquejat cap compte. Per a fer-ho, ves al seu perfil i selecciona \"Bloqueja el compte\" en el menú del seu compte." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Encara no has creat cap contrasenya d'aplicació. Pots fer-ho amb el botó d'aquí sota." @@ -7187,15 +7219,15 @@ msgstr "Encara no has silenciat cap compte. per a silenciar un compte, ves al se msgid "You have reached the end" msgstr "Has arribat al final" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Encara no has silenciat cap paraula ni etiqueta" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "Pots apel·lar les etiquetes que no són pròpies si creus que s'han col·locat per error." -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Pots apel·lar aquestes etiquetes si creus que s'han col·locat per error." @@ -7211,7 +7243,7 @@ msgstr "Has de tenir 13 anys o més per a registrar-te" msgid "You must be 18 years or older to enable adult content" msgstr "Has de tenir 18 anys o més per a habilitar el contingut per a adults" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "Has d'escollir almenys un etiquetador per a un informe" @@ -7322,7 +7354,7 @@ msgstr "El teu identificador complet serà <0>@{0}" #~ msgid "Your invite codes are hidden when logged in using an App Password" #~ msgstr "Els teus codis d'invitació no es mostren quan has iniciat sessió amb una contrasenya d'aplicació" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "Les teves paraules silenciades" diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 074153caab..a9d323a0ba 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -41,12 +41,12 @@ msgstr "" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" @@ -55,7 +55,7 @@ msgstr "" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "" @@ -71,7 +71,7 @@ msgstr "" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" @@ -95,7 +95,7 @@ msgstr "" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} folge ich" @@ -163,7 +163,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Ungültiger Handle" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "" @@ -202,9 +202,9 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "Konto" @@ -237,7 +237,7 @@ msgstr "Kontoeinstellungen" msgid "Account removed from quick access" msgstr "Konto aus dem Schnellzugriff entfernt" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "Konto entblockiert" @@ -250,7 +250,7 @@ msgstr "Konto entfolgt" msgid "Account unmuted" msgstr "Stummschaltung für Konto aufgehoben" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -271,12 +271,12 @@ msgstr "Einen Nutzer zu dieser Liste hinzufügen" msgid "Add account" msgstr "Konto hinzufügen" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Alt-Text hinzufügen" @@ -284,9 +284,9 @@ msgstr "Alt-Text hinzufügen" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "App-Passwort hinzufügen" @@ -307,11 +307,11 @@ msgstr "App-Passwort hinzufügen" #~ msgid "Add link card:" #~ msgstr "Link-Karte hinzufügen:" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "Stummgeschaltetes Wort für konfigurierte Einstellungen hinzufügen" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "Füge stummgeschaltete Wörter und Tags hinzu" @@ -368,7 +368,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "Erweitert" @@ -376,9 +376,19 @@ msgstr "Erweitert" msgid "All the feeds you've saved, right in one place." msgstr "All deine gespeicherten Feeds an einem Ort." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 @@ -390,13 +400,13 @@ msgstr "Hast du bereits einen Code?" msgid "Already signed in as @{0}" msgstr "Bereits angemeldet als @{0}" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -465,34 +475,34 @@ msgstr "Asoziales Verhalten" msgid "App Language" msgstr "App-Sprache" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "App-Passwort gelöscht" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "App-Passwortnamen dürfen nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche enthalten." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "App-Passwortnamen müssen mindestens 4 Zeichen lang sein." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "App-Passwort-Einstellungen" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "App-Passwörter" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "Kennzeichnung \"{0}\" anfechten" @@ -505,7 +515,7 @@ msgstr "Kennzeichnung \"{0}\" anfechten" #~ msgid "Appeal Content Warning" #~ msgstr "Inhaltswarnungseinspruch" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -534,7 +544,7 @@ msgstr "Erscheinungsbild" msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Bist du sicher, dass du das App-Passwort \"{name}\" löschen möchtest?" @@ -562,7 +572,7 @@ msgstr "Bist du sicher, dass du {0} von deinen Feeds entfernen möchtest?" msgid "Are you sure you'd like to discard this draft?" msgstr "Bist du sicher, dass du diesen Entwurf verwerfen möchtest?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "Bist du sicher?" @@ -587,14 +597,14 @@ msgid "At least 3 characters" msgstr "Mindestens 3 Zeichen" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -626,7 +636,7 @@ msgstr "Geburtstag" msgid "Birthday:" msgstr "Geburtstag:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "Blockieren" @@ -683,7 +693,7 @@ msgstr "Blockierte Konten können nicht in deinen Threads antworten, dich erwäh msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Blockierte Konten können nicht in deinen Threads antworten, dich erwähnen oder anderweitig mit dir interagieren. Du wirst ihre Inhalte nicht sehen und sie werden daran gehindert, deine zu sehen." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "Blockierter Beitrag." @@ -788,7 +798,7 @@ msgstr "von dir" msgid "Camera" msgstr "Kamera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Darf nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche enthalten. Muss mindestens 4 Zeichen lang sein, darf aber nicht länger als 32 Zeichen sein." @@ -865,12 +875,12 @@ msgctxt "action" msgid "Change" msgstr "Ändern" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "Handle ändern" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "Handle ändern" @@ -878,12 +888,12 @@ msgstr "Handle ändern" msgid "Change my email" msgstr "Meine E-Mail ändern" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "Passwort ändern" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "Passwort Ändern" @@ -912,10 +922,16 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "" @@ -937,7 +953,7 @@ msgstr "Meinen Status prüfen" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Schau dir einige empfohlene Nutzer an. Folge ihnen, um ähnliche Nutzer zu sehen." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "" @@ -978,19 +994,19 @@ msgstr "Wähle deine Haupt-Feeds" msgid "Choose your password" msgstr "Wähle dein Passwort" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "Alle alten Speicherdaten löschen" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "Alle alten Speicherdaten löschen (danach neu starten)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "Alle Speicherdaten löschen" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "Alle Speicherdaten löschen (danach neu starten)" @@ -999,11 +1015,11 @@ msgstr "Alle Speicherdaten löschen (danach neu starten)" msgid "Clear search query" msgstr "Suchanfrage löschen" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "" @@ -1036,7 +1052,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1189,7 +1205,7 @@ msgstr "Bestätige dein Alter:" msgid "Confirm your birthdate" msgstr "Bestätige dein Geburtsdatum" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1199,7 +1215,7 @@ msgstr "Bestätige dein Geburtsdatum" msgid "Confirmation code" msgstr "Bestätigungscode" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "Verbinden..." @@ -1282,7 +1298,7 @@ msgstr "Weiter zum nächsten Schritt" msgid "Continue to the next step without following any accounts" msgstr "Fahre mit dem nächsten Schritt fort, ohne Konten zu folgen" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "" @@ -1290,7 +1306,7 @@ msgstr "" msgid "Cooking" msgstr "Kochen" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Kopiert" @@ -1300,7 +1316,7 @@ msgid "Copied build version to clipboard" msgstr "Die Build-Version wurde in die Zwischenablage kopiert" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1311,11 +1327,11 @@ msgstr "In die Zwischenablage kopiert" msgid "Copied!" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Kopiert das App-Passwort" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Kopieren" @@ -1402,7 +1418,7 @@ msgstr "" msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "App-Passwort erstellen" @@ -1415,7 +1431,7 @@ msgstr "Neues Konto erstellen" msgid "Create report for {0}" msgstr "Meldung für {0} erstellen" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Erstellt {0}" @@ -1470,7 +1486,7 @@ msgstr "Dunkles Thema" msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "" @@ -1480,12 +1496,12 @@ msgstr "Debug-Panel" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "Löschen" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "Konto löschen" @@ -1497,16 +1513,16 @@ msgstr "Konto löschen" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "App-Passwort löschen" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "App-Passwort löschen?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "" @@ -1530,7 +1546,7 @@ msgstr "" msgid "Delete my account" msgstr "Mein Konto löschen" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "Mein Konto Löschen…" @@ -1551,11 +1567,11 @@ msgstr "Diesen Beitrag löschen?" msgid "Deleted" msgstr "Gelöscht" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "Gelöschter Beitrag." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "" @@ -1566,7 +1582,7 @@ msgstr "" msgid "Description" msgstr "Beschreibung" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "" @@ -1605,8 +1621,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Deaktiviert" @@ -1673,8 +1689,8 @@ msgstr "Domain verifiziert!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1794,12 +1810,12 @@ msgid "Edit my profile" msgstr "Mein Profil bearbeiten" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "Profil bearbeiten" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "Profil bearbeiten" @@ -1906,8 +1922,8 @@ msgstr "Aktiviere diese Einstellung, um nur Antworten von Personen zu sehen, den msgid "Enable this source only" msgstr "Nur von dieser Seite erlauben" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Aktiviert" @@ -1920,7 +1936,7 @@ msgstr "Ende des Feeds" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Gebe einen Namen für dieses App-Passwort ein" @@ -1928,8 +1944,8 @@ msgstr "Gebe einen Namen für dieses App-Passwort ein" msgid "Enter a password" msgstr "Gib ein Passwort ein" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "Gib ein Wort oder einen Tag ein" @@ -1993,8 +2009,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "" @@ -2044,12 +2060,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "Exportiere meine Daten" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "Exportiere meine Daten" @@ -2065,16 +2081,16 @@ msgstr "Externe Medien können es Websites ermöglichen, Informationen über dic #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "Externe Medienpräferenzen" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "Externe Medienpräferenzen" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "Das App-Passwort konnte nicht erstellt werden." @@ -2119,13 +2135,13 @@ msgstr "" #~ msgid "Failed to send message(s)." #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "" @@ -2231,10 +2247,10 @@ msgstr "Horizontal drehen" msgid "Flip vertically" msgstr "Vertikal drehen" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2246,7 +2262,7 @@ msgid "Follow" msgstr "Folgen" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "{0} folgen" @@ -2293,9 +2309,9 @@ msgstr "folgte dir" msgid "Followers" msgstr "Follower" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2304,7 +2320,7 @@ msgstr "Follower" msgid "Following" msgstr "Folge ich" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "ich folge {0}" @@ -2336,7 +2352,7 @@ msgstr "Essen" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Aus Sicherheitsgründen müssen wir dir einen Bestätigungscode an deine E-Mail-Adresse schicken." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Aus Sicherheitsgründen kannst du dies nicht erneut ansehen. Wenn du dieses Passwort verlierst, musst du ein neues generieren." @@ -2353,11 +2369,11 @@ msgstr "Aus Sicherheitsgründen kannst du dies nicht erneut ansehen. Wenn du die msgid "Forgot Password" msgstr "Passwort vergessen" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "Passwort vergessen?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "Vergessen?" @@ -2369,7 +2385,7 @@ msgstr "Postet oft unerwünschte Inhalte" msgid "From @{sanitizedAuthor}" msgstr "Von @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "Aus <0/>" @@ -2417,7 +2433,7 @@ msgstr "Gehe zurück" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2437,7 +2453,7 @@ msgstr "" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Gehe zu @{queryMaybeHandle}" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "" @@ -2503,13 +2519,13 @@ msgstr "Hier sind einige beliebte thematische Feeds. Du kannst so vielen folgen, msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "Hier sind einige thematische Feeds, die auf deinen Interessen basieren: {interestsText}. Du kannst so vielen Feeds folgen, wie du möchtest." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Hier ist dein App-Passwort." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2531,7 +2547,7 @@ msgid "Hide post" msgstr "Beitrag ausblenden" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "Den Inhalt ausblenden" @@ -2588,7 +2604,7 @@ msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2649,7 +2665,7 @@ msgstr "Illegal und dringend" msgid "Image" msgstr "Bild" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Bild-Alt-Text" @@ -2682,7 +2698,7 @@ msgstr "Bestätigungscode für die Kontolöschung eingeben" #~ msgid "Input invite code to proceed" #~ msgstr "Einladungscode eingeben, um fortzufahren" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Namen für das App-Passwort eingeben" @@ -2694,19 +2710,19 @@ msgstr "Neues Passwort eingeben" msgid "Input password for account deletion" msgstr "Passwort für die Kontolöschung eingeben" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "Passwort, das an {identifier} gebunden ist, eingeben" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "Benutzernamen oder E-Mail-Adresse eingeben, die du bei der Anmeldung verwendet hast" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "Gib dein Passwort ein" @@ -2722,16 +2738,16 @@ msgstr "Gib deinen Handle ein" msgid "Introducing Direct Messages" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Ungültiger oder nicht unterstützter Beitragrekord" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "Ungültiger Benutzername oder Passwort" @@ -2791,11 +2807,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" @@ -2838,7 +2854,7 @@ msgstr "Mehr erfahren" msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Erfahre mehr über diese Warnung" @@ -2949,7 +2965,7 @@ msgstr "hat deinen Beitrag geliked" msgid "Likes" msgstr "Likes" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Likes für diesen Beitrag" @@ -3012,7 +3028,7 @@ msgid "Load new notifications" msgstr "Neue Mitteilungen laden" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -3069,7 +3085,7 @@ msgstr "" msgid "Make sure this is where you intend to go!" msgstr "Vergewissere dich, dass du auch wirklich dorthin gehen willst!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "Verwalte deine stummgeschalteten Wörter und Tags" @@ -3109,6 +3125,7 @@ msgid "Message {0}" msgstr "" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "" @@ -3121,18 +3138,18 @@ msgid "Message input field" msgstr "" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" @@ -3249,11 +3266,11 @@ msgstr "Alle {displayTag}-Beiträge stummschalten" msgid "Mute conversation" msgstr "" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "Nur in Tags stummschalten" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "In Text und Tags stummschalten" @@ -3274,11 +3291,11 @@ msgstr "Diese Konten stummschalten?" #~ msgid "Mute this List" #~ msgstr "Diese Liste stummschalten" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "Dieses Wort in Beitragstexten und Tags stummschalten" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "Dieses Wort nur in Tags stummschalten" @@ -3346,7 +3363,7 @@ msgstr "Meine gespeicherten Feeds" #~ msgid "my-server.com" #~ msgstr "mein-server.de" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "Name" @@ -3366,7 +3383,7 @@ msgid "Nature" msgstr "Natur" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Navigiert zum nächsten Bildschirm" @@ -3411,8 +3428,8 @@ msgid "New" msgstr "Neu" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" @@ -3432,7 +3449,7 @@ msgstr "Neues Passwort" msgid "New Password" msgstr "Neues Passwort" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "Neuer Beitrag" @@ -3466,8 +3483,8 @@ msgstr "Aktuelles" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3507,7 +3524,7 @@ msgstr "" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "{0} wird nicht mehr gefolgt" @@ -3519,7 +3536,7 @@ msgstr "Nicht länger als 253 Zeichen" msgid "No messages yet" msgstr "" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "" @@ -3529,8 +3546,8 @@ msgstr "Noch keine Mitteilungen!" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "" @@ -3539,7 +3556,7 @@ msgstr "" msgid "No result" msgstr "Kein Ergebnis" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "" @@ -3611,15 +3628,15 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Hinweis: Bluesky ist ein offenes und öffentliches Netzwerk. Diese Einstellung schränkt lediglich die Sichtbarkeit deiner Inhalte in der Bluesky-App und auf der Website ein. Andere Apps respektieren diese Einstellung möglicherweise nicht. Deine Inhalte werden abgemeldeten Nutzern möglicherweise weiterhin in anderen Apps und Websites angezeigt." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "" @@ -3704,7 +3721,7 @@ msgid "Oops, something went wrong!" msgstr "Ups, da ist etwas schief gelaufen!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "Huch!" @@ -3721,8 +3738,8 @@ msgstr "" #~ msgid "Open content filtering settings" #~ msgstr "Inhaltsfiltereinstellungen öffnen" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "" @@ -3735,7 +3752,7 @@ msgstr "Emoji-Picker öffnen" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "Links mit In-App-Browser öffnen" @@ -3759,12 +3776,12 @@ msgstr "Navigation öffnen" msgid "Open post options menu" msgstr "Beitragsoptionsmenü öffnen" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "Geschichtenbuch öffnen" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "" @@ -3788,6 +3805,10 @@ msgstr "Öffnet eine erweiterte Liste der Benutzer in dieser Mitteilung" msgid "Opens camera on device" msgstr "Öffnet die Kamera auf dem Gerät" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "Öffnet den Beitragsverfasser" @@ -3804,7 +3825,7 @@ msgstr "Öffnet die Gerätefotogalerie" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Öffnet den Editor für Profilanzeige, Avatar, Hintergrundbild und Beschreibung" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "Öffnet die Einstellungen für externe eingebettete Medien" @@ -3834,7 +3855,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Öffnet die Liste der Einladungscodes" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3842,19 +3863,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Öffnet ein Modal, um die Löschung des Kontos zu bestätigen. Erfordert einen E-Mail-Code." -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "" @@ -3866,7 +3887,7 @@ msgstr "Öffnet das Modal für die Verwendung einer benutzerdefinierten Domain" msgid "Opens moderation settings" msgstr "Öffnet die Moderationseinstellungen" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "Öffnet das Formular zum Zurücksetzen des Passworts" @@ -3879,7 +3900,7 @@ msgstr "Öffnet den Bildschirm zum Bearbeiten gespeicherten Feeds" msgid "Opens screen with all saved feeds" msgstr "Öffnet den Bildschirm mit allen gespeicherten Feeds" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "" @@ -3903,12 +3924,12 @@ msgstr "" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "Öffnet die Geschichtenbuch" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "Öffnet die Systemprotokollseite" @@ -3921,7 +3942,7 @@ msgid "Option {0} of {numItems}" msgstr "Option {0} von {numItems}" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "" @@ -3954,7 +3975,7 @@ msgstr "Seite nicht gefunden" msgid "Page Not Found" msgstr "Seite nicht gefunden" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -4064,15 +4085,15 @@ msgstr "Bitte fülle das Verifizierungs-Captcha aus." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Bitte bestätige deine E-Mail, bevor du sie änderst. Dies ist eine vorübergehende Anforderung, während E-Mail-Aktualisierungstools hinzugefügt werden, und wird bald wieder entfernt." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Bitte gib einen Namen für dein App-Passwort ein. Nur Leerzeichen sind nicht erlaubt." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Bitte gib einen eindeutigen Namen für dieses App-Passwort ein oder verwende unseren zufällig generierten Namen." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Bitte gib ein gültiges Wort, einen Tag oder eine Phrase zum Stummschalten ein" @@ -4084,7 +4105,7 @@ msgstr "Bitte gib deine E-Mail ein." msgid "Please enter your password as well:" msgstr "Bitte gib auch dein Passwort ein:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -4128,12 +4149,12 @@ msgctxt "action" msgid "Post" msgstr "Beitrag" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "Beitrag" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "Beitrag von {0}" @@ -4147,7 +4168,7 @@ msgstr "Beitrag von @{0}" msgid "Post deleted" msgstr "Beitrag gelöscht" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Beitrag ausgeblendet" @@ -4169,8 +4190,8 @@ msgstr "Beitragssprache" msgid "Post Languages" msgstr "Beitragssprachen" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Beitrag nicht gefunden" @@ -4182,7 +4203,7 @@ msgstr "Beiträge" msgid "Posts" msgstr "Beiträge" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "Beiträge können basierend auf ihrem Text, ihren Tags oder beidem stummgeschaltet werden." @@ -4226,7 +4247,7 @@ msgstr "Primäre Sprache" msgid "Prioritize Your Follows" msgstr "Priorisiere deine Follower" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privatsphäre" @@ -4234,7 +4255,7 @@ msgstr "Privatsphäre" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Datenschutzerklärung" @@ -4247,7 +4268,7 @@ msgstr "" msgid "Processing..." msgstr "Wird bearbeitet..." -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "" @@ -4264,7 +4285,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil aktualisiert" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "Schütze dein Konto, indem du deine E-Mail bestätigst." @@ -4334,11 +4355,11 @@ msgstr "" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4393,7 +4414,7 @@ msgstr "Bild entfernen" msgid "Remove image preview" msgstr "Bildvorschau entfernen" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "Stummgeschaltetes Wort aus deiner Liste entfernen" @@ -4469,7 +4490,7 @@ msgstr "Antwortfilter" #~ msgstr "Antwort an <0/>" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" @@ -4569,7 +4590,7 @@ msgstr "Reposten oder Beitrag zitieren" msgid "Reposted By" msgstr "Repostet von" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "Repostet von {0}" @@ -4577,7 +4598,7 @@ msgstr "Repostet von {0}" #~ msgid "Reposted by <0/>" #~ msgstr "Repostet von <0/>" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "" @@ -4585,7 +4606,7 @@ msgstr "" msgid "reposted your post" msgstr "hat deinen Beitrag repostet" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Reposts von diesem Beitrag" @@ -4628,8 +4649,8 @@ msgstr "Code zurücksetzen" #~ msgid "Reset onboarding" #~ msgstr "Onboarding zurücksetzen" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "Onboarding-Status zurücksetzen" @@ -4641,20 +4662,20 @@ msgstr "Passwort zurücksetzen" #~ msgid "Reset preferences" #~ msgstr "Einstellungen zurücksetzen" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "Einstellungen zurücksetzen" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "Setzt den Onboarding-Status zurück" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "Einstellungen zurücksetzen" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "Versucht die Anmeldung erneut" @@ -4666,8 +4687,8 @@ msgstr "Wiederholung der letzten Aktion, bei der ein Fehler aufgetreten ist" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4696,8 +4717,8 @@ msgid "Returns to previous page" msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4710,7 +4731,7 @@ msgctxt "action" msgid "Save" msgstr "Speichern" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Alt-Text speichern" @@ -4923,7 +4944,7 @@ msgstr "Wähle unten einige Konten aus, denen du folgen möchtest" msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4995,14 +5016,14 @@ msgid "Send feedback" msgstr "Feedback senden" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "" @@ -5143,7 +5164,6 @@ msgstr "" #~ msgstr "Setzt den Server für den Bluesky-Client" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5207,7 +5227,7 @@ msgstr "" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -5239,10 +5259,14 @@ msgstr "" #~ msgid "Show embeds from {0}" #~ msgstr "Eingebettete Medien von {0} anzeigen" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "Zeige ähnliche Konten wie {0}" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -5250,7 +5274,7 @@ msgstr "" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "Mehr anzeigen" @@ -5259,6 +5283,10 @@ msgstr "Mehr anzeigen" msgid "Show more like this" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Beiträge aus meinen Feeds anzeigen" @@ -5308,7 +5336,7 @@ msgid "Show reposts in Following" msgstr "Reposts im Following-Feed anzeigen" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "Den Inhalt anzeigen" @@ -5336,7 +5364,7 @@ msgstr "Zeigt Beiträge von {0} in deinem Feed" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -5450,7 +5478,7 @@ msgstr "" #~ msgstr "Es ist ein Fehler aufgetreten." #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "Entschuldigung! Deine Sitzung ist abgelaufen. Bitte logge dich erneut ein." @@ -5466,7 +5494,7 @@ msgstr "Antworten auf denselben Beitrag sortieren nach:" #~ msgid "Source:" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "" @@ -5487,7 +5515,7 @@ msgstr "Sport" msgid "Square" msgstr "Quadratische" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "" @@ -5503,7 +5531,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Status-Seite" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "" @@ -5524,12 +5552,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Der Speicher wurde gelöscht, du musst die App jetzt neu starten." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Geschichtenbuch" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5595,11 +5623,11 @@ msgstr "Wechselt das Konto, in das du eingeloggt bist" msgid "System" msgstr "System" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "Systemprotokoll" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "Tag" @@ -5629,7 +5657,7 @@ msgstr "Bedingungen" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5641,17 +5669,17 @@ msgstr "Nutzungsbedingungen" msgid "Terms used violate community standards" msgstr "" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "Text" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Text-Eingabefeld" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "" @@ -5663,7 +5691,7 @@ msgstr "" msgid "That handle is already taken." msgstr "Dieser Handle ist bereits besetzt." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Das Konto kann nach der Entblockiert mit dir interagieren." @@ -5684,11 +5712,11 @@ msgstr "Die Copyright-Richtlinie wurde nach <0/> verschoben" msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5696,8 +5724,8 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "Die folgenden Schritte helfen dir, dein Bluesky-Erlebnis anzupassen." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Möglicherweise wurde der Post gelöscht." @@ -5772,7 +5800,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Es gab ein Problem beim Abrufen deiner Listen. Tippe hier, um es erneut zu versuchen." #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" @@ -5780,13 +5808,13 @@ msgstr "" msgid "There was an issue syncing your preferences with the server" msgstr "Es gab ein Problem bei der Synchronisierung deiner Einstellungen mit dem Server" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Es gab ein Problem beim Abrufen deiner App-Passwörter" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5830,7 +5858,7 @@ msgstr "Dieses Konto hat die Benutzer aufgefordert, sich anzumelden, um dein Pro msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -5917,7 +5945,7 @@ msgstr "" #~ msgid "This label was applied by you" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "" @@ -5937,11 +5965,11 @@ msgstr "Diese Liste ist leer!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "Dieser Name ist bereits in Gebrauch" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "Dieser Beitrag wurde gelöscht." @@ -6007,7 +6035,7 @@ msgstr "" #~ msgid "This warning is only available for posts with media attached." #~ msgstr "Diese Warnung ist nur für Beiträge mit angehängten Medien verfügbar." -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Dies wird {0} aus deinen stummgeschalteten Wörtern löschen. Du kannst es später jederzeit wieder hinzufügen." @@ -6044,7 +6072,7 @@ msgstr "" msgid "To whom would you like to send this report?" msgstr "" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Zwischen den Optionen für stummgeschaltete Wörter wechseln." @@ -6077,7 +6105,7 @@ msgctxt "action" msgid "Try again" msgstr "Erneut versuchen" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "" @@ -6099,7 +6127,7 @@ msgstr "Stummschaltung von Liste aufheben" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -6110,14 +6138,14 @@ msgstr "Es ist uns nicht gelungen, deinen Dienst zu kontaktieren. Bitte überpr #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "Entblocken" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "Entblocken" @@ -6132,7 +6160,7 @@ msgstr "" msgid "Unblock Account" msgstr "Konto entblocken" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "" @@ -6153,7 +6181,7 @@ msgstr "Nicht mehr folgen" msgid "Unfollow" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "{0} nicht mehr folgen" @@ -6290,7 +6318,7 @@ msgstr "" msgid "Use a file on your server" msgstr "" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Verwende App-Passwörter, um dich bei anderen Bluesky-Clients anzumelden, ohne dass du vollen Zugriff auf deinen Account oder Passwort hast." @@ -6320,7 +6348,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Verwenden dies, um dich mit deinem Handle bei der anderen App einzuloggen." @@ -6384,7 +6412,7 @@ msgstr "Benutzerliste aktualisiert" msgid "User Lists" msgstr "Benutzerlisten" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "Benutzername oder E-Mail-Adresse" @@ -6398,8 +6426,8 @@ msgstr "Nutzer gefolgt von <0/>" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "" @@ -6423,15 +6451,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "E-Mail bestätigen" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "Meine E-Mail bestätigen" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "Meine E-Mail bestätigen" @@ -6452,7 +6480,7 @@ msgstr "Überprüfe deine E-Mail" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6476,7 +6504,7 @@ msgstr "" msgid "View details for reporting a copyright violation" msgstr "" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "Vollständigen Thread ansehen" @@ -6484,8 +6512,8 @@ msgstr "Vollständigen Thread ansehen" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Profil ansehen" @@ -6546,7 +6574,7 @@ msgstr "Wir hoffen, dass du eine schöne Zeit hast. Denke daran, Bluesky ist:" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "Wir haben keine Beiträge mehr von den Konten, denen du folgst. Hier ist das Neueste von <0/>." -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "Wir empfehlen, gebräuchliche Wörter zu vermeiden, die in vielen Beiträgen vorkommen, da dies dazu führen kann, dass keine Beiträge angezeigt werden." @@ -6578,7 +6606,7 @@ msgstr "Wir werden dich benachrichtigen, wenn dein Konto bereit ist." msgid "We'll use this to help customize your experience." msgstr "Wir verwenden diese Informationen, um dein Erlebnis individuell zu gestalten." -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "" @@ -6590,7 +6618,7 @@ msgstr "Wir freuen uns sehr, dass du dabei bist!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Es tut uns leid, aber wir waren nicht in der Lage, diese Liste aufzulösen. Wenn das Problem weiterhin besteht, kontaktiere bitte den Ersteller der Liste, @{handleOrDid}." -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Es tut uns leid, aber wir konnten deine stummgeschalteten Wörter nicht laden. Bitte versuche es erneut." @@ -6643,7 +6671,7 @@ msgid "Who can reply" msgstr "Wer antworten kann" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" @@ -6676,7 +6704,7 @@ msgid "Wide" msgstr "Breit" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "" @@ -6728,6 +6756,10 @@ msgstr "Du kannst diese Einstellungen später ändern." msgid "You can change this at any time." msgstr "" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6753,7 +6785,7 @@ msgstr "Du hast keine angehefteten Feeds." msgid "You don't have any saved feeds." msgstr "Du hast keine gespeicherten Feeds." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Du hast den Verfasser blockiert oder du wurdest vom Verfasser blockiert." @@ -6795,7 +6827,7 @@ msgstr "" #~ msgid "You have muted this user." #~ msgstr "Du hast diesen Benutzer stummgeschaltet." -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "" @@ -6820,7 +6852,7 @@ msgstr "" #~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." #~ msgstr "Du hast noch keine Konten blockiert. Um ein Konto zu blockieren, gehe auf dessen Profil und wähle \"Konto blockieren\" aus dem Menü des Kontos aus." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Du hast noch keine App-Passwörter erstellt. Du kannst eines erstellen, indem du auf die Schaltfläche unten klickst." @@ -6836,15 +6868,15 @@ msgstr "" msgid "You have reached the end" msgstr "" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Du hast noch keine Wörter oder Tags stummgeschaltet" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" @@ -6860,7 +6892,7 @@ msgstr "" msgid "You must be 18 years or older to enable adult content" msgstr "Du musst 18 Jahre oder älter sein, um Inhalte für Erwachsene zu aktivieren." -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "" @@ -6957,7 +6989,7 @@ msgstr "Dein vollständiger Handle lautet" msgid "Your full handle will be <0>@{0}" msgstr "Dein vollständiger Handle lautet <0>@{0}" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "Deine stummgeschalteten Wörter" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index d77d2f62c3..36a7c5d458 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -41,12 +41,12 @@ msgstr "" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" @@ -55,7 +55,7 @@ msgstr "" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "" @@ -71,7 +71,7 @@ msgstr "" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" @@ -95,7 +95,7 @@ msgstr "" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "" @@ -163,7 +163,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "" @@ -194,9 +194,9 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "" @@ -229,7 +229,7 @@ msgstr "" msgid "Account removed from quick access" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "" @@ -242,7 +242,7 @@ msgstr "" msgid "Account unmuted" msgstr "" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -263,12 +263,12 @@ msgstr "" msgid "Add account" msgstr "" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "" @@ -276,9 +276,9 @@ msgstr "" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "" @@ -290,11 +290,11 @@ msgstr "" #~ msgid "Add link card:" #~ msgstr "" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "" @@ -347,7 +347,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "" @@ -355,9 +355,19 @@ msgstr "" msgid "All the feeds you've saved, right in one place." msgstr "" +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 @@ -369,13 +379,13 @@ msgstr "" msgid "Already signed in as @{0}" msgstr "" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -444,38 +454,38 @@ msgstr "" msgid "App Language" msgstr "" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -500,7 +510,7 @@ msgstr "" msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "" @@ -528,7 +538,7 @@ msgstr "" msgid "Are you sure you'd like to discard this draft?" msgstr "" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "" @@ -549,14 +559,14 @@ msgid "At least 3 characters" msgstr "" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -583,7 +593,7 @@ msgstr "" msgid "Birthday:" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "" @@ -636,7 +646,7 @@ msgstr "" msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "" @@ -737,7 +747,7 @@ msgstr "" msgid "Camera" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "" @@ -814,12 +824,12 @@ msgctxt "action" msgid "Change" msgstr "" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "" @@ -827,12 +837,12 @@ msgstr "" msgid "Change my email" msgstr "" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "" @@ -857,10 +867,16 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "" @@ -882,7 +898,7 @@ msgstr "" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "" @@ -919,19 +935,19 @@ msgstr "" msgid "Choose your password" msgstr "" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "" @@ -940,11 +956,11 @@ msgstr "" msgid "Clear search query" msgstr "" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "" @@ -977,7 +993,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1120,7 +1136,7 @@ msgstr "" msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1130,7 +1146,7 @@ msgstr "" msgid "Confirmation code" msgstr "" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "" @@ -1205,7 +1221,7 @@ msgstr "" msgid "Continue to the next step without following any accounts" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "" @@ -1213,7 +1229,7 @@ msgstr "" msgid "Cooking" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "" @@ -1223,7 +1239,7 @@ msgid "Copied build version to clipboard" msgstr "" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1234,11 +1250,11 @@ msgstr "" msgid "Copied!" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "" @@ -1321,7 +1337,7 @@ msgstr "" msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "" @@ -1334,7 +1350,7 @@ msgstr "" msgid "Create report for {0}" msgstr "" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "" @@ -1381,7 +1397,7 @@ msgstr "" msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "" @@ -1391,12 +1407,12 @@ msgstr "" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "" @@ -1408,16 +1424,16 @@ msgstr "" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "" @@ -1441,7 +1457,7 @@ msgstr "" msgid "Delete my account" msgstr "" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "" @@ -1462,11 +1478,11 @@ msgstr "" msgid "Deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "" -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "" @@ -1477,7 +1493,7 @@ msgstr "" msgid "Description" msgstr "" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "" @@ -1516,8 +1532,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "" @@ -1580,8 +1596,8 @@ msgstr "" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1693,12 +1709,12 @@ msgid "Edit my profile" msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "" @@ -1801,8 +1817,8 @@ msgstr "" msgid "Enable this source only" msgstr "" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "" @@ -1815,7 +1831,7 @@ msgstr "" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "" @@ -1823,8 +1839,8 @@ msgstr "" msgid "Enter a password" msgstr "" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "" @@ -1888,8 +1904,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "" @@ -1939,12 +1955,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "" @@ -1960,16 +1976,16 @@ msgstr "" #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "" @@ -2014,13 +2030,13 @@ msgstr "" #~ msgid "Failed to send message(s)." #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "" @@ -2126,10 +2142,10 @@ msgstr "" msgid "Flip vertically" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2141,7 +2157,7 @@ msgid "Follow" msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "" @@ -2188,9 +2204,9 @@ msgstr "" msgid "Followers" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2199,7 +2215,7 @@ msgstr "" msgid "Following" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "" @@ -2231,7 +2247,7 @@ msgstr "" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "" @@ -2240,11 +2256,11 @@ msgstr "" msgid "Forgot Password" msgstr "" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "" @@ -2256,7 +2272,7 @@ msgstr "" msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "" @@ -2304,7 +2320,7 @@ msgstr "" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2324,7 +2340,7 @@ msgstr "" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "" @@ -2390,13 +2406,13 @@ msgstr "" msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2418,7 +2434,7 @@ msgid "Hide post" msgstr "" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "" @@ -2471,7 +2487,7 @@ msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2532,7 +2548,7 @@ msgstr "" msgid "Image" msgstr "" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "" @@ -2552,7 +2568,7 @@ msgstr "" msgid "Input confirmation code for account deletion" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "" @@ -2564,19 +2580,19 @@ msgstr "" msgid "Input password for account deletion" msgstr "" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "" @@ -2592,16 +2608,16 @@ msgstr "" msgid "Introducing Direct Messages" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "" @@ -2661,11 +2677,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" @@ -2700,7 +2716,7 @@ msgstr "" msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "" @@ -2806,7 +2822,7 @@ msgstr "" msgid "Likes" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "" @@ -2864,7 +2880,7 @@ msgid "Load new notifications" msgstr "" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2921,7 +2937,7 @@ msgstr "" msgid "Make sure this is where you intend to go!" msgstr "" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "" @@ -2953,6 +2969,7 @@ msgid "Message {0}" msgstr "" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "" @@ -2965,18 +2982,18 @@ msgid "Message input field" msgstr "" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" @@ -3089,11 +3106,11 @@ msgstr "" msgid "Mute conversation" msgstr "" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "" @@ -3110,11 +3127,11 @@ msgstr "" msgid "Mute these accounts?" msgstr "" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "" @@ -3178,7 +3195,7 @@ msgstr "" msgid "My Saved Feeds" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "" @@ -3198,7 +3215,7 @@ msgid "Nature" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "" @@ -3234,8 +3251,8 @@ msgid "New" msgstr "" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" @@ -3255,7 +3272,7 @@ msgstr "" msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "" @@ -3289,8 +3306,8 @@ msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3330,7 +3347,7 @@ msgstr "" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "" @@ -3342,7 +3359,7 @@ msgstr "" msgid "No messages yet" msgstr "" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "" @@ -3352,8 +3369,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "" @@ -3362,7 +3379,7 @@ msgstr "" msgid "No result" msgstr "" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "" @@ -3434,15 +3451,15 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "" -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "" @@ -3523,7 +3540,7 @@ msgid "Oops, something went wrong!" msgstr "" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "" @@ -3536,8 +3553,8 @@ msgstr "" msgid "Open avatar creator" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "" @@ -3550,7 +3567,7 @@ msgstr "" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "" @@ -3570,12 +3587,12 @@ msgstr "" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "" @@ -3599,6 +3616,10 @@ msgstr "" msgid "Opens camera on device" msgstr "" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "" @@ -3611,7 +3632,7 @@ msgstr "" msgid "Opens device photo gallery" msgstr "" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "" @@ -3633,23 +3654,23 @@ msgstr "" msgid "Opens list of invite codes" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "" @@ -3661,7 +3682,7 @@ msgstr "" msgid "Opens moderation settings" msgstr "" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "" @@ -3674,7 +3695,7 @@ msgstr "" msgid "Opens screen with all saved feeds" msgstr "" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "" @@ -3690,12 +3711,12 @@ msgstr "" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "" @@ -3708,7 +3729,7 @@ msgid "Option {0} of {numItems}" msgstr "" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "" @@ -3741,7 +3762,7 @@ msgstr "" msgid "Page Not Found" msgstr "" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3851,15 +3872,15 @@ msgstr "" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "" -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "" @@ -3871,7 +3892,7 @@ msgstr "" msgid "Please enter your password as well:" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -3906,12 +3927,12 @@ msgctxt "action" msgid "Post" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "" @@ -3925,7 +3946,7 @@ msgstr "" msgid "Post deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "" @@ -3947,8 +3968,8 @@ msgstr "" msgid "Post Languages" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "" @@ -3960,7 +3981,7 @@ msgstr "" msgid "Posts" msgstr "" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "" @@ -4004,7 +4025,7 @@ msgstr "" msgid "Prioritize Your Follows" msgstr "" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "" @@ -4012,7 +4033,7 @@ msgstr "" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "" @@ -4025,7 +4046,7 @@ msgstr "" msgid "Processing..." msgstr "" -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "" @@ -4042,7 +4063,7 @@ msgstr "" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "" @@ -4112,11 +4133,11 @@ msgstr "" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4167,7 +4188,7 @@ msgstr "" msgid "Remove image preview" msgstr "" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "" @@ -4235,7 +4256,7 @@ msgstr "" #~ msgstr "" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" @@ -4331,7 +4352,7 @@ msgstr "" msgid "Reposted By" msgstr "" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "" @@ -4339,7 +4360,7 @@ msgstr "" #~ msgid "Reposted by <0/>" #~ msgstr "" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "" @@ -4347,7 +4368,7 @@ msgstr "" msgid "reposted your post" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "" @@ -4386,8 +4407,8 @@ msgstr "" msgid "Reset Code" msgstr "" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "" @@ -4395,20 +4416,20 @@ msgstr "" msgid "Reset password" msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "" @@ -4420,8 +4441,8 @@ msgstr "" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4450,8 +4471,8 @@ msgid "Returns to previous page" msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4464,7 +4485,7 @@ msgctxt "action" msgid "Save" msgstr "" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "" @@ -4672,7 +4693,7 @@ msgstr "" msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4740,14 +4761,14 @@ msgid "Send feedback" msgstr "" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "" @@ -4841,7 +4862,6 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4905,7 +4925,7 @@ msgstr "" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4933,10 +4953,14 @@ msgstr "" msgid "Show badge and filter from feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4944,7 +4968,7 @@ msgstr "" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "" @@ -4953,6 +4977,10 @@ msgstr "" msgid "Show more like this" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "" @@ -5002,7 +5030,7 @@ msgid "Show reposts in Following" msgstr "" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "" @@ -5026,7 +5054,7 @@ msgstr "" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -5122,7 +5150,7 @@ msgid "Something went wrong, please try again." msgstr "" #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "" @@ -5138,7 +5166,7 @@ msgstr "" #~ msgid "Source:" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "" @@ -5159,7 +5187,7 @@ msgstr "" msgid "Square" msgstr "" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "" @@ -5175,7 +5203,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "" @@ -5192,12 +5220,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5263,11 +5291,11 @@ msgstr "" msgid "System" msgstr "" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "" @@ -5297,7 +5325,7 @@ msgstr "" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5309,17 +5337,17 @@ msgstr "" msgid "Terms used violate community standards" msgstr "" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "" @@ -5331,7 +5359,7 @@ msgstr "" msgid "That handle is already taken." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "" @@ -5352,11 +5380,11 @@ msgstr "" msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5364,8 +5392,8 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "" @@ -5440,7 +5468,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" @@ -5448,13 +5476,13 @@ msgstr "" msgid "There was an issue syncing your preferences with the server" msgstr "" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5498,7 +5526,7 @@ msgstr "" msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -5581,7 +5609,7 @@ msgstr "" #~ msgid "This label was applied by you" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "" @@ -5601,11 +5629,11 @@ msgstr "" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "" @@ -5663,7 +5691,7 @@ msgstr "" #~ msgid "This warning is only available for posts with media attached." #~ msgstr "" -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" @@ -5696,7 +5724,7 @@ msgstr "" msgid "To whom would you like to send this report?" msgstr "" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "" @@ -5729,7 +5757,7 @@ msgctxt "action" msgid "Try again" msgstr "" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "" @@ -5751,7 +5779,7 @@ msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5762,14 +5790,14 @@ msgstr "" #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "" @@ -5784,7 +5812,7 @@ msgstr "" msgid "Unblock Account" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "" @@ -5805,7 +5833,7 @@ msgstr "" msgid "Unfollow" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "" @@ -5930,7 +5958,7 @@ msgstr "" msgid "Use a file on your server" msgstr "" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "" @@ -5960,7 +5988,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "" @@ -6020,7 +6048,7 @@ msgstr "" msgid "User Lists" msgstr "" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "" @@ -6034,8 +6062,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "" @@ -6059,15 +6087,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "" @@ -6088,7 +6116,7 @@ msgstr "" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6112,7 +6140,7 @@ msgstr "" msgid "View details for reporting a copyright violation" msgstr "" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "" @@ -6120,8 +6148,8 @@ msgstr "" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "" @@ -6178,7 +6206,7 @@ msgstr "" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "" -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "" @@ -6206,7 +6234,7 @@ msgstr "" msgid "We'll use this to help customize your experience." msgstr "" -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "" @@ -6218,7 +6246,7 @@ msgstr "" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "" -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" @@ -6267,7 +6295,7 @@ msgid "Who can reply" msgstr "" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" @@ -6300,7 +6328,7 @@ msgid "Wide" msgstr "" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "" @@ -6352,6 +6380,10 @@ msgstr "" msgid "You can change this at any time." msgstr "" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6377,7 +6409,7 @@ msgstr "" msgid "You don't have any saved feeds." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "" @@ -6415,7 +6447,7 @@ msgstr "" msgid "You have muted this user" msgstr "" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "" @@ -6436,7 +6468,7 @@ msgstr "" msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "" -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "" @@ -6448,15 +6480,15 @@ msgstr "" msgid "You have reached the end" msgstr "" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" @@ -6468,7 +6500,7 @@ msgstr "" msgid "You must be 18 years or older to enable adult content" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "" @@ -6565,7 +6597,7 @@ msgstr "" msgid "Your full handle will be <0>@{0}" msgstr "" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index 67e3e97242..8ffcf82d70 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -41,12 +41,12 @@ msgstr "" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" @@ -55,7 +55,7 @@ msgstr "" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "" @@ -71,7 +71,7 @@ msgstr "" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" @@ -95,7 +95,7 @@ msgstr "" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} siguiendo" @@ -151,7 +151,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Nombre de usuario inválido" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "Confirmación 2FA" @@ -182,9 +182,9 @@ msgstr "Ajustes de accesibilidad" #~ msgid "account" #~ msgstr "cuenta" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "Cuenta" @@ -217,7 +217,7 @@ msgstr "Opciones de cuenta" msgid "Account removed from quick access" msgstr "Cuenta elimada de acceso rápido" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "Cuenta desbloqueada" @@ -230,7 +230,7 @@ msgstr "Has dejado de seguir a esta cuenta" msgid "Account unmuted" msgstr "Cuenta demuteada" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -251,12 +251,12 @@ msgstr "Añadir cuenta a esta lista" msgid "Add account" msgstr "Añadir cuenta" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Añadir texto alternativo" @@ -264,17 +264,17 @@ msgstr "Añadir texto alternativo" #~ msgid "Add ALT text" #~ msgstr "Añadir texto alternativo" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Añadir contraseña de app" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "Añadir palabras silenciadas y etiquetas" @@ -323,7 +323,7 @@ msgid "Adult content is disabled." msgstr "El contenido adulto esta desactivado." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "Avanzado" @@ -331,9 +331,19 @@ msgstr "Avanzado" msgid "All the feeds you've saved, right in one place." msgstr "Todos tus feeds guardados, en un solo lugar." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 @@ -345,13 +355,13 @@ msgstr "¿Ya tienes un código?" msgid "Already signed in as @{0}" msgstr "Sesión ya iniciada como @{0}" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -420,38 +430,38 @@ msgstr "Comportamiento antisocial" msgid "App Language" msgstr "Idioma de interfaz" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Contraseña de app eliminada" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "El nombre de una contraseña de app sólo puede contener letras, números, espacios, guiones, y guiones bajos." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "El nombre de una contraseña de app deben tener al menos 4 caracteres." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "Ajustes de contraseñas de app" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "Contraseñas de la app" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "Apelar" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "Apelar la etiqueta de \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "Apelación enviada" @@ -476,7 +486,7 @@ msgstr "Aparencia" msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "¿Seguro que quieres eliminar la contraseña de app \"{name}\"?" @@ -504,7 +514,7 @@ msgstr "¿Seguro que quieres eliminar {0} de tus feeds?" msgid "Are you sure you'd like to discard this draft?" msgstr "¿Seguro que quieres descartar este borrador?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "¿Estás seguro?" @@ -525,14 +535,14 @@ msgid "At least 3 characters" msgstr "Al menos 3 caracteres" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -559,7 +569,7 @@ msgstr "Cumpleaños" msgid "Birthday:" msgstr "Cumpleaños:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "Bloquear" @@ -612,7 +622,7 @@ msgstr "Si bloqueas a una cuenta no podrán responder en tus hilos, mencionarte msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Si bloqueas a una cuenta no podrán responder en tus hilos, mencionarte ni interactuar contigo de ninguna manera. No verás su contenido y no podrán ver el tuyo." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "Post bloqueado." @@ -694,7 +704,7 @@ msgstr "por ti" msgid "Camera" msgstr "Cámara" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Sólo puede contener letras, números, espacios, guiones y guiones bajos. Debe tener al menos 4 caracteres, pero no más de 32." @@ -771,12 +781,12 @@ msgctxt "action" msgid "Change" msgstr "Cambiar" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "Cambiar nombre de usuario" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "Cambiar nombre de usuario" @@ -784,12 +794,12 @@ msgstr "Cambiar nombre de usuario" msgid "Change my email" msgstr "Cambiar mi correo electrónico" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "Cambiar contraseña" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "Cambiar contraseña" @@ -814,10 +824,16 @@ msgstr "Chat muteado" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "Ajustes de chat" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "Chat demuteado" @@ -827,7 +843,7 @@ msgstr "Chat demuteado" msgid "Check my status" msgstr "" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "Te enviamos un código de inicio de sesión a tu correo. Introducelo aquí." @@ -859,19 +875,19 @@ msgstr "Elige tus feeds principales" msgid "Choose your password" msgstr "Elige tu contraseña" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "Borrar todos los datos de almacenamiento heredados" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "Borrar todos los datos de almacenamiento heredados (reiniciar después de esto)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "Borrar todos los datos de almacenamiento" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "Borrar todos los datos de almacenamiento (reiniciar después de esto)" @@ -880,11 +896,11 @@ msgstr "Borrar todos los datos de almacenamiento (reiniciar después de esto)" msgid "Clear search query" msgstr "Borrar consulta de búsqueda" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "" @@ -913,7 +929,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1056,7 +1072,7 @@ msgstr "" msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1066,7 +1082,7 @@ msgstr "" msgid "Confirmation code" msgstr "Código de confirmación" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "Conectando..." @@ -1141,7 +1157,7 @@ msgstr "" msgid "Continue to the next step without following any accounts" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "" @@ -1149,7 +1165,7 @@ msgstr "" msgid "Cooking" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Copiado" @@ -1159,7 +1175,7 @@ msgid "Copied build version to clipboard" msgstr "" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1170,11 +1186,11 @@ msgstr "" msgid "Copied!" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Copiar" @@ -1257,7 +1273,7 @@ msgstr "" msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "" @@ -1270,7 +1286,7 @@ msgstr "Crear una cuenta nueva" msgid "Create report for {0}" msgstr "" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Creado {0}" @@ -1313,7 +1329,7 @@ msgstr "" msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "" @@ -1323,12 +1339,12 @@ msgstr "" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "Borrar la cuenta" @@ -1340,16 +1356,16 @@ msgstr "Borrar la cuenta" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Borrar la contraseña de la app" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "" @@ -1373,7 +1389,7 @@ msgstr "" msgid "Delete my account" msgstr "Borrar mi cuenta" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "" @@ -1394,11 +1410,11 @@ msgstr "¿Borrar esta post?" msgid "Deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "Se borró la post." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "" @@ -1409,7 +1425,7 @@ msgstr "" msgid "Description" msgstr "Descripción" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "" @@ -1440,8 +1456,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "" @@ -1504,8 +1520,8 @@ msgstr "¡Dominio verificado!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1617,12 +1633,12 @@ msgid "Edit my profile" msgstr "Editar mi perfil" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "Editar el perfil" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "Editar el perfil" @@ -1725,8 +1741,8 @@ msgstr "Activa esta opción para ver sólo las respuestas de las personas a las msgid "Enable this source only" msgstr "" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "" @@ -1739,7 +1755,7 @@ msgstr "Fin de noticias" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "" @@ -1747,8 +1763,8 @@ msgstr "" msgid "Enter a password" msgstr "" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "" @@ -1812,8 +1828,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "" @@ -1863,12 +1879,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "" @@ -1884,16 +1900,16 @@ msgstr "Es posible que medios externos permitan que otros sitios recopilen datos #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "Medios externos" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "Medios externos" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "" @@ -1933,13 +1949,13 @@ msgstr "" #~ msgid "Failed to send message(s)." #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "" @@ -2029,10 +2045,10 @@ msgstr "" msgid "Flip vertically" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2044,7 +2060,7 @@ msgid "Follow" msgstr "Seguir" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Seguir {0}" @@ -2087,9 +2103,9 @@ msgstr "ha comenzado a seguirte" msgid "Followers" msgstr "Seguidores" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2098,7 +2114,7 @@ msgstr "Seguidores" msgid "Following" msgstr "Siguiendo" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "Siguiendo {0}" @@ -2130,7 +2146,7 @@ msgstr "Comida" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Por razones de seguridad, tendremos que enviarte un código de confirmación a tu dirección de correo electrónico." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Por razones de seguridad, no podrás volver a verla de nuevo. Si pierdes esta contraseña, tendrás que generar una nueva." @@ -2139,11 +2155,11 @@ msgstr "Por razones de seguridad, no podrás volver a verla de nuevo. Si pierdes msgid "Forgot Password" msgstr "Olvidé mi contraseña" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "¿Has olvidado tu contraseña?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "" @@ -2155,7 +2171,7 @@ msgstr "" msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "" @@ -2203,7 +2219,7 @@ msgstr "Volver" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2218,7 +2234,7 @@ msgstr "" msgid "Go Home" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "" @@ -2284,13 +2300,13 @@ msgstr "" msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Aquí tienes tu contraseña de la app." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2312,7 +2328,7 @@ msgid "Hide post" msgstr "Ocultar post" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "" @@ -2365,7 +2381,7 @@ msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2426,7 +2442,7 @@ msgstr "" msgid "Image" msgstr "" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Texto alt de la imagen" @@ -2446,7 +2462,7 @@ msgstr "" msgid "Input confirmation code for account deletion" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "" @@ -2458,19 +2474,19 @@ msgstr "" msgid "Input password for account deletion" msgstr "" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "" @@ -2486,16 +2502,16 @@ msgstr "" msgid "Introducing Direct Messages" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "Nombre de usuario o contraseña no válidos" @@ -2555,11 +2571,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" @@ -2594,7 +2610,7 @@ msgstr "Aprender más" msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Aprender más acerca de esta advertencia" @@ -2700,7 +2716,7 @@ msgstr "" msgid "Likes" msgstr "Cantidad de «Me gusta»" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "" @@ -2758,7 +2774,7 @@ msgid "Load new notifications" msgstr "Cargar notificaciones nuevas" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2815,7 +2831,7 @@ msgstr "" msgid "Make sure this is where you intend to go!" msgstr "¡Asegúrate de que es aquí a donde pretendes ir!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "" @@ -2847,6 +2863,7 @@ msgid "Message {0}" msgstr "" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "" @@ -2859,18 +2876,18 @@ msgid "Message input field" msgstr "" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" @@ -2983,11 +3000,11 @@ msgstr "" msgid "Mute conversation" msgstr "" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "" @@ -3004,11 +3021,11 @@ msgstr "Silenciar la lista" msgid "Mute these accounts?" msgstr "¿Silenciar estas cuentas?" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "" @@ -3072,7 +3089,7 @@ msgstr "Mis feeds guardados" msgid "My Saved Feeds" msgstr "Mis feeds guardados" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "Nombre" @@ -3092,7 +3109,7 @@ msgid "Nature" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "" @@ -3123,8 +3140,8 @@ msgid "New" msgstr "Nuevo" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" @@ -3144,7 +3161,7 @@ msgstr "" msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "" @@ -3178,8 +3195,8 @@ msgstr "Noticias" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3214,7 +3231,7 @@ msgstr "Sin panel de DNS" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "" @@ -3226,7 +3243,7 @@ msgstr "" msgid "No messages yet" msgstr "" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "" @@ -3236,8 +3253,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "" @@ -3246,7 +3263,7 @@ msgstr "" msgid "No result" msgstr "Sin resultados" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "" @@ -3318,15 +3335,15 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky es una red abierta y pública. Esta configuración sólo limita la visibilidad de tu contenido en la aplicación y el sitio web de Bluesky, y es posible que otras aplicaciones no respeten esta configuración. Otras aplicaciones y sitios web pueden seguir mostrando tu contenido a los usuarios que hayan cerrado sesión." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "" @@ -3407,7 +3424,7 @@ msgid "Oops, something went wrong!" msgstr "" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "" @@ -3420,8 +3437,8 @@ msgstr "" msgid "Open avatar creator" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "" @@ -3434,7 +3451,7 @@ msgstr "" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "" @@ -3454,12 +3471,12 @@ msgstr "Abrir navegación" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "" @@ -3483,6 +3500,10 @@ msgstr "" msgid "Opens camera on device" msgstr "" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "" @@ -3495,7 +3516,7 @@ msgstr "Abrir la configuración del idioma que se puede ajustar" msgid "Opens device photo gallery" msgstr "" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "" @@ -3517,23 +3538,23 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Abre la lista de códigos de invitación" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "" @@ -3545,7 +3566,7 @@ msgstr "Abre el modal para usar el dominio personalizado" msgid "Opens moderation settings" msgstr "Abre la configuración de moderación" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "" @@ -3558,7 +3579,7 @@ msgstr "" msgid "Opens screen with all saved feeds" msgstr "Abre la pantalla con todas las noticias guardadas" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "" @@ -3574,12 +3595,12 @@ msgstr "" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "Abre la página del libro de cuentos" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "Abre la página de la bitácora del sistema" @@ -3592,7 +3613,7 @@ msgid "Option {0} of {numItems}" msgstr "" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "" @@ -3625,7 +3646,7 @@ msgstr "Página no encontrada" msgid "Page Not Found" msgstr "" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3735,15 +3756,15 @@ msgstr "" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Por favor, confirma tu correo electrónico antes de cambiarlo. Se trata de un requisito temporal mientras se añaden herramientas de actualización de correo electrónico, y pronto se eliminará." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Introduce un nombre único para la contraseña de esta app o utiliza una generada aleatoriamente." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "" @@ -3755,7 +3776,7 @@ msgstr "Introduce tu correo electrónico." msgid "Please enter your password as well:" msgstr "Introduce tu contraseña, también:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -3790,12 +3811,12 @@ msgctxt "action" msgid "Post" msgstr "Publicar" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "Post" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "Post por {0}" @@ -3809,7 +3830,7 @@ msgstr "Post por {0}" msgid "Post deleted" msgstr "Post eliminado" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Post ocultado" @@ -3831,8 +3852,8 @@ msgstr "Lenguaje de la post" msgid "Post Languages" msgstr "Lenguajes de la post" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Publicación no encontrada" @@ -3844,7 +3865,7 @@ msgstr "" msgid "Posts" msgstr "Publicaciones" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "" @@ -3888,7 +3909,7 @@ msgstr "Idioma primario" msgid "Prioritize Your Follows" msgstr "Priorizar los usuarios a los que sigue" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privacidad" @@ -3896,7 +3917,7 @@ msgstr "Privacidad" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de privacidad" @@ -3909,7 +3930,7 @@ msgstr "" msgid "Processing..." msgstr "Procesando..." -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "" @@ -3926,7 +3947,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "Protege tu cuenta verificando tu correo electrónico." @@ -3988,11 +4009,11 @@ msgstr "" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4043,7 +4064,7 @@ msgstr "Eliminar la imagen" msgid "Remove image preview" msgstr "Eliminar la vista previa de la imagen" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "" @@ -4105,7 +4126,7 @@ msgid "Reply Filters" msgstr "Filtros de respuestas" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" @@ -4201,11 +4222,11 @@ msgstr "Volver a publicar o citar post" msgid "Reposted By" msgstr "Vuelto a publicar por" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "Vuelto a publicar por {0}" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "" @@ -4213,7 +4234,7 @@ msgstr "" msgid "reposted your post" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "" @@ -4252,8 +4273,8 @@ msgstr "Código de reseteo" msgid "Reset Code" msgstr "Código de reseteo" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "Restablecer el estado de incorporación" @@ -4261,20 +4282,20 @@ msgstr "Restablecer el estado de incorporación" msgid "Reset password" msgstr "Restablecer la contraseña" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "Restablecer el estado de preferencias" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "Restablece el estado de incorporación" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "Restablecer el estado de preferencias" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "" @@ -4286,8 +4307,8 @@ msgstr "" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4316,8 +4337,8 @@ msgid "Returns to previous page" msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4330,7 +4351,7 @@ msgctxt "action" msgid "Save" msgstr "Guardar" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Guardar texto alternativo" @@ -4534,7 +4555,7 @@ msgstr "" msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4602,14 +4623,14 @@ msgid "Send feedback" msgstr "Enviar comentarios" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "Enviar mensaje" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "Enviar reporte" @@ -4703,7 +4724,6 @@ msgid "Sets image aspect ratio to wide" msgstr "" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4767,7 +4787,7 @@ msgstr "" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4795,10 +4815,14 @@ msgstr "" msgid "Show badge and filter from feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4806,7 +4830,7 @@ msgstr "" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "Ver más" @@ -4815,6 +4839,10 @@ msgstr "Ver más" msgid "Show more like this" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Mostrar publicaciones de mis noticias" @@ -4864,7 +4892,7 @@ msgid "Show reposts in Following" msgstr "Mostrar reposts en Siguiendo" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "" @@ -4888,7 +4916,7 @@ msgstr "" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -4984,7 +5012,7 @@ msgid "Something went wrong, please try again." msgstr "Ocurrió un error. Intenta de nuevo." #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "Lo sentimos, tu sesión ha expirado. Inicia sesión de nuevo." @@ -5000,7 +5028,7 @@ msgstr "Ordenar respuestas al mismo post por:" #~ msgid "Source:" #~ msgstr "Fuente:" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "" @@ -5021,7 +5049,7 @@ msgstr "Deportes" msgid "Square" msgstr "Cuadrado" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "" @@ -5033,7 +5061,7 @@ msgstr "" msgid "Start chatting" msgstr "" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "" @@ -5050,12 +5078,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Libro de cuentos" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5121,11 +5149,11 @@ msgstr "" msgid "System" msgstr "" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "Bitácora del sistema" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "" @@ -5155,7 +5183,7 @@ msgstr "Condiciones" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5167,17 +5195,17 @@ msgstr "Condiciones de servicio" msgid "Terms used violate community standards" msgstr "" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Campo de introducción de texto" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "" @@ -5189,7 +5217,7 @@ msgstr "" msgid "That handle is already taken." msgstr "Este nombre de usuario ya está en uso." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "La cuenta podrá interactuar contigo tras desbloquearla." @@ -5210,11 +5238,11 @@ msgstr "La Política de derechos de autor se han trasladado a <0/>" msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5222,8 +5250,8 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Es posible que se haya borrado el post." @@ -5298,7 +5326,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" @@ -5306,13 +5334,13 @@ msgstr "" msgid "There was an issue syncing your preferences with the server" msgstr "" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5356,7 +5384,7 @@ msgstr "Esta cuenta ha solicitado que los usuarios inicien sesión para ver su p msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -5439,7 +5467,7 @@ msgstr "" #~ msgid "This label was applied by you" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "" @@ -5459,11 +5487,11 @@ msgstr "" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "Esta post ha sido eliminado." @@ -5521,7 +5549,7 @@ msgstr "" #~ msgid "This warning is only available for posts with media attached." #~ msgstr "Esta advertencia sólo está disponible para las publicaciones con medios adjuntos." -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" @@ -5554,7 +5582,7 @@ msgstr "" msgid "To whom would you like to send this report?" msgstr "" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "" @@ -5587,7 +5615,7 @@ msgctxt "action" msgid "Try again" msgstr "Intentar de nuevo" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "" @@ -5609,7 +5637,7 @@ msgstr "Demutear lista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5620,14 +5648,14 @@ msgstr "No se puede contactar con tu proveedor. Comprueba tu conexión a Interne #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "Desbloquear" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "Desbloquear" @@ -5642,7 +5670,7 @@ msgstr "" msgid "Unblock Account" msgstr "Desbloquear Cuenta" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "¿Desbloquear Cuenta?" @@ -5663,7 +5691,7 @@ msgstr "Dejar de seguir" msgid "Unfollow" msgstr "Dejar de seguir" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "Dejar de seguir a {0}" @@ -5788,7 +5816,7 @@ msgstr "" msgid "Use a file on your server" msgstr "" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utiliza las contraseñas de app para iniciar sesión en otros clientes de Bluesky sin dar acceso completo a tu cuenta o contraseña." @@ -5818,7 +5846,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Utilízalo para iniciar sesión en la otra app junto a tu nombre de usuario." @@ -5878,7 +5906,7 @@ msgstr "" msgid "User Lists" msgstr "Listas de usuarios" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "Nombre de usuario o dirección de correo electrónico" @@ -5892,8 +5920,8 @@ msgstr "usuarios seguidos por <0/>" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "" @@ -5917,15 +5945,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "Verificar el correo electrónico" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "Verificar mi correo electrónico" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "Verificar mi correo electrónico" @@ -5942,7 +5970,7 @@ msgstr "" msgid "Verify Your Email" msgstr "" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -5966,7 +5994,7 @@ msgstr "" msgid "View details for reporting a copyright violation" msgstr "Ver más detalles sobre cómo reportar una violación de Derechos de Autor" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "" @@ -5974,8 +6002,8 @@ msgstr "" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "" @@ -6032,7 +6060,7 @@ msgstr "Esperemos que la pases bien. Recuerda, Bluesky es:" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "" -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "" @@ -6060,7 +6088,7 @@ msgstr "" msgid "We'll use this to help customize your experience." msgstr "" -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "" @@ -6072,7 +6100,7 @@ msgstr "¡Es nuestro placer tenerte aquí!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "" -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" @@ -6117,7 +6145,7 @@ msgid "Who can reply" msgstr "Quién puede responder" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "Whoops!" @@ -6150,7 +6178,7 @@ msgid "Wide" msgstr "Ancho" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "Escribe un mensaje" @@ -6202,6 +6230,10 @@ msgstr "Puedes cambiar estos ajustes luego." msgid "You can change this at any time." msgstr "" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6227,7 +6259,7 @@ msgstr "No tienes ninguna feed fijado." msgid "You don't have any saved feeds." msgstr "No tienes ningún feed guardado" -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Has bloqueado al autor o has sido bloqueado por el autor." @@ -6265,7 +6297,7 @@ msgstr "Has muteado a esta cuenta." msgid "You have muted this user" msgstr "Has muteado a esta cuenta" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "" @@ -6286,7 +6318,7 @@ msgstr "No tienes listas." msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "" -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Aún no has creado una contraseña de app. Puedes crear una al presionar el botón abajo." @@ -6298,15 +6330,15 @@ msgstr "" msgid "You have reached the end" msgstr "" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" @@ -6318,7 +6350,7 @@ msgstr "Tienes que tener 13 años o más para poder crear una cuenta." msgid "You must be 18 years or older to enable adult content" msgstr "Tienes que tener 18 años o más para poder activar el contenido adulto" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "" @@ -6415,7 +6447,7 @@ msgstr "Tu nombre de usuario completo será" msgid "Your full handle will be <0>@{0}" msgstr "Tu nombre de usuario completo será <0>@{0}" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "Tus palabras muteadas" diff --git a/src/locale/locales/fi/messages.po b/src/locale/locales/fi/messages.po index 92bcb52607..32a0cdac0c 100644 --- a/src/locale/locales/fi/messages.po +++ b/src/locale/locales/fi/messages.po @@ -41,12 +41,12 @@ msgstr "" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" @@ -55,7 +55,7 @@ msgstr "" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "" @@ -71,7 +71,7 @@ msgstr "" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" @@ -95,7 +95,7 @@ msgstr "" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} seurattua" @@ -163,7 +163,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Virheellinen käyttäjätunnus" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "Kaksivaiheisen tunnistautumisen vahvistus" @@ -194,9 +194,9 @@ msgstr "Esteettömyysasetukset\"" #~ msgid "account" #~ msgstr "käyttäjätili" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "Käyttäjätili" @@ -229,7 +229,7 @@ msgstr "Käyttäjätilin asetukset" msgid "Account removed from quick access" msgstr "Käyttäjätili poistettu pikalinkeistä" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "Käyttäjätilin esto poistettu" @@ -242,7 +242,7 @@ msgstr "Käyttäjätilin seuranta lopetettu" msgid "Account unmuted" msgstr "Käyttäjätilin hiljennys poistettu" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -263,12 +263,12 @@ msgstr "Lisää käyttäjä tähän listaan" msgid "Add account" msgstr "Lisää käyttäjätili" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Lisää ALT-teksti" @@ -276,17 +276,17 @@ msgstr "Lisää ALT-teksti" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Lisää sovelluksen salasana" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "Lisää hiljennetty sana määritettyihin asetuksiin" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "Lisää hiljennetyt sanat ja aihetunnisteet" @@ -339,7 +339,7 @@ msgid "Adult content is disabled." msgstr "Aikuissisältö on estetty" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "Edistyneemmät" @@ -347,9 +347,19 @@ msgstr "Edistyneemmät" msgid "All the feeds you've saved, right in one place." msgstr "Kaikki tallentamasi syötteet yhdessä paikassa." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 @@ -361,13 +371,13 @@ msgstr "Onko sinulla jo koodi?" msgid "Already signed in as @{0}" msgstr "Kirjautuneena sisään nimellä @{0}" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -436,38 +446,38 @@ msgstr "Epäsosiaalinen käytös" msgid "App Language" msgstr "Sovelluksen kieli" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Sovelluksen salasana poistettu" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Sovelluksen salasanan nimet voivat sisältää vain kirjaimia, numeroita, välilyöntejä, viivoja ja alaviivoja." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "Sovelluksen salasanojen nimien on oltava vähintään 4 merkkiä pitkiä." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "Sovelluksen salasanan asetukset" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "Sovellussalasanat" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "Valita" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "Valita \"{0}\" -merkinnästä" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -492,7 +502,7 @@ msgstr "Ulkonäkö" msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Haluatko varmasti poistaa sovellussalasanan \"{name}\"?" @@ -520,7 +530,7 @@ msgstr "Haluatko varmasti poistaa {0} syötteistäsi?" msgid "Are you sure you'd like to discard this draft?" msgstr "Haluatko varmasti hylätä tämän luonnoksen?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "Oletko varma?" @@ -541,14 +551,14 @@ msgid "At least 3 characters" msgstr "Vähintään kolme merkkiä" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -575,7 +585,7 @@ msgstr "Syntymäpäivä" msgid "Birthday:" msgstr "Syntymäpäivä:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "Estä" @@ -628,7 +638,7 @@ msgstr "Estetyt käyttäjät eivät voi vastata viesteihisi, mainita sinua tai m msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Estetyt käyttäjät eivät voi vastata viesteihisi, mainita sinua tai muuten olla vuorovaikutuksessa kanssasi. Et näe heidän sisältöään ja he eivät näe sinun sisältöäsi." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "Estetty viesti." @@ -729,7 +739,7 @@ msgstr "sinulta" msgid "Camera" msgstr "Kamera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Voi sisältää vain kirjaimia, numeroita, välilyöntejä, viivoja ja alaviivoja. Täytyy olla vähintään 4 merkkiä pitkä, mutta enintään 32 merkkiä pitkä." @@ -806,12 +816,12 @@ msgctxt "action" msgid "Change" msgstr "Vaihda" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "Vaihda käyttäjätunnus" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "Vaihda käyttäjätunnus" @@ -819,12 +829,12 @@ msgstr "Vaihda käyttäjätunnus" msgid "Change my email" msgstr "Vaihda sähköpostiosoitteeni" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "Vaihda salasana" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "Vaihda salasana" @@ -849,10 +859,16 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "" @@ -874,7 +890,7 @@ msgstr "Tarkista tilani" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Tutustu suositeltuihin käyttäjiin. Seuraa heitä löytääksesi samankaltaisia käyttäjiä." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "Tarkista sähköpostistasi kirjautumiskoodi ja syötä se tähän." @@ -911,19 +927,19 @@ msgstr "Valitse pääsyötteet" msgid "Choose your password" msgstr "Valitse salasanasi" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "Tyhjennä kaikki vanhan tietomallin mukaiset tiedot" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "Tyhjennä kaikki vanhan tietomallin tiedot (käynnistä uudelleen tämän jälkeen)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "Tyhjennä kaikki tallennukset" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "Tyhjennä kaikki tallennukset (käynnistä uudelleen tämän jälkeen)" @@ -932,11 +948,11 @@ msgstr "Tyhjennä kaikki tallennukset (käynnistä uudelleen tämän jälkeen)" msgid "Clear search query" msgstr "Tyhjennä hakukysely" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "Tyhjentää kaikki tallennustiedot" @@ -965,7 +981,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1108,7 +1124,7 @@ msgstr "Vahvista ikäsi:" msgid "Confirm your birthdate" msgstr "Vahvista syntymäaikasi" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1118,7 +1134,7 @@ msgstr "Vahvista syntymäaikasi" msgid "Confirmation code" msgstr "Vahvistuskoodi" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "Yhdistetään..." @@ -1193,7 +1209,7 @@ msgstr "Jatka seuraavaan vaiheeseen" msgid "Continue to the next step without following any accounts" msgstr "Jatka seuraavaan vaiheeseen seuraamatta yhtään tiliä" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "" @@ -1201,7 +1217,7 @@ msgstr "" msgid "Cooking" msgstr "Ruoanlaitto" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Kopioitu" @@ -1211,7 +1227,7 @@ msgid "Copied build version to clipboard" msgstr "Ohjelmiston versio kopioitu leikepöydälle" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1222,11 +1238,11 @@ msgstr "Kopioitu leikepöydälle" msgid "Copied!" msgstr "Kopioitu!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Kopioi sovellussalasanan" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Kopioi" @@ -1309,7 +1325,7 @@ msgstr "Luo käyttäjätili" msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Luo sovellussalasana" @@ -1322,7 +1338,7 @@ msgstr "Luo uusi käyttäjätili" msgid "Create report for {0}" msgstr "Luo raportti: {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} luotu" @@ -1365,7 +1381,7 @@ msgstr "Tumma teema" msgid "Date of birth" msgstr "Syntymäaika" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "" @@ -1375,12 +1391,12 @@ msgstr "Vianetsintäpaneeli" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "Poista" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "Poista käyttäjätili" @@ -1392,16 +1408,16 @@ msgstr "Poista käyttäjätili" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Poista sovellussalasana" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Poista sovellussalasana" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "" @@ -1425,7 +1441,7 @@ msgstr "" msgid "Delete my account" msgstr "Poista käyttäjätilini" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "Poista käyttäjätilini…" @@ -1446,11 +1462,11 @@ msgstr "Poista tämä viesti?" msgid "Deleted" msgstr "Poistettu" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "Poistettu viesti." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "" @@ -1461,7 +1477,7 @@ msgstr "" msgid "Description" msgstr "Kuvaus" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "" @@ -1492,8 +1508,8 @@ msgstr "Poista haptiset palautteet käytöstä" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Poistettu käytöstä" @@ -1556,8 +1572,8 @@ msgstr "Verkkotunnus vahvistettu!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1669,12 +1685,12 @@ msgid "Edit my profile" msgstr "Muokkaa profiilia" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "Muokkaa profiilia" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "Muokkaa profiilia" @@ -1777,8 +1793,8 @@ msgstr "Ota tämä asetus käyttöön nähdäksesi vastaukset vain seuraamiltasi msgid "Enable this source only" msgstr "Ota käyttöön vain tämä lähde" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Käytössä" @@ -1791,7 +1807,7 @@ msgstr "Syötteen loppu" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Anna sovellusalasanalle nimi" @@ -1799,8 +1815,8 @@ msgstr "Anna sovellusalasanalle nimi" msgid "Enter a password" msgstr "Anna salasana" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "Kirjoita sana tai aihetunniste" @@ -1864,8 +1880,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "" @@ -1915,12 +1931,12 @@ msgstr "Selvästi tai mahdollisesti häiritsevä media." msgid "Explicit sexual images." msgstr "Selvästi seksuaalista kuvamateriaalia." -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "Vie tietoni" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "Vie tietoni" @@ -1936,16 +1952,16 @@ msgstr "Ulkoiset mediat voivat sallia verkkosivustojen kerätä tietoja sinusta #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "Ulkoisten mediasoittimien asetukset" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "Ulkoisten mediasoittimien asetukset" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "Sovellussalasanan luominen epäonnistui." @@ -1990,13 +2006,13 @@ msgstr "" #~ msgid "Failed to send message(s)." #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "" @@ -2094,10 +2110,10 @@ msgstr "Käännä vaakasuunnassa" msgid "Flip vertically" msgstr "Käännä pystysuunnassa" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2109,7 +2125,7 @@ msgid "Follow" msgstr "Seuraa" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Seuraa {0}" @@ -2156,9 +2172,9 @@ msgstr "seurasi sinua" msgid "Followers" msgstr "Seuraajat" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2167,7 +2183,7 @@ msgstr "Seuraajat" msgid "Following" msgstr "Seurataan" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "Seurataan {0}" @@ -2199,7 +2215,7 @@ msgstr "Ruoka" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Turvallisuussyistä meidän on lähetettävä vahvistuskoodi sähköpostiosoitteeseesi." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Turvallisuussyistä et näe tätä uudelleen. Jos unohdat tämän salasanan, sinun on luotava uusi." @@ -2208,11 +2224,11 @@ msgstr "Turvallisuussyistä et näe tätä uudelleen. Jos unohdat tämän salasa msgid "Forgot Password" msgstr "Unohtunut salasana" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "Unohtuiko salasana?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "Unohditko?" @@ -2224,7 +2240,7 @@ msgstr "Julkaisee usein ei-toivottua sisältöä" msgid "From @{sanitizedAuthor}" msgstr "Käyttäjältä @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "Lähde: <0/>" @@ -2272,7 +2288,7 @@ msgstr "Palaa takaisin" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2292,7 +2308,7 @@ msgstr "Palaa alkuun" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Siirry @{queryMaybeHandle}" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "" @@ -2358,13 +2374,13 @@ msgstr "Tässä on joitakin suosittuja aihepiirikohtaisia syötteitä. Voit vali msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "Tässä on joitakin aihepiirikohtaisia syötteitä kiinnostuksiesi perusteella: {interestsText}. Voit valita seurata niin montaa kuin haluat." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Tässä on sovelluksesi salasana." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2386,7 +2402,7 @@ msgid "Hide post" msgstr "Piilota viesti" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "Piilota sisältö" @@ -2439,7 +2455,7 @@ msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2500,7 +2516,7 @@ msgstr "Laiton ja kiireellinen" msgid "Image" msgstr "Kuva" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Kuvan ALT-teksti" @@ -2520,7 +2536,7 @@ msgstr "Syötä sähköpostiisi lähetetty koodi salasanan nollaamista varten" msgid "Input confirmation code for account deletion" msgstr "Syötä vahvistuskoodi käyttäjätilin poistoa varten" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Syötä nimi sovellussalasanaa varten" @@ -2532,19 +2548,19 @@ msgstr "Syötä uusi salasana" msgid "Input password for account deletion" msgstr "Syötä salasana käyttäjätilin poistoa varten" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "Syötä sinulle sähköpostitse lähetetty koodi" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "Syötä salasana, joka liittyy kohteeseen {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "Syötä käyttäjätunnus tai sähköpostiosoite, jonka käytit rekisteröityessäsi" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "Syötä salasanasi" @@ -2560,16 +2576,16 @@ msgstr "Syötä käyttäjätunnuksesi" msgid "Introducing Direct Messages" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Virheellinen kaksivaiheisen tunnistautumisen vahvistuskoodi." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Virheellinen tai ei tuettu tietue" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "Virheellinen käyttäjätunnus tai salasana" @@ -2629,11 +2645,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" @@ -2668,7 +2684,7 @@ msgstr "Lue lisää" msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Lue lisää tästä varoituksesta" @@ -2774,7 +2790,7 @@ msgstr "tykkäsi viestistäsi" msgid "Likes" msgstr "Tykkäykset" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Tykkäykset tässä viestissä" @@ -2832,7 +2848,7 @@ msgid "Load new notifications" msgstr "Lataa uusia ilmoituksia" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2889,7 +2905,7 @@ msgstr "" msgid "Make sure this is where you intend to go!" msgstr "Varmista, että olet menossa oikeaan paikkaan!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "Hallinnoi hiljennettyjä sanoja ja aihetunnisteita" @@ -2921,6 +2937,7 @@ msgid "Message {0}" msgstr "" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "" @@ -2933,18 +2950,18 @@ msgid "Message input field" msgstr "" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" @@ -3057,11 +3074,11 @@ msgstr "Hiljennä kaikki {displayTag} viestit" msgid "Mute conversation" msgstr "" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "Hiljennä vain aihetunnisteissa" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "Hiljennä tekstissä ja aihetunnisteissa" @@ -3078,11 +3095,11 @@ msgstr "Hiljennä lista" msgid "Mute these accounts?" msgstr "Hiljennä nämä käyttäjät?" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "Hiljennä tämä sana viesteissä ja aihetunnisteissa" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "Hiljennä tämä sana vain aihetunnisteissa" @@ -3146,7 +3163,7 @@ msgstr "Tallennetut syötteeni" msgid "My Saved Feeds" msgstr "Tallennetut syötteeni" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "Nimi" @@ -3166,7 +3183,7 @@ msgid "Nature" msgstr "Luonto" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Siirtyy seuraavalle näytölle" @@ -3202,8 +3219,8 @@ msgid "New" msgstr "Uusi" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" @@ -3223,7 +3240,7 @@ msgstr "Uusi salasana" msgid "New Password" msgstr "Uusi salasana" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "Uusi viesti" @@ -3257,8 +3274,8 @@ msgstr "Uutiset" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3298,7 +3315,7 @@ msgstr "" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "Ei löydetty esillä olevia GIF-kuvia. Tenor-palvelussa saattaa olla ongelma." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "Et enää seuraa käyttäjää {0}" @@ -3310,7 +3327,7 @@ msgstr "Ei pidempi kuin 253 merkkiä." msgid "No messages yet" msgstr "" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "" @@ -3320,8 +3337,8 @@ msgstr "Ei vielä ilmoituksia!" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "" @@ -3330,7 +3347,7 @@ msgstr "" msgid "No result" msgstr "Ei tuloksia" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "" @@ -3402,15 +3419,15 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Huomio: Bluesky on avoin ja julkinen verkosto. Tämä asetus rajoittaa vain sisältösi näkyvyyttä Bluesky-sovelluksessa ja -sivustolla, eikä muut sovellukset ehkä kunnioita tässä asetuksissaan. Sisältösi voi silti näkyä uloskirjautuneille käyttäjille muissa sovelluksissa ja verkkosivustoilla." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "" @@ -3491,7 +3508,7 @@ msgid "Oops, something went wrong!" msgstr "Hups, nyt meni jotain väärin!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "Hups!" @@ -3504,8 +3521,8 @@ msgstr "Avaa" msgid "Open avatar creator" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "" @@ -3518,7 +3535,7 @@ msgstr "Avaa emoji-valitsin" msgid "Open feed options menu" msgstr "Avaa syötteen asetusvalikko" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "Avaa linkit sovelluksen sisäisellä selaimella" @@ -3538,12 +3555,12 @@ msgstr "Avaa navigointi" msgid "Open post options menu" msgstr "Avaa viestin asetusvalikko" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "Avaa storybook-sivu" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "Avaa järjestelmäloki" @@ -3567,6 +3584,10 @@ msgstr "Avaa laajennetun listan tämän ilmoituksen käyttäjistä" msgid "Opens camera on device" msgstr "Avaa laitteen kameran" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "Avaa editorin" @@ -3579,7 +3600,7 @@ msgstr "Avaa mukautettavat kielen asetukset" msgid "Opens device photo gallery" msgstr "Avaa laitteen valokuvat" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "Avaa ulkoiset upotusasetukset" @@ -3601,23 +3622,23 @@ msgstr "Avaa GIF-valinnan valintaikkunan." msgid "Opens list of invite codes" msgstr "Avaa kutsukoodien luettelon" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "" @@ -3629,7 +3650,7 @@ msgstr "Avaa asetukset oman verkkotunnuksen käyttöönottoon" msgid "Opens moderation settings" msgstr "Avaa moderointiasetukset" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "Avaa salasanan palautuslomakkeen" @@ -3642,7 +3663,7 @@ msgstr "Avaa näkymän tallennettujen syötteiden muokkaamiseen" msgid "Opens screen with all saved feeds" msgstr "Avaa näkymän kaikkiin tallennettuihin syötteisiin" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "Avaa sovelluksen salasanojen asetukset" @@ -3658,12 +3679,12 @@ msgstr "Avaa linkitetyn verkkosivun" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "Avaa storybook-sivun" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "Avaa järjestelmän lokisivun" @@ -3676,7 +3697,7 @@ msgid "Option {0} of {numItems}" msgstr "Asetus {0}/{numItems}" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "Voit tarvittaessa antaa lisätietoja alla:" @@ -3709,7 +3730,7 @@ msgstr "Sivua ei löytynyt" msgid "Page Not Found" msgstr "Sivua ei löytynyt" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3819,15 +3840,15 @@ msgstr "Täydennä varmennus-captcha, ole hyvä." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Vahvista sähköpostiosoitteesi ennen sen vaihtamista. Tämä on väliaikainen vaatimus, kunnes sähköpostin muokkaamisen liittyvät asetukset ovat lisätty ja se poistetaan piakkoin." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Anna nimi sovellussalasanalle. Kaikki välilyönnit eivät ole sallittuja." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Anna uniikki nimi tälle sovellussalasanalle tai käytä satunnaisesti luotua." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Ole hyvä ja syötä oikea sana, aihetunniste tai lause hiljennettäväksi." @@ -3839,7 +3860,7 @@ msgstr "Anna sähköpostiosoitteesi." msgid "Please enter your password as well:" msgstr "Anna myös salasanasi:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -3874,12 +3895,12 @@ msgctxt "action" msgid "Post" msgstr "Lähetä" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "Viesti" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "Lähettäjä {0}" @@ -3893,7 +3914,7 @@ msgstr "Lähettäjä @{0}" msgid "Post deleted" msgstr "Viesti poistettu" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Viesti piilotettu" @@ -3915,8 +3936,8 @@ msgstr "Lähetyskieli" msgid "Post Languages" msgstr "Lähetyskielet" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Viestiä ei löydy" @@ -3928,7 +3949,7 @@ msgstr "viestit" msgid "Posts" msgstr "Viestit" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "Viestejä voidaan hiljentää sanojen, aihetunnisteiden tai molempien perusteella." @@ -3972,7 +3993,7 @@ msgstr "Ensisijainen kieli" msgid "Prioritize Your Follows" msgstr "Aseta seurattavat tärkeysjärjestykseen" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Yksityisyys" @@ -3980,7 +4001,7 @@ msgstr "Yksityisyys" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Yksityisyydensuojakäytäntö" @@ -3993,7 +4014,7 @@ msgstr "" msgid "Processing..." msgstr "Käsitellään..." -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "profiili" @@ -4010,7 +4031,7 @@ msgstr "Profiili" msgid "Profile updated" msgstr "Profiili päivitetty" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "Suojaa käyttäjätilisi vahvistamalla sähköpostiosoitteesi." @@ -4080,11 +4101,11 @@ msgstr "Viimeaikaiset haut" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4135,7 +4156,7 @@ msgstr "Poista kuva" msgid "Remove image preview" msgstr "Poista kuvan esikatselu" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "Poista hiljennetty sana listaltasi" @@ -4197,7 +4218,7 @@ msgid "Reply Filters" msgstr "Vastaussuodattimet" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Vastaa käyttäjälle <0><1/>" @@ -4293,11 +4314,11 @@ msgstr "Uudelleenjulkaise tai lainaa viestiä" msgid "Reposted By" msgstr "Uudelleenjulkaissut" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "{0} uudelleenjulkaisi" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "Uudelleenjulkaissut <0><1/>" @@ -4305,7 +4326,7 @@ msgstr "Uudelleenjulkaissut <0><1/>" msgid "reposted your post" msgstr "uudelleenjulkaisi viestisi" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Tämän viestin uudelleenjulkaisut" @@ -4344,8 +4365,8 @@ msgstr "Nollauskoodi" msgid "Reset Code" msgstr "Nollauskoodi" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "Nollaa käyttöönoton tila" @@ -4353,20 +4374,20 @@ msgstr "Nollaa käyttöönoton tila" msgid "Reset password" msgstr "Nollaa salasana" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "Nollaa asetusten tila" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "Nollaa käyttöönoton tilan" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "Nollaa asetusten tilan" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "Yrittää uudelleen kirjautumista" @@ -4378,8 +4399,8 @@ msgstr "Yrittää uudelleen viimeisintä toimintoa, joka epäonnistui" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4408,8 +4429,8 @@ msgid "Returns to previous page" msgstr "Palaa edelliselle sivulle" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4422,7 +4443,7 @@ msgctxt "action" msgid "Save" msgstr "Tallenna" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Tallenna vaihtoehtoinen ALT-teksti" @@ -4626,7 +4647,7 @@ msgstr "Valitse alla olevista tileistä jotain seurattavaksi" msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "" @@ -4694,14 +4715,14 @@ msgid "Send feedback" msgstr "Lähetä palautetta" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "Lähetä raportti" @@ -4795,7 +4816,6 @@ msgid "Sets image aspect ratio to wide" msgstr "Asettaa kuvan kuvasuhteen leveäksi" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4859,7 +4879,7 @@ msgstr "Jakaa linkitetyn verkkosivun" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4887,10 +4907,14 @@ msgstr "" msgid "Show badge and filter from feeds" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "Näytä seurannat samankaltaisilta käyttäjiltä kuin {0}" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4898,7 +4922,7 @@ msgstr "" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "Näytä lisää" @@ -4907,6 +4931,10 @@ msgstr "Näytä lisää" msgid "Show more like this" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Näytä viestit omista syötteistäni" @@ -4956,7 +4984,7 @@ msgid "Show reposts in Following" msgstr "Näytä uudelleenjulkaisut seurattavissa" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "Näytä sisältö" @@ -4980,7 +5008,7 @@ msgstr "Näyttää viestit käyttäjältä {0} syötteessäsi" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -5076,7 +5104,7 @@ msgid "Something went wrong, please try again." msgstr "Jotain meni pieleen, yritä uudelleen" #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "Pahoittelut! Istuntosi on vanhentunut. Kirjaudu sisään uudelleen." @@ -5092,7 +5120,7 @@ msgstr "Lajittele saman viestin vastaukset seuraavasti:" #~ msgid "Source:" #~ msgstr "Lähde:" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "" @@ -5113,7 +5141,7 @@ msgstr "Urheilu" msgid "Square" msgstr "Neliö" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "" @@ -5129,7 +5157,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Tilasivu" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "" @@ -5146,12 +5174,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Tallennustila tyhjennetty, sinun on käynnistettävä sovellus uudelleen." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5217,11 +5245,11 @@ msgstr "Vaihtaa sisäänkirjautuneen käyttäjän tilin" msgid "System" msgstr "Järjestelmä" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "Järjestelmäloki" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "aihetunniste" @@ -5251,7 +5279,7 @@ msgstr "Ehdot" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5263,17 +5291,17 @@ msgstr "Käyttöehdot" msgid "Terms used violate community standards" msgstr "" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "teksti" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Tekstikenttä" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "Kiitos. Raporttisi on lähetetty." @@ -5285,7 +5313,7 @@ msgstr "Se sisältää seuraavaa:" msgid "That handle is already taken." msgstr "Tuo käyttätunnus on jo käytössä." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Käyttäjä voi olla vuorovaikutuksessa kanssasi, kun poistat eston." @@ -5306,11 +5334,11 @@ msgstr "Tekijänoikeuskäytäntö on siirretty kohtaan <0/>" msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5318,8 +5346,8 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "Seuraavat vaiheet auttavat mukauttamaan Bluesky-kokemustasi." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Viesti saattaa olla poistettu." @@ -5394,7 +5422,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Ongelma listojesi hakemisessa. Napauta tästä yrittääksesi uudelleen." #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Raportin lähettämisessä ilmeni ongelma. Tarkista internet-yhteytesi." @@ -5402,13 +5430,13 @@ msgstr "Raportin lähettämisessä ilmeni ongelma. Tarkista internet-yhteytesi." msgid "There was an issue syncing your preferences with the server" msgstr "Ongelma asetuksiesi synkronoinnissa palvelimelle" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Sovellussalasanojen hakemisessa tapahtui virhe" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5452,7 +5480,7 @@ msgstr "Tämä käyttäjätili on pyytänyt, että käyttät kirjautuvat sisää msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -5535,7 +5563,7 @@ msgstr "" #~ msgid "This label was applied by you" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "" @@ -5555,11 +5583,11 @@ msgstr "Tämä lista on tyhjä!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "Tämä nimi on jo käytössä" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "Tämä viesti on poistettu." @@ -5617,7 +5645,7 @@ msgstr "Tämä käyttäjä ei seuraa ketään." #~ msgid "This warning is only available for posts with media attached." #~ msgstr "Tämä varoitus on saatavilla vain viesteille, joihin on liitetty mediatiedosto." -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Tämä poistaa {0}:n hiljennetyistä sanoistasi. Voit lisätä sen takaisin myöhemmin." @@ -5650,7 +5678,7 @@ msgstr "" msgid "To whom would you like to send this report?" msgstr "Kenelle haluaisit lähettää tämän raportin?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Vaihda hiljennysvaihtoehtojen välillä." @@ -5683,7 +5711,7 @@ msgctxt "action" msgid "Try again" msgstr "Yritä uudelleen" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "Kaksivaiheinen tunnistautuminen" @@ -5705,7 +5733,7 @@ msgstr "Poista listan hiljennys" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5716,14 +5744,14 @@ msgstr "Yhteys palveluusi ei onnistu. Tarkista internet-yhteytesi." #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "Poista esto" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "Poista esto" @@ -5738,7 +5766,7 @@ msgstr "" msgid "Unblock Account" msgstr "Poista käyttäjätilin esto" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "Poista esto?" @@ -5759,7 +5787,7 @@ msgstr "Lopeta seuraaminen" msgid "Unfollow" msgstr "Älä seuraa" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "Lopeta seuraaminen {0}" @@ -5884,7 +5912,7 @@ msgstr "Lataa kirjastosta" msgid "Use a file on your server" msgstr "Käytä palvelimellasi olevaa tiedostoa" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Käytä sovellussalasanoja kirjautuaksesi muihin Bluesky-sovelluksiin antamatta niille täyttä hallintaa tilillesi tai salasanallesi." @@ -5914,7 +5942,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Käytä tätä kirjautuaksesi toiseen sovellukseen käyttäjätunnuksellasi." @@ -5974,7 +6002,7 @@ msgstr "Käyttäjälista päivitetty" msgid "User Lists" msgstr "Käyttäjälistat" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "Käyttäjätunnus tai sähköpostiosoite" @@ -5988,8 +6016,8 @@ msgstr "käyttäjät, joita <0/> seuraa" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "" @@ -6013,15 +6041,15 @@ msgstr "Arvo:" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "Varmista sähköposti" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "Vahvista sähköpostini" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "Vahvista sähköpostini" @@ -6042,7 +6070,7 @@ msgstr "Vahvista sähköpostisi" #~ msgid "Version {0}" #~ msgstr "Versio {0}" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6066,7 +6094,7 @@ msgstr "Näytä tiedot" msgid "View details for reporting a copyright violation" msgstr "Näytä tiedot tekijänoikeusrikkomuksen ilmoittamisesta" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "Katso koko keskusteluketju" @@ -6074,8 +6102,8 @@ msgstr "Katso koko keskusteluketju" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Katso profiilia" @@ -6132,7 +6160,7 @@ msgstr "Toivomme sinulle ihania hetkiä. Muista, että Bluesky on:" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "Emme enää löytäneet viestejä seurattavilta. Tässä on uusin tekijältä <0/>." -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "Suosittelemme välttämään yleisiä sanoja, jotka esiintyvät monissa viesteissä. Se voi johtaa siihen, ettei mitään viestejä näytetä." @@ -6160,7 +6188,7 @@ msgstr "Ilmoitamme sinulle, kun käyttäjätilisi on valmis." msgid "We'll use this to help customize your experience." msgstr "Käytämme tätä mukauttaaksemme kokemustasi." -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "" @@ -6172,7 +6200,7 @@ msgstr "Olemme innoissamme, että liityt joukkoomme!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Pahoittelemme, emme saaneet avattua tätä listaa. Jos ongelma jatkuu, ota yhteyttä listan tekijään: @{handleOrDid}." -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Pahoittelemme, emme pystyneet lataamaan hiljennettyjä sanojasi tällä hetkellä. Yritä uudelleen." @@ -6221,7 +6249,7 @@ msgid "Who can reply" msgstr "Kuka voi vastata" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" @@ -6254,7 +6282,7 @@ msgid "Wide" msgstr "Leveä" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "" @@ -6306,6 +6334,10 @@ msgstr "Voit muuttaa näitä asetuksia myöhemmin." msgid "You can change this at any time." msgstr "" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6331,7 +6363,7 @@ msgstr "Sinulla ei ole kiinnitettyjä syötteitä." msgid "You don't have any saved feeds." msgstr "Sinulla ei ole tallennettuja syötteitä." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Olet estänyt tekijän tai sinut on estetty tekijän toimesta." @@ -6369,7 +6401,7 @@ msgstr "Olet hiljentänyt tämän käyttäjätilin." msgid "You have muted this user" msgstr "Olet hiljentänyt tämän käyttäjän" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "" @@ -6390,7 +6422,7 @@ msgstr "Sinulla ei ole listoja." msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Et ole vielä estänyt yhtään käyttäjää. Estääksesi käyttäjän, siirry heidän profiiliinsa ja valitse \"Estä käyttäjä\"-vaihtoehto valikosta." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Et ole vielä luonut yhtään sovelluksen salasanaa. Voit luoda sellaisen painamalla alla olevaa painiketta." @@ -6402,15 +6434,15 @@ msgstr "Et ole hiljentänyt vielä yhtään käyttäjää. Hiljentääksesi käy msgid "You have reached the end" msgstr "" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Et ole vielä hiljentänyt yhtään sanaa tai aihetunnistetta" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Voit valittaa näistä merkinnöistä, jos ne ovat mielestäsi virheellisiä." @@ -6422,7 +6454,7 @@ msgstr "Sinun on oltava vähintään 13-vuotias rekisteröityäksesi." msgid "You must be 18 years or older to enable adult content" msgstr "Sinun on oltava vähintään 18-vuotias katsoaksesi aikuissisältöä" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "" @@ -6519,7 +6551,7 @@ msgstr "Käyttäjätunnuksesi tulee olemaan" msgid "Your full handle will be <0>@{0}" msgstr "Käyttäjätunnuksesi tulee olemaan <0>@{0}" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "Hiljentämäsi sanat" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 5a811a32f5..6105ddbd16 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -33,12 +33,12 @@ msgstr "{0, plural, one {# étiquette a été placée sur ce contenu} other {# msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "{0, plural, one {# repost} other {# reposts}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "{0, plural, one {abonné·e} other {abonné·e·s}}" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "{0, plural, one {abonnement} other {abonnements}}" @@ -47,7 +47,7 @@ msgstr "{0, plural, one {abonnement} other {abonnements}}" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "{0, plural, one {Liker (# like)} other {Liker (# likes)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "{0, plural, one {like} other {likes}}" @@ -63,7 +63,7 @@ msgstr "{0, plural, one {post} other {posts}}" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "{0, plural, one {Répondre (# réponse)} other {Répondre (# réponses)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "{0, plural, one {repost} other {reposts}}" @@ -83,7 +83,7 @@ msgstr "{estimatedTimeHrs, plural, one {heure} other {heures}}" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "{estimatedTimeMins, plural, one {minute} other {minutes}}" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} abonnements" @@ -126,7 +126,7 @@ msgstr "<0>Pas applicable. Cet avertissement est seulement disponible pour l msgid "⚠Invalid Handle" msgstr "⚠Pseudo invalide" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "Confirmation 2FA" @@ -153,9 +153,9 @@ msgstr "Paramètres d’accessibilité" msgid "Accessibility Settings" msgstr "Paramètres d’accessibilité" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "Compte" @@ -188,7 +188,7 @@ msgstr "Options de compte" msgid "Account removed from quick access" msgstr "Compte supprimé de l’accès rapide" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "Compte débloqué" @@ -201,7 +201,7 @@ msgstr "Compte désabonné" msgid "Account unmuted" msgstr "Compte démasqué" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -222,26 +222,26 @@ msgstr "Ajouter un compte à cette liste" msgid "Add account" msgstr "Ajouter un compte" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Ajouter un texte alt" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Ajouter un mot de passe d’application" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "Ajouter un mot masqué pour les paramètres configurés" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "Ajouter des mots et des mots-clés masqués" @@ -290,7 +290,7 @@ msgid "Adult content is disabled." msgstr "Le contenu pour adultes est désactivé." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "Avancé" @@ -298,10 +298,20 @@ msgstr "Avancé" msgid "All the feeds you've saved, right in one place." msgstr "Tous les fils d’actu que vous avez enregistrés, au même endroit." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" -msgstr "Autoriser les messages de" +#~ msgid "Allow messages from" +#~ msgstr "Autoriser les messages de" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 #: src/view/com/modals/ChangePassword.tsx:172 @@ -312,13 +322,13 @@ msgstr "Avez-vous déjà un code ?" msgid "Already signed in as @{0}" msgstr "Déjà connecté·e en tant que @{0}" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -383,38 +393,38 @@ msgstr "Comportement antisocial" msgid "App Language" msgstr "Langue de l’application" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Mot de passe d’application supprimé" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Les noms de mots de passe d’application ne peuvent contenir que des lettres, des chiffres, des espaces, des tirets et des tirets bas." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "Les noms de mots de passe d’application doivent comporter au moins 4 caractères." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "Paramètres de mot de passe d’application" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "Mots de passe d’application" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "Faire appel" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "Faire appel de l’étiquette « {0} »" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "Appel soumis" @@ -435,7 +445,7 @@ msgstr "Affichage" msgid "Apply default recommended feeds" msgstr "Utiliser les fils d’actu recommandés par défaut" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Êtes-vous sûr de vouloir supprimer le mot de passe de l’application « {name} » ?" @@ -455,7 +465,7 @@ msgstr "Êtes-vous sûr de vouloir supprimer {0} de vos fils d’actu ?" msgid "Are you sure you'd like to discard this draft?" msgstr "Êtes-vous sûr de vouloir rejeter ce brouillon ?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "Vous confirmez ?" @@ -476,14 +486,14 @@ msgid "At least 3 characters" msgstr "Au moins 3 caractères" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -510,7 +520,7 @@ msgstr "Date de naissance" msgid "Birthday:" msgstr "Date de naissance :" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "Bloquer" @@ -563,7 +573,7 @@ msgstr "Les comptes bloqués ne peuvent pas répondre à vos discussions, vous m msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Les comptes bloqués ne peuvent pas répondre à vos discussions, vous mentionner ou interagir avec vous. Vous ne verrez pas leur contenu et ils ne pourront pas voir le vôtre." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "Post bloqué." @@ -645,7 +655,7 @@ msgstr "par vous" msgid "Camera" msgstr "Caméra" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Ne peut contenir que des lettres, des chiffres, des espaces, des tirets et des tirets bas. La longueur doit être d’au moins 4 caractères, mais pas plus de 32." @@ -722,12 +732,12 @@ msgctxt "action" msgid "Change" msgstr "Modifier" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "Modifier le pseudo" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "Modifier le pseudo" @@ -735,12 +745,12 @@ msgstr "Modifier le pseudo" msgid "Change my email" msgstr "Modifier mon e-mail" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "Modifier le mot de passe" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "Modifier le mot de passe" @@ -765,10 +775,16 @@ msgstr "Discussion masquée" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "Paramètres de discussion" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "Discussion réaffichée" @@ -778,7 +794,7 @@ msgstr "Discussion réaffichée" msgid "Check my status" msgstr "Vérifier mon statut" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "Vérifiez votre boîte e-mail pour un code de connexion et saisissez-le ici." @@ -810,19 +826,19 @@ msgstr "Choisissez vos principaux fils d’actu" msgid "Choose your password" msgstr "Choisissez votre mot de passe" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "Effacer toutes les données de stockage existantes" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "Effacer toutes les données de stockage existantes (redémarrer ensuite)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "Effacer toutes les données de stockage" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "Effacer toutes les données de stockage (redémarrer ensuite)" @@ -831,11 +847,11 @@ msgstr "Effacer toutes les données de stockage (redémarrer ensuite)" msgid "Clear search query" msgstr "Effacer la recherche" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "Efface toutes les données de stockage existantes" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "Efface toutes les données de stockage" @@ -860,7 +876,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1003,7 +1019,7 @@ msgstr "Confirmez votre âge :" msgid "Confirm your birthdate" msgstr "Confirme votre date de naissance" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1013,7 +1029,7 @@ msgstr "Confirme votre date de naissance" msgid "Confirmation code" msgstr "Code de confirmation" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "Connexion…" @@ -1084,7 +1100,7 @@ msgstr "Passer à l’étape suivante" msgid "Continue to the next step without following any accounts" msgstr "Passer à l’étape suivante sans suivre aucun compte" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "" @@ -1092,7 +1108,7 @@ msgstr "" msgid "Cooking" msgstr "Cuisine" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Copié" @@ -1102,7 +1118,7 @@ msgid "Copied build version to clipboard" msgstr "Version de build copiée dans le presse-papier" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1113,11 +1129,11 @@ msgstr "Copié dans le presse-papier" msgid "Copied!" msgstr "Copié !" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Copie le mot de passe d’application" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Copier" @@ -1192,7 +1208,7 @@ msgstr "Créer un compte" msgid "Create an avatar instead" msgstr "Créer plutôt un avatar" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Créer un mot de passe d’application" @@ -1205,7 +1221,7 @@ msgstr "Créer un nouveau compte" msgid "Create report for {0}" msgstr "Créer un rapport pour {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} créé" @@ -1248,7 +1264,7 @@ msgstr "Thème sombre" msgid "Date of birth" msgstr "Date de naissance" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "Déboguer la modération" @@ -1258,12 +1274,12 @@ msgstr "Panneau de débug" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "Supprimer" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "Supprimer le compte" @@ -1271,16 +1287,16 @@ msgstr "Supprimer le compte" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "Suppression du compte <0>« <1>{0}<2> »" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Supprimer le mot de passe de l’appli" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Supprimer le mot de passe de l’appli ?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "Supprimer la déclaration d’ouverture aux discussions" @@ -1304,7 +1320,7 @@ msgstr "Supprimer le message pour moi" msgid "Delete my account" msgstr "Supprimer mon compte" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "Supprimer mon compte…" @@ -1325,11 +1341,11 @@ msgstr "Supprimer ce post ?" msgid "Deleted" msgstr "Supprimé" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "Post supprimé." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "Supprime l’enregistrement de déclaration de discussion" @@ -1340,7 +1356,7 @@ msgstr "Supprime l’enregistrement de déclaration de discussion" msgid "Description" msgstr "Description" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "Texte alt descriptif" @@ -1371,8 +1387,8 @@ msgstr "Désactiver le retour haptique" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Désactivé" @@ -1435,8 +1451,8 @@ msgstr "Domaine vérifié !" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1548,12 +1564,12 @@ msgid "Edit my profile" msgstr "Modifier mon profil" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "Modifier le profil" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "Modifier le profil" @@ -1656,8 +1672,8 @@ msgstr "Activez ce paramètre pour ne voir que les réponses des personnes que v msgid "Enable this source only" msgstr "Active cette source uniquement" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Activé" @@ -1670,7 +1686,7 @@ msgstr "Fin du fil d’actu" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Entrer un nom pour ce mot de passe d’application" @@ -1678,8 +1694,8 @@ msgstr "Entrer un nom pour ce mot de passe d’application" msgid "Enter a password" msgstr "Saisir un mot de passe" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "Saisir un mot ou un mot-clé" @@ -1743,8 +1759,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "Tout le monde" @@ -1794,12 +1810,12 @@ msgstr "Médias explicites ou potentiellement dérangeants." msgid "Explicit sexual images." msgstr "Images sexuelles explicites." -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "Exporter mes données" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "Exporter mes données" @@ -1815,16 +1831,16 @@ msgstr "Les médias externes peuvent permettre à des sites web de collecter des #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "Préférences sur les médias externes" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "Préférences sur les médias externes" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "Échec de la création du mot de passe d’application." @@ -1856,13 +1872,13 @@ msgstr "Échec de l’enregistrement de l’image : {0}" msgid "Failed to send" msgstr "Échec de l’envoi" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "Échec de la mise à jour des paramètres" @@ -1952,10 +1968,10 @@ msgstr "Miroir horizontal" msgid "Flip vertically" msgstr "Miroir vertical" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -1967,7 +1983,7 @@ msgid "Follow" msgstr "Suivre" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Suivre {0}" @@ -2010,9 +2026,9 @@ msgstr "vous suit" msgid "Followers" msgstr "Abonné·e·s" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2021,7 +2037,7 @@ msgstr "Abonné·e·s" msgid "Following" msgstr "Suivi" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "Suit {0}" @@ -2053,7 +2069,7 @@ msgstr "Nourriture" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Pour des raisons de sécurité, nous devrons envoyer un code de confirmation à votre e-mail." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Pour des raisons de sécurité, vous ne pourrez plus afficher ceci. Si vous perdez ce mot de passe, vous devrez en générer un autre." @@ -2062,11 +2078,11 @@ msgstr "Pour des raisons de sécurité, vous ne pourrez plus afficher ceci. Si v msgid "Forgot Password" msgstr "Mot de passe oublié" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "Mot de passe oublié ?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "Oublié ?" @@ -2078,7 +2094,7 @@ msgstr "Publication fréquente de contenu indésirable" msgid "From @{sanitizedAuthor}" msgstr "De @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "Tiré de <0/>" @@ -2126,7 +2142,7 @@ msgstr "Retour" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2141,7 +2157,7 @@ msgstr "Accéder à l’accueil" msgid "Go Home" msgstr "Accéder à l’accueil" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "" @@ -2207,13 +2223,13 @@ msgstr "Voici quelques fils d’actu thématiques populaires. Vous pouvez choisi msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "Voici quelques fils d’actu thématiques basés sur vos centres d’intérêt : {interestsText}. Vous pouvez choisir d’en suivre autant que vous le souhaitez." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Voici le mot de passe de votre appli." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2235,7 +2251,7 @@ msgid "Hide post" msgstr "Cacher ce post" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "Cacher ce contenu" @@ -2288,7 +2304,7 @@ msgid "Host:" msgstr "Hébergeur :" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2349,7 +2365,7 @@ msgstr "Illégal et urgent" msgid "Image" msgstr "Image" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Texte alt de l’image" @@ -2369,7 +2385,7 @@ msgstr "Entrez le code envoyé à votre e-mail pour réinitialiser le mot de pas msgid "Input confirmation code for account deletion" msgstr "Entrez le code de confirmation pour supprimer le compte" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Entrez le nom du mot de passe de l’appli" @@ -2381,19 +2397,19 @@ msgstr "Entrez le nouveau mot de passe" msgid "Input password for account deletion" msgstr "Entrez le mot de passe pour la suppression du compte" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "Entrez le code qui vous a été envoyé par e-mail" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "Entrez le mot de passe associé à {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "Entrez le pseudo ou l’adresse e-mail que vous avez utilisé lors de l’inscription" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "Entrez votre mot de passe" @@ -2409,16 +2425,16 @@ msgstr "Entrez votre pseudo" msgid "Introducing Direct Messages" msgstr "Et voici les Messages Privés" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Code de confirmation 2FA invalide." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Enregistrement de post invalide ou non pris en charge" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "Pseudo ou mot de passe incorrect" @@ -2470,11 +2486,11 @@ msgstr "Étiquettes" msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "Les étiquettes sont des annotations sur les comptes et le contenu. Elles peuvent être utilisées pour masquer, avertir et catégoriser le réseau." -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Étiquettes sur votre compte" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Étiquettes sur votre contenu" @@ -2509,7 +2525,7 @@ msgstr "En savoir plus" msgid "Learn more about the moderation applied to this content." msgstr "En savoir plus sur la modération appliquée à ce contenu." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "En savoir plus sur cet avertissement" @@ -2597,7 +2613,7 @@ msgstr "liké votre post" msgid "Likes" msgstr "Likes" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Likes sur ce post" @@ -2655,7 +2671,7 @@ msgid "Load new notifications" msgstr "Charger les nouvelles notifications" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2708,7 +2724,7 @@ msgstr "On dirait que vous n’avez plus de fil d’actu « Following ». <0>C msgid "Make sure this is where you intend to go!" msgstr "Assurez-vous que c’est bien là que vous avez l’intention d’aller !" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "Gérer les mots et les mots-clés masqués" @@ -2740,6 +2756,7 @@ msgid "Message {0}" msgstr "" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "Message supprimé" @@ -2752,18 +2769,18 @@ msgid "Message input field" msgstr "Champ d’écriture du message" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "Le message est trop long" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "Paramètres des messages" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "Messages" @@ -2872,11 +2889,11 @@ msgstr "Masquer tous les posts {displayTag}" msgid "Mute conversation" msgstr "Masquer la conversation" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "Masquer dans les mots-clés uniquement" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "Masquer dans le texte et les mots-clés" @@ -2888,11 +2905,11 @@ msgstr "Masquer la liste" msgid "Mute these accounts?" msgstr "Masquer ces comptes ?" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "Masquer ce mot dans le texte du post et les mots-clés" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "Masquer ce mot dans les mots-clés uniquement" @@ -2956,7 +2973,7 @@ msgstr "Mes fils d’actu enregistrés" msgid "My Saved Feeds" msgstr "Mes fils d’actu enregistrés" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "Nom" @@ -2976,7 +2993,7 @@ msgid "Nature" msgstr "Nature" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Navigue vers le prochain écran" @@ -3007,8 +3024,8 @@ msgid "New" msgstr "Nouveau" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "Nouvelle discussion" @@ -3028,7 +3045,7 @@ msgstr "Nouveau mot de passe" msgid "New Password" msgstr "Nouveau mot de passe" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "Nouveau post" @@ -3062,8 +3079,8 @@ msgstr "Actualités" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3102,7 +3119,7 @@ msgstr "Pas de panneau DNS" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "Aucun GIFs vedettes à afficher. Il y a peut-être un souci chez Tenor." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "Ne suit plus {0}" @@ -3114,7 +3131,7 @@ msgstr "Pas plus de 253 caractères" msgid "No messages yet" msgstr "Pas encore de messages" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "" @@ -3124,8 +3141,8 @@ msgstr "Pas encore de notifications !" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "Personne" @@ -3134,7 +3151,7 @@ msgstr "Personne" msgid "No result" msgstr "Aucun résultat" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "Aucun résultat" @@ -3198,15 +3215,15 @@ msgstr "Note sur le partage" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Remarque : Bluesky est un réseau ouvert et public. Ce paramètre limite uniquement la visibilité de votre contenu sur l’application et le site Web de Bluesky, et d’autres applications peuvent ne pas respecter ce paramètre. Votre contenu peut toujours être montré aux personnes non connectées par d’autres applications et sites Web." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "" @@ -3283,7 +3300,7 @@ msgid "Oops, something went wrong!" msgstr "Oups, quelque chose n’a pas marché !" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "Oups !" @@ -3296,8 +3313,8 @@ msgstr "Ouvert" msgid "Open avatar creator" msgstr "Ouvre le créateur d’avatar" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "" @@ -3310,7 +3327,7 @@ msgstr "Ouvrir le sélecteur d’emoji" msgid "Open feed options menu" msgstr "Ouvrir le menu des options de fil d’actu" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "Ouvrir des liens avec le navigateur interne à l’appli" @@ -3330,12 +3347,12 @@ msgstr "Navigation ouverte" msgid "Open post options menu" msgstr "Ouvrir le menu d’options du post" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "Ouvrir la page Storybook" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "Ouvrir le journal du système" @@ -3359,6 +3376,10 @@ msgstr "Ouvre une liste étendue des comptes dans cette notification" msgid "Opens camera on device" msgstr "Ouvre l’appareil photo de l’appareil" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "Ouvre le rédacteur" @@ -3371,7 +3392,7 @@ msgstr "Ouvre les paramètres linguistiques configurables" msgid "Opens device photo gallery" msgstr "Ouvre la galerie de photos de l’appareil" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "Ouvre les paramètres d’intégration externe" @@ -3393,23 +3414,23 @@ msgstr "Ouvre la sélection de GIF" msgid "Opens list of invite codes" msgstr "Ouvre la liste des codes d’invitation" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Ouvre la fenêtre modale pour confirmer la suppression du compte. Requiert un code e-mail." -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "Ouvre une fenêtre modale pour changer le mot de passe de Bluesky" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Ouvre une fenêtre modale pour choisir un nouveau pseudo Bluesky" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Ouvre une fenêtre modale pour télécharger les données du compte Bluesky (dépôt)" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "Ouvre une fenêtre modale pour la vérification de l’e-mail" @@ -3421,7 +3442,7 @@ msgstr "Ouvre une fenêtre modale pour utiliser un domaine personnalisé" msgid "Opens moderation settings" msgstr "Ouvre les paramètres de modération" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "Ouvre le formulaire de réinitialisation du mot de passe" @@ -3434,7 +3455,7 @@ msgstr "Ouvre l’écran pour modifier les fils d’actu enregistrés" msgid "Opens screen with all saved feeds" msgstr "Ouvre l’écran avec tous les fils d’actu enregistrés" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "Ouvre les paramètres du mot de passe de l’application" @@ -3446,12 +3467,12 @@ msgstr "Ouvre les préférences du fil d’actu « Following »" msgid "Opens the linked website" msgstr "Ouvre le site web lié" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "Ouvre la page de l’historique" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "Ouvre la page du journal système" @@ -3464,7 +3485,7 @@ msgid "Option {0} of {numItems}" msgstr "Option {0} sur {numItems}" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "Ajoutez des informations supplémentaires ci-dessous (optionnel) :" @@ -3497,7 +3518,7 @@ msgstr "Page introuvable" msgid "Page Not Found" msgstr "Page introuvable" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3607,15 +3628,15 @@ msgstr "Veuillez compléter le captcha de vérification." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Veuillez confirmer votre e-mail avant de le modifier. Ceci est temporairement requis pendant que des outils de mise à jour d’e-mail sont ajoutés, cette étape ne sera bientôt plus nécessaire." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Veuillez entrer un nom pour votre mot de passe d’application. Les espaces ne sont pas autorisés." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Veuillez saisir un nom unique pour le mot de passe de l’application ou utiliser celui que nous avons généré de manière aléatoire." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Veuillez entrer un mot, un mot-clé ou une phrase valide à masquer" @@ -3627,7 +3648,7 @@ msgstr "Veuillez entrer votre e-mail." msgid "Please enter your password as well:" msgstr "Veuillez également entrer votre mot de passe :" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Veuillez expliquer pourquoi vous pensez que cette étiquette a été appliquée à tort par {0}" @@ -3662,12 +3683,12 @@ msgctxt "action" msgid "Post" msgstr "Poster" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "Post" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "Post de {0}" @@ -3681,7 +3702,7 @@ msgstr "Post de @{0}" msgid "Post deleted" msgstr "Post supprimé" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Post caché" @@ -3703,8 +3724,8 @@ msgstr "Langue du post" msgid "Post Languages" msgstr "Langues du post" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Post introuvable" @@ -3716,7 +3737,7 @@ msgstr "posts" msgid "Posts" msgstr "Posts" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "Les posts peuvent être masqués en fonction de leur texte, de leurs mots-clés ou des deux." @@ -3755,7 +3776,7 @@ msgstr "Langue principale" msgid "Prioritize Your Follows" msgstr "Définissez des priorités de vos suivis" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Vie privée" @@ -3763,7 +3784,7 @@ msgstr "Vie privée" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Charte de confidentialité" @@ -3776,7 +3797,7 @@ msgstr "Discuter en privé avec d’autres comptes." msgid "Processing..." msgstr "Traitement…" -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "profil" @@ -3793,7 +3814,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil mis à jour" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "Protégez votre compte en vérifiant votre e-mail." @@ -3851,11 +3872,11 @@ msgstr "Recherches récentes" msgid "Reconnect" msgstr "Se reconnecter" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -3906,7 +3927,7 @@ msgstr "Supprimer l’image" msgid "Remove image preview" msgstr "Supprimer l’aperçu d’image" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "Supprimer le mot masqué de votre liste" @@ -3968,7 +3989,7 @@ msgid "Reply Filters" msgstr "Filtres de réponse" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Réponse à <0><1/>" @@ -4064,11 +4085,11 @@ msgstr "Republier ou citer" msgid "Reposted By" msgstr "Republié par" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "Republié par {0}" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "Republié par <0><1/>" @@ -4076,7 +4097,7 @@ msgstr "Republié par <0><1/>" msgid "reposted your post" msgstr "a republié votre post" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Reposts de ce post" @@ -4115,8 +4136,8 @@ msgstr "Réinitialiser le code" msgid "Reset Code" msgstr "Code de réinitialisation" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "Réinitialisation du didacticiel" @@ -4124,20 +4145,20 @@ msgstr "Réinitialisation du didacticiel" msgid "Reset password" msgstr "Réinitialiser mot de passe" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "Réinitialiser l’état des préférences" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "Réinitialise l’état d’accueil" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "Réinitialise l’état des préférences" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "Réessaye la connection" @@ -4149,8 +4170,8 @@ msgstr "Réessaye la dernière action, qui a échoué" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4175,8 +4196,8 @@ msgid "Returns to previous page" msgstr "Retour à la page précédente" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4189,7 +4210,7 @@ msgctxt "action" msgid "Save" msgstr "Enregistrer" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Enregistrer le texte alt" @@ -4385,7 +4406,7 @@ msgstr "Sélectionnez quelques comptes à suivre ci-dessous" msgid "Select the {emojiName} emoji as your avatar" msgstr "Sélectionner l’emoji {emojiName} comme avatar" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "Sélectionnez le(s) service(s) de modération destinataires du signalement" @@ -4453,14 +4474,14 @@ msgid "Send feedback" msgstr "Envoyer des commentaires" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "Envoyer le message" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "Envoyer le rapport" @@ -4554,7 +4575,6 @@ msgid "Sets image aspect ratio to wide" msgstr "Définit le rapport d’aspect de l’image comme paysage" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4618,7 +4638,7 @@ msgstr "Partage le site web lié" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4642,10 +4662,14 @@ msgstr "Afficher le badge" msgid "Show badge and filter from feeds" msgstr "Afficher les badges et filtrer des fils d’actu" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "Afficher les suivis similaires à {0}" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4653,7 +4677,7 @@ msgstr "En montrer moins comme ça" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "Voir plus" @@ -4662,6 +4686,10 @@ msgstr "Voir plus" msgid "Show more like this" msgstr "En montrer plus comme ça" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Afficher les posts de mes fils d’actu" @@ -4707,7 +4735,7 @@ msgid "Show reposts in Following" msgstr "Afficher les reposts dans le fil d’actu « Following »" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "Afficher le contenu" @@ -4731,7 +4759,7 @@ msgstr "Affiche les posts de {0} dans votre fil d’actu" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -4827,7 +4855,7 @@ msgid "Something went wrong, please try again." msgstr "Quelque chose n’a pas marché, veuillez réessayer." #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "Désolé ! Votre session a expiré. Essayez de vous reconnecter." @@ -4839,7 +4867,7 @@ msgstr "Trier les réponses" msgid "Sort replies to the same post by:" msgstr "Trier les réponses au même post par :" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "Source : <0>{0}" @@ -4860,7 +4888,7 @@ msgstr "Sports" msgid "Square" msgstr "Carré" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "Démarrer une nouvelle discussion" @@ -4872,7 +4900,7 @@ msgstr "Démarrer une discussion avec {displayName}" msgid "Start chatting" msgstr "Démarrer les discussions" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "État du service" @@ -4885,12 +4913,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Stockage effacé, vous devez redémarrer l’application maintenant." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Historique" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -4956,11 +4984,11 @@ msgstr "Bascule le compte auquel vous êtes connectés vers" msgid "System" msgstr "Système" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "Journal système" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "mot-clé" @@ -4990,7 +5018,7 @@ msgstr "Conditions générales" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5002,17 +5030,17 @@ msgstr "Conditions d’utilisation" msgid "Terms used violate community standards" msgstr "Termes utilisés qui violent les normes de la communauté" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "texte" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Champ de saisie de texte" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "Nous vous remercions. Votre rapport a été envoyé." @@ -5024,7 +5052,7 @@ msgstr "Qui contient les éléments suivants :" msgid "That handle is already taken." msgstr "Ce pseudo est déjà occupé." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Ce compte pourra interagir avec vous après le déblocage." @@ -5041,11 +5069,11 @@ msgstr "Notre politique de droits d’auteur a été déplacée vers <0/>" msgid "The feed has been replaced with Discover." msgstr "Ce fil d’actu a été remplacé par Discover." -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Les étiquettes suivantes ont été appliquées à votre compte." -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Les étiquettes suivantes ont été appliquées à votre contenu." @@ -5053,8 +5081,8 @@ msgstr "Les étiquettes suivantes ont été appliquées à votre contenu." msgid "The following steps will help customize your Bluesky experience." msgstr "Les étapes suivantes vous aideront à personnaliser votre expérience avec Bluesky." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Ce post a peut-être été supprimé." @@ -5125,7 +5153,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Il y a eu un problème lors de la récupération de vos listes. Appuyez ici pour réessayer." #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Il y a eu un problème lors de l’envoi de votre rapport. Veuillez vérifier votre connexion internet." @@ -5133,13 +5161,13 @@ msgstr "Il y a eu un problème lors de l’envoi de votre rapport. Veuillez vér msgid "There was an issue syncing your preferences with the server" msgstr "Il y a eu un problème de synchronisation de vos préférences avec le serveur" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Il y a eu un problème lors de la récupération de vos mots de passe d’application" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5183,7 +5211,7 @@ msgstr "Ce compte a demandé aux personnes de se connecter pour voir son profil. msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "Ce compte est bloqué par un ou plusieurs de vos listes de modération. Pour le débloquer, veuillez visiter les listes directement et en retirer ce compte." -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "Cet appel sera envoyé à <0>{0}." @@ -5254,7 +5282,7 @@ msgstr "Cette étiquette a été apposée par <0>{0}." msgid "This label was applied by the author." msgstr "Cette étiquette a été apposée par l’auteur·ice." -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "Cette étiquette a été apposée par vous." @@ -5274,11 +5302,11 @@ msgstr "Cette liste est vide !" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Ce service de modération n’est pas disponible. Voir ci-dessous pour plus de détails. Si le problème persiste, contactez-nous." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "Ce nom est déjà utilisé" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "Ce post a été supprimé." @@ -5332,7 +5360,7 @@ msgstr "Ce compte est inclus dans la liste <0>{0} que vous avez masquée." msgid "This user isn't following anyone." msgstr "Ce compte ne suit personne." -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Cela supprimera {0} de vos mots masqués. Vous pourrez toujours le réintégrer plus tard." @@ -5365,7 +5393,7 @@ msgstr "" msgid "To whom would you like to send this report?" msgstr "À qui souhaitez-vous envoyer ce rapport ?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Basculer entre les options pour les mots masqués." @@ -5398,7 +5426,7 @@ msgctxt "action" msgid "Try again" msgstr "Réessayer" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "Authentification à deux facteurs" @@ -5420,7 +5448,7 @@ msgstr "Réafficher cette liste" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5431,14 +5459,14 @@ msgstr "Impossible de contacter votre service. Veuillez vérifier votre connexio #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "Débloquer" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "Débloquer" @@ -5453,7 +5481,7 @@ msgstr "Débloquer le compte" msgid "Unblock Account" msgstr "Débloquer le compte" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "Débloquer le compte ?" @@ -5474,7 +5502,7 @@ msgstr "Se désabonner" msgid "Unfollow" msgstr "Se désabonner" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "Se désabonner de {0}" @@ -5587,7 +5615,7 @@ msgstr "Envoyer à partir de la photothèque" msgid "Use a file on your server" msgstr "Utiliser un fichier sur votre serveur" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilisez les mots de passe de l’appli pour se connecter à d’autres clients Bluesky sans donner un accès complet à votre compte ou à votre mot de passe." @@ -5617,7 +5645,7 @@ msgstr "Utiliser les recommandés" msgid "Use the DNS panel" msgstr "Utiliser le panneau DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Utilisez-le pour vous connecter à l’autre application avec votre identifiant." @@ -5677,7 +5705,7 @@ msgstr "Liste de compte mise à jour" msgid "User Lists" msgstr "Listes de comptes" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "Pseudo ou e-mail" @@ -5691,8 +5719,8 @@ msgstr "comptes suivis par <0/>" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "Comptes que je suis" @@ -5712,15 +5740,15 @@ msgstr "Valeur :" msgid "Verify DNS Record" msgstr "Vérifier l’enregistrement DNS" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "Confirmer l’e-mail" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "Confirmer mon e-mail" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "Confirmer mon e-mail" @@ -5737,7 +5765,7 @@ msgstr "Vérifier le fichier texte" msgid "Verify Your Email" msgstr "Vérifiez votre e-mail" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "Version {appVersion} {bundleInfo}" @@ -5761,7 +5789,7 @@ msgstr "Voir les détails" msgid "View details for reporting a copyright violation" msgstr "Voir les détails pour signaler une violation du droit d’auteur" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "Voir le fil de discussion entier" @@ -5769,8 +5797,8 @@ msgstr "Voir le fil de discussion entier" msgid "View information about these labels" msgstr "Voir les informations sur ces étiquettes" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Voir le profil" @@ -5827,7 +5855,7 @@ msgstr "Nous espérons que vous passerez un excellent moment. N’oubliez pas qu msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "Nous n’avons plus de posts provenant des comptes que vous suivez. Voici le dernier de <0/>." -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "Nous vous recommandons d’éviter les mots communs qui apparaissent dans de nombreux posts, car cela peut avoir pour conséquence qu’aucun post ne s’affiche." @@ -5855,7 +5883,7 @@ msgstr "Nous vous informerons lorsque votre compte sera prêt." msgid "We'll use this to help customize your experience." msgstr "Nous utiliserons ces informations pour personnaliser votre expérience." -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "Nous avons des soucis de réseau, réessayez" @@ -5867,7 +5895,7 @@ msgstr "Nous sommes ravis de vous accueillir !" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Nous sommes désolés, mais nous n’avons pas pu charger cette liste. Si cela persiste, veuillez contacter l’origine de la liste, @{handleOrDid}." -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Nous sommes désolés, mais nous n’avons pas pu charger vos mots masqués pour le moment. Veuillez réessayer." @@ -5912,7 +5940,7 @@ msgid "Who can reply" msgstr "Qui peut répondre ?" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "Oups !" @@ -5949,7 +5977,7 @@ msgid "Wide" msgstr "Large" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "Écrire un message" @@ -6001,6 +6029,10 @@ msgstr "Vous pouvez modifier ces paramètres ultérieurement." msgid "You can change this at any time." msgstr "Vous pouvez changer cela à tout moment." +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6022,7 +6054,7 @@ msgstr "Vous n’avez encore aucun fil épinglé." msgid "You don't have any saved feeds." msgstr "Vous n’avez encore aucun fil enregistré." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Vous avez bloqué cet auteur ou vous avez été bloqué par celui-ci." @@ -6064,7 +6096,7 @@ msgstr "Vous avez masqué ce compte" #~ msgid "You have no chats yet. Start a conversation with someone!" #~ msgstr "Vous n’avez pas de discussions pour l’instant. Démarrez une conversation avec quelqu’un !" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "" @@ -6081,7 +6113,7 @@ msgstr "Vous n’avez aucune liste." msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Vous n’avez pas encore bloqué de comptes. Pour bloquer un compte, allez sur son profil et sélectionnez « Bloquer le compte » dans le menu de son compte." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Vous n’avez encore créé aucun mot de passe pour l’appli. Vous pouvez en créer un en cliquant sur le bouton suivant." @@ -6093,15 +6125,15 @@ msgstr "Vous n’avez encore masqué aucun compte. Pour masquer un compte, allez msgid "You have reached the end" msgstr "" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Vous n’avez pas encore masqué de mot ou de mot-clé" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "Vous pouvez faire appel des étiquettes poseés par des tiers si vous pensez qu’elles ont été appliquées par erreur." -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Vous pouvez faire appel de ces étiquettes si vous estimez qu’elles ont été apposées par erreur." @@ -6113,7 +6145,7 @@ msgstr "Vous devez avoir 13 ans ou plus pour vous inscrire." msgid "You must be 18 years or older to enable adult content" msgstr "Vous devez avoir 18 ans ou plus pour activer le contenu pour adultes." -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "Vous devez sélectionner au moins un étiqueteur pour un rapport" @@ -6210,7 +6242,7 @@ msgstr "Votre nom complet sera" msgid "Your full handle will be <0>@{0}" msgstr "Votre pseudo complet sera <0>@{0}" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "Vos mots masqués" diff --git a/src/locale/locales/ga/messages.po b/src/locale/locales/ga/messages.po index 6f75839e1b..1cc2748f0e 100644 --- a/src/locale/locales/ga/messages.po +++ b/src/locale/locales/ga/messages.po @@ -40,12 +40,12 @@ msgstr "" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" @@ -54,7 +54,7 @@ msgstr "" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "" @@ -70,7 +70,7 @@ msgstr "" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" @@ -94,7 +94,7 @@ msgstr "" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} á leanúint" @@ -162,7 +162,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Leasainm Neamhbhailí" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "Dearbhú 2FA" @@ -193,9 +193,9 @@ msgstr "Socruithe Inrochtaineachta" #~ msgid "account" #~ msgstr "cuntas" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "Cuntas" @@ -228,7 +228,7 @@ msgstr "Roghanna cuntais" msgid "Account removed from quick access" msgstr "Baineadh an cuntas ón mearliosta" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "Cuntas díbhlocáilte" @@ -241,7 +241,7 @@ msgstr "Cuntas díleanaithe" msgid "Account unmuted" msgstr "Níl an cuntas i bhfolach a thuilleadh" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -262,12 +262,12 @@ msgstr "Cuir cuntas leis an liosta seo" msgid "Add account" msgstr "Cuir cuntas leis seo" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Cuir téacs malartach leis seo" @@ -275,9 +275,9 @@ msgstr "Cuir téacs malartach leis seo" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Cuir pasfhocal aipe leis seo" @@ -289,11 +289,11 @@ msgstr "Cuir pasfhocal aipe leis seo" #~ msgid "Add link card:" #~ msgstr "Cuir cárta leanúna leis seo:" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "Cuir focal atá le cur i bhfolach anseo le haghaidh socruithe a rinne tú" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "Cuir focail agus clibeanna a cuireadh i bhfolach leis seo" @@ -346,7 +346,7 @@ msgid "Adult content is disabled." msgstr "Tá ábhar do dhaoine fásta curtha ar ceal." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "Ardleibhéal" @@ -354,9 +354,19 @@ msgstr "Ardleibhéal" msgid "All the feeds you've saved, right in one place." msgstr "Na fothaí go léir a shábháil tú, in áit amháin." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 @@ -368,13 +378,13 @@ msgstr "An bhfuil cód agat cheana?" msgid "Already signed in as @{0}" msgstr "Logáilte isteach cheana mar @{0}" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -443,38 +453,38 @@ msgstr "Iompar Frithshóisialta" msgid "App Language" msgstr "Teanga na haipe" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Pasfhocal na haipe scriosta" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Ní féidir ach litreacha, uimhreacha, spásanna, daiseanna agus fostríocanna a bheith in ainmneacha phasfhocal na haipe." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "Caithfear 4 charachtar ar a laghad a bheith in ainmneacha phasfhocal na haipe." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "Socruithe phasfhocal na haipe" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "Pasfhocal na haipe" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "Achomharc" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "Achomharc in aghaidh lipéid \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -499,7 +509,7 @@ msgstr "Cuma" msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "An bhfuil tú cinnte gur mhaith leat pasfhocal na haipe “{name}” a scriosadh?" @@ -527,7 +537,7 @@ msgstr "An bhfuil tú cinnte gur mhaith leat {0} a bhaint de do chuid fothaí?" msgid "Are you sure you'd like to discard this draft?" msgstr "An bhfuil tú cinnte gur mhaith leat an dréacht seo a scriosadh?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "Lánchinnte?" @@ -548,14 +558,14 @@ msgid "At least 3 characters" msgstr "3 charachtar ar a laghad" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -582,7 +592,7 @@ msgstr "Breithlá" msgid "Birthday:" msgstr "Breithlá:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "Blocáil" @@ -635,7 +645,7 @@ msgstr "Ní féidir leis na cuntais bhlocáilte freagra a thabhairt ar do chomhr msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Ní féidir leis na cuntais bhlocáilte freagra a thabhairt ar do chomhráite, tagairt a dhéanamh duit, ná aon phlé eile a bheith acu leat. Ní fheicfidh tú a gcuid ábhair agus ní fheicfidh siad do chuid ábhair." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "Postáil bhlocáilte." @@ -733,7 +743,7 @@ msgstr "leat" msgid "Camera" msgstr "Ceamara" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Ní féidir ach litreacha, uimhreacha, spásanna, daiseanna agus fostríocanna a bheith ann. Caithfear 4 charachtar ar a laghad a bheith ann agus gan níos mó ná 32 charachtar." @@ -810,12 +820,12 @@ msgctxt "action" msgid "Change" msgstr "Athraigh" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "Athraigh mo leasainm" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "Athraigh mo leasainm" @@ -823,12 +833,12 @@ msgstr "Athraigh mo leasainm" msgid "Change my email" msgstr "Athraigh mo ríomhphost" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "Athraigh mo phasfhocal" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "Athraigh mo phasfhocal" @@ -853,10 +863,16 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "" @@ -878,7 +894,7 @@ msgstr "Seiceáil mo stádas" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Cuir súil ar na húsáideoirí seo. Lean iad le húsáideoirí atá cosúil leo a fheiceáil." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "Féach ar do bhosca ríomhphoist le haghaidh cód dearbhaithe agus cuir isteach anseo é." @@ -914,19 +930,19 @@ msgstr "Roghnaigh do phríomhfhothaí" msgid "Choose your password" msgstr "Roghnaigh do phasfhocal" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "Glan na sonraí oidhreachta ar fad atá i dtaisce." -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "Glan na sonraí oidhreachta ar fad atá i dtaisce. Ansin atosaigh." -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "Glan na sonraí ar fad atá i dtaisce." -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "Glan na sonraí ar fad atá i dtaisce. Ansin atosaigh." @@ -935,11 +951,11 @@ msgstr "Glan na sonraí ar fad atá i dtaisce. Ansin atosaigh." msgid "Clear search query" msgstr "Glan an cuardach" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "Glanann seo na sonraí oidhreachta ar fad atá i dtaisce" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "Glanann seo na sonraí ar fad atá i dtaisce" @@ -972,7 +988,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1115,7 +1131,7 @@ msgstr "Dearbhaigh d'aois:" msgid "Confirm your birthdate" msgstr "Dearbhaigh do bhreithlá" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1125,7 +1141,7 @@ msgstr "Dearbhaigh do bhreithlá" msgid "Confirmation code" msgstr "Cód dearbhaithe" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "Ag nascadh…" @@ -1200,7 +1216,7 @@ msgstr "Lean ar aghaidh go dtí an chéad chéim eile" msgid "Continue to the next step without following any accounts" msgstr "Lean ar aghaidh go dtí an chéad chéim eile gan aon chuntas a leanúint" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "" @@ -1208,7 +1224,7 @@ msgstr "" msgid "Cooking" msgstr "Cócaireacht" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Cóipeáilte" @@ -1218,7 +1234,7 @@ msgid "Copied build version to clipboard" msgstr "Leagan cóipeáilte sa ghearrthaisce" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1229,11 +1245,11 @@ msgstr "Cóipeáilte sa ghearrthaisce" msgid "Copied!" msgstr "Cóipeáilte!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Cóipeálann sé seo pasfhocal na haipe" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Cóipeáil" @@ -1316,7 +1332,7 @@ msgstr "Cruthaigh cuntas" msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Cruthaigh pasfhocal aipe" @@ -1329,7 +1345,7 @@ msgstr "Cruthaigh cuntas nua" msgid "Create report for {0}" msgstr "Cruthaigh tuairisc do {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Cruthaíodh {0}" @@ -1376,7 +1392,7 @@ msgstr "Téama Dorcha" msgid "Date of birth" msgstr "Dáta breithe" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "Dífhabhtaigh Modhnóireacht" @@ -1386,12 +1402,12 @@ msgstr "Painéal dífhabhtaithe" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "Scrios" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "Scrios an cuntas" @@ -1403,16 +1419,16 @@ msgstr "Scrios an cuntas" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Scrios pasfhocal na haipe" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Scrios pasfhocal na haipe?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "" @@ -1436,7 +1452,7 @@ msgstr "" msgid "Delete my account" msgstr "Scrios mo chuntas" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "Scrios mo chuntas…" @@ -1457,11 +1473,11 @@ msgstr "An bhfuil fonn ort an phostáil seo a scriosadh?" msgid "Deleted" msgstr "Scriosta" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "Scriosadh an phostáil." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "" @@ -1472,7 +1488,7 @@ msgstr "" msgid "Description" msgstr "Cur síos" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "" @@ -1507,8 +1523,8 @@ msgstr "Ná húsáid aiseolas haptach" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Díchumasaithe" @@ -1571,8 +1587,8 @@ msgstr "Fearann dearbhaithe!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1684,12 +1700,12 @@ msgid "Edit my profile" msgstr "Athraigh mo phróifíl" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "Athraigh an phróifíl" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "Athraigh an Phróifíl" @@ -1792,8 +1808,8 @@ msgstr "Cuir an socrú seo ar siúl le gan ach freagraí i measc na ndaoine a le msgid "Enable this source only" msgstr "Cuir an foinse seo amháin ar fáil" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Cumasaithe" @@ -1806,7 +1822,7 @@ msgstr "Deireadh an fhotha" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Cuir isteach ainm don phasfhocal aipe seo" @@ -1814,8 +1830,8 @@ msgstr "Cuir isteach ainm don phasfhocal aipe seo" msgid "Enter a password" msgstr "Cuir pasfhocal isteach" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "Cuir focal na clib isteach" @@ -1879,8 +1895,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "" @@ -1930,12 +1946,12 @@ msgstr "Meáin is féidir a bheith gáirsiúil nó goilliúnach." msgid "Explicit sexual images." msgstr "Íomhánna gnéasacha." -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "Easpórtáil mo chuid sonraí" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "Easpórtáil mo chuid sonraí" @@ -1951,16 +1967,16 @@ msgstr "Is féidir le meáin sheachtracha cumas a thabhairt do shuíomhanna ar a #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "Roghanna maidir le meáin sheachtracha" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "Socruithe maidir le meáin sheachtracha" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "Teip ar phasfhocal aipe a chruthú." @@ -2004,13 +2020,13 @@ msgstr "" #~ msgid "Failed to send message(s)." #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "" @@ -2116,10 +2132,10 @@ msgstr "Iompaigh go cothrománach é" msgid "Flip vertically" msgstr "Iompaigh go hingearach é" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2131,7 +2147,7 @@ msgid "Follow" msgstr "Lean" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Lean {0}" @@ -2178,9 +2194,9 @@ msgstr "— lean sé/sí thú" msgid "Followers" msgstr "Leantóirí" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2189,7 +2205,7 @@ msgstr "Leantóirí" msgid "Following" msgstr "Á leanúint" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "Ag leanúint {0}" @@ -2221,7 +2237,7 @@ msgstr "Bia" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Ar chúiseanna slándála, beidh orainn cód dearbhaithe a chur chuig do sheoladh ríomhphoist." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Ar chúiseanna slándála, ní bheidh tú in ann é seo a fheiceáil arís. Má chailleann tú an pasfhocal seo beidh ort ceann nua a chruthú." @@ -2230,11 +2246,11 @@ msgstr "Ar chúiseanna slándála, ní bheidh tú in ann é seo a fheiceáil ar msgid "Forgot Password" msgstr "Pasfhocal dearmadta" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "Pasfhocal dearmadta?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "Dearmadta?" @@ -2246,7 +2262,7 @@ msgstr "Is minic a phostálann siad ábhar nach bhfuil de dhíth" msgid "From @{sanitizedAuthor}" msgstr "Ó @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "Ó <0/>" @@ -2294,7 +2310,7 @@ msgstr "Ar ais" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2313,7 +2329,7 @@ msgstr "Abhaile" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Téigh go dtí @{queryMaybeHandle}" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "" @@ -2379,13 +2395,13 @@ msgstr "Seo cúpla fotha a bhfuil ráchairt orthu. Is féidir leat an méid acu msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "Seo cúpla fotha a phléann le rudaí a bhfuil suim agat iontu: {interestsText}. Is féidir leat an méid acu is mian leat a leanúint." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Seo é do phasfhocal aipe." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2407,7 +2423,7 @@ msgid "Hide post" msgstr "Cuir an phostáil seo i bhfolach" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "Cuir an t-ábhar seo i bhfolach" @@ -2460,7 +2476,7 @@ msgid "Host:" msgstr "Óstach:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2521,7 +2537,7 @@ msgstr "Mídhleathach agus Práinneach" msgid "Image" msgstr "Íomhá" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Téacs malartach le híomhá" @@ -2541,7 +2557,7 @@ msgstr "Cuir isteach an cód a seoladh chuig do ríomhphost leis an bpasfhocal a msgid "Input confirmation code for account deletion" msgstr "Cuir isteach an cód dearbhaithe leis an gcuntas a scriosadh" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Cuir isteach an t-ainm le haghaidh phasfhocal na haipe" @@ -2553,19 +2569,19 @@ msgstr "Cuir isteach an pasfhocal nua" msgid "Input password for account deletion" msgstr "Cuir isteach an pasfhocal chun an cuntas a scriosadh" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "Cuir isteach an cód a chuir muid chugat i dteachtaireacht r-phoist" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "Cuir isteach an pasfhocal ceangailte le {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "Cuir isteach an leasainm nó an seoladh ríomhphoist a d’úsáid tú nuair a chláraigh tú" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "Cuir isteach do phasfhocal" @@ -2581,16 +2597,16 @@ msgstr "Cuir isteach do leasainm" msgid "Introducing Direct Messages" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Tá an cód 2FA seo neamhbhailí." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Taifead postála atá neamhbhailí nó gan bhunús" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "Leasainm nó pasfhocal míchruinn" @@ -2650,11 +2666,11 @@ msgstr "Nótaí faoi úsáideoirí nó ábhar is ea lipéid. Is féidir úsáid #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "cuireadh lipéid ar an {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Lipéid ar do chuntas" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Lipéid ar do chuid ábhair" @@ -2689,7 +2705,7 @@ msgstr "Le tuilleadh a fhoghlaim" msgid "Learn more about the moderation applied to this content." msgstr "Foghlaim níos mó faoin modhnóireacht a dhéantar ar an ábhar seo." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Le tuilleadh a fhoghlaim faoin rabhadh seo" @@ -2795,7 +2811,7 @@ msgstr "a mhol do phostáil" msgid "Likes" msgstr "Moltaí" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Moltaí don phostáil seo" @@ -2853,7 +2869,7 @@ msgid "Load new notifications" msgstr "Lódáil fógraí nua" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2910,7 +2926,7 @@ msgstr "" msgid "Make sure this is where you intend to go!" msgstr "Bí cinnte go bhfuil tú ag iarraidh cuairt a thabhairt ar an áit sin!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "Bainistigh do chuid clibeanna agus na focail a chuir tú i bhfolach" @@ -2942,6 +2958,7 @@ msgid "Message {0}" msgstr "" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "" @@ -2954,18 +2971,18 @@ msgid "Message input field" msgstr "" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" @@ -3078,11 +3095,11 @@ msgstr "Cuir gach postáil {displayTag} i bhfolach" msgid "Mute conversation" msgstr "" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "Ná cuir i bhfolach ach i gclibeanna" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "Cuir i bhfolach i dtéacs agus i gclibeanna" @@ -3099,11 +3116,11 @@ msgstr "Cuir an liosta i bhfolach" msgid "Mute these accounts?" msgstr "An bhfuil fonn ort na cuntais seo a chur i bhfolach" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "Cuir an focal seo i bhfolach i dtéacs postálacha agus i gclibeanna" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "Ná cuir an focal seo i bhfolach ach i gclibeanna" @@ -3167,7 +3184,7 @@ msgstr "Na fothaí a shábháil mé" msgid "My Saved Feeds" msgstr "Na Fothaí a Shábháil Mé" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "Ainm" @@ -3187,7 +3204,7 @@ msgid "Nature" msgstr "Nádúr" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Téann sé seo chuig an gcéad scáileán eile" @@ -3222,8 +3239,8 @@ msgid "New" msgstr "Nua" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" @@ -3243,7 +3260,7 @@ msgstr "Pasfhocal Nua" msgid "New Password" msgstr "Pasfhocal Nua" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "Postáil nua" @@ -3277,8 +3294,8 @@ msgstr "Nuacht" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3318,7 +3335,7 @@ msgstr "Gan Phainéal DNS" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "Níor aimsíodh GIFanna speisialta. D'fhéadfadh sé gur tharla fadhb le Tenor." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "Ní leantar {0} níos mó" @@ -3330,7 +3347,7 @@ msgstr "Gan a bheith níos faide na 253 charachtar" msgid "No messages yet" msgstr "" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "" @@ -3340,8 +3357,8 @@ msgstr "Níl aon fhógra ann fós!" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "" @@ -3350,7 +3367,7 @@ msgstr "" msgid "No result" msgstr "Gan torthaí" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "" @@ -3422,15 +3439,15 @@ msgstr "Nóta faoi roinnt" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nod leat: is gréasán oscailte poiblí Bluesky. Ní chuireann an socrú seo srian ar fheiceálacht do chuid ábhair ach amháin ar aip agus suíomh Bluesky. Is féidir nach gcloífidh aipeanna eile leis an socrú seo. Is féidir go dtaispeánfar do chuid ábhair d’úsáideoirí atá lógáilte amach ar aipeanna agus suíomhanna eile." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "" @@ -3511,7 +3528,7 @@ msgid "Oops, something went wrong!" msgstr "Úps! Theip ar rud éigin!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "Úps!" @@ -3524,8 +3541,8 @@ msgstr "Oscail" msgid "Open avatar creator" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "" @@ -3538,7 +3555,7 @@ msgstr "Oscail roghnóir na n-emoji" msgid "Open feed options menu" msgstr "Oscail roghchlár na bhfothaí" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "Oscail nascanna leis an mbrabhsálaí san aip" @@ -3558,12 +3575,12 @@ msgstr "Oscail an nascleanúint" msgid "Open post options menu" msgstr "Oscail roghchlár na bpostálacha" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "Oscail leathanach an Storybook" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "Oscail logleabhar an chórais" @@ -3587,6 +3604,10 @@ msgstr "Osclaíonn sé seo liosta méadaithe d’úsáideoirí san fhógra seo" msgid "Opens camera on device" msgstr "Osclaíonn sé seo an ceamara ar an ngléas" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "Osclaíonn sé seo an t-eagarthóir" @@ -3599,7 +3620,7 @@ msgstr "Osclaíonn sé seo na socruithe teanga is féidir a dhéanamh" msgid "Opens device photo gallery" msgstr "Osclaíonn sé seo gailearaí na ngrianghraf ar an ngléas" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "Osclaíonn sé seo na socruithe le haghaidh leabuithe seachtracha" @@ -3621,23 +3642,23 @@ msgstr "Osclaíonn sé seo fuinneog chun GIF a roghnú" msgid "Opens list of invite codes" msgstr "Osclaíonn sé seo liosta na gcód cuiridh" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Osclaíonn sé seo an fhuinneog le scriosadh an chuntais a dhearbhú. Tá cód ríomhphoist riachtanach" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "Osclaíonn sé seo an fhuinneog le do phasfhocal Bluesky a athrú" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Osclaíonn sé seo an fhuinneog le leasainm nua Bluesky a roghnú" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Osclaíonn sé seo an fhuinneog le stór sonraí do chuntais Bluesky a íoslódáil" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "Osclaíonn sé seo fuinneog le deimhniú an ríomhphoist" @@ -3649,7 +3670,7 @@ msgstr "Osclaíonn sé seo an fhuinneog le sainfhearann a úsáid" msgid "Opens moderation settings" msgstr "Osclaíonn sé seo socruithe na modhnóireachta" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "Osclaíonn sé seo an fhoirm leis an bpasfhocal a athrú" @@ -3662,7 +3683,7 @@ msgstr "Osclaíonn sé seo an scáileán leis na fothaí sábháilte a athrú" msgid "Opens screen with all saved feeds" msgstr "Osclaíonn sé seo an scáileán leis na fothaí sábháilte go léir" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "Osclaíonn sé seo an leathanach a bhfuil socruithe phasfhocal na haipe air" @@ -3678,12 +3699,12 @@ msgstr "Osclaíonn sé seo an suíomh gréasáin atá nasctha" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "Osclaíonn sé seo leathanach an Storybook" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "Osclaíonn sé seo logleabhar an chórais" @@ -3696,7 +3717,7 @@ msgid "Option {0} of {numItems}" msgstr "Rogha {0} as {numItems}" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "Is féidir tuilleadh eolais a chur ar fáil thíos:" @@ -3729,7 +3750,7 @@ msgstr "Leathanach gan aimsiú" msgid "Page Not Found" msgstr "Leathanach gan aimsiú" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3839,15 +3860,15 @@ msgstr "Déan an captcha, le do thoil." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Dearbhaigh do ríomhphost roimh é a athrú. Riachtanas sealadach é seo le linn dúinn acmhainní a chur isteach le haghaidh uasdátú an ríomhphoist. Scriosfar é seo roimh i bhfad." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Cuir isteach ainm le haghaidh phasfhocal na haipe, le do thoil. Ní cheadaítear spásanna gan aon rud eile ann." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Cuir isteach ainm nach bhfuil in úsáid cheana féin le haghaidh Phasfhocal na hAipe nó bain úsáid as an gceann a chruthóidh muid go randamach." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Cuir focal, clib, nó frása inghlactha isteach le cur i bhfolach" @@ -3859,7 +3880,7 @@ msgstr "Cuir isteach do sheoladh ríomhphoist, le do thoil." msgid "Please enter your password as well:" msgstr "Cuir isteach do phasfhocal freisin, le do thoil." -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Abair linn, le do thoil, cén fáth a gcreideann tú gur chuir {0} an lipéad seo i bhfeidhm go mícheart" @@ -3894,12 +3915,12 @@ msgctxt "action" msgid "Post" msgstr "Postáil" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "Postáil" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "Postáil ó {0}" @@ -3913,7 +3934,7 @@ msgstr "Postáil ó @{0}" msgid "Post deleted" msgstr "Scriosadh an phostáil" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Cuireadh an phostáil i bhfolach" @@ -3935,8 +3956,8 @@ msgstr "Teanga postála" msgid "Post Languages" msgstr "Teangacha postála" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Ní bhfuarthas an phostáil" @@ -3948,7 +3969,7 @@ msgstr "postálacha" msgid "Posts" msgstr "Postálacha" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "Is féidir postálacha a chuir i bhfolach de bharr a gcuid téacs, a gcuid clibeanna, nó an dá rud." @@ -3992,7 +4013,7 @@ msgstr "Príomhtheanga" msgid "Prioritize Your Follows" msgstr "Tabhair Tosaíocht do Do Chuid Leantóirí" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Príobháideacht" @@ -4000,7 +4021,7 @@ msgstr "Príobháideacht" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Polasaí príobháideachta" @@ -4013,7 +4034,7 @@ msgstr "" msgid "Processing..." msgstr "Á phróiseáil..." -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "próifíl" @@ -4030,7 +4051,7 @@ msgstr "Próifíl" msgid "Profile updated" msgstr "Próifíl uasdátaithe" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "Dearbhaigh do ríomhphost le do chuntas a chosaint." @@ -4100,11 +4121,11 @@ msgstr "Cuardaigh a Rinneadh le Déanaí" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4155,7 +4176,7 @@ msgstr "Bain an íomhá de" msgid "Remove image preview" msgstr "Bain réamhléiriú den íomhá" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "Bain focal folaigh de do liosta" @@ -4222,7 +4243,7 @@ msgstr "Scagairí freagra" #~ msgstr "Freagra ar <0/>" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Freagra ar <0><1/>" @@ -4318,7 +4339,7 @@ msgstr "Athphostáil nó luaigh postáil" msgid "Reposted By" msgstr "Athphostáilte ag" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "Athphostáilte ag {0}" @@ -4326,7 +4347,7 @@ msgstr "Athphostáilte ag {0}" #~ msgid "Reposted by <0/>" #~ msgstr "Athphostáilte ag <0/>" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "Athphostáilte ag <0><1/>" @@ -4334,7 +4355,7 @@ msgstr "Athphostáilte ag <0><1/>" msgid "reposted your post" msgstr "— d'athphostáil sé/sí do phostáil" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Athphostálacha den phostáil seo" @@ -4373,8 +4394,8 @@ msgstr "Cód athshocraithe" msgid "Reset Code" msgstr "Cód Athshocraithe" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "Athshocraigh an próiseas cláraithe" @@ -4382,20 +4403,20 @@ msgstr "Athshocraigh an próiseas cláraithe" msgid "Reset password" msgstr "Athshocraigh an pasfhocal" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "Athshocraigh na roghanna" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "Athshocraíonn sé seo an clárú" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "Athshocraíonn sé seo na roghanna" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "Baineann sé seo triail eile as an logáil isteach" @@ -4407,8 +4428,8 @@ msgstr "Baineann sé seo triail eile as an ngníomh is déanaí, ar theip air" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4437,8 +4458,8 @@ msgid "Returns to previous page" msgstr "Filleann sé seo ar an leathanach roimhe seo" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4451,7 +4472,7 @@ msgctxt "action" msgid "Save" msgstr "Sábháil" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Sábháil an téacs malartach" @@ -4659,7 +4680,7 @@ msgstr "Roghnaigh cúpla cuntas le leanúint" msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "Roghnaigh na seirbhísí modhnóireachta le tuairisciú chuige" @@ -4727,14 +4748,14 @@ msgid "Send feedback" msgstr "Seol aiseolas" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "Seol an tuairisc" @@ -4828,7 +4849,6 @@ msgid "Sets image aspect ratio to wide" msgstr "Socraíonn sé seo cóimheas treoíochta na híomhá go leathan" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4892,7 +4912,7 @@ msgstr "Roinneann sé seo na suíomh gréasáin atá nasctha" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4920,10 +4940,14 @@ msgstr "Taispeáin suaitheantas" msgid "Show badge and filter from feeds" msgstr "Taispeáin suaitheantas agus scag ó na fothaí é" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "Taispeáin cuntais cosúil le {0}" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4931,7 +4955,7 @@ msgstr "" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "Tuilleadh" @@ -4940,6 +4964,10 @@ msgstr "Tuilleadh" msgid "Show more like this" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Taispeáin postálacha ó mo chuid fothaí" @@ -4989,7 +5017,7 @@ msgid "Show reposts in Following" msgstr "Taispeáin athphostálacha san fhotha “Á Leanúint”" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "Taispeáin an t-ábhar" @@ -5013,7 +5041,7 @@ msgstr "Taispeánann sé seo postálacha ó {0} i d'fhotha" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -5109,7 +5137,7 @@ msgid "Something went wrong, please try again." msgstr "Chuaigh rud éigin ó rath. Bain triail eile as." #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "Ár leithscéal. Chuaigh do sheisiún i léig. Ní mór duit logáil isteach arís." @@ -5125,7 +5153,7 @@ msgstr "Sórtáil freagraí ar an bpostáil chéanna de réir:" #~ msgid "Source:" #~ msgstr "Foinse:" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "" @@ -5146,7 +5174,7 @@ msgstr "Spórt" msgid "Square" msgstr "Cearnóg" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "" @@ -5162,7 +5190,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Leathanach stádais" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "" @@ -5179,12 +5207,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Stóráil scriosta, tá ort an aip a atosú anois." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5250,11 +5278,11 @@ msgstr "Athraíonn sé seo an cuntas beo" msgid "System" msgstr "Córas" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "Logleabhar an chórais" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "clib" @@ -5284,7 +5312,7 @@ msgstr "Téarmaí" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5296,17 +5324,17 @@ msgstr "Téarmaí Seirbhíse" msgid "Terms used violate community standards" msgstr "Sárú ar chaighdeáin an phobail atá sna téarmaí a úsáideadh" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "téacs" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Réimse téacs" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "Go raibh maith agat. Seoladh do thuairisc." @@ -5318,7 +5346,7 @@ msgstr "Ina bhfuil an méid seo a leanas:" msgid "That handle is already taken." msgstr "Tá an leasainm sin in úsáid cheana féin." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Beidh an cuntas seo in ann caidreamh a dhéanamh leat tar éis duit é a dhíbhlocáil" @@ -5339,11 +5367,11 @@ msgstr "Bogadh an Polasaí Cóipchirt go dtí <0/>" msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Cuireadh na lipéid seo a leanas le do chuntas." -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Cuireadh na lipéid seo a leanas le do chuid ábhair." @@ -5351,8 +5379,8 @@ msgstr "Cuireadh na lipéid seo a leanas le do chuid ábhair." msgid "The following steps will help customize your Bluesky experience." msgstr "Cuideoidh na céimeanna seo a leanas leat Bluesky a chur in oiriúint duit féin." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Is féidir gur scriosadh an phostáil seo." @@ -5427,7 +5455,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Bhí fadhb ann maidir le do chuid liostaí a fháil. Tapáil anseo le triail eile a bhaint as." #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Níor seoladh do thuairisc. Seiceáil do nasc leis an idirlíon, le do thoil." @@ -5435,13 +5463,13 @@ msgstr "Níor seoladh do thuairisc. Seiceáil do nasc leis an idirlíon, le do t msgid "There was an issue syncing your preferences with the server" msgstr "Bhí fadhb ann maidir le do chuid roghanna a shioncronú leis an bhfreastalaí" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Bhí fadhb ann maidir le do chuid pasfhocal don aip a fháil" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5485,7 +5513,7 @@ msgstr "Ní mór duit logáil isteach le próifíl an chuntais seo a fheiceáil. msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "Cuirfear an t-achomharc seo chuig <0>{0}." @@ -5568,7 +5596,7 @@ msgstr "" #~ msgid "This label was applied by you" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "" @@ -5588,11 +5616,11 @@ msgstr "Tá an liosta seo folamh!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Níl an tseirbhís modhnóireachta ar fáil. Féach tuilleadh sonraí thíos. Má mhaireann an fhadhb seo, téigh i dteagmháil linn." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "Tá an t-ainm seo in úsáid cheana féin" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "Scriosadh an phostáil seo." @@ -5650,7 +5678,7 @@ msgstr "Níl éinne á leanúint ag an úsáideoir seo." #~ msgid "This warning is only available for posts with media attached." #~ msgstr "Níl an rabhadh seo ar fáil ach le haghaidh postálacha a bhfuil meáin ceangailte leo." -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Bainfidh sé seo {0} de do chuid focal i bhfolach. Tig leat é a chur ar ais níos déanaí." @@ -5683,7 +5711,7 @@ msgstr "" msgid "To whom would you like to send this report?" msgstr "Cé chuige ar mhaith leat an tuairisc seo a sheoladh?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Scoránaigh idir na roghanna maidir le focail atá le cur i bhfolach." @@ -5716,7 +5744,7 @@ msgctxt "action" msgid "Try again" msgstr "Bain triail eile as" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "Fíordheimhniú déshraithe (2FA)" @@ -5738,7 +5766,7 @@ msgstr "Ná coinnigh an liosta sin i bhfolach níos mó" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5749,14 +5777,14 @@ msgstr "Ní féidir teagmháil a dhéanamh le do sheirbhís. Seiceáil do cheang #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "Díbhlocáil" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "Díbhlocáil" @@ -5771,7 +5799,7 @@ msgstr "" msgid "Unblock Account" msgstr "Díbhlocáil an cuntas" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "An bhfuil fonn ort an cuntas seo a dhíbhlocáil?" @@ -5792,7 +5820,7 @@ msgstr "Dílean" msgid "Unfollow" msgstr "Dílean" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "Dílean {0}" @@ -5917,7 +5945,7 @@ msgstr "Uaslódáil ó Leabharlann" msgid "Use a file on your server" msgstr "Bain úsáid as comhad ar do fhreastalaí" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Bain úsáid as pasfhocail na haipe le logáil isteach ar chliaint eile de chuid Bluesky gan fáil iomlán ar do chuntas ná do phasfhocal a thabhairt dóibh." @@ -5947,7 +5975,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "Bain feidhm as an bpainéal DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Úsáid é seo le logáil isteach ar an aip eile in éindí le do leasainm." @@ -6007,7 +6035,7 @@ msgstr "Liosta úsáideoirí uasdátaithe" msgid "User Lists" msgstr "Liostaí Úsáideoirí" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "Ainm úsáideora nó ríomhphost" @@ -6021,8 +6049,8 @@ msgstr "Úsáideoirí a bhfuil <0/> á leanúint" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "" @@ -6046,15 +6074,15 @@ msgstr "Luach:" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "Dearbhaigh ríomhphost" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "Dearbhaigh mo ríomhphost" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "Dearbhaigh Mo Ríomhphost" @@ -6075,7 +6103,7 @@ msgstr "Dearbhaigh Do Ríomhphost" #~ msgid "Version {0}" #~ msgstr "Leagan {0}" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6099,7 +6127,7 @@ msgstr "Féach ar shonraí" msgid "View details for reporting a copyright violation" msgstr "Féach ar shonraí maidir le sárú cóipchirt a thuairisciú" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "Féach ar an snáithe iomlán" @@ -6107,8 +6135,8 @@ msgstr "Féach ar an snáithe iomlán" msgid "View information about these labels" msgstr "Féach ar eolas faoi na lipéid seo" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Féach ar an bpróifíl" @@ -6165,7 +6193,7 @@ msgstr "Tá súil againn go mbeidh an-chraic agat anseo. Ná déan dearmad go bh msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "Níl aon ábhar nua le taispeáint ó na cuntais a leanann tú. Seo duit an t-ábhar is déanaí ó <0/>." -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "Molaimid focail choitianta a bhíonn i go leor póstálacha a sheachaint, toisc gur féidir nach dtaispeánfaí aon phostáil dá bharr." @@ -6193,7 +6221,7 @@ msgstr "Déarfaidh muid leat nuair a bheidh do chuntas réidh." msgid "We'll use this to help customize your experience." msgstr "Bainfimid úsáid as seo chun an suíomh a chur in oiriúint duit." -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "" @@ -6205,7 +6233,7 @@ msgstr "Tá muid an-sásta go bhfuil tú linn!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Ár leithscéal, ach ní féidir linn an liosta seo a thaispeáint. Má mhaireann an fhadhb, déan teagmháil leis an duine a chruthaigh an liosta, @{handleOrDid}." -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Tá brón orainn, ach theip orainn na focail a chuir tú i bhfolach a lódáil an uair seo. Bain triail as arís." @@ -6254,7 +6282,7 @@ msgid "Who can reply" msgstr "Cé atá in ann freagra a thabhairt" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" @@ -6287,7 +6315,7 @@ msgid "Wide" msgstr "Leathan" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "" @@ -6339,6 +6367,10 @@ msgstr "Is féidir leat na socruithe seo a athrú níos déanaí." msgid "You can change this at any time." msgstr "" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6364,7 +6396,7 @@ msgstr "Níl aon fhothaí greamaithe agat." msgid "You don't have any saved feeds." msgstr "Níl aon fhothaí sábháilte agat." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Bhlocáil tú an t-údar nó tá tú blocáilte ag an údar." @@ -6402,7 +6434,7 @@ msgstr "Chuir tú an cuntas seo i bhfolach." msgid "You have muted this user" msgstr "Chuir tú an t-úsáideoir seo i bhfolach" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "" @@ -6423,7 +6455,7 @@ msgstr "Níl aon liostaí agat." msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Níor bhlocáil tú aon chuntas fós. Le cuntas a bhlocáil, téigh go dtí a bpróifíl agus roghnaigh “Blocáil an cuntas seo” ar an gclár ansin." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Níor chruthaigh tú aon phasfhocal aipe fós. Is féidir leat ceann a chruthú ach brú ar an gcnaipe thíos." @@ -6435,15 +6467,15 @@ msgstr "Níor chuir tú aon chuntas i bhfolach fós. Le cuntas a chur i bhfolach msgid "You have reached the end" msgstr "" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Níor chuir tú aon fhocal ná clib i bhfolach fós" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Is féidir leat achomharc a dhéanamh maidir leis na lipéad seo má shíleann tú gur cuireadh in earráid iad." @@ -6455,7 +6487,7 @@ msgstr "Caithfidh tú a bheith 13 bliana d’aois nó níos sine le clárú." msgid "You must be 18 years or older to enable adult content" msgstr "Caithfidh tú a bheith 18 mbliana d’aois nó níos sine le hábhar do dhaoine fásta a fháil." -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "Caithfidh tú ar a laghad lipéadóir amháin a roghnú do thuairisc" @@ -6552,7 +6584,7 @@ msgstr "Do leasainm iomlán anseo:" msgid "Your full handle will be <0>@{0}" msgstr "Do leasainm iomlán anseo: <0>@{0}" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "Na focail a chuir tú i bhfolach" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index c4ff6ac76b..f5293b850a 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -45,12 +45,12 @@ msgstr "" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" @@ -59,7 +59,7 @@ msgstr "" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "" @@ -75,7 +75,7 @@ msgstr "" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" @@ -99,7 +99,7 @@ msgstr "" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "" @@ -185,7 +185,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "" @@ -224,9 +224,9 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "अकाउंट" @@ -259,7 +259,7 @@ msgstr "अकाउंट के विकल्प" msgid "Account removed from quick access" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "" @@ -272,7 +272,7 @@ msgstr "" msgid "Account unmuted" msgstr "" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -293,12 +293,12 @@ msgstr "इस सूची में किसी को जोड़ें" msgid "Add account" msgstr "अकाउंट जोड़ें" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "इस फ़ोटो में विवरण जोड़ें" @@ -306,9 +306,9 @@ msgstr "इस फ़ोटो में विवरण जोड़ें" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "" @@ -329,11 +329,11 @@ msgstr "" #~ msgid "Add link card:" #~ msgstr "लिंक कार्ड जोड़ें:" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "" @@ -394,7 +394,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "विकसित" @@ -402,9 +402,19 @@ msgstr "विकसित" msgid "All the feeds you've saved, right in one place." msgstr "" +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 @@ -416,13 +426,13 @@ msgstr "" msgid "Already signed in as @{0}" msgstr "" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -491,19 +501,19 @@ msgstr "" msgid "App Language" msgstr "ऐप भाषा" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "" @@ -512,17 +522,17 @@ msgstr "" #~ msgstr "ऐप पासवर्ड" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "ऐप पासवर्ड" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "" @@ -535,7 +545,7 @@ msgstr "" #~ msgid "Appeal Content Warning" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -564,7 +574,7 @@ msgstr "दिखावट" msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "क्या आप वाकई ऐप पासवर्ड \"{name}\" हटाना चाहते हैं?" @@ -592,7 +602,7 @@ msgstr "" msgid "Are you sure you'd like to discard this draft?" msgstr "क्या आप वाकई इस ड्राफ्ट को हटाना करना चाहेंगे?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "क्या आप वास्तव में इसे करना चाहते हैं?" @@ -617,14 +627,14 @@ msgid "At least 3 characters" msgstr "" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -656,7 +666,7 @@ msgstr "जन्मदिन" msgid "Birthday:" msgstr "जन्मदिन:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "" @@ -713,7 +723,7 @@ msgstr "अवरुद्ध खाते आपके थ्रेड्स msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते। आप उनकी सामग्री नहीं देख पाएंगे और उन्हें आपकी सामग्री देखने से रोका जाएगा।" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "ब्लॉक पोस्ट।" @@ -830,7 +840,7 @@ msgstr "" msgid "Camera" msgstr "कैमरा" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "केवल अक्षर, संख्या, रिक्त स्थान, डैश और अंडरस्कोर हो सकते हैं। कम से कम 4 अक्षर लंबा होना चाहिए, लेकिन 32 अक्षरों से अधिक लंबा नहीं होना चाहिए।।" @@ -911,12 +921,12 @@ msgctxt "action" msgid "Change" msgstr "परिवर्तन" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "हैंडल बदलें" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "हैंडल बदलें" @@ -924,12 +934,12 @@ msgstr "हैंडल बदलें" msgid "Change my email" msgstr "मेरा ईमेल बदलें" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "" @@ -958,10 +968,16 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "" @@ -983,7 +999,7 @@ msgstr "" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "कुछ अनुशंसित उपयोगकर्ताओं की जाँच करें। ऐसे ही उपयोगकर्ता देखने के लिए उनका अनुसरण करें।" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "" @@ -1028,19 +1044,19 @@ msgstr "" msgid "Choose your password" msgstr "अपना पासवर्ड चुनें" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "" @@ -1049,11 +1065,11 @@ msgstr "" msgid "Clear search query" msgstr "खोज क्वेरी साफ़ करें" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "" @@ -1086,7 +1102,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1239,7 +1255,7 @@ msgstr "" msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1253,7 +1269,7 @@ msgstr "OTP कोड" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "कनेक्टिंग ..।" @@ -1336,7 +1352,7 @@ msgstr "" msgid "Continue to the next step without following any accounts" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "" @@ -1344,7 +1360,7 @@ msgstr "" msgid "Cooking" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "कॉपी कर ली" @@ -1354,7 +1370,7 @@ msgid "Copied build version to clipboard" msgstr "" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1365,11 +1381,11 @@ msgstr "" msgid "Copied!" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "कॉपी" @@ -1460,7 +1476,7 @@ msgstr "" msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "" @@ -1473,7 +1489,7 @@ msgstr "नया खाता बनाएं" msgid "Create report for {0}" msgstr "" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "बनाया गया {0}" @@ -1532,7 +1548,7 @@ msgstr "" msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "" @@ -1542,12 +1558,12 @@ msgstr "" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "खाता हटाएं" @@ -1559,16 +1575,16 @@ msgstr "खाता हटाएं" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "अप्प पासवर्ड हटाएं" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "" @@ -1596,7 +1612,7 @@ msgstr "मेरा खाता हटाएं" #~ msgid "Delete my account…" #~ msgstr "मेरा खाता हटाएं…" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "" @@ -1617,11 +1633,11 @@ msgstr "इस पोस्ट को डीलीट करें?" msgid "Deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "यह पोस्ट मिटाई जा चुकी है" -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "" @@ -1632,7 +1648,7 @@ msgstr "" msgid "Description" msgstr "विवरण" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "" @@ -1675,8 +1691,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "" @@ -1751,8 +1767,8 @@ msgstr "डोमेन सत्यापित!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1872,12 +1888,12 @@ msgid "Edit my profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "मेरी प्रोफ़ाइल संपादित करें" @@ -1984,8 +2000,8 @@ msgstr "इस सेटिंग को केवल उन लोगों क msgid "Enable this source only" msgstr "" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "" @@ -1998,7 +2014,7 @@ msgstr "" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "" @@ -2006,8 +2022,8 @@ msgstr "" msgid "Enter a password" msgstr "" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "" @@ -2079,8 +2095,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "" @@ -2134,12 +2150,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "" @@ -2155,16 +2171,16 @@ msgstr "" #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "" @@ -2209,13 +2225,13 @@ msgstr "" #~ msgid "Failed to send message(s)." #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "" @@ -2337,10 +2353,10 @@ msgstr "" msgid "Flip vertically" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2352,7 +2368,7 @@ msgid "Follow" msgstr "" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "" @@ -2399,9 +2415,9 @@ msgstr "" msgid "Followers" msgstr "यह यूजर आपका फ़ोलो करता है" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2410,7 +2426,7 @@ msgstr "यह यूजर आपका फ़ोलो करता है" msgid "Following" msgstr "फोल्लोविंग" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "" @@ -2442,7 +2458,7 @@ msgstr "" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "सुरक्षा कारणों के लिए, हमें आपके ईमेल पते पर एक OTP कोड भेजने की आवश्यकता होगी।।" -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "सुरक्षा कारणों के लिए, आप इसे फिर से देखने में सक्षम नहीं होंगे। यदि आप इस पासवर्ड को खो देते हैं, तो आपको एक नया उत्पन्न करना होगा।।" @@ -2459,11 +2475,11 @@ msgstr "सुरक्षा कारणों के लिए, आप इस msgid "Forgot Password" msgstr "पासवर्ड भूल गए" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "" @@ -2475,7 +2491,7 @@ msgstr "" msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "" @@ -2523,7 +2539,7 @@ msgstr "वापस जाओ" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2543,7 +2559,7 @@ msgstr "" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "" @@ -2613,13 +2629,13 @@ msgstr "" msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "यहां आपका ऐप पासवर्ड है." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2641,7 +2657,7 @@ msgid "Hide post" msgstr "" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "" @@ -2705,7 +2721,7 @@ msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2766,7 +2782,7 @@ msgstr "" msgid "Image" msgstr "" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "छवि alt पाठ" @@ -2799,7 +2815,7 @@ msgstr "" #~ msgid "Input invite code to proceed" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "" @@ -2815,15 +2831,15 @@ msgstr "" #~ msgid "Input phone number for SMS verification" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "" @@ -2835,7 +2851,7 @@ msgstr "" #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "" @@ -2851,16 +2867,16 @@ msgstr "" msgid "Introducing Direct Messages" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "अवैध उपयोगकर्ता नाम या पासवर्ड" @@ -2941,11 +2957,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" @@ -2988,7 +3004,7 @@ msgstr "अधिक जानें" msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "इस चेतावनी के बारे में अधिक जानें" @@ -3099,7 +3115,7 @@ msgstr "" msgid "Likes" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "" @@ -3162,7 +3178,7 @@ msgid "Load new notifications" msgstr "नई सूचनाएं लोड करें" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -3223,7 +3239,7 @@ msgstr "" msgid "Make sure this is where you intend to go!" msgstr "यह सुनिश्चित करने के लिए कि आप कहाँ जाना चाहते हैं!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "" @@ -3263,6 +3279,7 @@ msgid "Message {0}" msgstr "" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "" @@ -3275,18 +3292,18 @@ msgid "Message input field" msgstr "" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" @@ -3411,11 +3428,11 @@ msgstr "" msgid "Mute conversation" msgstr "" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "" @@ -3436,11 +3453,11 @@ msgstr "इन खातों को म्यूट करें?" #~ msgid "Mute this List" #~ msgstr "" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "" @@ -3508,7 +3525,7 @@ msgstr "मेरी फ़ीड" #~ msgid "my-server.com" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "नाम" @@ -3528,7 +3545,7 @@ msgid "Nature" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "" @@ -3573,8 +3590,8 @@ msgid "New" msgstr "नया" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" @@ -3594,7 +3611,7 @@ msgstr "" msgid "New Password" msgstr "" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "" @@ -3628,8 +3645,8 @@ msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3669,7 +3686,7 @@ msgstr "" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "" @@ -3681,7 +3698,7 @@ msgstr "" msgid "No messages yet" msgstr "" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "" @@ -3691,8 +3708,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "" @@ -3701,7 +3718,7 @@ msgstr "" msgid "No result" msgstr "" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "" @@ -3773,15 +3790,15 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "" -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "" @@ -3866,7 +3883,7 @@ msgid "Oops, something went wrong!" msgstr "" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "" @@ -3883,8 +3900,8 @@ msgstr "" #~ msgid "Open content filtering settings" #~ msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "" @@ -3897,7 +3914,7 @@ msgstr "" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "" @@ -3921,12 +3938,12 @@ msgstr "ओपन नेविगेशन" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "" @@ -3950,6 +3967,10 @@ msgstr "" msgid "Opens camera on device" msgstr "" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "" @@ -3966,7 +3987,7 @@ msgstr "" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "" @@ -4000,7 +4021,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -4008,19 +4029,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "" @@ -4032,7 +4053,7 @@ msgstr "कस्टम डोमेन का उपयोग करने क msgid "Opens moderation settings" msgstr "मॉडरेशन सेटिंग्स खोलें" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "" @@ -4045,7 +4066,7 @@ msgstr "" msgid "Opens screen with all saved feeds" msgstr "सभी बचाया फ़ीड के साथ स्क्रीन खोलें" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "" @@ -4069,12 +4090,12 @@ msgstr "" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "स्टोरीबुक पेज खोलें" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "सिस्टम लॉग पेज खोलें" @@ -4087,7 +4108,7 @@ msgid "Option {0} of {numItems}" msgstr "" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "" @@ -4128,7 +4149,7 @@ msgstr "पृष्ठ नहीं मिला" msgid "Page Not Found" msgstr "" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -4242,7 +4263,7 @@ msgstr "" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "इसे बदलने से पहले कृपया अपने ईमेल की पुष्टि करें। यह एक अस्थायी आवश्यकता है जबकि ईमेल-अपडेटिंग टूल जोड़ा जाता है, और इसे जल्द ही हटा दिया जाएगा।।" -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "" @@ -4250,11 +4271,11 @@ msgstr "" #~ msgid "Please enter a phone number that can receive SMS text messages." #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "कृपया इस ऐप पासवर्ड के लिए एक अद्वितीय नाम दर्ज करें या हमारे यादृच्छिक रूप से उत्पन्न एक का उपयोग करें।।" -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "" @@ -4274,7 +4295,7 @@ msgstr "" msgid "Please enter your password as well:" msgstr "कृपया अपना पासवर्ड भी दर्ज करें:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -4318,12 +4339,12 @@ msgctxt "action" msgid "Post" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "पोस्ट" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "" @@ -4337,7 +4358,7 @@ msgstr "" msgid "Post deleted" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "छुपा पोस्ट" @@ -4359,8 +4380,8 @@ msgstr "पोस्ट भाषा" msgid "Post Languages" msgstr "पोस्ट भाषा" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "पोस्ट नहीं मिला" @@ -4372,7 +4393,7 @@ msgstr "" msgid "Posts" msgstr "" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "" @@ -4416,7 +4437,7 @@ msgstr "प्राथमिक भाषा" msgid "Prioritize Your Follows" msgstr "अपने फ़ॉलोअर्स को प्राथमिकता दें" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "गोपनीयता" @@ -4424,7 +4445,7 @@ msgstr "गोपनीयता" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "गोपनीयता नीति" @@ -4437,7 +4458,7 @@ msgstr "" msgid "Processing..." msgstr "प्रसंस्करण..." -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "" @@ -4454,7 +4475,7 @@ msgstr "प्रोफ़ाइल" msgid "Profile updated" msgstr "" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "अपने ईमेल को सत्यापित करके अपने खाते को सुरक्षित रखें।।" @@ -4524,11 +4545,11 @@ msgstr "" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4583,7 +4604,7 @@ msgstr "छवि निकालें" msgid "Remove image preview" msgstr "छवि पूर्वावलोकन निकालें" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "" @@ -4659,7 +4680,7 @@ msgstr "फिल्टर" #~ msgstr "" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" @@ -4759,7 +4780,7 @@ msgstr "पोस्ट दोबारा पोस्ट करें या msgid "Reposted By" msgstr "द्वारा दोबारा पोस्ट किया गया" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "" @@ -4767,7 +4788,7 @@ msgstr "" #~ msgid "Reposted by <0/>" #~ msgstr "" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "" @@ -4775,7 +4796,7 @@ msgstr "" msgid "reposted your post" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "" @@ -4822,8 +4843,8 @@ msgstr "" #~ msgid "Reset onboarding" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" @@ -4835,20 +4856,20 @@ msgstr "पासवर्ड रीसेट" #~ msgid "Reset preferences" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "प्राथमिकताओं को रीसेट करें" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "प्राथमिकताओं की स्थिति को रीसेट करें" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "" @@ -4860,8 +4881,8 @@ msgstr "" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4894,8 +4915,8 @@ msgstr "" #~ msgstr "" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4908,7 +4929,7 @@ msgctxt "action" msgid "Save" msgstr "" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "सेव ऑल्ट टेक्स्ट" @@ -5141,7 +5162,7 @@ msgstr "" msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "" @@ -5221,14 +5242,14 @@ msgid "Send feedback" msgstr "प्रतिक्रिया भेजें" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "" @@ -5373,7 +5394,6 @@ msgstr "" #~ msgstr "" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5437,7 +5457,7 @@ msgstr "" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -5469,10 +5489,14 @@ msgstr "" #~ msgid "Show embeds from {0}" #~ msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -5480,7 +5504,7 @@ msgstr "" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "" @@ -5489,6 +5513,10 @@ msgstr "" msgid "Show more like this" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "मेरी फीड से पोस्ट दिखाएं" @@ -5538,7 +5566,7 @@ msgid "Show reposts in Following" msgstr "" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "" @@ -5566,7 +5594,7 @@ msgstr "" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -5692,7 +5720,7 @@ msgstr "" #~ msgstr "" #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "" @@ -5708,7 +5736,7 @@ msgstr "उसी पोस्ट के उत्तरों को इस प #~ msgid "Source:" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "" @@ -5733,7 +5761,7 @@ msgstr "स्क्वायर" #~ msgid "Staging" #~ msgstr "स्टेजिंग" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "" @@ -5749,7 +5777,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "स्थिति पृष्ठ" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "" @@ -5770,12 +5798,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5845,11 +5873,11 @@ msgstr "" msgid "System" msgstr "प्रणाली" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "सिस्टम लॉग" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "" @@ -5883,7 +5911,7 @@ msgstr "शर्तें" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5895,17 +5923,17 @@ msgstr "सेवा की शर्तें" msgid "Terms used violate community standards" msgstr "" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "पाठ इनपुट फ़ील्ड" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "" @@ -5917,7 +5945,7 @@ msgstr "" msgid "That handle is already taken." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "अनब्लॉक करने के बाद अकाउंट आपसे इंटरैक्ट कर सकेगा।" @@ -5938,11 +5966,11 @@ msgstr "कॉपीराइट नीति को <0/> पर स्थान msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5950,8 +5978,8 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "हो सकता है कि यह पोस्ट हटा दी गई हो।" @@ -6026,7 +6054,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "" #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" @@ -6034,13 +6062,13 @@ msgstr "" msgid "There was an issue syncing your preferences with the server" msgstr "" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -6088,7 +6116,7 @@ msgstr "" msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -6175,7 +6203,7 @@ msgstr "" #~ msgid "This label was applied by you" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "" @@ -6195,11 +6223,11 @@ msgstr "" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "इस पोस्ट को हटा दिया गया है।।" @@ -6269,7 +6297,7 @@ msgstr "" #~ msgid "This warning is only available for posts with media attached." #~ msgstr "यह चेतावनी केवल मीडिया संलग्न पोस्ट के लिए उपलब्ध है।" -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" @@ -6306,7 +6334,7 @@ msgstr "" msgid "To whom would you like to send this report?" msgstr "" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "" @@ -6339,7 +6367,7 @@ msgctxt "action" msgid "Try again" msgstr "फिर से कोशिश करो" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "" @@ -6361,7 +6389,7 @@ msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -6372,14 +6400,14 @@ msgstr "आपकी सेवा से संपर्क करने मे #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "अनब्लॉक" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "" @@ -6394,7 +6422,7 @@ msgstr "" msgid "Unblock Account" msgstr "अनब्लॉक खाता" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "" @@ -6415,7 +6443,7 @@ msgstr "" msgid "Unfollow" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "" @@ -6556,7 +6584,7 @@ msgstr "" msgid "Use a file on your server" msgstr "" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "अपने खाते या पासवर्ड को पूर्ण एक्सेस देने के बिना अन्य ब्लूस्की ग्राहकों को लॉगिन करने के लिए ऐप पासवर्ड का उपयोग करें।।" @@ -6586,7 +6614,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "अपने हैंडल के साथ दूसरे ऐप में साइन इन करने के लिए इसका उपयोग करें।" @@ -6654,7 +6682,7 @@ msgstr "" msgid "User Lists" msgstr "लोग सूचियाँ" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "यूजर नाम या ईमेल पता" @@ -6668,8 +6696,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "" @@ -6697,15 +6725,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "ईमेल सत्यापित करें" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "मेरी ईमेल सत्यापित करें" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "मेरी ईमेल सत्यापित करें" @@ -6726,7 +6754,7 @@ msgstr "" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6750,7 +6778,7 @@ msgstr "" msgid "View details for reporting a copyright violation" msgstr "" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "" @@ -6758,8 +6786,8 @@ msgstr "" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "" @@ -6824,7 +6852,7 @@ msgstr "" #~ msgid "We recommend \"For You\" by Skygaze:" #~ msgstr "" -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "" @@ -6856,7 +6884,7 @@ msgstr "" msgid "We'll use this to help customize your experience." msgstr "" -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "" @@ -6868,7 +6896,7 @@ msgstr "हम आपके हमारी सेवा में शामि msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "" -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" @@ -6921,7 +6949,7 @@ msgid "Who can reply" msgstr "" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" @@ -6954,7 +6982,7 @@ msgid "Wide" msgstr "चौड़ा" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "" @@ -7018,6 +7046,10 @@ msgstr "" msgid "You can change this at any time." msgstr "" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -7043,7 +7075,7 @@ msgstr "आपके पास कोई पिन किया हुआ फ़ msgid "You don't have any saved feeds." msgstr "आपके पास कोई सहेजी गई फ़ीड नहीं है." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "आपने लेखक को अवरुद्ध किया है या आपने लेखक द्वारा अवरुद्ध किया है।।" @@ -7085,7 +7117,7 @@ msgstr "" #~ msgid "You have muted this user." #~ msgstr "" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "" @@ -7110,7 +7142,7 @@ msgstr "" #~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." #~ msgstr "आपने अभी तक कोई भी अकाउंट ब्लॉक नहीं किया है. किसी खाते को ब्लॉक करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \"खाता ब्लॉक करें\" चुनें।" -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "आपने अभी तक कोई ऐप पासवर्ड नहीं बनाया है। आप नीचे बटन दबाकर एक बना सकते हैं।।" @@ -7126,15 +7158,15 @@ msgstr "" msgid "You have reached the end" msgstr "" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" @@ -7150,7 +7182,7 @@ msgstr "" msgid "You must be 18 years or older to enable adult content" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "" @@ -7257,7 +7289,7 @@ msgstr "" #~ msgid "Your invite codes are hidden when logged in using an App Password" #~ msgstr "" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "" diff --git a/src/locale/locales/id/messages.po b/src/locale/locales/id/messages.po index f35db3ea11..bb62c10dec 100644 --- a/src/locale/locales/id/messages.po +++ b/src/locale/locales/id/messages.po @@ -46,12 +46,12 @@ msgstr "{0, plural, other {# label telah diterapkan pada konten ini}}" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "{0, plural, other {# postingan ulang}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "{0, plural, other {pengikut}}" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "{0, plural, other {mengikuti}}" @@ -60,7 +60,7 @@ msgstr "{0, plural, other {mengikuti}}" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "{0, plural, other {Suka (# menyukai)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "{0, plural, other {suka}}" @@ -76,7 +76,7 @@ msgstr "{0, plural, other {postingan}}" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "{0, plural, other {Balas (# balasan)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "{0, plural, other {posting ulang}}" @@ -100,7 +100,7 @@ msgstr "{estimatedTimeHrs, plural, other {jam}}" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "{estimatedTimeMins, plural, other {menit}}" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} mengikuti" @@ -168,7 +168,7 @@ msgstr "<0>Tidak bisa diterapkan. Peringatan ini hanya tersedia untuk postin msgid "⚠Invalid Handle" msgstr "⚠Handle Tidak Valid" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "Konfirmasi 2FA" @@ -199,9 +199,9 @@ msgstr "Pengaturan Aksesibilitas" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "Akun" @@ -234,7 +234,7 @@ msgstr "Pengaturan akun" msgid "Account removed from quick access" msgstr "Akun dihapus dari akses cepat" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "Akun batal diblokir" @@ -247,7 +247,7 @@ msgstr "Akun batal diikuti" msgid "Account unmuted" msgstr "Akun batal dibisukan" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -268,12 +268,12 @@ msgstr "Tambahkan pengguna ke daftar ini" msgid "Add account" msgstr "Tambahkan akun" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Tambahkan teks alt" @@ -281,9 +281,9 @@ msgstr "Tambahkan teks alt" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Tambahkan Kata Sandi Aplikasi" @@ -295,11 +295,11 @@ msgstr "Tambahkan Kata Sandi Aplikasi" #~ msgid "Add link card:" #~ msgstr "" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "Tambahkan kata yang akan dibisukan ke pengaturan terpilih" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "Tambah kata dan tagar untuk dibisukan" @@ -352,7 +352,7 @@ msgid "Adult content is disabled." msgstr "Konten dewasa dinonaktifkan." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "Lanjutan" @@ -360,10 +360,20 @@ msgstr "Lanjutan" msgid "All the feeds you've saved, right in one place." msgstr "Berisi semua feed yang telah Anda simpan dalam satu tempat." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" -msgstr "Izinkan pesan dari" +#~ msgid "Allow messages from" +#~ msgstr "Izinkan pesan dari" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" +msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 #: src/view/com/modals/ChangePassword.tsx:172 @@ -374,13 +384,13 @@ msgstr "Sudah memiliki kode?" msgid "Already signed in as @{0}" msgstr "Sudah masuk sebagai @{0}" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -449,38 +459,38 @@ msgstr "Perilaku Anti-Sosial" msgid "App Language" msgstr "Bahasa Aplikasi" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Kata sandi aplikasi dihapus" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Nama Kata Sandi Aplikasi hanya boleh terdiri dari huruf, angka, spasi, tanda hubung, dan garis bawah." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "Nama Kata Sandi Aplikasi harus terdiri dari minimal 4 karakter." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "Pengaturan kata sandi aplikasi" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "Kata sandi Aplikasi" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "Ajukan Banding" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "Banding label \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "Banding diajukan" @@ -505,7 +515,7 @@ msgstr "Tampilan" msgid "Apply default recommended feeds" msgstr "Tambahkan feed yang direkomendasikan secara default" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Anda yakin untuk menghapus kata sandi aplikasi \"{name}\"?" @@ -533,7 +543,7 @@ msgstr "Apakah Anda yakin ingin menghapus {0} dari daftar feed Anda?" msgid "Are you sure you'd like to discard this draft?" msgstr "Anda yakin untuk membuang draf ini?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "Anda yakin?" @@ -554,14 +564,14 @@ msgid "At least 3 characters" msgstr "Minimal 3 karakter" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -588,7 +598,7 @@ msgstr "Tanggal lahir" msgid "Birthday:" msgstr "Tanggal lahir:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "Blokir" @@ -641,7 +651,7 @@ msgstr "Akun yang diblokir tidak dapat membalas di utas Anda, menyebut Anda, ata msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Akun yang diblokir tidak dapat membalas postingan Anda, menyebut Anda, atau berinteraksi dengan Anda. Anda juga tidak akan melihat konten mereka dan mereka akan dicegah melihat konten Anda." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "Postingan yang diblokir." @@ -742,7 +752,7 @@ msgstr "oleh Anda" msgid "Camera" msgstr "Kamera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Hanya dapat terdiri dari huruf, angka, spasi, tanda hubung dan garis bawah. Minimal 4 karakter, namun tidak boleh lebih dari 32 karakter." @@ -819,12 +829,12 @@ msgctxt "action" msgid "Change" msgstr "Ubah" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "Ubah handle" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "Ubah Handle" @@ -832,12 +842,12 @@ msgstr "Ubah Handle" msgid "Change my email" msgstr "Ubah email saya" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "Ubah kata sandi" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "Ubah Kata Sandi" @@ -862,10 +872,16 @@ msgstr "Obrolan dibisukan" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "Pengaturan obrolan" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "Obrolan batal dibisukan" @@ -887,7 +903,7 @@ msgstr "Periksa status saya" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "Periksa email Anda untuk mendapatkan kode login dan masukkan di sini." @@ -924,19 +940,19 @@ msgstr "Pilih feed utama Anda" msgid "Choose your password" msgstr "Pilih kata sandi Anda" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "Hapus semua data penyimpanan lama" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "Hapus semua data penyimpanan lama (mulai ulang setelah ini)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "Hapus semua data penyimpanan" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "Hapus semua data penyimpanan (mulai ulang setelah ini)" @@ -945,11 +961,11 @@ msgstr "Hapus semua data penyimpanan (mulai ulang setelah ini)" msgid "Clear search query" msgstr "Hapus kueri pencarian" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "Bersihkan semua penyimpanan data lama" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "Hapus semua data penyimpanan" @@ -982,7 +998,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "Keletak 🐴 keletuk 🐴" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1125,7 +1141,7 @@ msgstr "Konfirmasi usia Anda:" msgid "Confirm your birthdate" msgstr "Konfirmasi tanggal lahir Anda" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1135,7 +1151,7 @@ msgstr "Konfirmasi tanggal lahir Anda" msgid "Confirmation code" msgstr "Kode konfirmasi" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "Menghubungkan..." @@ -1210,7 +1226,7 @@ msgstr "Lanjutkan ke langkah berikutnya" msgid "Continue to the next step without following any accounts" msgstr "Lanjutkan ke langkah berikutnya tanpa mengikuti akun apa pun" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "Percakapan dihapus" @@ -1218,7 +1234,7 @@ msgstr "Percakapan dihapus" msgid "Cooking" msgstr "Memasak" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Disalin" @@ -1228,7 +1244,7 @@ msgid "Copied build version to clipboard" msgstr "Menyalin versi build ke papan klip" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1239,11 +1255,11 @@ msgstr "Disalin ke papan klip" msgid "Copied!" msgstr "Tersalin!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Menyalin kata sandi aplikasi" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Salin" @@ -1326,7 +1342,7 @@ msgstr "Buat akun" msgid "Create an avatar instead" msgstr "Buat avatar saja" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Buat Kata Sandi Aplikasi" @@ -1339,7 +1355,7 @@ msgstr "Buat akun baru" msgid "Create report for {0}" msgstr "Buat laporan untuk {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Dibuat {0}" @@ -1386,7 +1402,7 @@ msgstr "Tema Gelap" msgid "Date of birth" msgstr "Tanggal lahir" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "Debug Moderasi" @@ -1396,12 +1412,12 @@ msgstr "Panel awakutu" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "Hapus" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "Hapus akun" @@ -1413,16 +1429,16 @@ msgstr "Hapus akun" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "Hapus Akun <0>\"<1>{0}<2>\"" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Hapus kata sandi aplikasi" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Hapus kata sandi aplikasi?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "Hapus catatan deklarasi obrolan" @@ -1446,7 +1462,7 @@ msgstr "Hapus pesan untuk saya" msgid "Delete my account" msgstr "Hapus akun saya" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "Hapus Akun Saya…" @@ -1467,11 +1483,11 @@ msgstr "Hapus postingan ini?" msgid "Deleted" msgstr "Dihapus" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "Postingan dihapus." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "Hapus catatan deklarasi obrolan" @@ -1482,7 +1498,7 @@ msgstr "Hapus catatan deklarasi obrolan" msgid "Description" msgstr "Deskripsi" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "Teks alt deskriptif" @@ -1521,8 +1537,8 @@ msgstr "Matikan respons haptik" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Dinonaktifkan" @@ -1585,8 +1601,8 @@ msgstr "Domain terverifikasi!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1698,12 +1714,12 @@ msgid "Edit my profile" msgstr "Edit profil saya" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "Edit profil" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "Edit Profil" @@ -1806,8 +1822,8 @@ msgstr "Aktifkan opsi ini untuk menampilkan balasan hanya dari akun yang Anda ik msgid "Enable this source only" msgstr "Aktifkan hanya sumber ini saja" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Diaktifkan" @@ -1820,7 +1836,7 @@ msgstr "Akhir feed" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Masukkan nama untuk Sandi Aplikasi ini" @@ -1828,8 +1844,8 @@ msgstr "Masukkan nama untuk Sandi Aplikasi ini" msgid "Enter a password" msgstr "Masukkan kata sandi" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "Masukkan kata atau tagar" @@ -1893,8 +1909,8 @@ msgstr "Semua orang dapat membalas" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "Semua orang" @@ -1944,12 +1960,12 @@ msgstr "Media eksplisit atau berpotensi mengganggu." msgid "Explicit sexual images." msgstr "Gambar seksual eksplisit." -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "Ekspor data saya" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "Ekspor Data Saya" @@ -1965,16 +1981,16 @@ msgstr "Media eksternal memungkinkan situs web untuk mengumpulkan informasi tent #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "Preferensi Media Eksternal" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "Pengaturan media eksternal" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "Gagal membuat kata sandi aplikasi." @@ -2019,13 +2035,13 @@ msgstr "Gagal mengirim" #~ msgid "Failed to send message(s)." #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "Gagal mengirimkan banding, silakan coba lagi." #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "Gagal memperbarui pengaturan" @@ -2131,10 +2147,10 @@ msgstr "Balik secara horizontal" msgid "Flip vertically" msgstr "Balik secara vertikal" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2146,7 +2162,7 @@ msgid "Follow" msgstr "Ikuti" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Ikuti {0}" @@ -2193,9 +2209,9 @@ msgstr "mengikuti Anda" msgid "Followers" msgstr "Pengikut" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2204,7 +2220,7 @@ msgstr "Pengikut" msgid "Following" msgstr "Mengikuti" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "Mengikuti {0}" @@ -2236,7 +2252,7 @@ msgstr "Makanan" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Untuk alasan keamanan, kami akan mengirimkan kode konfirmasi ke alamat email Anda." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Untuk alasan keamanan, Anda tidak akan dapat melihat ini lagi. Jika Anda lupa kata sandi ini, Anda harus membuat yang baru." @@ -2245,11 +2261,11 @@ msgstr "Untuk alasan keamanan, Anda tidak akan dapat melihat ini lagi. Jika Anda msgid "Forgot Password" msgstr "Lupa Kata Sandi" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "Lupa kata sandi?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "Lupa?" @@ -2261,7 +2277,7 @@ msgstr "Sering Memposting Konten yang Tidak Diinginkan" msgid "From @{sanitizedAuthor}" msgstr "Dari @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "Dari <0/>" @@ -2309,7 +2325,7 @@ msgstr "Kembali" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2329,7 +2345,7 @@ msgstr "Ke Beranda" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "Buka percakapan dengan {0}" @@ -2395,13 +2411,13 @@ msgstr "Berikut beberapa feed topikal yang populer. Anda dapat memilih untuk men msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "Berikut beberapa feed topikal berdasarkan minat Anda: {interestsText}. Anda dapat memilih untuk mengikuti sebanyak yang Anda suka." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Berikut kata sandi aplikasi Anda." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2423,7 +2439,7 @@ msgid "Hide post" msgstr "Sembunyikan postingan" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "Sembunyikan konten" @@ -2476,7 +2492,7 @@ msgid "Host:" msgstr "Host:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2537,7 +2553,7 @@ msgstr "Ilegal dan Urgen" msgid "Image" msgstr "Gambar" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Teks alt gambar" @@ -2557,7 +2573,7 @@ msgstr "Masukkan kode yang dikirim ke email Anda untuk pengaturan ulang kata san msgid "Input confirmation code for account deletion" msgstr "Masukkan kode konfirmasi untuk penghapusan akun" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Masukkan nama untuk kata sandi aplikasi" @@ -2569,19 +2585,19 @@ msgstr "Masukkan kata sandi baru" msgid "Input password for account deletion" msgstr "Masukkan kata sandi untuk penghapusan akun" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "Masukkan kode yang telah dikirim ke email Anda" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "Masukkan kata sandi yang terkait dengan {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "Masukkan nama pengguna atau alamat email yang Anda gunakan saat mendaftar" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "Masukkan kata sandi Anda" @@ -2597,16 +2613,16 @@ msgstr "Masukkan handle pengguna Anda" msgid "Introducing Direct Messages" msgstr "Memperkenalkan Pesan Langsung" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Kode konfirmasi 2FA tidak valid." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Catatan posting tidak valid atau tidak didukung" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "Username atau kata sandi salah" @@ -2666,11 +2682,11 @@ msgstr "Label adalah anotasi yang diterapkan pada pengguna dan konten. Label dap #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Label pada akun Anda" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Label pada konten Anda" @@ -2705,7 +2721,7 @@ msgstr "Pelajari Lebih Lanjut" msgid "Learn more about the moderation applied to this content." msgstr "Pelajari lebih lanjut tentang moderasi yang diterapkan pada konten ini." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Pelajari lebih lanjut tentang peringatan ini" @@ -2811,7 +2827,7 @@ msgstr "menyukai postingan Anda" msgid "Likes" msgstr "Suka" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Suka pada postingan ini" @@ -2869,7 +2885,7 @@ msgid "Load new notifications" msgstr "Muat notifikasi baru" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2926,7 +2942,7 @@ msgstr "Sepertinya Anda kehilangan feed mengikuti. <0>Klik di sini untuk menamba msgid "Make sure this is where you intend to go!" msgstr "Pastikan ini adalah situs web yang Anda tuju!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "Kelola kata dan tagar yang dibisukan" @@ -2958,6 +2974,7 @@ msgid "Message {0}" msgstr "Kirim pesan ke {0}" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "Pesan dihapus" @@ -2970,18 +2987,18 @@ msgid "Message input field" msgstr "Kotak input pesan" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "Pesan terlalu panjang" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "Pengaturan pesan" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "Pesan" @@ -3094,11 +3111,11 @@ msgstr "Bisukan semua postingan {displayTag}" msgid "Mute conversation" msgstr "Bisukan percakapan" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "Bisukan di tagar saja" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "Bisukan di teks & tagar" @@ -3115,11 +3132,11 @@ msgstr "Bisukan daftar" msgid "Mute these accounts?" msgstr "Bisukan akun-akun ini?" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "Bisukan kata ini di teks postingan dan tagar" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "Bisukan kata ini hanya dalam tagar" @@ -3183,7 +3200,7 @@ msgstr "Feed tersimpan saya" msgid "My Saved Feeds" msgstr "Feed Tersimpan Saya" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "Nama" @@ -3203,7 +3220,7 @@ msgid "Nature" msgstr "Alam" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Menuju ke layar berikutnya" @@ -3239,8 +3256,8 @@ msgid "New" msgstr "Baru" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "Obrolan baru" @@ -3260,7 +3277,7 @@ msgstr "Kata sandi baru" msgid "New Password" msgstr "Kata Sandi Baru" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "Postingan baru" @@ -3294,8 +3311,8 @@ msgstr "Berita" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3335,7 +3352,7 @@ msgstr "Tanpa Panel DNS" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "GIF tidak ditemukan. Mungkin ada masalah dengan Tenor." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "Tidak lagi mengikuti {0}" @@ -3347,7 +3364,7 @@ msgstr "Tidak lebih dari 253 karakter" msgid "No messages yet" msgstr "Belum ada pesan" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "Tidak ada percakapan lain untuk ditampilkan" @@ -3357,8 +3374,8 @@ msgstr "Belum ada notifikasi!" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "Tidak seorang pun" @@ -3367,7 +3384,7 @@ msgstr "Tidak seorang pun" msgid "No result" msgstr "Tidak ada hasil" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "Tidak ada hasil" @@ -3439,15 +3456,15 @@ msgstr "Catatan tentang berbagi" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Catatan: Bluesky merupakan jaringan terbuka dan publik. Pengaturan ini hanya akan membatasi visibilitas konten Anda pada aplikasi dan situs web Bluesky, dan aplikasi lain mungkin tidak menghormati pengaturan ini. Konten Anda mungkin tetap ditampilkan kepada pengguna yang tidak login oleh aplikasi dan website lain." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "Kosong" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "Suara notifikasi" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "Suara Notifikasi" @@ -3528,7 +3545,7 @@ msgid "Oops, something went wrong!" msgstr "Ups, sepertinya ada yang salah!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "Uups!" @@ -3541,8 +3558,8 @@ msgstr "Buka" msgid "Open avatar creator" msgstr "Buka pembuat avatar" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "Buka opsi percakapan" @@ -3555,7 +3572,7 @@ msgstr "Buka pemilih emoji" msgid "Open feed options menu" msgstr "Buka menu opsi feed" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "Buka tautan dengan browser dalam aplikasi" @@ -3575,12 +3592,12 @@ msgstr "Buka navigasi" msgid "Open post options menu" msgstr "Buka menu opsi postingan" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "Buka halaman buku cerita" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "Buka log sistem" @@ -3604,6 +3621,10 @@ msgstr "Membuka daftar pengguna yang diperluas dalam notifikasi ini" msgid "Opens camera on device" msgstr "Membuka kamera pada perangkat" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "Membuka penyusun postingan" @@ -3616,7 +3637,7 @@ msgstr "Membuka pengaturan bahasa yang dapat dikonfigurasi" msgid "Opens device photo gallery" msgstr "Membuka galeri foto perangkat" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "Membuka pengaturan penyematan eksternal" @@ -3638,23 +3659,23 @@ msgstr "Membuka dialog pemilihan GIF" msgid "Opens list of invite codes" msgstr "Membuka daftar kode undangan" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Buka modal untuk konfirmasi penghapusan akun. Membutuhkan kode email" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "Buka modal untuk mengubah kata sandi Bluesky Anda" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Membuka modal untuk memilih handle baru Bluesky" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Buka modal untuk mengunduh data akun (repositori) Bluesky Anda" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "Membuka modal untuk verifikasi email" @@ -3666,7 +3687,7 @@ msgstr "Buka modal untuk menggunakan domain kustom" msgid "Opens moderation settings" msgstr "Buka pengaturan moderasi" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "Membuka formulir pengaturan ulang kata sandi" @@ -3679,7 +3700,7 @@ msgstr "Membuka layar untuk mengedit Feed Tersimpan" msgid "Opens screen with all saved feeds" msgstr "Buka halaman dengan semua feed tersimpan" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "Buka pengaturan kata sandi aplikasi" @@ -3695,12 +3716,12 @@ msgstr "Membuka situs web tertaut" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "Buka halaman storybook" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "Buka halaman log sistem" @@ -3713,7 +3734,7 @@ msgid "Option {0} of {numItems}" msgstr "Opsi {0} dari {numItems}" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "Jika perlu, berikan informasi tambahan di bawah ini:" @@ -3746,7 +3767,7 @@ msgstr "Halaman tidak ditemukan" msgid "Page Not Found" msgstr "Halaman Tidak Ditemukan" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3856,15 +3877,15 @@ msgstr "Mohon selesaikan verifikasi captcha." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Harap konfirmasi email Anda sebelum mengubahnya. Ini adalah persyaratan sementara selama alat pembaruan email ditambahkan, dan akan segera dihapus." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Masukkan nama untuk kata sandi aplikasi Anda. Tidak diperbolehkan menggunakan spasi." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Masukkan nama unik untuk Kata Sandi Aplikasi ini atau gunakan nama yang dibuat secara acak." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Silakan masukkan kata, tagar, atau frasa yang valid untuk dibisukan" @@ -3876,7 +3897,7 @@ msgstr "Masukkan email Anda." msgid "Please enter your password as well:" msgstr "Masukkan juga kata sandi Anda:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Jelaskan menurut Anda mengapa {0} salah menerapkan label ini" @@ -3911,12 +3932,12 @@ msgctxt "action" msgid "Post" msgstr "Posting" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "Postingan" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "Postingan oleh {0}" @@ -3930,7 +3951,7 @@ msgstr "Postingan oleh @{0}" msgid "Post deleted" msgstr "Postingan dihapus" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Postingan disembunyikan" @@ -3952,8 +3973,8 @@ msgstr "Bahasa postingan" msgid "Post Languages" msgstr "Bahasa Postingan" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Postingan tidak ditemukan" @@ -3965,7 +3986,7 @@ msgstr "postingan" msgid "Posts" msgstr "Postingan" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "Postingan dapat dibisukan berdasarkan teks, tagar mereka, atau keduanya." @@ -4009,7 +4030,7 @@ msgstr "Bahasa Utama" msgid "Prioritize Your Follows" msgstr "Prioritaskan Pengikut Anda" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privasi" @@ -4017,7 +4038,7 @@ msgstr "Privasi" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Kebijakan Privasi" @@ -4030,7 +4051,7 @@ msgstr "Berkirim pesan secara pribadi dengan pengguna lain." msgid "Processing..." msgstr "Memproses..." -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "profil" @@ -4047,7 +4068,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil diperbarui" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "Verifikasi email untuk mengamankan akun Anda." @@ -4117,11 +4138,11 @@ msgstr "Pencarian Terakhir" msgid "Reconnect" msgstr "Hubungkan kembali" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "Memuat ulang percakapan" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4172,7 +4193,7 @@ msgstr "Hapus gambar" msgid "Remove image preview" msgstr "Hapus pratinjau gambar" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "Hapus kata yang dibisukan dari daftar Anda" @@ -4240,7 +4261,7 @@ msgstr "Penyaring Balasan" #~ msgstr "" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Membalas <0><1/>" @@ -4336,7 +4357,7 @@ msgstr "Posting ulang atau kutip postingan" msgid "Reposted By" msgstr "Diposting Ulang Oleh" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "Diposting ulang oleh {0}" @@ -4344,7 +4365,7 @@ msgstr "Diposting ulang oleh {0}" #~ msgid "Reposted by <0/>" #~ msgstr "" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "Diposting ulang oleh <0><1/>" @@ -4352,7 +4373,7 @@ msgstr "Diposting ulang oleh <0><1/>" msgid "reposted your post" msgstr "memposting ulang postingan Anda" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Posting ulang postingan ini" @@ -4391,8 +4412,8 @@ msgstr "Kode reset" msgid "Reset Code" msgstr "Kode Reset" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "Reset status onboarding" @@ -4400,20 +4421,20 @@ msgstr "Reset status onboarding" msgid "Reset password" msgstr "Reset kata sandi" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "Atur ulang status preferensi" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "Reset status onboarding" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "Reset status preferensi" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "Mencoba masuk kembali" @@ -4425,8 +4446,8 @@ msgstr "Coba kembali tindakan terakhir, yang gagal" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4455,8 +4476,8 @@ msgid "Returns to previous page" msgstr "Kembali ke halaman sebelumnya" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4469,7 +4490,7 @@ msgctxt "action" msgid "Save" msgstr "Simpan" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Simpan teks alt" @@ -4677,7 +4698,7 @@ msgstr "Pilih beberapa akun di bawah ini untuk diikuti" msgid "Select the {emojiName} emoji as your avatar" msgstr "Pilih emoji {emojiName} sebagai avatar Anda" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "Pilih layanan moderasi untuk melaporkan" @@ -4745,14 +4766,14 @@ msgid "Send feedback" msgstr "Kirim masukan" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "Kirim pesan" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "Kirim laporan" @@ -4846,7 +4867,6 @@ msgid "Sets image aspect ratio to wide" msgstr "Mengatur aspek rasio gambar menjadi lebar" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4910,7 +4930,7 @@ msgstr "Membagikan situs web tertaut" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4938,10 +4958,14 @@ msgstr "Tampilkan lencana" msgid "Show badge and filter from feeds" msgstr "Tampilkan lencana dan saring dari feed" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "Tampilkan pengguna lain yang serupa dengan {0}" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4949,7 +4973,7 @@ msgstr "Tampilkan lebih sedikit" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "Tampilkan Lebih Lanjut" @@ -4958,6 +4982,10 @@ msgstr "Tampilkan Lebih Lanjut" msgid "Show more like this" msgstr "Tampilkan lebih banyak" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Tampilkan Postingan dari Feed Saya" @@ -5007,7 +5035,7 @@ msgid "Show reposts in Following" msgstr "Tampilkan posting ulang di Mengikuti" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "Tampilkan konten" @@ -5031,7 +5059,7 @@ msgstr "Tampilkan postingan dari {0} di feed Anda" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -5127,7 +5155,7 @@ msgid "Something went wrong, please try again." msgstr "Terjadi kesalahan, silakan coba lagi." #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "Maaf! Sesi Anda telah berakhir. Silakan masuk lagi." @@ -5143,7 +5171,7 @@ msgstr "Urutkan balasan ke postingan yang sama berdasarkan:" #~ msgid "Source:" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "Sumber: <0>{0}" @@ -5164,7 +5192,7 @@ msgstr "Olahraga" msgid "Square" msgstr "Persegi" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "Mulai obrolan baru" @@ -5180,7 +5208,7 @@ msgstr "Mulai mengobrol" #~ msgid "Status page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "Halaman Status" @@ -5197,12 +5225,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Penyimpanan dihapus, Anda perlu memulai ulang aplikasi sekarang." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5268,11 +5296,11 @@ msgstr "Mengganti akun yang Anda masuki" msgid "System" msgstr "Sistem" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "Log sistem" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "tagar" @@ -5302,7 +5330,7 @@ msgstr "Ketentuan" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5314,17 +5342,17 @@ msgstr "Ketentuan Layanan" msgid "Terms used violate community standards" msgstr "Istilah yang digunakan melanggar standar komunitas" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "teks" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Area input teks" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "Terima kasih. Laporan Anda telah terkirim." @@ -5336,7 +5364,7 @@ msgstr "Berisi hal berikut:" msgid "That handle is already taken." msgstr "Handle telah terpakai." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Akun ini dapat berinteraksi kembali dengan Anda setelah pemblokiran dibuka." @@ -5357,11 +5385,11 @@ msgstr "Kebijakan Hak Cipta telah dipindahkan ke <0/>" msgid "The feed has been replaced with Discover." msgstr "Feed telah diganti dengan Discover." -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Label berikut telah diterapkan pada akun Anda." -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Label berikut telah diterapkan pada konten Anda." @@ -5369,8 +5397,8 @@ msgstr "Label berikut telah diterapkan pada konten Anda." msgid "The following steps will help customize your Bluesky experience." msgstr "Langkah berikut akan membantu menyesuaikan pengalaman Bluesky Anda." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Postingan mungkin telah dihapus." @@ -5445,7 +5473,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Ada masalah saat mengambil daftar Anda. Ketuk di sini untuk mencoba lagi." #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Ada masalah saat mengirimkan laporan. Silakan periksa koneksi internet Anda." @@ -5453,13 +5481,13 @@ msgstr "Ada masalah saat mengirimkan laporan. Silakan periksa koneksi internet A msgid "There was an issue syncing your preferences with the server" msgstr "Ada masalah saat mensinkronkan preferensi Anda dengan server" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Ada masalah dengan pengambilan kata sandi aplikasi Anda" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5503,7 +5531,7 @@ msgstr "Akun ini mewajibkan pengguna untuk masuk agar bisa melihat profilnya." msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "Akun ini diblokir oleh satu atau lebih daftar moderasi Anda. Untuk membuka blokir, silakan kunjungi daftar tersebut secara langsung dan hapus pengguna ini." -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "Banding ini akan dikirim ke <0>{0}." @@ -5586,7 +5614,7 @@ msgstr "Label ini diterapkan oleh pemosting." #~ msgid "This label was applied by you" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "Label ini diterapkan oleh Anda." @@ -5606,11 +5634,11 @@ msgstr "Daftar ini kosong!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Layanan moderasi ini tidak tersedia. Lihat detail lebih lanjut di bawah. Jika masalah berlanjut, hubungi kami." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "Nama ini sudah digunakan" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "Postingan ini telah dihapus." @@ -5668,7 +5696,7 @@ msgstr "Pengguna ini tidak mengikuti siapa pun." #~ msgid "This warning is only available for posts with media attached." #~ msgstr "" -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Ini akan menghapus {0} dari daftar kata yang Anda bisukan. Anda tetap dapat menambahkannya lagi nanti." @@ -5701,7 +5729,7 @@ msgstr "Untuk melaporkan percakapan, silakan laporkan salah satu pesannya melalu msgid "To whom would you like to send this report?" msgstr "Kepada siapa Anda ingin mengirimkan laporan ini?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Beralih antara opsi kata yang dibisukan." @@ -5734,7 +5762,7 @@ msgctxt "action" msgid "Try again" msgstr "Coba lagi" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "Autentikasi dua faktor" @@ -5756,7 +5784,7 @@ msgstr "Bunyikan daftar" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5767,14 +5795,14 @@ msgstr "Tidak dapat terhubung ke layanan. Mohon periksa koneksi internet Anda." #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "Buka blokir" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "Buka blokir" @@ -5789,7 +5817,7 @@ msgstr "Buka blokir akun" msgid "Unblock Account" msgstr "Buka blokir Akun" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "Buka Blokir Akun?" @@ -5810,7 +5838,7 @@ msgstr "Berhenti mengikuti" msgid "Unfollow" msgstr "Batal ikuti" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "Berhenti mengikuti {0}" @@ -5935,7 +5963,7 @@ msgstr "Unggah dari Pustaka" msgid "Use a file on your server" msgstr "Gunakan berkas di server Anda" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Gunakan kata sandi aplikasi untuk masuk ke klien Bluesky lainnya tanpa memberikan akses penuh ke akun atau kata sandi Anda." @@ -5965,7 +5993,7 @@ msgstr "Gunakan rekomendasi" msgid "Use the DNS panel" msgstr "Gunakan panel DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Gunakan ini untuk masuk ke aplikasi lain dengan handle Anda." @@ -6025,7 +6053,7 @@ msgstr "Daftar pengguna diperbarui" msgid "User Lists" msgstr "Daftar Pengguna" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "Nama pengguna atau alamat email" @@ -6039,8 +6067,8 @@ msgstr "pengguna yang diikuti <0/>" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "Pengguna yang saya ikuti" @@ -6064,15 +6092,15 @@ msgstr "Nilai:" msgid "Verify DNS Record" msgstr "Verifikasi DNS" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "Verifikasi email" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "Verifikasi email saya" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "Verifikasi Email Saya" @@ -6093,7 +6121,7 @@ msgstr "Verifikasi Email Anda" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "Versi {appVersion} {bundleInfo}" @@ -6117,7 +6145,7 @@ msgstr "Lihat detail" msgid "View details for reporting a copyright violation" msgstr "Lihat detail untuk melaporkan pelanggaran hak cipta" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "Lihat utas lengkap" @@ -6125,8 +6153,8 @@ msgstr "Lihat utas lengkap" msgid "View information about these labels" msgstr "Lihat informasi tentang label ini" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Lihat profil" @@ -6183,7 +6211,7 @@ msgstr "Semoga Anda senang dan betah di sini. Ingat, Bluesky adalah:" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "Kami kehabisan postingan dari akun yang Anda ikuti. Inilah yang terbaru dari <0/>." -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "Sebaiknya hindari kata-kata umum yang muncul dalam postingan, karena dapat mengakibatkan tidak adanya postingan yang ditampilkan." @@ -6211,7 +6239,7 @@ msgstr "Kami akan memberi tahu Anda ketika akun Anda siap." msgid "We'll use this to help customize your experience." msgstr "Kami akan menggunakan ini untuk menyesuaikan pengalaman Anda." -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "Kami mengalami masalah jaringan, coba lagi" @@ -6223,7 +6251,7 @@ msgstr "Kami sangat senang Anda bergabung dengan kami!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Mohon maaf, kami tidak dapat menyelesaikan daftar ini. Jika hal ini terus berlanjut, silakan hubungi pembuat daftar, @{handleOrDid}." -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Mohon maaf, untuk saat ini kami tidak dapat memuat kata yang Anda bisukan. Silakan coba lagi." @@ -6272,7 +6300,7 @@ msgid "Who can reply" msgstr "Siapa yang dapat membalas" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "Waduh!" @@ -6305,7 +6333,7 @@ msgid "Wide" msgstr "Lebar" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "Tulis pesan" @@ -6357,6 +6385,10 @@ msgstr "Anda dapat mengubah pengaturan ini nanti." msgid "You can change this at any time." msgstr "Anda dapat mengubah ini kapan saja." +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6382,7 +6414,7 @@ msgstr "Anda tidak memiliki feed yang disematkan." msgid "You don't have any saved feeds." msgstr "Anda tidak memiliki feed yang disimpan." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Anda telah memblokir atau diblokir oleh penulis ini." @@ -6420,7 +6452,7 @@ msgstr "Anda telah membisukan akun ini." msgid "You have muted this user" msgstr "Anda telah membisukan pengguna ini" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "Anda belum melakukan percakapan. Mulai sekarang!" @@ -6441,7 +6473,7 @@ msgstr "Anda tidak punya daftar." msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Anda belum memblokir akun apa pun. Untuk memblokir akun, buka profil mereka dan pilih \"Blokir akun\" dari menu di akunnya." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Anda belum membuat kata sandi aplikasi. Anda dapat membuatnya dengan menekan tombol di bawah ini." @@ -6453,15 +6485,15 @@ msgstr "Anda belum membisukan akun apa pun. Untuk membisukan akun, buka profil m msgid "You have reached the end" msgstr "Anda telah mencapai akhir" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Anda belum membisukan kata atau tagar apa pun" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "Anda dapat mengajukan banding atas label non-mandiri jika Anda merasa label tersebut ditempatkan secara tidak tepat." -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Anda dapat mengajukan banding atas label ini jika Anda merasa label tersebut ditempatkan secara tidak tepat." @@ -6473,7 +6505,7 @@ msgstr "Anda harus berusia 13 tahun atau lebih untuk mendaftar." msgid "You must be 18 years or older to enable adult content" msgstr "Anda harus berusia 18 tahun atau lebih untuk mengaktifkan konten dewasa" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "Anda harus memilih setidaknya satu pelabel untuk sebuah laporan" @@ -6570,7 +6602,7 @@ msgstr "Handle lengkap Anda akan menjadi" msgid "Your full handle will be <0>@{0}" msgstr "Handle lengkap Anda akan menjadi <0>@{0}" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "Kata yang Anda bisukan" @@ -6601,4 +6633,3 @@ msgstr "Laporan Anda akan dikirim ke Layanan Moderasi Bluesky" #: src/screens/Signup/index.tsx:166 msgid "Your user handle" msgstr "Handle Anda" - diff --git a/src/locale/locales/it/messages.po b/src/locale/locales/it/messages.po index bc5e794828..a86001b47f 100644 --- a/src/locale/locales/it/messages.po +++ b/src/locale/locales/it/messages.po @@ -45,12 +45,12 @@ msgstr "" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" @@ -59,7 +59,7 @@ msgstr "" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "" @@ -75,7 +75,7 @@ msgstr "" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" @@ -105,7 +105,7 @@ msgstr "" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} following" @@ -185,7 +185,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Nome utente non valido" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "Conferma 2FA" @@ -222,9 +222,9 @@ msgstr "Impostazioni di Accessibilità" #~ msgid "account" #~ msgstr "account" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "Account" @@ -257,7 +257,7 @@ msgstr "Opzioni dell'account" msgid "Account removed from quick access" msgstr "Account rimosso dall'accesso immediato" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "Account sbloccato" @@ -270,7 +270,7 @@ msgstr "Account non seguito" msgid "Account unmuted" msgstr "Account non silenziato" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -291,12 +291,12 @@ msgstr "Aggiungi un utente a questo elenco" msgid "Add account" msgstr "Aggiungi account" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Aggiungi testo alternativo" @@ -304,9 +304,9 @@ msgstr "Aggiungi testo alternativo" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Aggiungi la Password per l'App" @@ -322,11 +322,11 @@ msgstr "Aggiungi la Password per l'App" #~ msgid "Add link card:" #~ msgstr "Aggiungi anteprima del link:" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "Aggiungi parola silenziata alle impostazioni configurate" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "Aggiungi parole silenziate e tags" @@ -382,7 +382,7 @@ msgid "Adult content is disabled." msgstr "Il contenuto per adulti è disattivato." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "Avanzato" @@ -390,9 +390,19 @@ msgstr "Avanzato" msgid "All the feeds you've saved, right in one place." msgstr "Tutti i feed che hai salvato, in un unico posto." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 @@ -404,13 +414,13 @@ msgstr "Hai già un codice?" msgid "Already signed in as @{0}" msgstr "Hai già effettuato l'accesso come @{0}" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -479,19 +489,19 @@ msgstr "Comportamento antisociale" msgid "App Language" msgstr "Lingua dell'app" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Password dell'app eliminata" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Le password dell'app possono contenere solo lettere, numeri, spazi, trattini e trattini bassi." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "Le password delle app devono contenere almeno 4 caratteri." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "Impostazioni della password dell'app" @@ -499,17 +509,17 @@ msgstr "Impostazioni della password dell'app" #~ msgstr "Passwords dell'app" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "Password dell'App" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "Ricorso" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "Etichetta \"{0}\" del ricorso" @@ -522,7 +532,7 @@ msgstr "Etichetta \"{0}\" del ricorso" #~ msgid "Appeal Decision" #~ msgstr "Decisión de apelación" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -550,7 +560,7 @@ msgstr "Aspetto" msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Confermi di voler eliminare la password dell'app \"{name}\"?" @@ -578,7 +588,7 @@ msgstr "Confermi di voler rimuovere {0} dai tuoi feed?" msgid "Are you sure you'd like to discard this draft?" msgstr "Confermi di voler eliminare questa bozza?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "Confermi?" @@ -602,14 +612,14 @@ msgid "At least 3 characters" msgstr "Almeno 3 caratteri" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -640,7 +650,7 @@ msgstr "Compleanno" msgid "Birthday:" msgstr "Compleanno:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "Blocca" @@ -696,7 +706,7 @@ msgstr "Gli account bloccati non possono rispondere alle tue discussioni, menzio msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Gli account bloccati non possono rispondere alle tue discussioni, menzionarti, o interagire in nessun altro modo con te. Non vedrai il loro contenuto e non vedranno il tuo." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "Post bloccato." @@ -809,7 +819,7 @@ msgstr "da te" msgid "Camera" msgstr "Fotocamera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Può contenere solo lettere, numeri, spazi, trattini e trattini bassi. Deve contenere almeno 4 caratteri, ma non più di 32 caratteri." @@ -892,12 +902,12 @@ msgctxt "action" msgid "Change" msgstr "Cambia" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "Cambia il nome utente" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "Cambia il Nome Utente" @@ -905,12 +915,12 @@ msgstr "Cambia il Nome Utente" msgid "Change my email" msgstr "Cambia la mia email" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "Cambia la password" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "Cambia la Password" @@ -938,10 +948,16 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "" @@ -963,7 +979,7 @@ msgstr "Verifica il mio stato" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Scopri alcuni utenti consigliati. Seguili per vedere utenti simili." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "Controlla la tua email per il codice di accesso e inseriscilo qui." @@ -1003,19 +1019,19 @@ msgstr "Scegli i tuoi feed principali" msgid "Choose your password" msgstr "Scegli la tua password" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "Cancella tutti i dati legacy in archivio" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "Cancella tutti i dati legacy in archivio (poi ricomincia)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "Cancella tutti i dati in archivio" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "Cancella tutti i dati in archivio (poi ricomincia)" @@ -1024,11 +1040,11 @@ msgstr "Cancella tutti i dati in archivio (poi ricomincia)" msgid "Clear search query" msgstr "Annulla la ricerca" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "Cancella tutti i dati di archiviazione legacy" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "Cancella tutti i dati di archiviazione" @@ -1060,7 +1076,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1210,7 +1226,7 @@ msgstr "Conferma la tua età:" msgid "Confirm your birthdate" msgstr "Conferma la tua data di nascita" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1223,7 +1239,7 @@ msgstr "Codice di conferma" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "Conferma l'iscrizione di {email} alla lista d'attesa" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "Connessione in corso..." @@ -1304,7 +1320,7 @@ msgstr "Vai al passaggio successivo" msgid "Continue to the next step without following any accounts" msgstr "Vai al passaggio successivo senza seguire nessun account" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "" @@ -1312,7 +1328,7 @@ msgstr "" msgid "Cooking" msgstr "Cucina" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Copiato" @@ -1322,7 +1338,7 @@ msgid "Copied build version to clipboard" msgstr "Versione di build copiata nella clipboard" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1333,11 +1349,11 @@ msgstr "Copiato nel clipboard" msgid "Copied!" msgstr "Copiato!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Copia la password dell'app" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Copia" @@ -1426,7 +1442,7 @@ msgstr "Crea un account" msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Crea un password per l'app" @@ -1439,7 +1455,7 @@ msgstr "Crea un nuovo account" msgid "Create report for {0}" msgstr "Crea un report per {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Creato {0}" @@ -1494,7 +1510,7 @@ msgstr "Tema scuro" msgid "Date of birth" msgstr "Data di nascita" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "Eliminare errori nella Moderazione" @@ -1504,12 +1520,12 @@ msgstr "Pannello per il debug" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "Elimina" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "Elimina l'account" @@ -1521,16 +1537,16 @@ msgstr "Elimina l'account" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Elimina la password dell'app" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Eliminare la password dell'app?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "" @@ -1557,7 +1573,7 @@ msgstr "Cancellare account" #~ msgid "Delete my account…" #~ msgstr "Cancella il mio account…" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "Cancellare Account…" @@ -1578,11 +1594,11 @@ msgstr "Eliminare questo post?" msgid "Deleted" msgstr "Eliminato" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "Post eliminato." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "" @@ -1593,7 +1609,7 @@ msgstr "" msgid "Description" msgstr "Descrizione" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "" @@ -1630,8 +1646,8 @@ msgstr "Disattiva il feedback tattile" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Disabilitato" @@ -1703,8 +1719,8 @@ msgstr "Dominio verificato!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1822,12 +1838,12 @@ msgid "Edit my profile" msgstr "Modifica il mio profilo" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "Modifica il profilo" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "Modifica il Profilo" @@ -1933,8 +1949,8 @@ msgstr "Abilita questa impostazione per vedere solo le risposte delle persone ch msgid "Enable this source only" msgstr "Abilita solo questa fonte" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Abilitato" @@ -1947,7 +1963,7 @@ msgstr "Fine del feed" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Inserisci un nome per questa password dell'app" @@ -1955,8 +1971,8 @@ msgstr "Inserisci un nome per questa password dell'app" msgid "Enter a password" msgstr "Inserisci una password" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "Inserisci una parola o tag" @@ -2029,8 +2045,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "" @@ -2083,12 +2099,12 @@ msgstr "Media espliciti o potenzialmente inquietanti." msgid "Explicit sexual images." msgstr "Immagini sessuali esplicite." -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "Esporta i miei dati" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "Esporta i miei dati" @@ -2104,16 +2120,16 @@ msgstr "I multimediali esterni possono consentire ai siti web di raccogliere inf #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "Preferenze multimediali esterni" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "Impostazioni multimediali esterni" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "Impossibile creare la password dell'app." @@ -2158,13 +2174,13 @@ msgstr "" #~ msgid "Failed to send message(s)." #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "" @@ -2274,10 +2290,10 @@ msgstr "Gira in orizzontale" msgid "Flip vertically" msgstr "Gira in verticale" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2289,7 +2305,7 @@ msgid "Follow" msgstr "Segui" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Segui {0}" @@ -2339,9 +2355,9 @@ msgstr "Followers" #~ msgid "following" #~ msgstr "following" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2350,7 +2366,7 @@ msgstr "Followers" msgid "Following" msgstr "Following" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "Seguiti {0}" @@ -2382,7 +2398,7 @@ msgstr "Gastronomia" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Per motivi di sicurezza, invieremo un codice di conferma al tuo indirizzo email." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Per motivi di sicurezza non potrai visualizzarlo nuovamente. Se perdi questa password, dovrai generarne una nuova." @@ -2397,11 +2413,11 @@ msgstr "Per motivi di sicurezza non potrai visualizzarlo nuovamente. Se perdi qu msgid "Forgot Password" msgstr "Hai dimenticato la Password" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "Hai dimenticato la password?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "Hai dimenticato?" @@ -2413,7 +2429,7 @@ msgstr "Pubblica spesso contenuti indesiderati" msgid "From @{sanitizedAuthor}" msgstr "Di @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "Da <0/>" @@ -2461,7 +2477,7 @@ msgstr "Torna Indietro" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2480,7 +2496,7 @@ msgstr "Torna Home" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Vai a @{queryMaybeHandle}" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "" @@ -2546,13 +2562,13 @@ msgstr "Ecco alcuni feed più visitati. Puoi seguire quanti ne vuoi." msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "Ecco alcuni feed di attualità scelti in base ai tuoi interessi: {interestsText}. Puoi seguire quanti ne vuoi." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Ecco la password dell'app." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2574,7 +2590,7 @@ msgid "Hide post" msgstr "Nascondi il messaggio" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "Nascondere il contenuto" @@ -2633,7 +2649,7 @@ msgid "Host:" msgstr "Hosting:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2697,7 +2713,7 @@ msgstr "Illegale e Urgente" msgid "Image" msgstr "Immagine" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Testo alternativo dell'immagine" @@ -2726,7 +2742,7 @@ msgstr "Inserisci il codice di conferma per la cancellazione dell'account" #~ msgid "Input invite code to proceed" #~ msgstr "Inserisci il codice di invito per procedere" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Inserisci il nome per la password dell'app" @@ -2741,15 +2757,15 @@ msgstr "Inserisci la password per la cancellazione dell'account" #~ msgid "Input phone number for SMS verification" #~ msgstr "Inserisci il numero di telefono per la verifica via SMS" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "Inserisci il codice che ti è stato inviato via email" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "Inserisci la password relazionata a {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "Inserisci il nome utente o l'indirizzo email che hai utilizzato al momento della registrazione" @@ -2759,7 +2775,7 @@ msgstr "Inserisci il nome utente o l'indirizzo email che hai utilizzato al momen #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Inserisci la tua email per entrare nella lista d'attesa di Bluesky" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "Inserisci la tua password" @@ -2775,16 +2791,16 @@ msgstr "Inserisci il tuo identificatore" msgid "Introducing Direct Messages" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Codice di conferma 2FA non valido." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Protocollo del post non valido o non supportato" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "Nome dell'utente o password errato" @@ -2859,11 +2875,11 @@ msgstr "Le etichette sono annotazioni su utenti e contenuti. Possono essere util #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "le etichette sono state inserite su questo {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Etichette sul tuo account" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Etichette sul tuo contenuto" @@ -2904,7 +2920,7 @@ msgstr "Ulteriori Informazioni" msgid "Learn more about the moderation applied to this content." msgstr "Scopri di più sulla moderazione applicata a questo contenuto." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Ulteriori informazioni su questo avviso" @@ -3016,7 +3032,7 @@ msgstr "piace il tuo post" msgid "Likes" msgstr "Mi piace" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Mi Piace in questo post" @@ -3077,7 +3093,7 @@ msgid "Load new notifications" msgstr "Carica più notifiche" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -3140,7 +3156,7 @@ msgstr "" msgid "Make sure this is where you intend to go!" msgstr "Assicurati che questo sia dove intendi andare!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "Gestisci le parole mute e i tags" @@ -3178,6 +3194,7 @@ msgid "Message {0}" msgstr "" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "" @@ -3193,18 +3210,18 @@ msgid "Message input field" msgstr "" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" @@ -3323,11 +3340,11 @@ msgstr "Silenzia tutti i post {displayTag}" msgid "Mute conversation" msgstr "" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "Silenzia solo i tags" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "Silenzia nel testo & tags" @@ -3347,11 +3364,11 @@ msgstr "Vuoi silenziare queste liste?" #~ msgid "Mute this List" #~ msgstr "Silenzia questa Lista" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "Silenzia questa parola nel testo e nei tag del post" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "Siilenzia questa parola solo nei tags" @@ -3418,7 +3435,7 @@ msgstr "I miei Feeds Salvati" #~ msgid "my-server.com" #~ msgstr "my-server.com" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "Nome" @@ -3438,7 +3455,7 @@ msgid "Nature" msgstr "Natura" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Vai alla schermata successiva" @@ -3477,8 +3494,8 @@ msgid "New" msgstr "Nuova" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" @@ -3498,7 +3515,7 @@ msgstr "Nuovo Password" msgid "New Password" msgstr "Nuovo Password" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "Nuovo Post" @@ -3535,8 +3552,8 @@ msgstr "Notizie" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3576,7 +3593,7 @@ msgstr "Nessun pannello DNS" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "Non si è trovata nessuna GIF in primo piano. Potrebbe esserci un problema con Tenor." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "Non segui più {0}" @@ -3588,7 +3605,7 @@ msgstr "Non più di 253 caratteri" msgid "No messages yet" msgstr "" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "" @@ -3598,8 +3615,8 @@ msgstr "Ancora nessuna notifica!" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "" @@ -3608,7 +3625,7 @@ msgstr "" msgid "No result" msgstr "Nessun risultato" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "" @@ -3680,15 +3697,15 @@ msgstr "Nota sulla condivisione" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: Bluesky è una rete aperta e pubblica. Questa impostazione limita solo la visibilità dei tuoi contenuti sull'app e sul sito Web di Bluesky e altre app potrebbero non rispettare questa impostazione. I tuoi contenuti potrebbero comunque essere mostrati agli utenti disconnessi da altre app e siti web." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "" @@ -3772,7 +3789,7 @@ msgid "Oops, something went wrong!" msgstr "Ops! Qualcosa è andato male!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "Ops!" @@ -3785,8 +3802,8 @@ msgstr "Apri" msgid "Open avatar creator" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "" @@ -3799,7 +3816,7 @@ msgstr "Apri il selettore emoji" msgid "Open feed options menu" msgstr "Apri il menu delle opzioni del feed" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "Apri i links con il navigatore della app" @@ -3819,12 +3836,12 @@ msgstr "Apri la navigazione" msgid "Open post options menu" msgstr "Apri il menu delle opzioni del post" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "Apri la pagina della cronologia" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "Apri il registro di sistema" @@ -3848,6 +3865,10 @@ msgstr "Apre un elenco ampliato di utenti in questa notifica" msgid "Opens camera on device" msgstr "Apre la fotocamera sul dispositivo" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "Apre il compositore" @@ -3863,7 +3884,7 @@ msgstr "Apre la galleria fotografica del dispositivo" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Apre l'editor per il nome configurato del profilo, l'avatar, l'immagine di sfondo e la descrizione" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "Apre le impostazioni esterne per gli incorporamenti" @@ -3894,26 +3915,26 @@ msgstr "Apre la finestra per selezionare i GIF" msgid "Opens list of invite codes" msgstr "Apre la lista dei codici di invito" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Apre la modale per la conferma dell'eliminazione dell'account. Richiede un codice e-mail" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Apre il modal per la conferma dell'eliminazione dell'account. Richiede un codice email." -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "Apre la modale per modificare il tuo password di Bluesky" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Apre la modale per la scelta di un nuovo handle di Bluesky" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Apre la modale per scaricare i dati del tuo account Bluesky (repository)" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "Apre la modale per la verifica dell'e-mail" @@ -3925,7 +3946,7 @@ msgstr "Apre il modal per l'utilizzo del dominio personalizzato" msgid "Opens moderation settings" msgstr "Apre le impostazioni di moderazione" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "Apre il modulo di reimpostazione della password" @@ -3938,7 +3959,7 @@ msgstr "Apre la schermata per modificare i feed salvati" msgid "Opens screen with all saved feeds" msgstr "Apre la schermata con tutti i feed salvati" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "Apre le impostazioni della password dell'app" @@ -3960,12 +3981,12 @@ msgstr "Apre il sito Web collegato" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "Apri la pagina della cronologia" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "Apre la pagina del registro di sistema" @@ -3978,7 +3999,7 @@ msgid "Option {0} of {numItems}" msgstr "Opzione {0} di {numItems}" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "Facoltativamente, fornisci ulteriori informazioni di seguito:" @@ -4014,7 +4035,7 @@ msgstr "Pagina non trovata" msgid "Page Not Found" msgstr "Pagina non trovata" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -4127,18 +4148,18 @@ msgstr "Si prega di completare il captcha di verifica." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Conferma la tua email prima di cambiarla. Si tratta di un requisito temporaneo durante l'aggiunta degli strumenti di aggiornamento della posta elettronica e verrà presto rimosso." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Inserisci un nome per la password dell'app. Tutti gli spazi non sono consentiti." #~ msgid "Please enter a phone number that can receive SMS text messages." #~ msgstr "Inserisci un numero di telefono in grado di ricevere messaggi di testo SMS." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Inserisci un nome unico per la password dell'app o utilizzane uno generato automaticamente." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Inserisci una parola, un tag o una frase valida da silenziare" @@ -4156,7 +4177,7 @@ msgstr "Inserisci la tua email." msgid "Please enter your password as well:" msgstr "Inserisci anche la tua password:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Spiega perché ritieni che questa etichetta sia stata applicata in modo errato da {0}" @@ -4200,7 +4221,7 @@ msgctxt "action" msgid "Post" msgstr "Post" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "Post" @@ -4208,7 +4229,7 @@ msgstr "Post" #~ msgid "Post" #~ msgstr "Post" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "Pubblicato da {0}" @@ -4222,7 +4243,7 @@ msgstr "Pubblicato da @{0}" msgid "Post deleted" msgstr "Post eliminato" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Post nascosto" @@ -4244,8 +4265,8 @@ msgstr "Lingua del post" msgid "Post Languages" msgstr "Lingue del post" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Post non trovato" @@ -4257,7 +4278,7 @@ msgstr "post" msgid "Posts" msgstr "Post" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "I post possono essere silenziati ​​in base al testo, ai tag o entrambi." @@ -4301,7 +4322,7 @@ msgstr "Lingua principale" msgid "Prioritize Your Follows" msgstr "Dai priorità a quelli che segui" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privacy" @@ -4309,7 +4330,7 @@ msgstr "Privacy" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Informativa sulla privacy" @@ -4322,7 +4343,7 @@ msgstr "" msgid "Processing..." msgstr "Elaborazione in corso…" -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "profilo" @@ -4339,7 +4360,7 @@ msgstr "Profilo" msgid "Profile updated" msgstr "Profilo aggiornato" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "Proteggi il tuo account verificando la tua email." @@ -4412,11 +4433,11 @@ msgstr "Ricerche recenti" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4470,7 +4491,7 @@ msgstr "Rimuovi l'immagine" msgid "Remove image preview" msgstr "Rimuovi l'anteprima dell'immagine" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "Rimuovi la parola silenziata dalla tua lista" @@ -4542,7 +4563,7 @@ msgstr "Filtri di risposta" #~ msgstr "In risposta a <0/>" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Rispondi a <0><1/>" @@ -4644,7 +4665,7 @@ msgstr "Ripubblica o cita il post" msgid "Reposted By" msgstr "Ripubblicato da" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "Ripubblicato da{0}" @@ -4654,7 +4675,7 @@ msgstr "Ripubblicato da{0}" #~ msgid "Reposted by <0/>" #~ msgstr "Repost di <0/>" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "Ripubblicato da <0><1/>" @@ -4662,7 +4683,7 @@ msgstr "Ripubblicato da <0><1/>" msgid "reposted your post" msgstr "ripubblicato il tuo post" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Ripubblicazioni di questo post" @@ -4707,8 +4728,8 @@ msgstr "Reimposta il Codice" #~ msgid "Reset onboarding" #~ msgstr "Reimposta l'incorporazione" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "Reimposta lo stato dell' incorporazione" @@ -4719,20 +4740,20 @@ msgstr "Reimposta la password" #~ msgid "Reset preferences" #~ msgstr "Reimposta le preferenze" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "Reimposta lo stato delle preferenze" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "Reimposta lo stato dell'incorporazione" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "Reimposta lo stato delle preferenze" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "Ritenta l'accesso" @@ -4744,8 +4765,8 @@ msgstr "Ritenta l'ultima azione che ha generato un errore" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4777,8 +4798,8 @@ msgstr "Ritorna alla pagina precedente" #~ msgstr "SANDBOX. I post e gli account non sono permanenti." #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4791,7 +4812,7 @@ msgctxt "action" msgid "Save" msgstr "Salva" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Salva il testo alternativo" @@ -5004,7 +5025,7 @@ msgstr "Seleziona alcuni account da seguire qui giù" msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "Seleziona il/i servizio/i di moderazione per fare la segnalazione" @@ -5081,14 +5102,14 @@ msgid "Send feedback" msgstr "Invia feedback" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "Invia la segnalazione" @@ -5219,7 +5240,6 @@ msgstr "Imposta l'amplio sulle proporzioni dell'immagine" #~ msgstr "Imposta il server per il client Bluesky" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5283,7 +5303,7 @@ msgstr "Condivide il sito Web nel link" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -5314,10 +5334,14 @@ msgstr "Mostra badge e filtra dai feed" #~ msgid "Show embeds from {0}" #~ msgstr "Mostra incorporamenti di {0}" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "Mostra follows simile a {0}" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -5325,7 +5349,7 @@ msgstr "" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "Mostra di più" @@ -5334,6 +5358,10 @@ msgstr "Mostra di più" msgid "Show more like this" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Mostra post dai miei feed" @@ -5383,7 +5411,7 @@ msgid "Show reposts in Following" msgstr "Mostra i re-repost in Seguiti" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "Mostra il contenuto" @@ -5410,7 +5438,7 @@ msgstr "Mostra i post di {0} nel tuo feed" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -5524,7 +5552,7 @@ msgstr "Qualcosa è andato male, prova di nuovo." #~ msgstr "Qualcosa è andato storto. Controlla la tua email e riprova." #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "Scusa! La tua sessione è scaduta. Per favore accedi di nuovo." @@ -5540,7 +5568,7 @@ msgstr "Ordina le risposte allo stesso post per:" #~ msgid "Source:" #~ msgstr "Origine:" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "" @@ -5564,7 +5592,7 @@ msgstr "Quadrato" #~ msgid "Staging" #~ msgstr "Allestimento" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "" @@ -5580,7 +5608,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Pagina di stato" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "" @@ -5600,12 +5628,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Spazio di archiviazione eliminato. Riavvia l'app." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Cronologia" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5674,11 +5702,11 @@ msgstr "Cambia l'account dal quale hai effettuato l'accesso" msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "Registro di sistema" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "tag" @@ -5708,7 +5736,7 @@ msgstr "Termini" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5720,17 +5748,17 @@ msgstr "Termini di servizio" msgid "Terms used violate community standards" msgstr "I termini utilizzati violano gli standard della comunità" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "testo" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Campo di testo" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "Grazie. La tua segnalazione è stata inviata." @@ -5742,7 +5770,7 @@ msgstr "Che contiene il seguente:" msgid "That handle is already taken." msgstr "Questo handle è già stato preso." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "L'account sarà in grado di interagire con te dopo lo sblocco." @@ -5763,11 +5791,11 @@ msgstr "La politica sul copyright è stata spostata a <0/>" msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Al tuo account sono state applicate le seguenti etichette." -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Ai tuoi contenuti sono state applicate le seguenti etichette." @@ -5775,8 +5803,8 @@ msgstr "Ai tuoi contenuti sono state applicate le seguenti etichette." msgid "The following steps will help customize your Bluesky experience." msgstr "I passaggi seguenti ti aiuteranno a personalizzare la tua esperienza con Bluesky." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Il post potrebbe essere stato cancellato." @@ -5854,7 +5882,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Si è verificato un problema durante il recupero delle tue liste. Tocca qui per riprovare." #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Si è verificato un problema durante l'invio della segnalazione. Per favore controlla la tua connessione Internet." @@ -5862,13 +5890,13 @@ msgstr "Si è verificato un problema durante l'invio della segnalazione. Per fav msgid "There was an issue syncing your preferences with the server" msgstr "Si è verificato un problema durante la sincronizzazione delle tue preferenze con il server" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Si è verificato un problema durante il recupero delle password dell'app" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5918,7 +5946,7 @@ msgstr "Questo account ha richiesto agli utenti di accedere Bluesky per visualiz msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "Questo ricorso verrà inviato a <0>{0}." @@ -6007,7 +6035,7 @@ msgstr "" #~ msgid "This label was applied by you" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "" @@ -6027,11 +6055,11 @@ msgstr "La lista è vuota!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Questo servizio di moderazione non è disponibile. Vedi giù per ulteriori dettagli. Se il problema persiste, contattaci." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "Questo nome è già in uso" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "Questo post è stato cancellato." @@ -6098,7 +6126,7 @@ msgstr "Questo utente non sta seguendo nessuno." #~ msgid "This warning is only available for posts with media attached." #~ msgstr "Questo avviso è disponibile solo per i post con contenuti multimediali allegati." -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Questo eliminerà {0} dalle parole disattivate. Puoi sempre aggiungerla nuovamente in seguito." @@ -6134,7 +6162,7 @@ msgstr "" msgid "To whom would you like to send this report?" msgstr "A chi desideri inviare questo report?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Alterna tra le opzioni delle parole silenziate." @@ -6170,7 +6198,7 @@ msgstr "Riprova" #~ msgid "Try again" #~ msgstr "Provalo di nuovo" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "Autenticazione a due fattori" @@ -6192,7 +6220,7 @@ msgstr "Riattiva questa lista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -6203,14 +6231,14 @@ msgstr "Impossibile contattare il servizio. Per favore controlla la tua connessi #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "Sblocca" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "Sblocca" @@ -6225,7 +6253,7 @@ msgstr "" msgid "Unblock Account" msgstr "Sblocca Account" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "Sblocca Account?" @@ -6246,7 +6274,7 @@ msgstr "Smetti di seguire" msgid "Unfollow" msgstr "Smetti di seguire" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "Smetti di seguire {0}" @@ -6380,7 +6408,7 @@ msgstr "Carica dalla Libreria" msgid "Use a file on your server" msgstr "Utilizza un file sul tuo server" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Utilizza le password dell'app per accedere ad altri client Bluesky senza fornire l'accesso completo al tuo account o alla tua password." @@ -6410,7 +6438,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "Utilizza il pannello DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Utilizza questo per accedere all'altra app insieme al tuo nome utente." @@ -6476,7 +6504,7 @@ msgstr "Lista aggiornata" msgid "User Lists" msgstr "Liste publiche" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "Nome utente o indirizzo Email" @@ -6490,8 +6518,8 @@ msgstr "utenti seguiti da <0/>" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "" @@ -6518,15 +6546,15 @@ msgstr "Valore:" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "Verifica Email" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "Verifica la mia email" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "Verifica la Mia Email" @@ -6547,7 +6575,7 @@ msgstr "Verifica la tua email" #~ msgid "Version {0}" #~ msgstr "Versione {0}" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6571,7 +6599,7 @@ msgstr "Vedere dettagli" msgid "View details for reporting a copyright violation" msgstr "Visualizza i dettagli per segnalare una violazione del copyright" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "Vedi la discussione completa" @@ -6579,8 +6607,8 @@ msgstr "Vedi la discussione completa" msgid "View information about these labels" msgstr "Visualizza le informazioni su queste etichette" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Vedi il profilo" @@ -6640,7 +6668,7 @@ msgstr "Speriamo di darti dei momenti dei bei momenti. Ricorda, Bluesky è:" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "Abbiamo esaurito i posts dei tuoi follower. Ecco le ultime novità da <0/>." -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "Ti consigliamo di evitare usare parole comuni che compaiono in molti post, perchè ciò potrebbe comportare la mancata visualizzazione dei post." @@ -6671,7 +6699,7 @@ msgstr "Ti faremo sapere quando il tuo account sarà pronto." msgid "We'll use this to help customize your experience." msgstr "Lo useremo per personalizzare la tua esperienza." -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "" @@ -6683,7 +6711,7 @@ msgstr "Siamo felici che tu ti unisca a noi!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Siamo spiacenti, ma non siamo riusciti a risolvere questa lista. Se il problema persiste, contatta il creatore della lista, @{handleOrDid}." -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Siamo spiacenti, ma al momento non siamo riusciti a caricare le parole silenziate. Per favore riprova si nuovo." @@ -6738,7 +6766,7 @@ msgid "Who can reply" msgstr "Chi può rispondere" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" @@ -6771,7 +6799,7 @@ msgid "Wide" msgstr "Largo" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "" @@ -6829,6 +6857,10 @@ msgstr "Potrai modificare queste impostazioni in seguito." msgid "You can change this at any time." msgstr "" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6854,7 +6886,7 @@ msgstr "Non hai fissato nessun feed." msgid "You don't have any saved feeds." msgstr "Non hai salvato nessun feed." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Hai bloccato l'autore o sei stato bloccato dall'autore." @@ -6895,7 +6927,7 @@ msgstr "Hai silenziato questo utente" #~ msgid "You have muted this user." #~ msgstr "Hai disattivato questo utente." -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "" @@ -6919,7 +6951,7 @@ msgstr "Non hai ancora bloccato nessun account. Per bloccare un account, vai sul #~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." #~ msgstr "Non hai ancora bloccato nessun conto. Per bloccare un conto, vai al profilo e seleziona \"Blocca conto\" dal menu del suo conto." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Non hai ancora creato alcuna password per l'app. Puoi crearne uno premendo il pulsante qui sotto." @@ -6934,15 +6966,15 @@ msgstr "Non hai ancora silenziato nessun account. Per silenziare un account, vai msgid "You have reached the end" msgstr "" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Non hai ancora silenziato nessuna parola o tag" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Puoi presentare ricorso contro queste etichette se ritieni che siano state inserite per errore." @@ -6957,7 +6989,7 @@ msgstr "Per iscriverti devi avere almeno 13 anni." msgid "You must be 18 years or older to enable adult content" msgstr "Devi avere almeno 18 anni per abilitare i contenuti per adulti" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "È necessario selezionare almeno un'etichettatore per un report" @@ -7063,7 +7095,7 @@ msgstr "Il tuo nome di utente completo sarà <0>@{0}" #~ msgid "Your invite codes are hidden when logged in using an App Password" #~ msgstr "I tuoi codici di invito vengono celati quando accedi utilizzando una password per l'app" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "Le tue parole silenziate" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 497629cb55..5375519ebf 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -33,12 +33,12 @@ msgstr "{0, plural, other {#個のラベルがこのコンテンツに適用さ msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "{0, plural, other {#回のリポスト}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "{0, plural, other {フォロワー}}" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "{0, plural, other {フォロー中}}" @@ -47,7 +47,7 @@ msgstr "{0, plural, other {フォロー中}}" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "{0, plural, other {いいね (#個のいいね)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "{0, plural, other {いいね}}" @@ -63,7 +63,7 @@ msgstr "{0, plural, other {投稿}}" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "{0, plural, other {返信 (#件の返信)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "{0, plural, other {リポスト}}" @@ -83,7 +83,7 @@ msgstr "{estimatedTimeHrs, plural, other {時間}}" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "{estimatedTimeMins, plural, other {分}}" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} フォロー" @@ -126,7 +126,7 @@ msgstr "<0>適用できません。 この警告はメディアが添付さ msgid "⚠Invalid Handle" msgstr "⚠無効なハンドル" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "2要素認証の確認" @@ -153,9 +153,9 @@ msgstr "アクセシビリティの設定" msgid "Accessibility Settings" msgstr "アクセシビリティの設定" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "アカウント" @@ -188,7 +188,7 @@ msgstr "アカウントオプション" msgid "Account removed from quick access" msgstr "クイックアクセスからアカウントを解除" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "アカウントのブロックを解除しました" @@ -201,7 +201,7 @@ msgstr "アカウントのフォローを解除しました" msgid "Account unmuted" msgstr "アカウントのミュートを解除しました" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -222,26 +222,26 @@ msgstr "リストにユーザーを追加" msgid "Add account" msgstr "アカウントを追加" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "ALTテキストを追加" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "アプリパスワードを追加" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "ミュートするワードを設定に追加" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "ミュートするワードとタグを追加" @@ -290,7 +290,7 @@ msgid "Adult content is disabled." msgstr "成人向けコンテンツは無効になっています。" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "高度な設定" @@ -303,8 +303,8 @@ msgstr "保存したすべてのフィードを1箇所にまとめます。" msgid "Allow access to your direct messages" msgstr "ダイレクトメッセージへのアクセスを許可" -#: src/screens/Messages/Settings.tsx:61 -#: src/screens/Messages/Settings.tsx:64 +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 msgid "Allow new messages from" msgstr "新しいメッセージを誰から受け取れるか:" @@ -317,13 +317,13 @@ msgstr "コードをすでに持っていますか?" msgid "Already signed in as @{0}" msgstr "@{0}としてすでにサインイン済み" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -388,38 +388,38 @@ msgstr "反社会的な行動" msgid "App Language" msgstr "アプリの言語" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "アプリパスワードを削除しました" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "アプリパスワードの名前には、英数字、スペース、ハイフン、アンダースコアのみが使用可能です。" -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "アプリパスワードの名前は長さが4文字以上である必要があります。" -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "アプリパスワードの設定" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "アプリパスワード" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "異議を申し立てる" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "「{0}」のラベルに異議を申し立てる" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "異議申し立てを提出しました" @@ -440,7 +440,7 @@ msgstr "背景" msgid "Apply default recommended feeds" msgstr "デフォルトのおすすめフィードを追加" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "アプリパスワード「{name}」を本当に削除しますか?" @@ -460,7 +460,7 @@ msgstr "あなたのフィードから{0}を削除してもよろしいですか msgid "Are you sure you'd like to discard this draft?" msgstr "本当にこの下書きを破棄しますか?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "本当によろしいですか?" @@ -481,14 +481,14 @@ msgid "At least 3 characters" msgstr "少なくとも3文字" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -515,7 +515,7 @@ msgstr "生年月日" msgid "Birthday:" msgstr "生年月日:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "ブロック" @@ -568,7 +568,7 @@ msgstr "ブロック中のアカウントは、あなたのスレッドでの返 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "ブロック中のアカウントは、あなたのスレッドでの返信、あなたへのメンション、その他の方法であなたとやり取りすることはできません。あなたは相手のコンテンツを見ることができず、相手はあなたのコンテンツを見ることができなくなります。" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "投稿をブロックしました。" @@ -650,7 +650,7 @@ msgstr "作成者:あなた" msgid "Camera" msgstr "カメラ" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "英数字、スペース、ハイフン、アンダースコアのみが使用可能です。長さは4文字以上32文字以下である必要があります。" @@ -727,12 +727,12 @@ msgctxt "action" msgid "Change" msgstr "変更" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "ハンドルを変更" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "ハンドルを変更" @@ -740,12 +740,12 @@ msgstr "ハンドルを変更" msgid "Change my email" msgstr "メールアドレスを変更" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "パスワードを変更" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "パスワードを変更" @@ -770,7 +770,8 @@ msgstr "チャットをミュートしました" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "チャットの設定" @@ -788,7 +789,7 @@ msgstr "チャットのミュートを解除しました" msgid "Check my status" msgstr "ステータスを確認" -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "確認コードが記載されたメールを確認し、ここに入力してください。" @@ -820,19 +821,19 @@ msgstr "メインのフィードを選択" msgid "Choose your password" msgstr "パスワードを入力" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "レガシーストレージデータをすべてクリア" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "すべてのレガシーストレージデータをクリア(このあと再起動します)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "すべてのストレージデータをクリア" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "すべてのストレージデータをクリア(このあと再起動します)" @@ -841,11 +842,11 @@ msgstr "すべてのストレージデータをクリア(このあと再起動 msgid "Clear search query" msgstr "検索クエリをクリア" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "すべてのレガシーストレージデータをクリア" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "すべてのストレージデータをクリア" @@ -870,7 +871,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "パカラッ 🐴 パカラッ 🐴" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1013,7 +1014,7 @@ msgstr "年齢の確認:" msgid "Confirm your birthdate" msgstr "生年月日の確認" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1023,7 +1024,7 @@ msgstr "生年月日の確認" msgid "Confirmation code" msgstr "確認コード" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "接続中..." @@ -1094,7 +1095,7 @@ msgstr "次のステップへ進む" msgid "Continue to the next step without following any accounts" msgstr "アカウントをフォローせずに次のステップへ進む" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "会話が削除されました" @@ -1102,7 +1103,7 @@ msgstr "会話が削除されました" msgid "Cooking" msgstr "料理" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "コピーしました" @@ -1112,7 +1113,7 @@ msgid "Copied build version to clipboard" msgstr "ビルドバージョンをクリップボードにコピーしました" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1123,11 +1124,11 @@ msgstr "クリップボードにコピーしました" msgid "Copied!" msgstr "コピーしました!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "アプリパスワードをコピーします" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "コピー" @@ -1202,7 +1203,7 @@ msgstr "アカウントを作成" msgid "Create an avatar instead" msgstr "代わりにアバターを作成" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "アプリパスワードを作成" @@ -1215,7 +1216,7 @@ msgstr "新しいアカウントを作成" msgid "Create report for {0}" msgstr "{0}の報告を作成" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0}に作成" @@ -1258,7 +1259,7 @@ msgstr "ダークテーマ" msgid "Date of birth" msgstr "生年月日" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "モデレーションをデバッグ" @@ -1268,12 +1269,12 @@ msgstr "デバッグパネル" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "削除" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "アカウントを削除" @@ -1281,16 +1282,16 @@ msgstr "アカウントを削除" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "アカウント<0>「<1>{0}<2>」を削除" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "アプリパスワードを削除" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "アプリパスワードを削除しますか?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "チャットの宣言レコードを削除" @@ -1314,7 +1315,7 @@ msgstr "メッセージの宛先から自分を削除" msgid "Delete my account" msgstr "マイアカウントを削除" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "マイアカウントを削除…" @@ -1335,11 +1336,11 @@ msgstr "この投稿を削除しますか?" msgid "Deleted" msgstr "削除されています" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "投稿を削除しました。" -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "チャットの宣言レコードを削除する" @@ -1350,7 +1351,7 @@ msgstr "チャットの宣言レコードを削除する" msgid "Description" msgstr "説明" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "説明的なALTテキスト" @@ -1381,8 +1382,8 @@ msgstr "触覚フィードバックを無効化" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "無効" @@ -1445,8 +1446,8 @@ msgstr "ドメインを確認しました!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1558,12 +1559,12 @@ msgid "Edit my profile" msgstr "マイプロフィールを編集" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "プロフィールを編集" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "プロフィールを編集" @@ -1666,8 +1667,8 @@ msgstr "この設定を有効にすると、自分がフォローしているユ msgid "Enable this source only" msgstr "このソースのみ有効にする" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "有効" @@ -1676,7 +1677,7 @@ msgstr "有効" msgid "End of feed" msgstr "フィードの終わり" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "このアプリパスワードの名前を入力" @@ -1684,8 +1685,8 @@ msgstr "このアプリパスワードの名前を入力" msgid "Enter a password" msgstr "パスワードを入力" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "ワードまたはタグを入力" @@ -1749,8 +1750,8 @@ msgstr "誰でも返信可能" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "全員" @@ -1800,12 +1801,12 @@ msgstr "露骨な、または不愉快になる可能性のあるメディア。 msgid "Explicit sexual images." msgstr "露骨な性的画像。" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "私のデータをエクスポートする" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "私のデータをエクスポートする" @@ -1821,16 +1822,16 @@ msgstr "外部メディアを有効にすると、それらのメディアのウ #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "外部メディアの設定" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "外部メディアの設定" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "アプリパスワードの作成に失敗しました。" @@ -1862,13 +1863,13 @@ msgstr "画像の保存に失敗しました:{0}" msgid "Failed to send" msgstr "送信に失敗" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "異議申し立ての送信に失敗しました。再度試してください。" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "設定の更新に失敗しました" @@ -1958,10 +1959,10 @@ msgstr "水平方向に反転" msgid "Flip vertically" msgstr "垂直方向に反転" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -1973,7 +1974,7 @@ msgid "Follow" msgstr "フォロー" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "{0}をフォロー" @@ -2016,9 +2017,9 @@ msgstr "があなたをフォローしました" msgid "Followers" msgstr "フォロワー" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2027,7 +2028,7 @@ msgstr "フォロワー" msgid "Following" msgstr "フォロー中" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "{0}をフォローしています" @@ -2059,7 +2060,7 @@ msgstr "食べ物" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "セキュリティ上の理由から、あなたのメールアドレスに確認コードを送信する必要があります。" -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "セキュリティ上の理由から、これを再度表示することはできません。このパスワードを紛失した場合は、新しいパスワードを生成する必要があります。" @@ -2068,11 +2069,11 @@ msgstr "セキュリティ上の理由から、これを再度表示すること msgid "Forgot Password" msgstr "パスワードを忘れた" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "パスワードを忘れた?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "忘れた?" @@ -2084,7 +2085,7 @@ msgstr "望ましくないコンテンツを頻繁に投稿" msgid "From @{sanitizedAuthor}" msgstr "@{sanitizedAuthor}による" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "<0/>から" @@ -2132,7 +2133,7 @@ msgstr "戻る" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2147,7 +2148,7 @@ msgstr "ホームへ" msgid "Go Home" msgstr "ホームへ" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "{0}との会話へ" @@ -2213,13 +2214,13 @@ msgstr "人気のあるフィードを紹介します。好きなだけフォロ msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "{interestsText}への興味に基づいたおすすめです。好きなだけフォローすることができます。" -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "アプリパスワードをお知らせします。" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2241,7 +2242,7 @@ msgid "Hide post" msgstr "投稿を非表示" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "コンテンツを非表示" @@ -2294,7 +2295,7 @@ msgid "Host:" msgstr "ホスト:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2355,7 +2356,7 @@ msgstr "違法かつ緊急" msgid "Image" msgstr "画像" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "画像のALTテキスト" @@ -2375,7 +2376,7 @@ msgstr "パスワードをリセットするためにあなたのメールアド msgid "Input confirmation code for account deletion" msgstr "アカウント削除のために確認コードを入力" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "アプリパスワードの名前を入力" @@ -2387,19 +2388,19 @@ msgstr "新しいパスワードを入力" msgid "Input password for account deletion" msgstr "アカウント削除のためにパスワードを入力" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "メールで送られたコードを入力" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "{identifier}に紐づくパスワードを入力" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "サインアップ時に使用したユーザー名またはメールアドレスを入力" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "あなたのパスワードを入力" @@ -2415,16 +2416,16 @@ msgstr "あなたのユーザーハンドルを入力" msgid "Introducing Direct Messages" msgstr "ダイレクトメッセージの紹介" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "無効な2要素認証の確認コードです。" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "無効またはサポートされていない投稿のレコード" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "無効なユーザー名またはパスワード" @@ -2476,11 +2477,11 @@ msgstr "ラベル" msgid "Labels are annotations on users and content. They can be used to hide, warn, and categorize the network." msgstr "ラベルは、ユーザーやコンテンツに対する注釈です。ラベルはネットワークを隠したり、警告したり、分類したりするのに使われます。" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "あなたのアカウントのラベル" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "あなたのコンテンツのラベル" @@ -2515,7 +2516,7 @@ msgstr "詳細" msgid "Learn more about the moderation applied to this content." msgstr "このコンテンツに適用されるモデレーションはこちらを参照してください。" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "この警告の詳細" @@ -2603,7 +2604,7 @@ msgstr "があなたの投稿をいいねしました" msgid "Likes" msgstr "いいね" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "この投稿をいいねする" @@ -2661,7 +2662,7 @@ msgid "Load new notifications" msgstr "最新の通知を読み込む" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2714,7 +2715,7 @@ msgstr "Followingフィードを消したようです。<0>ここをクリック msgid "Make sure this is where you intend to go!" msgstr "意図した場所であることを確認してください!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "ミュートしたワードとタグの管理" @@ -2746,6 +2747,7 @@ msgid "Message {0}" msgstr "{0}へメッセージを送る" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "メッセージは削除されました" @@ -2758,18 +2760,18 @@ msgid "Message input field" msgstr "メッセージを入力するフィールド" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "メッセージが長すぎます" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "メッセージの設定" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "メッセージ" @@ -2878,11 +2880,11 @@ msgstr "{displayTag}のすべての投稿をミュート" msgid "Mute conversation" msgstr "会話をミュート" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "タグのみをミュート" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "テキストとタグをミュート" @@ -2894,11 +2896,11 @@ msgstr "リストをミュート" msgid "Mute these accounts?" msgstr "これらのアカウントをミュートしますか?" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "投稿のテキストやタグでこのワードをミュート" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "タグのみでこのワードをミュート" @@ -2962,7 +2964,7 @@ msgstr "保存されたフィード" msgid "My Saved Feeds" msgstr "保存されたフィード" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "名前" @@ -2982,7 +2984,7 @@ msgid "Nature" msgstr "自然" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "次の画面に移動します" @@ -3013,8 +3015,8 @@ msgid "New" msgstr "新規" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "新しいチャット" @@ -3034,7 +3036,7 @@ msgstr "新しいパスワード" msgid "New Password" msgstr "新しいパスワード" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "新しい投稿" @@ -3068,8 +3070,8 @@ msgstr "ニュース" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3108,7 +3110,7 @@ msgstr "DNSパネルがない場合" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "おすすめのGIFが見つかりません。Tenorに問題があるかもしれません。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "{0}のフォローを解除しました" @@ -3120,7 +3122,7 @@ msgstr "253文字まで" msgid "No messages yet" msgstr "メッセージはありません" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "これ以上表示できる会話はありません" @@ -3130,8 +3132,8 @@ msgstr "お知らせはありません!" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "誰からも受け取らない" @@ -3140,7 +3142,7 @@ msgstr "誰からも受け取らない" msgid "No result" msgstr "結果はありません" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "結果はありません" @@ -3204,15 +3206,15 @@ msgstr "共有についての注意事項" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "注記:Blueskyはオープンでパブリックなネットワークです。この設定はBlueskyのアプリおよびウェブサイト上のみでのあなたのコンテンツの可視性を制限するものであり、他のアプリではこの設定を尊重しない場合があります。他のアプリやウェブサイトでは、ログアウトしたユーザーにあなたのコンテンツが表示される場合があります。" -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "何もありません" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "通知音" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "通知音" @@ -3289,7 +3291,7 @@ msgid "Oops, something went wrong!" msgstr "おっと、なにかが間違っているようです!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "おっと!" @@ -3302,8 +3304,8 @@ msgstr "開かれています" msgid "Open avatar creator" msgstr "アバター・クリエイターを開く" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "会話のオプションを開く" @@ -3316,7 +3318,7 @@ msgstr "絵文字を入力" msgid "Open feed options menu" msgstr "フィードの設定メニューを開く" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "アプリ内ブラウザーでリンクを開く" @@ -3336,12 +3338,12 @@ msgstr "ナビゲーションを開く" msgid "Open post options menu" msgstr "投稿のオプションを開く" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "絵本のページを開く" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "システムのログを開く" @@ -3381,7 +3383,7 @@ msgstr "構成可能な言語設定を開く" msgid "Opens device photo gallery" msgstr "デバイスのフォトギャラリーを開く" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "外部コンテンツの埋め込みの設定を開く" @@ -3403,23 +3405,23 @@ msgstr "GIFの選択のダイアログを開く" msgid "Opens list of invite codes" msgstr "招待コードのリストを開く" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "アカウントの削除確認用の表示を開きます。メールアドレスのコードが必要です" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "Blueskyのパスワードを変更するためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "新しいBlueskyのハンドルを選択するためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Blueskyのアカウントのデータ(リポジトリ)をダウンロードするためのモーダルを開く" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "メールアドレスの認証のためのモーダルを開く" @@ -3431,7 +3433,7 @@ msgstr "カスタムドメインを使用するためのモーダルを開く" msgid "Opens moderation settings" msgstr "モデレーションの設定を開く" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "パスワードリセットのフォームを開く" @@ -3444,7 +3446,7 @@ msgstr "保存されたフィードの編集画面を開く" msgid "Opens screen with all saved feeds" msgstr "保存されたすべてのフィードで画面を開く" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "アプリパスワードの設定を開く" @@ -3456,12 +3458,12 @@ msgstr "Followingフィードの設定を開く" msgid "Opens the linked website" msgstr "リンク先のウェブサイトを開く" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "ストーリーブックのページを開く" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "システムログのページを開く" @@ -3474,7 +3476,7 @@ msgid "Option {0} of {numItems}" msgstr "{numItems}個中{0}目のオプション" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "オプションとして、以下に追加情報をご記入ください:" @@ -3507,7 +3509,7 @@ msgstr "ページが見つかりません" msgid "Page Not Found" msgstr "ページが見つかりません" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3617,15 +3619,15 @@ msgstr "Captcha認証を完了してください。" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "変更する前にメールを確認してください。これは、メールアップデートツールが追加されている間の一時的な要件であり、まもなく削除されます。" -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "アプリパスワードにつける名前を入力してください。すべてスペースとしてはいけません。" -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "このアプリパスワードに固有の名前を入力するか、ランダムに生成された名前を使用してください。" -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "ミュートにする有効な単語、タグ、フレーズを入力してください" @@ -3637,7 +3639,7 @@ msgstr "メールアドレスを入力してください。" msgid "Please enter your password as well:" msgstr "パスワードも入力してください:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "{0}によって適用されたこのラベルが誤りであると思われる理由を説明してください" @@ -3672,12 +3674,12 @@ msgctxt "action" msgid "Post" msgstr "投稿" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "投稿" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "{0}による投稿" @@ -3691,7 +3693,7 @@ msgstr "@{0}による投稿" msgid "Post deleted" msgstr "投稿を削除" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "投稿を非表示" @@ -3713,8 +3715,8 @@ msgstr "投稿の言語" msgid "Post Languages" msgstr "投稿の言語" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "投稿が見つかりません" @@ -3726,7 +3728,7 @@ msgstr "投稿" msgid "Posts" msgstr "投稿" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "投稿はテキスト、タグ、またはその両方に基づいてミュートできます。" @@ -3765,7 +3767,7 @@ msgstr "第一言語" msgid "Prioritize Your Follows" msgstr "あなたのフォローを優先" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "プライバシー" @@ -3773,7 +3775,7 @@ msgstr "プライバシー" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "プライバシーポリシー" @@ -3786,7 +3788,7 @@ msgstr "他のユーザーとプライベートにチャットします。" msgid "Processing..." msgstr "処理中..." -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "プロフィール" @@ -3803,7 +3805,7 @@ msgstr "プロフィール" msgid "Profile updated" msgstr "プロフィールを更新しました" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "メールアドレスを確認してアカウントを保護します。" @@ -3861,11 +3863,11 @@ msgstr "検索履歴" msgid "Reconnect" msgstr "再接続" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "会話を再読み込み" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -3916,7 +3918,7 @@ msgstr "イメージを削除" msgid "Remove image preview" msgstr "イメージプレビューを削除" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "リストからミュートワードを削除" @@ -3978,7 +3980,7 @@ msgid "Reply Filters" msgstr "返信のフィルター" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "<0><1/>に返信" @@ -4074,11 +4076,11 @@ msgstr "リポストまたは引用" msgid "Reposted By" msgstr "リポストしたユーザー" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "{0}にリポストされた" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "<0><1/>がリポスト" @@ -4086,7 +4088,7 @@ msgstr "<0><1/>がリポスト" msgid "reposted your post" msgstr "があなたの投稿をリポストしました" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "この投稿をリポスト" @@ -4125,8 +4127,8 @@ msgstr "リセットコード" msgid "Reset Code" msgstr "リセットコード" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "オンボーディングの状態をリセット" @@ -4134,20 +4136,20 @@ msgstr "オンボーディングの状態をリセット" msgid "Reset password" msgstr "パスワードをリセット" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "設定をリセット" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "オンボーディングの状態をリセットします" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "設定の状態をリセットします" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "ログインをやり直す" @@ -4159,8 +4161,8 @@ msgstr "エラーになった最後のアクションをやり直す" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4185,8 +4187,8 @@ msgid "Returns to previous page" msgstr "前のページに戻る" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4199,7 +4201,7 @@ msgctxt "action" msgid "Save" msgstr "保存" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "ALTテキストを保存" @@ -4395,7 +4397,7 @@ msgstr "次のアカウントを選択してフォローしてください" msgid "Select the {emojiName} emoji as your avatar" msgstr "絵文字{emojiName}をアバターとして選択" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "報告先のモデレーションサービスを選んでください" @@ -4463,14 +4465,14 @@ msgid "Send feedback" msgstr "フィードバックを送信" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "メッセージを送信" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "報告を送信" @@ -4564,7 +4566,6 @@ msgid "Sets image aspect ratio to wide" msgstr "画像のアスペクト比をワイドに設定" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4628,7 +4629,7 @@ msgstr "リンクしたウェブサイトを共有" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4652,7 +4653,7 @@ msgstr "バッジを表示" msgid "Show badge and filter from feeds" msgstr "バッジの表示とフィードからのフィルタリング" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "{0}に似たおすすめのフォロー候補を表示" @@ -4667,7 +4668,7 @@ msgstr "このような投稿の表示を減らす" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "さらに表示" @@ -4725,7 +4726,7 @@ msgid "Show reposts in Following" msgstr "Followingフィードでリポストを表示" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "コンテンツを表示" @@ -4749,7 +4750,7 @@ msgstr "マイフィード内の{0}からの投稿を表示します" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -4845,7 +4846,7 @@ msgid "Something went wrong, please try again." msgstr "なにか間違っているようなので、もう一度お試しください。" #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "大変申し訳ありません!セッションの有効期限が切れました。もう一度ログインしてください。" @@ -4857,7 +4858,7 @@ msgstr "返信を並び替える" msgid "Sort replies to the same post by:" msgstr "次の方法で同じ投稿への返信を並び替えます。" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "ソース:<0>{0}" @@ -4878,7 +4879,7 @@ msgstr "スポーツ" msgid "Square" msgstr "正方形" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "新しいチャットを開始" @@ -4890,7 +4891,7 @@ msgstr "{displayName}とのチャットを開始" msgid "Start chatting" msgstr "チャットを開始" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "ステータスページ" @@ -4903,12 +4904,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "ストレージがクリアされたため、今すぐアプリを再起動する必要があります。" #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "ストーリーブック" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -4974,11 +4975,11 @@ msgstr "ログインしているアカウントを切り替えます" msgid "System" msgstr "システム" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "システムログ" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "タグ" @@ -5008,7 +5009,7 @@ msgstr "条件" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5020,17 +5021,17 @@ msgstr "利用規約" msgid "Terms used violate community standards" msgstr "使用されている用語がコミュニティ基準に違反している" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "テキスト" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "テキストの入力フィールド" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "ありがとうございます。あなたの報告は送信されました。" @@ -5042,7 +5043,7 @@ msgstr "その内容は以下の通りです:" msgid "That handle is already taken." msgstr "そのハンドルはすでに使用されています。" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "このアカウントは、ブロック解除後にあなたとやり取りすることができます。" @@ -5059,11 +5060,11 @@ msgstr "著作権ポリシーは<0/>に移動しました" msgid "The feed has been replaced with Discover." msgstr "フィードはDiscoverと置き換えられました。" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "以下のラベルがあなたのアカウントに適用されました。" -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "以下のラベルがあなたのコンテンツに適用されました。" @@ -5071,8 +5072,8 @@ msgstr "以下のラベルがあなたのコンテンツに適用されました msgid "The following steps will help customize your Bluesky experience." msgstr "次の手順であなたのBlueskyでの体験をカスタマイズできます。" -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "投稿が削除された可能性があります。" @@ -5143,7 +5144,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "リストの取得中に問題が発生しました。もう一度試すにはこちらをタップしてください。" #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "報告の送信に問題が発生しました。インターネットの接続を確認してください。" @@ -5151,13 +5152,13 @@ msgstr "報告の送信に問題が発生しました。インターネットの msgid "There was an issue syncing your preferences with the server" msgstr "設定をサーバーと同期中に問題が発生しました" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "アプリパスワードの取得中に問題が発生しました" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5201,7 +5202,7 @@ msgstr "このアカウントを閲覧するためにはサインインが必要 msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "このアカウントは1つ、あるいは複数のモデレーションリストでブロックされています。ブロックを解除するにはリストの画面に移動してこのユーザーをリストから外してください。" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "この申し立ては<0>{0}に送られます。" @@ -5272,7 +5273,7 @@ msgstr "<0>{0}によって適用されたラベルです。" msgid "This label was applied by the author." msgstr "投稿者によって適用されたラベルです。" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "あなたによって適用されたラベルです。" @@ -5292,11 +5293,11 @@ msgstr "このリストは空です!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "このモデレーションのサービスはご利用できません。詳細は以下をご覧ください。この問題が解決しない場合は、サポートへお問い合わせください。" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "この名前はすでに使用中です" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "この投稿は削除されました。" @@ -5350,7 +5351,7 @@ msgstr "このユーザーはミュートした<0>{0}リストに含まれ msgid "This user isn't following anyone." msgstr "このユーザーは誰もフォローしていません。" -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "ミュートしたワードから{0}が削除されます。あとでいつでも戻すことができます。" @@ -5383,7 +5384,7 @@ msgstr "会話を報告するには、会話の画面からメッセージのう msgid "To whom would you like to send this report?" msgstr "この報告を誰に送りたいですか?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "ミュートしたワードのオプションを切り替えます。" @@ -5416,7 +5417,7 @@ msgctxt "action" msgid "Try again" msgstr "再試行" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "2要素認証" @@ -5438,7 +5439,7 @@ msgstr "リストでのミュートを解除" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5449,14 +5450,14 @@ msgstr "あなたのサービスに接続できません。インターネット #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "ブロックを解除" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "ブロックを解除" @@ -5471,7 +5472,7 @@ msgstr "アカウントのブロックを解除" msgid "Unblock Account" msgstr "アカウントのブロックを解除" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "アカウントのブロックを解除しますか?" @@ -5492,7 +5493,7 @@ msgstr "フォローを解除" msgid "Unfollow" msgstr "フォローを解除" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "{0}のフォローを解除" @@ -5605,7 +5606,7 @@ msgstr "ライブラリーからアップロード" msgid "Use a file on your server" msgstr "あなたのサーバーのファイルを使用" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "他のBlueskyクライアントにアカウントやパスワードに完全にアクセスする権限を与えずに、アプリパスワードを使ってログインします。" @@ -5635,7 +5636,7 @@ msgstr "おすすめを使う" msgid "Use the DNS panel" msgstr "DNSパネルを使用" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "このアプリパスワードとハンドルを使って他のアプリにサインインします。" @@ -5695,7 +5696,7 @@ msgstr "ユーザーリストを更新しました" msgid "User Lists" msgstr "ユーザーリスト" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "ユーザー名またはメールアドレス" @@ -5709,8 +5710,8 @@ msgstr "<0/>にフォローされているユーザー" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "フォローしているユーザー" @@ -5730,15 +5731,15 @@ msgstr "値:" msgid "Verify DNS Record" msgstr "DNSレコードを確認" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "メールアドレスを確認" @@ -5755,7 +5756,7 @@ msgstr "テキストファイルを確認" msgid "Verify Your Email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "バージョン {appVersion} {bundleInfo}" @@ -5779,7 +5780,7 @@ msgstr "詳細を表示" msgid "View details for reporting a copyright violation" msgstr "著作権侵害の報告の詳細を見る" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "スレッドをすべて表示" @@ -5787,8 +5788,8 @@ msgstr "スレッドをすべて表示" msgid "View information about these labels" msgstr "これらのラベルに関する情報を見る" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "プロフィールを表示" @@ -5845,7 +5846,7 @@ msgstr "素敵なひとときをお過ごしください。覚えておいてく msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "あなたのフォロー中のユーザーの投稿を読み終わりました。フィード<0/>内の最新の投稿を表示します。" -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "投稿が表示されなくなる可能性があるため、多くの投稿に使われる一般的なワードは避けることをおすすめします。" @@ -5873,7 +5874,7 @@ msgstr "アカウントの準備ができたらお知らせします。" msgid "We'll use this to help customize your experience." msgstr "これはあなたの体験をカスタマイズするために使用されます。" -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "ネットワークで問題が発生しています。再度試してください" @@ -5885,7 +5886,7 @@ msgstr "私たちはあなたが参加してくれることをとても楽しみ msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "大変申し訳ありませんが、このリストを解決できませんでした。それでもこの問題が解決しない場合は、作成者の@{handleOrDid}までお問い合わせください。" -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "大変申し訳ありませんが、現在ミュートされたワードを読み込むことができませんでした。もう一度お試しください。" @@ -5930,7 +5931,7 @@ msgid "Who can reply" msgstr "返信できるユーザー" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "おっと!" @@ -5967,7 +5968,7 @@ msgid "Wide" msgstr "ワイド" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "メッセージを書く" @@ -6044,7 +6045,7 @@ msgstr "ピン留めされたフィードがありません。" msgid "You don't have any saved feeds." msgstr "保存されたフィードがありません。" -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "あなたが投稿者をブロックしているか、または投稿者によってあなたはブロックされています。" @@ -6082,7 +6083,7 @@ msgstr "このアカウントをミュートしました。" msgid "You have muted this user" msgstr "このユーザーをミュートしました" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "まだ会話していません。始めましょう!" @@ -6099,7 +6100,7 @@ msgstr "リストがありません。" msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "ブロック中のアカウントはまだありません。アカウントをブロックするには、ユーザーのプロフィールに移動し、アカウントメニューから「アカウントをブロック」を選択します。" -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "アプリパスワードはまだ作成されていません。下のボタンを押すと作成できます。" @@ -6111,15 +6112,15 @@ msgstr "ミュートしているアカウントはまだありません。アカ msgid "You have reached the end" msgstr "最後まで到達しました" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "まだワードやタグをミュートしていません" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "間違って適用されたと思うのであれば、自己申告ではないラベルならば異議申し立てができます。" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "これらのラベルが誤って適用されたと思った場合は、異議申し立てを行うことができます。" @@ -6131,7 +6132,7 @@ msgstr "サインアップするには、13歳以上である必要がありま msgid "You must be 18 years or older to enable adult content" msgstr "成人向けコンテンツを有効にするには、18歳以上である必要があります。" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "報告をするには少なくとも1つのラベラーを選択する必要があります" @@ -6228,7 +6229,7 @@ msgstr "フルハンドルは" msgid "Your full handle will be <0>@{0}" msgstr "フルハンドルは<0>@{0}になります" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "ミュートしたワード" diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index 0f4e451bf0..5387cab6c2 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -770,7 +770,7 @@ msgstr "대화 뮤트됨" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 #: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "대화 설정" @@ -1095,7 +1095,7 @@ msgstr "다음 단계로 계속하기" msgid "Continue to the next step without following any accounts" msgstr "계정을 팔로우하지 않고 다음 단계로 계속하기" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "대화 삭제됨" @@ -2148,7 +2148,7 @@ msgstr "홈으로 이동" msgid "Go Home" msgstr "홈으로 이동" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "{0} 님과의 대화로 이동합니다" @@ -2747,6 +2747,7 @@ msgid "Message {0}" msgstr "{0} 님에게 메시지 보내기" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "메시지 삭제됨" @@ -2763,14 +2764,14 @@ msgstr "메시지 입력 필드" msgid "Message is too long" msgstr "메시지가 너무 깁니다" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "메시지 설정" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "메시지" @@ -3014,8 +3015,8 @@ msgid "New" msgstr "새로 만들기" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "새 대화" @@ -3117,7 +3118,7 @@ msgstr "253자를 초과하지 않음" msgid "No messages yet" msgstr "아직 메시지가 없습니다" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "더 이상 표시할 대화가 없습니다" @@ -3201,7 +3202,7 @@ msgstr "공유 관련 참고 사항" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "참고: Bluesky는 개방형 공개 네트워크입니다. 이 설정은 Bluesky 앱과 웹사이트에서만 내 콘텐츠가 표시되는 것을 제한하며, 다른 앱에서는 이 설정을 준수하지 않을 수 있습니다. 다른 앱과 웹사이트에서는 로그아웃한 사용자에게 내 콘텐츠가 계속 표시될 수 있습니다." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "빈 페이지" @@ -3299,8 +3300,8 @@ msgstr "공개성" msgid "Open avatar creator" msgstr "아바타 생성기 열기" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "대화 옵션 열기" @@ -3853,7 +3854,7 @@ msgstr "최근 검색" msgid "Reconnect" msgstr "다시 연결" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "대화 다시 불러오기" @@ -5916,7 +5917,7 @@ msgid "Who can reply" msgstr "답글을 달 수 있는 사람" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "이런!" @@ -6064,7 +6065,7 @@ msgstr "내가 이 계정을 뮤트했습니다." msgid "You have muted this user" msgstr "내가 이 사용자를 뮤트했습니다" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "아직 대화가 없습니다. 시작해 보세요!" diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po index c064666319..b485c0e77d 100644 --- a/src/locale/locales/pt-BR/messages.po +++ b/src/locale/locales/pt-BR/messages.po @@ -41,12 +41,12 @@ msgstr "" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "{0, plural, one {# repost} other {# reposts}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "{0, plural, one {seguidor} other {seguidores}}" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "{0, plural, one {seguindo} other {seguindo}}" @@ -55,7 +55,7 @@ msgstr "{0, plural, one {seguindo} other {seguindo}}" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "{0, plural, one {Curtir (# curtida)} other {Curtir (# curtidas)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "{0, plural, one {curtida} other {curtidas}}" @@ -71,7 +71,7 @@ msgstr "{0, plural, one {post} other {posts}}" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "{0, plural, one {Responder (# resposta)} other {Responder (# respostas)}}" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "{0, plural, one {repost} other {reposts}}" @@ -95,7 +95,7 @@ msgstr "{estimatedTimeHrs, plural, one {hora} other {horas}}" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "{estimatedTimeMins, plural, one {minuto} other {minutos}}" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} seguindo" @@ -163,7 +163,7 @@ msgstr "<0>Não se aplica. Este aviso só funciona para posts com mídia." msgid "⚠Invalid Handle" msgstr "⚠Usuário Inválido" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "Confirmação do 2FA" @@ -194,9 +194,9 @@ msgstr "Configurações de acessibilidade" #~ msgid "account" #~ msgstr "conta" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "Conta" @@ -229,7 +229,7 @@ msgstr "Configurações da conta" msgid "Account removed from quick access" msgstr "Conta removida do acesso rápido" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "Conta desbloqueada" @@ -242,7 +242,7 @@ msgstr "Você não segue mais esta conta" msgid "Account unmuted" msgstr "Conta dessilenciada" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -263,12 +263,12 @@ msgstr "Adicionar um usuário a esta lista" msgid "Add account" msgstr "Adicionar conta" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Adicionar texto alternativo" @@ -276,9 +276,9 @@ msgstr "Adicionar texto alternativo" #~ msgid "Add ALT text" #~ msgstr "Adicionar texto alternativo" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Adicionar Senha de Aplicativo" @@ -290,11 +290,11 @@ msgstr "Adicionar Senha de Aplicativo" #~ msgid "Add link card:" #~ msgstr "Adicionar prévia de link:" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "Adicionar palavra silenciada para as configurações selecionadas" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "Adicionar palavras/tags silenciadas" @@ -347,7 +347,7 @@ msgid "Adult content is disabled." msgstr "O conteúdo adulto está desabilitado." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "Avançado" @@ -355,9 +355,19 @@ msgstr "Avançado" msgid "All the feeds you've saved, right in one place." msgstr "Todos os feeds que você salvou, em um único lugar." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 @@ -369,13 +379,13 @@ msgstr "Já tem um código?" msgid "Already signed in as @{0}" msgstr "Já autenticado como @{0}" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -444,38 +454,38 @@ msgstr "Comportamento anti-social" msgid "App Language" msgstr "Idioma do aplicativo" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Senha de Aplicativo excluída" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "O nome da Senha de Aplicativo só pode conter letras, números, traços e sublinhados." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "O nome da Senha de Aplicativo precisa ter no mínimo 4 caracteres." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "Configurações de Senha de Aplicativo" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "Senhas de Aplicativos" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "Contestar" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "Contestar rótulo \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "Contestação enviada." @@ -500,7 +510,7 @@ msgstr "Aparência" msgid "Apply default recommended feeds" msgstr "Utilizar feeds recomendados" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Tem certeza de que deseja excluir a senha do aplicativo \"{name}\"?" @@ -528,7 +538,7 @@ msgstr "Tem certeza que deseja remover {0} dos seus feeds?" msgid "Are you sure you'd like to discard this draft?" msgstr "Tem certeza que deseja descartar este rascunho?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "Tem certeza?" @@ -549,14 +559,14 @@ msgid "At least 3 characters" msgstr "No mínimo 3 caracteres" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -583,7 +593,7 @@ msgstr "Aniversário" msgid "Birthday:" msgstr "Aniversário:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "Bloquear" @@ -636,7 +646,7 @@ msgstr "Contas bloqueadas não podem te responder, mencionar ou interagir com vo msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Contas bloqueadas não podem te responder, mencionar ou interagir com você. Você não verá o conteúdo deles e eles serão impedidos de ver o seu." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "Post bloqueado." @@ -737,7 +747,7 @@ msgstr "por você" msgid "Camera" msgstr "Câmera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Só pode conter letras, números, espaços, traços e sublinhados. Deve ter pelo menos 4 caracteres, mas não mais de 32 caracteres." @@ -814,12 +824,12 @@ msgctxt "action" msgid "Change" msgstr "Alterar" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "Alterar usuário" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "Alterar Usuário" @@ -827,12 +837,12 @@ msgstr "Alterar Usuário" msgid "Change my email" msgstr "Alterar meu email" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "Alterar senha" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "Alterar Senha" @@ -857,10 +867,16 @@ msgstr "Chat silenciado" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "Configurações do Chat" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "Chat dessilenciado" @@ -882,7 +898,7 @@ msgstr "Verificar minha situação" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Confira alguns usuários recomendados. Siga-os para ver usuários semelhantes." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "Um código de login foi enviado para o seu e-mail. Insira-o aqui." @@ -919,19 +935,19 @@ msgstr "Escolha seus feeds principais" msgid "Choose your password" msgstr "Escolha sua senha" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "Limpar todos os dados de armazenamento legados" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento legados (reinicie em seguida)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "Limpar todos os dados de armazenamento" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento (reinicie em seguida)" @@ -940,11 +956,11 @@ msgstr "Limpar todos os dados de armazenamento (reinicie em seguida)" msgid "Clear search query" msgstr "Limpar busca" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "Limpa todos os dados antigos" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "Limpa todos os dados antigos" @@ -977,7 +993,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1120,7 +1136,7 @@ msgstr "Confirme sua idade:" msgid "Confirm your birthdate" msgstr "Confirme sua data de nascimento" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1130,7 +1146,7 @@ msgstr "Confirme sua data de nascimento" msgid "Confirmation code" msgstr "Código de confirmação" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "Conectando..." @@ -1205,7 +1221,7 @@ msgstr "Continuar para o próximo passo" msgid "Continue to the next step without following any accounts" msgstr "Continuar para o próximo passo sem seguir contas" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "" @@ -1213,7 +1229,7 @@ msgstr "" msgid "Cooking" msgstr "Culinária" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Copiado" @@ -1223,7 +1239,7 @@ msgid "Copied build version to clipboard" msgstr "Versão do aplicativo copiada" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1234,11 +1250,11 @@ msgstr "Copiado" msgid "Copied!" msgstr "Copiado!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Copia senha de aplicativo" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Copiar" @@ -1321,7 +1337,7 @@ msgstr "Criar conta" msgid "Create an avatar instead" msgstr "Criar um avatar" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Criar Senha de Aplicativo" @@ -1334,7 +1350,7 @@ msgstr "Criar uma nova conta" msgid "Create report for {0}" msgstr "Criar denúncia para {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} criada" @@ -1381,7 +1397,7 @@ msgstr "Modo Escuro" msgid "Date of birth" msgstr "Data de nascimento" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "Testar Moderação" @@ -1391,12 +1407,12 @@ msgstr "Painel de depuração" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "Excluir" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "Excluir a conta" @@ -1408,16 +1424,16 @@ msgstr "Excluir a conta" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "Excluir Conta <0>\"<1>{0}<2>\"" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Excluir senha de aplicativo" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Excluir senha de aplicativo?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "" @@ -1441,7 +1457,7 @@ msgstr "Excluir mensagem para mim" msgid "Delete my account" msgstr "Excluir minha conta" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "Excluir minha conta…" @@ -1462,11 +1478,11 @@ msgstr "Excluir este post?" msgid "Deleted" msgstr "Excluído" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "Post excluído." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "" @@ -1477,7 +1493,7 @@ msgstr "" msgid "Description" msgstr "Descrição" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "Texto alternativo" @@ -1516,8 +1532,8 @@ msgstr "Desabilitar feedback tátil" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Desabilitado" @@ -1580,8 +1596,8 @@ msgstr "Domínio verificado!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1693,12 +1709,12 @@ msgid "Edit my profile" msgstr "Editar meu perfil" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "Editar perfil" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "Editar Perfil" @@ -1801,8 +1817,8 @@ msgstr "Ative esta configuração para ver respostas apenas entre as pessoas que msgid "Enable this source only" msgstr "Habilitar mídia somente para este site" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Habilitado" @@ -1815,7 +1831,7 @@ msgstr "Fim do feed" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Insira um nome para esta Senha de Aplicativo" @@ -1823,8 +1839,8 @@ msgstr "Insira um nome para esta Senha de Aplicativo" msgid "Enter a password" msgstr "Insira uma senha" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "Digite uma palavra ou tag" @@ -1888,8 +1904,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "" @@ -1939,12 +1955,12 @@ msgstr "Imagens explícitas ou potencialmente perturbadoras." msgid "Explicit sexual images." msgstr "Imagens sexualmente explícitas." -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "Exportar meus dados" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "Exportar Meus Dados" @@ -1960,16 +1976,16 @@ msgstr "Mídias externas podem permitir que sites coletem informações sobre vo #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "Preferências de Mídia Externa" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "Preferências de mídia externa" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "Não foi possível criar senha de aplicativo." @@ -2014,13 +2030,13 @@ msgstr "" #~ msgid "Failed to send message(s)." #~ msgstr "Não foi possível enviar sua mensagem." -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "" @@ -2126,10 +2142,10 @@ msgstr "Virar horizontalmente" msgid "Flip vertically" msgstr "Virar verticalmente" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2141,7 +2157,7 @@ msgid "Follow" msgstr "Seguir" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Seguir {0}" @@ -2188,9 +2204,9 @@ msgstr "seguiu você" msgid "Followers" msgstr "Seguidores" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2199,7 +2215,7 @@ msgstr "Seguidores" msgid "Following" msgstr "Seguindo" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "Seguindo {0}" @@ -2231,7 +2247,7 @@ msgstr "Comida" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Por motivos de segurança, precisamos enviar um código de confirmação para seu endereço de e-mail." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Por motivos de segurança, você não poderá ver esta senha novamente. Se você perder esta senha, terá que gerar uma nova." @@ -2240,11 +2256,11 @@ msgstr "Por motivos de segurança, você não poderá ver esta senha novamente. msgid "Forgot Password" msgstr "Esqueci a Senha" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "Esqueceu a senha?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "Esqueceu?" @@ -2256,7 +2272,7 @@ msgstr "Frequentemente Posta Conteúdo Indesejado" msgid "From @{sanitizedAuthor}" msgstr "De @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "Por <0/>" @@ -2304,7 +2320,7 @@ msgstr "Voltar" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2324,7 +2340,7 @@ msgstr "Voltar para a tela inicial" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Ir para @{queryMaybleHandle}" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "" @@ -2390,13 +2406,13 @@ msgstr "Aqui estão alguns feeds de assuntos. Você pode seguir quantos quiser." msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "Aqui estão alguns feeds de assuntos baseados nos seus interesses: {interestsText}. Você pode seguir quantos quiser." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Aqui está a sua senha de aplicativo." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2418,7 +2434,7 @@ msgid "Hide post" msgstr "Ocultar post" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "Esconder o conteúdo" @@ -2471,7 +2487,7 @@ msgid "Host:" msgstr "Host:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2532,7 +2548,7 @@ msgstr "Ilegal e Urgente" msgid "Image" msgstr "Imagem" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Texto alternativo da imagem" @@ -2552,7 +2568,7 @@ msgstr "Insira o código enviado para o seu e-mail para redefinir sua senha" msgid "Input confirmation code for account deletion" msgstr "Insira o código de confirmação para excluir sua conta" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Insira um nome para a senha de aplicativo" @@ -2564,19 +2580,19 @@ msgstr "Insira a nova senha" msgid "Input password for account deletion" msgstr "Insira a senha para excluir a conta" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "Insira o código que você recebeu por e-mail" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "Insira a senha da conta {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "Insira o usuário ou e-mail que você cadastrou" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "Insira sua senha" @@ -2592,16 +2608,16 @@ msgstr "Insira o usuário" msgid "Introducing Direct Messages" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "Código de confirmação inválido." -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Post inválido" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "Credenciais inválidas" @@ -2661,11 +2677,11 @@ msgstr "Rótulos são identificações aplicadas sobre perfis e conteúdos. Eles #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "rótulos foram aplicados neste {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Rótulos sobre sua conta" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Rótulos sobre seu conteúdo" @@ -2700,7 +2716,7 @@ msgstr "Saiba Mais" msgid "Learn more about the moderation applied to this content." msgstr "Saiba mais sobre a decisão de moderação aplicada neste conteúdo." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Saiba mais sobre este aviso" @@ -2806,7 +2822,7 @@ msgstr "curtiu seu post" msgid "Likes" msgstr "Curtidas" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Curtidas neste post" @@ -2864,7 +2880,7 @@ msgid "Load new notifications" msgstr "Carregar novas notificações" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2921,7 +2937,7 @@ msgstr "" msgid "Make sure this is where you intend to go!" msgstr "Certifique-se de onde está indo!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "Gerencie suas palavras/tags silenciadas" @@ -2953,6 +2969,7 @@ msgid "Message {0}" msgstr "" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "Mensagem excluída" @@ -2965,18 +2982,18 @@ msgid "Message input field" msgstr "Caixa de texto da mensagem" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "Mensagem longa demais" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "Configurações das mensagens" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "Mensagens" @@ -3089,11 +3106,11 @@ msgstr "Silenciar posts com {displayTag}" msgid "Mute conversation" msgstr "" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "Silenciar apenas tags" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "Silenciar texto e tags" @@ -3110,11 +3127,11 @@ msgstr "Silenciar lista" msgid "Mute these accounts?" msgstr "Silenciar estas contas?" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "Silenciar esta palavra no conteúdo de um post e tags" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "Silenciar esta palavra apenas nas tags de um post" @@ -3178,7 +3195,7 @@ msgstr "Meus feeds salvos" msgid "My Saved Feeds" msgstr "Meus Feeds Salvos" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "Nome" @@ -3198,7 +3215,7 @@ msgid "Nature" msgstr "Natureza" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Navega para próxima tela" @@ -3234,8 +3251,8 @@ msgid "New" msgstr "Novo" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "Novo chat" @@ -3255,7 +3272,7 @@ msgstr "Nova senha" msgid "New Password" msgstr "Nova Senha" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "Novo post" @@ -3289,8 +3306,8 @@ msgstr "Notícias" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3330,7 +3347,7 @@ msgstr "Não tenho painel de DNS" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "Nenhum GIF em destaque encontrado." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "Você não está mais seguindo {0}" @@ -3342,7 +3359,7 @@ msgstr "No máximo 253 caracteres" msgid "No messages yet" msgstr "Nenhuma mensagem ainda" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "" @@ -3352,8 +3369,8 @@ msgstr "Nenhuma notificação!" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "" @@ -3362,7 +3379,7 @@ msgstr "" msgid "No result" msgstr "Nenhum resultado" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "" @@ -3434,15 +3451,15 @@ msgstr "Nota sobre compartilhamento" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Nota: o Bluesky é uma rede aberta e pública. Esta configuração limita somente a visibilidade do seu conteúdo no site e aplicativo do Bluesky, e outros aplicativos podem não respeitar esta configuração. Seu conteúdo ainda poderá ser exibido para usuários não autenticados por outros aplicativos e sites." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "" @@ -3523,7 +3540,7 @@ msgid "Oops, something went wrong!" msgstr "Opa, algo deu errado!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "Opa!" @@ -3536,8 +3553,8 @@ msgstr "Abrir" msgid "Open avatar creator" msgstr "Abrir criador de avatar" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "" @@ -3550,7 +3567,7 @@ msgstr "Abrir seletor de emojis" msgid "Open feed options menu" msgstr "Abrir opções do feed" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "Abrir links no navegador interno" @@ -3570,12 +3587,12 @@ msgstr "Abrir navegação" msgid "Open post options menu" msgstr "Abrir opções do post" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "Abre o storybook" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "Abrir registros do sistema" @@ -3599,6 +3616,10 @@ msgstr "Abre a lista de usuários nesta notificação" msgid "Opens camera on device" msgstr "Abre a câmera do dispositivo" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "Abre o editor de post" @@ -3611,7 +3632,7 @@ msgstr "Abre definições de idioma configuráveis" msgid "Opens device photo gallery" msgstr "Abre a galeria de fotos do dispositivo" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "Abre as configurações de anexos externos" @@ -3633,23 +3654,23 @@ msgstr "Abre a janela de seleção de GIFs" msgid "Opens list of invite codes" msgstr "Abre a lista de códigos de convite" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Abre modal de confirmar a exclusão da conta. Requer código enviado por email" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "Abre modal para troca da sua senha do Bluesky" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Abre modal para troca do seu usuário do Bluesky" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Abre modal para baixar os dados da sua conta do Bluesky" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "Abre modal para verificação de email" @@ -3661,7 +3682,7 @@ msgstr "Abre modal para usar o domínio personalizado" msgid "Opens moderation settings" msgstr "Abre configurações de moderação" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "Abre o formulário de redefinição de senha" @@ -3674,7 +3695,7 @@ msgstr "Abre a tela para editar feeds salvos" msgid "Opens screen with all saved feeds" msgstr "Abre a tela com todos os feeds salvos" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "Abre as configurações de senha do aplicativo" @@ -3690,12 +3711,12 @@ msgstr "Abre o link" #~ msgid "Opens the message settings page" #~ msgstr "Abre a tela de configurações do chat" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "Abre a página do storybook" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "Abre a página de log do sistema" @@ -3708,7 +3729,7 @@ msgid "Option {0} of {numItems}" msgstr "Opção {0} de {numItems}" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "Se quiser adicionar mais informações, digite abaixo:" @@ -3741,7 +3762,7 @@ msgstr "Página não encontrada" msgid "Page Not Found" msgstr "Página Não Encontrada" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3851,15 +3872,15 @@ msgstr "Por favor, complete o captcha de verificação." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Por favor, confirme seu e-mail antes de alterá-lo. Este é um requisito temporário enquanto ferramentas de atualização de e-mail são adicionadas, e em breve será removido." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Por favor, insira um nome para a sua Senha de Aplicativo." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Por favor, insira um nome único para esta Senha de Aplicativo ou use nosso nome gerado automaticamente." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Por favor, insira uma palavra, tag ou frase para silenciar" @@ -3871,7 +3892,7 @@ msgstr "Por favor, digite o seu e-mail." msgid "Please enter your password as well:" msgstr "Por favor, digite sua senha também:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Por favor, explique por que você acha que este rótulo foi aplicado incorrentamente por {0}" @@ -3906,12 +3927,12 @@ msgctxt "action" msgid "Post" msgstr "Postar" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "Post" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "Post por {0}" @@ -3925,7 +3946,7 @@ msgstr "Post por @{0}" msgid "Post deleted" msgstr "Post excluído" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Post oculto" @@ -3947,8 +3968,8 @@ msgstr "Idioma do post" msgid "Post Languages" msgstr "Idiomas do Post" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Post não encontrado" @@ -3960,7 +3981,7 @@ msgstr "posts" msgid "Posts" msgstr "Posts" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "Posts podem ser silenciados baseados no seu conteúdo, tags ou ambos." @@ -4004,7 +4025,7 @@ msgstr "Idioma Principal" msgid "Prioritize Your Follows" msgstr "Priorizar seus Seguidores" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Privacidade" @@ -4012,7 +4033,7 @@ msgstr "Privacidade" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Política de Privacidade" @@ -4025,7 +4046,7 @@ msgstr "" msgid "Processing..." msgstr "Processando..." -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "perfil" @@ -4042,7 +4063,7 @@ msgstr "Perfil" msgid "Profile updated" msgstr "Perfil atualizado" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "Proteja a sua conta verificando o seu e-mail." @@ -4112,11 +4133,11 @@ msgstr "Buscas Recentes" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4167,7 +4188,7 @@ msgstr "Remover imagem" msgid "Remove image preview" msgstr "Remover visualização da imagem" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "Remover palavra silenciada da lista" @@ -4235,7 +4256,7 @@ msgstr "Filtros de Resposta" #~ msgstr "Responder <0/>" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "Responder <0><1/>" @@ -4331,7 +4352,7 @@ msgstr "Repostar ou citar um post" msgid "Reposted By" msgstr "Repostado Por" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "Repostado por {0}" @@ -4339,7 +4360,7 @@ msgstr "Repostado por {0}" #~ msgid "Reposted by <0/>" #~ msgstr "Repostado por <0/>" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "Repostado por <0><1/>" @@ -4347,7 +4368,7 @@ msgstr "Repostado por <0><1/>" msgid "reposted your post" msgstr "repostou seu post" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Reposts" @@ -4386,8 +4407,8 @@ msgstr "Código de redefinição" msgid "Reset Code" msgstr "Código de Redefinição" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "Redefinir tutoriais" @@ -4395,20 +4416,20 @@ msgstr "Redefinir tutoriais" msgid "Reset password" msgstr "Redefinir senha" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "Redefinir configurações" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "Redefine tutoriais" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "Redefine as configurações" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "Tenta entrar novamente" @@ -4420,8 +4441,8 @@ msgstr "Tenta a última ação, que deu erro" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4450,8 +4471,8 @@ msgid "Returns to previous page" msgstr "Voltar para página anterior" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4464,7 +4485,7 @@ msgctxt "action" msgid "Save" msgstr "Salvar" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Salvar texto alternativo" @@ -4672,7 +4693,7 @@ msgstr "Selecione algumas contas para seguir" msgid "Select the {emojiName} emoji as your avatar" msgstr "Selecione o {emojiName} emoji como avatar" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "Selecione o(s) serviço(s) de moderação para reportar" @@ -4740,14 +4761,14 @@ msgid "Send feedback" msgstr "Enviar comentários" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "Enviar mensagem" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "Denunciar" @@ -4841,7 +4862,6 @@ msgid "Sets image aspect ratio to wide" msgstr "Define a proporção da imagem para comprida" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4905,7 +4925,7 @@ msgstr "Compartilha o link" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4933,10 +4953,14 @@ msgstr "Mostrar rótulo" msgid "Show badge and filter from feeds" msgstr "Mostrar rótulo e filtrar dos feeds" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "Mostrar usuários parecidos com {0}" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4944,7 +4968,7 @@ msgstr "Mostrar menos disso" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "Mostrar Mais" @@ -4953,6 +4977,10 @@ msgstr "Mostrar Mais" msgid "Show more like this" msgstr "Mostrar mais disso" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Mostrar Posts dos Meus Feeds" @@ -5002,7 +5030,7 @@ msgid "Show reposts in Following" msgstr "Mostrar reposts no Seguindo" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "Mostrar conteúdo" @@ -5026,7 +5054,7 @@ msgstr "Mostra posts de {0} no seu feed" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -5122,7 +5150,7 @@ msgid "Something went wrong, please try again." msgstr "Algo deu errado. Por favor, tente novamente." #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "Opa! Sua sessão expirou. Por favor, entre novamente." @@ -5138,7 +5166,7 @@ msgstr "Classificar respostas de um post por:" #~ msgid "Source:" #~ msgstr "Fonte:" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "" @@ -5159,7 +5187,7 @@ msgstr "Esportes" msgid "Square" msgstr "Quadrado" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "Começar um novo chat" @@ -5175,7 +5203,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Página de status" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "Página de status" @@ -5192,12 +5220,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Armazenamento limpo, você precisa reiniciar o app agora." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5263,11 +5291,11 @@ msgstr "Troca a conta que você está autenticado" msgid "System" msgstr "Sistema" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "Log do sistema" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "tag" @@ -5297,7 +5325,7 @@ msgstr "Termos" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5309,17 +5337,17 @@ msgstr "Termos de Serviço" msgid "Terms used violate community standards" msgstr "Termos utilizados violam as diretrizes da comunidade" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "texto" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Campo de entrada de texto" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "Obrigado. Sua denúncia foi enviada." @@ -5331,7 +5359,7 @@ msgstr "Contém o seguinte:" msgid "That handle is already taken." msgstr "Este identificador de usuário já está sendo usado." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "A conta poderá interagir com você após o desbloqueio." @@ -5352,11 +5380,11 @@ msgstr "A Política de Direitos Autorais foi movida para <0/>" msgid "The feed has been replaced with Discover." msgstr "Este feed foi substituído pelo Discover." -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Os seguintes rótulos foram aplicados sobre sua conta." -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Os seguintes rótulos foram aplicados sobre seu conteúdo." @@ -5364,8 +5392,8 @@ msgstr "Os seguintes rótulos foram aplicados sobre seu conteúdo." msgid "The following steps will help customize your Bluesky experience." msgstr "Os seguintes passos vão ajudar a customizar sua experiência no Bluesky." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "O post pode ter sido excluído." @@ -5440,7 +5468,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Tivemos um problema ao carregar suas listas. Toque aqui para tentar de novo." #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Tivemos um problema ao enviar sua denúncia. Por favor, verifique sua conexão com a internet." @@ -5448,13 +5476,13 @@ msgstr "Tivemos um problema ao enviar sua denúncia. Por favor, verifique sua co msgid "There was an issue syncing your preferences with the server" msgstr "Tivemos um problema ao sincronizar suas configurações" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Tivemos um problema ao carregar suas senhas de app." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5498,7 +5526,7 @@ msgstr "Esta conta solicitou que os usuários fizessem login para visualizar seu msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "Esta contestação será enviada para <0>{0}." @@ -5581,7 +5609,7 @@ msgstr "Este rótulo foi aplicado pelo autor." #~ msgid "This label was applied by you" #~ msgstr "Este rótulo foi aplicado por você" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "" @@ -5601,11 +5629,11 @@ msgstr "Esta lista está vazia!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Este serviço de moderação está indisponível. Veja mais detalhes abaixo. Se este problema persistir, entre em contato." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "Você já tem uma senha com esse nome" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "Este post foi excluído." @@ -5663,7 +5691,7 @@ msgstr "Este usuário não segue ninguém ainda." #~ msgid "This warning is only available for posts with media attached." #~ msgstr "Este aviso só está disponível para publicações com mídia anexada." -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Isso removerá {0} das suas palavras silenciadas. Você pode adicioná-la novamente depois." @@ -5696,7 +5724,7 @@ msgstr "Para denunciar uma conversa, por favor, denuncie uma das mensagens indiv msgid "To whom would you like to send this report?" msgstr "Para quem você gostaria de enviar esta denúncia?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Alternar entre opções de uma palavra silenciada" @@ -5729,7 +5757,7 @@ msgctxt "action" msgid "Try again" msgstr "Tentar novamente" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "Autenticação de dois fatores (2FA)" @@ -5751,7 +5779,7 @@ msgstr "Dessilenciar lista" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5762,14 +5790,14 @@ msgstr "Não foi possível entrar em contato com seu serviço. Por favor, verifi #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "Desbloquear" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "Desbloquear" @@ -5784,7 +5812,7 @@ msgstr "" msgid "Unblock Account" msgstr "Desbloquear Conta" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "Desbloquear Conta?" @@ -5805,7 +5833,7 @@ msgstr "Deixar de seguir" msgid "Unfollow" msgstr "Deixar de seguir" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "Deixar de seguir {0}" @@ -5930,7 +5958,7 @@ msgstr "Carregar da galeria" msgid "Use a file on your server" msgstr "Utilize um arquivo no seu servidor" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Use as senhas de aplicativos para fazer login em outros clientes do Bluesky sem dar acesso total à sua conta ou senha." @@ -5960,7 +5988,7 @@ msgstr "Usar recomendados" msgid "Use the DNS panel" msgstr "Usar o painel do meu DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Use esta senha para entrar no outro aplicativo juntamente com seu identificador." @@ -6020,7 +6048,7 @@ msgstr "Lista de usuários atualizada" msgid "User Lists" msgstr "Listas de Usuários" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "Nome de usuário ou endereço de e-mail" @@ -6034,8 +6062,8 @@ msgstr "usuários seguidos por <0/>" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "" @@ -6059,15 +6087,15 @@ msgstr "Conteúdo:" msgid "Verify DNS Record" msgstr "Verificar registro DNS" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "Verificar e-mail" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "Verificar meu e-mail" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "Verificar Meu Email" @@ -6088,7 +6116,7 @@ msgstr "Verificar Seu E-mail" #~ msgid "Version {0}" #~ msgstr "Versão {0}" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "Versão {appVersion} {bundleInfo}" @@ -6112,7 +6140,7 @@ msgstr "Ver detalhes" msgid "View details for reporting a copyright violation" msgstr "Ver detalhes para denunciar uma violação de copyright" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "Ver thread completa" @@ -6120,8 +6148,8 @@ msgstr "Ver thread completa" msgid "View information about these labels" msgstr "Ver informações sobre estes rótulos" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Ver perfil" @@ -6178,7 +6206,7 @@ msgstr "Esperamos que você se divirta. Lembre-se, o Bluesky é:" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "Não temos mais posts de quem você segue. Aqui estão os mais novos de <0/>." -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "Não recomendamos utilizar palavras comuns que aparecem em muitos posts, já que isso pode resultar em filtrar todos eles." @@ -6206,7 +6234,7 @@ msgstr "Avisaremos quando sua conta estiver pronta." msgid "We'll use this to help customize your experience." msgstr "Usaremos isto para customizar a sua experiência." -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "" @@ -6218,7 +6246,7 @@ msgstr "Estamos muito felizes em recebê-lo!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Tivemos um problema ao exibir esta lista. Se continuar acontecendo, contate o criador da lista: @{handleOrDid}." -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "Não foi possível carregar sua lista de palavras silenciadas. Por favor, tente novamente." @@ -6267,7 +6295,7 @@ msgid "Who can reply" msgstr "Quem pode responder" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "Opa!" @@ -6300,7 +6328,7 @@ msgid "Wide" msgstr "Largo" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "Escreva uma mensagem" @@ -6352,6 +6380,10 @@ msgstr "Você pode mudar estas configurações depois." msgid "You can change this at any time." msgstr "" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6377,7 +6409,7 @@ msgstr "Você não tem feeds fixados." msgid "You don't have any saved feeds." msgstr "Você não tem feeds salvos." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Você bloqueou esta conta ou foi bloqueado por ela." @@ -6415,7 +6447,7 @@ msgstr "Você silenciou esta conta." msgid "You have muted this user" msgstr "Você silenciou este usuário." -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "" @@ -6436,7 +6468,7 @@ msgstr "Você não tem listas." msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Você ainda não bloqueou nenhuma conta. Para bloquear uma conta, acesse um perfil e selecione \"Bloquear conta\" no menu." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Você ainda não criou nenhuma senha de aplicativo. Você pode criar uma pressionando o botão abaixo." @@ -6448,15 +6480,15 @@ msgstr "Você ainda não silenciou nenhuma conta. Para silenciar uma conta, aces msgid "You have reached the end" msgstr "" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "Você não silenciou nenhuma palavra ou tag ainda" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "Você pode contestar estes rótulos se você acha que estão errados." -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Você pode contestar estes rótulos se você acha que estão errados." @@ -6468,7 +6500,7 @@ msgstr "Você precisa ter no mínimo 13 anos de idade para se cadastrar." msgid "You must be 18 years or older to enable adult content" msgstr "Você precisa ser maior de idade para habilitar conteúdo adulto." -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "Você deve selecionar no mínimo um rotulador" @@ -6565,7 +6597,7 @@ msgstr "Seu identificador completo será" msgid "Your full handle will be <0>@{0}" msgstr "Seu usuário completo será <0>@{0}" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "Suas palavras silenciadas" diff --git a/src/locale/locales/tr/messages.po b/src/locale/locales/tr/messages.po index c16030e840..6497c22c7a 100644 --- a/src/locale/locales/tr/messages.po +++ b/src/locale/locales/tr/messages.po @@ -45,12 +45,12 @@ msgstr "" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" @@ -59,7 +59,7 @@ msgstr "" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "" @@ -75,7 +75,7 @@ msgstr "" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" @@ -99,7 +99,7 @@ msgstr "" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} takip ediliyor" @@ -179,7 +179,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Geçersiz Kullanıcı Adı" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "" @@ -218,9 +218,9 @@ msgstr "" #~ msgid "account" #~ msgstr "" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "Hesap" @@ -253,7 +253,7 @@ msgstr "Hesap seçenekleri" msgid "Account removed from quick access" msgstr "Hesap hızlı erişimden kaldırıldı" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "Hesap engeli kaldırıldı" @@ -266,7 +266,7 @@ msgstr "" msgid "Account unmuted" msgstr "Hesap susturulması kaldırıldı" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -287,12 +287,12 @@ msgstr "Bu listeye bir kullanıcı ekleyin" msgid "Add account" msgstr "Hesap ekle" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Alternatif metin ekle" @@ -300,9 +300,9 @@ msgstr "Alternatif metin ekle" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Uygulama Şifresi Ekle" @@ -323,11 +323,11 @@ msgstr "Uygulama Şifresi Ekle" #~ msgid "Add link card:" #~ msgstr "Bağlantı kartı ekle:" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "" @@ -384,7 +384,7 @@ msgid "Adult content is disabled." msgstr "" #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "Gelişmiş" @@ -392,9 +392,19 @@ msgstr "Gelişmiş" msgid "All the feeds you've saved, right in one place." msgstr "" +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 @@ -406,13 +416,13 @@ msgstr "Zaten bir kodunuz mu var?" msgid "Already signed in as @{0}" msgstr "Zaten @{0} olarak oturum açıldı" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -481,34 +491,34 @@ msgstr "" msgid "App Language" msgstr "Uygulama Dili" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Uygulama şifresi silindi" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Uygulama Şifre adları yalnızca harfler, sayılar, boşluklar, tireler ve alt çizgiler içerebilir." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "Uygulama Şifre adları en az 4 karakter uzunluğunda olmalıdır." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "Uygulama şifresi ayarları" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "Uygulama Şifreleri" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "" @@ -520,7 +530,7 @@ msgstr "" #~ msgid "Appeal Content Warning" #~ msgstr "İçerik Uyarısını İtiraz Et" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -549,7 +559,7 @@ msgstr "Görünüm" msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "\"{name}\" uygulama şifresini silmek istediğinizden emin misiniz?" @@ -577,7 +587,7 @@ msgstr "" msgid "Are you sure you'd like to discard this draft?" msgstr "Bu taslağı silmek istediğinizden emin misiniz?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "Emin misiniz?" @@ -602,14 +612,14 @@ msgid "At least 3 characters" msgstr "" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -641,7 +651,7 @@ msgstr "Doğum günü" msgid "Birthday:" msgstr "Doğum günü:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "" @@ -698,7 +708,7 @@ msgstr "Engellenen hesaplar, konularınıza yanıt veremez, sizi bahsedemez veya msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Engellenen hesaplar, konularınıza yanıt veremez, sizi bahsedemez veya başka şekilde sizinle etkileşime giremez. Onların içeriğini görmeyeceksiniz ve onlar da sizinkini görmekten alıkonulacaklar." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "Engellenen gönderi." @@ -815,7 +825,7 @@ msgstr "siz tarafından" msgid "Camera" msgstr "Kamera" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Yalnızca harfler, sayılar, boşluklar, tireler ve alt çizgiler içerebilir. En az 4 karakter uzunluğunda, ancak 32 karakterden fazla olmamalıdır." @@ -896,12 +906,12 @@ msgctxt "action" msgid "Change" msgstr "Değiştir" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "Kullanıcı adını değiştir" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "Kullanıcı Adını Değiştir" @@ -909,12 +919,12 @@ msgstr "Kullanıcı Adını Değiştir" msgid "Change my email" msgstr "E-postamı değiştir" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "Şifre değiştir" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "Şifre Değiştir" @@ -943,10 +953,16 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "" @@ -968,7 +984,7 @@ msgstr "Durumumu kontrol et" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Bazı önerilen kullanıcılara göz atın. Benzer kullanıcıları görmek için onları takip edin." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "" @@ -1009,19 +1025,19 @@ msgstr "Ana beslemelerinizi seçin" msgid "Choose your password" msgstr "Şifrenizi seçin" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "Tüm eski depolama verilerini temizle" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "Tüm eski depolama verilerini temizle (bundan sonra yeniden başlat)" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "Tüm depolama verilerini temizle" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "Tüm depolama verilerini temizle (bundan sonra yeniden başlat)" @@ -1030,11 +1046,11 @@ msgstr "Tüm depolama verilerini temizle (bundan sonra yeniden başlat)" msgid "Clear search query" msgstr "Arama sorgusunu temizle" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "" @@ -1067,7 +1083,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1219,7 +1235,7 @@ msgstr "" msgid "Confirm your birthdate" msgstr "" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1233,7 +1249,7 @@ msgstr "Onay kodu" #~ msgid "Confirms signing up {email} to the waitlist" #~ msgstr "{email} adresinin bekleme listesine kaydını onaylar" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "Bağlanıyor..." @@ -1316,7 +1332,7 @@ msgstr "Sonraki adıma devam et" msgid "Continue to the next step without following any accounts" msgstr "Herhangi bir hesabı takip etmeden sonraki adıma devam et" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "" @@ -1324,7 +1340,7 @@ msgstr "" msgid "Cooking" msgstr "Yemek pişirme" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Kopyalandı" @@ -1334,7 +1350,7 @@ msgid "Copied build version to clipboard" msgstr "Sürüm numarası panoya kopyalandı" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1345,11 +1361,11 @@ msgstr "Panoya kopyalandı" msgid "Copied!" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Uygulama şifresini kopyalar" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Kopyala" @@ -1440,7 +1456,7 @@ msgstr "" msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Uygulama Şifresi Oluştur" @@ -1453,7 +1469,7 @@ msgstr "Yeni hesap oluştur" msgid "Create report for {0}" msgstr "" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "{0} oluşturuldu" @@ -1508,7 +1524,7 @@ msgstr "Karanlık Tema" msgid "Date of birth" msgstr "" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "" @@ -1518,12 +1534,12 @@ msgstr "Hata ayıklama paneli" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "Hesabı sil" @@ -1535,16 +1551,16 @@ msgstr "Hesabı sil" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Uygulama şifresini sil" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "" @@ -1568,7 +1584,7 @@ msgstr "" msgid "Delete my account" msgstr "Hesabımı sil" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "Hesabımı Sil…" @@ -1589,11 +1605,11 @@ msgstr "Bu gönderiyi sil?" msgid "Deleted" msgstr "Silindi" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "Silinen gönderi." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "" @@ -1604,7 +1620,7 @@ msgstr "" msgid "Description" msgstr "Açıklama" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "" @@ -1647,8 +1663,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "" @@ -1723,8 +1739,8 @@ msgstr "Alan adı doğrulandı!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1840,12 +1856,12 @@ msgid "Edit my profile" msgstr "Profilimi düzenle" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "Profil düzenle" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "Profil Düzenle" @@ -1952,8 +1968,8 @@ msgstr "Bu ayarı yalnızca takip ettiğiniz kişiler arasındaki yanıtları g msgid "Enable this source only" msgstr "" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "" @@ -1966,7 +1982,7 @@ msgstr "Beslemenin sonu" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Bu Uygulama Şifresi için bir ad girin" @@ -1974,8 +1990,8 @@ msgstr "Bu Uygulama Şifresi için bir ad girin" msgid "Enter a password" msgstr "" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "" @@ -2047,8 +2063,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "" @@ -2102,12 +2118,12 @@ msgstr "" msgid "Explicit sexual images." msgstr "" -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "" @@ -2123,16 +2139,16 @@ msgstr "Harici medya, web sitelerinin siz ve cihazınız hakkında bilgi toplama #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "Harici Medya Tercihleri" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "Harici medya ayarları" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "Uygulama şifresi oluşturulamadı." @@ -2177,13 +2193,13 @@ msgstr "" #~ msgid "Failed to send message(s)." #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "" @@ -2297,10 +2313,10 @@ msgstr "Yatay çevir" msgid "Flip vertically" msgstr "Dikey çevir" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2312,7 +2328,7 @@ msgid "Follow" msgstr "Takip et" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "{0} takip et" @@ -2359,9 +2375,9 @@ msgstr "sizi takip etti" msgid "Followers" msgstr "Takipçiler" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2370,7 +2386,7 @@ msgstr "Takipçiler" msgid "Following" msgstr "Takip edilenler" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "{0} takip ediliyor" @@ -2402,7 +2418,7 @@ msgstr "Yiyecek" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "Güvenlik nedeniyle, e-posta adresinize bir onay kodu göndermemiz gerekecek." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "Güvenlik nedeniyle, bunu tekrar göremezsiniz. Bu şifreyi kaybederseniz, yeni bir tane oluşturmanız gerekecek." @@ -2419,11 +2435,11 @@ msgstr "Güvenlik nedeniyle, bunu tekrar göremezsiniz. Bu şifreyi kaybederseni msgid "Forgot Password" msgstr "Şifremi Unuttum" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "" @@ -2435,7 +2451,7 @@ msgstr "" msgid "From @{sanitizedAuthor}" msgstr "" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "<0/> tarafından" @@ -2483,7 +2499,7 @@ msgstr "Geri Git" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2503,7 +2519,7 @@ msgstr "" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "@{queryMaybeHandle} adresine git" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "" @@ -2569,13 +2585,13 @@ msgstr "İşte bazı popüler konusal beslemeler. İstediğiniz kadar takip etme msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "İlgi alanlarınıza dayalı olarak bazı konusal beslemeler: {interestsText}. İstediğiniz kadar takip etmeyi seçebilirsiniz." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "İşte uygulama şifreniz." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2597,7 +2613,7 @@ msgid "Hide post" msgstr "Gönderiyi gizle" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "İçeriği gizle" @@ -2660,7 +2676,7 @@ msgid "Host:" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2721,7 +2737,7 @@ msgstr "" msgid "Image" msgstr "Resim" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Resim alternatif metni" @@ -2753,7 +2769,7 @@ msgstr "Hesap silme için onay kodunu girin" #~ msgid "Input invite code to proceed" #~ msgstr "Devam etmek için davet kodunu girin" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Uygulama şifresi için ad girin" @@ -2769,15 +2785,15 @@ msgstr "Hesap silme için şifre girin" #~ msgid "Input phone number for SMS verification" #~ msgstr "SMS doğrulaması için telefon numarası girin" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "{identifier} ile ilişkili şifreyi girin" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "Kaydolurken kullandığınız kullanıcı adını veya e-posta adresini girin" @@ -2789,7 +2805,7 @@ msgstr "Kaydolurken kullandığınız kullanıcı adını veya e-posta adresini #~ msgid "Input your email to get on the Bluesky waitlist" #~ msgstr "Bluesky bekleme listesine girmek için e-postanızı girin" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "Şifrenizi girin" @@ -2805,16 +2821,16 @@ msgstr "Kullanıcı adınızı girin" msgid "Introducing Direct Messages" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Geçersiz veya desteklenmeyen gönderi kaydı" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "Geçersiz kullanıcı adı veya şifre" @@ -2895,11 +2911,11 @@ msgstr "" #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "" @@ -2942,7 +2958,7 @@ msgstr "Daha Fazla Bilgi Edinin" msgid "Learn more about the moderation applied to this content." msgstr "" -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Bu uyarı hakkında daha fazla bilgi edinin" @@ -3052,7 +3068,7 @@ msgstr "gönderinizi beğendi" msgid "Likes" msgstr "Beğeniler" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Bu gönderideki beğeniler" @@ -3115,7 +3131,7 @@ msgid "Load new notifications" msgstr "Yeni bildirimleri yükle" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -3176,7 +3192,7 @@ msgstr "" msgid "Make sure this is where you intend to go!" msgstr "Bu gitmek istediğiniz yer olduğundan emin olun!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "" @@ -3208,6 +3224,7 @@ msgid "Message {0}" msgstr "" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "" @@ -3220,18 +3237,18 @@ msgid "Message input field" msgstr "" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" @@ -3348,11 +3365,11 @@ msgstr "" msgid "Mute conversation" msgstr "" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "" @@ -3373,11 +3390,11 @@ msgstr "Bu hesapları sessize al?" #~ msgid "Mute this List" #~ msgstr "Bu Listeyi Sessize Al" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "" @@ -3441,7 +3458,7 @@ msgstr "" msgid "My Saved Feeds" msgstr "Kayıtlı Beslemelerim" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "Ad" @@ -3461,7 +3478,7 @@ msgid "Nature" msgstr "Doğa" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Sonraki ekrana yönlendirir" @@ -3502,8 +3519,8 @@ msgid "New" msgstr "Yeni" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" @@ -3523,7 +3540,7 @@ msgstr "Yeni şifre" msgid "New Password" msgstr "Yeni Şifre" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "Yeni gönderi" @@ -3557,8 +3574,8 @@ msgstr "Haberler" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3598,7 +3615,7 @@ msgstr "" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "{0} artık takip edilmiyor" @@ -3610,7 +3627,7 @@ msgstr "" msgid "No messages yet" msgstr "" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "" @@ -3620,8 +3637,8 @@ msgstr "Henüz bildirim yok!" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "" @@ -3630,7 +3647,7 @@ msgstr "" msgid "No result" msgstr "Sonuç yok" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "" @@ -3702,15 +3719,15 @@ msgstr "" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Not: Bluesky açık ve kamusal bir ağdır. Bu ayar yalnızca içeriğinizin Bluesky uygulaması ve web sitesindeki görünürlüğünü sınırlar, diğer uygulamalar bu ayarı dikkate almayabilir. İçeriğiniz hala diğer uygulamalar ve web siteleri tarafından çıkış yapan kullanıcılara gösterilebilir." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "" @@ -3791,7 +3808,7 @@ msgid "Oops, something went wrong!" msgstr "" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "Hata!" @@ -3804,8 +3821,8 @@ msgstr "Aç" msgid "Open avatar creator" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "" @@ -3818,7 +3835,7 @@ msgstr "Emoji seçiciyi aç" msgid "Open feed options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "Uygulama içi tarayıcıda bağlantıları aç" @@ -3838,12 +3855,12 @@ msgstr "Navigasyonu aç" msgid "Open post options menu" msgstr "" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "Storybook sayfasını aç" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "" @@ -3867,6 +3884,10 @@ msgstr "Bu bildirimdeki kullanıcıların genişletilmiş bir listesini açar" msgid "Opens camera on device" msgstr "Cihazdaki kamerayı açar" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "Besteciyi açar" @@ -3883,7 +3904,7 @@ msgstr "Cihaz fotoğraf galerisini açar" #~ msgid "Opens editor for profile display name, avatar, background image, and description" #~ msgstr "Profil görüntü adı, avatar, arka plan resmi ve açıklama için düzenleyiciyi açar" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "Harici gömülü ayarları açar" @@ -3917,7 +3938,7 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Davet kodu listesini açar" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "" @@ -3925,19 +3946,19 @@ msgstr "" #~ msgid "Opens modal for account deletion confirmation. Requires email code." #~ msgstr "Hesap silme onayı için modalı açar. E-posta kodu gerektirir." -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "" @@ -3949,7 +3970,7 @@ msgstr "Özel alan adı kullanımı için modalı açar" msgid "Opens moderation settings" msgstr "Moderasyon ayarlarını açar" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "Şifre sıfırlama formunu açar" @@ -3962,7 +3983,7 @@ msgstr "Kayıtlı Beslemeleri düzenlemek için ekranı açar" msgid "Opens screen with all saved feeds" msgstr "Tüm kayıtlı beslemeleri içeren ekrana açar" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "" @@ -3986,12 +4007,12 @@ msgstr "" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "Storybook sayfasını açar" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "Sistem log sayfasını açar" @@ -4004,7 +4025,7 @@ msgid "Option {0} of {numItems}" msgstr "{0} seçeneği, {numItems} seçenekten" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "" @@ -4041,7 +4062,7 @@ msgstr "Sayfa bulunamadı" msgid "Page Not Found" msgstr "Sayfa Bulunamadı" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -4155,7 +4176,7 @@ msgstr "" msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "E-postanızı değiştirmeden önce onaylayın. Bu, e-posta güncelleme araçları eklenirken geçici bir gerekliliktir ve yakında kaldırılacaktır." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Uygulama şifreniz için bir ad girin. Tüm boşluklar izin verilmez." @@ -4163,11 +4184,11 @@ msgstr "Uygulama şifreniz için bir ad girin. Tüm boşluklar izin verilmez." #~ msgid "Please enter a phone number that can receive SMS text messages." #~ msgstr "SMS metin mesajları alabilen bir telefon numarası girin." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Bu Uygulama Şifresi için benzersiz bir ad girin veya rastgele oluşturulanı kullanın." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "" @@ -4187,7 +4208,7 @@ msgstr "E-postanızı girin." msgid "Please enter your password as well:" msgstr "Lütfen şifrenizi de girin:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "" @@ -4227,12 +4248,12 @@ msgctxt "action" msgid "Post" msgstr "Gönder" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "Gönderi" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "{0} tarafından gönderi" @@ -4246,7 +4267,7 @@ msgstr "@{0} tarafından gönderi" msgid "Post deleted" msgstr "Gönderi silindi" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Gönderi gizlendi" @@ -4268,8 +4289,8 @@ msgstr "Gönderi dili" msgid "Post Languages" msgstr "Gönderi Dilleri" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Gönderi bulunamadı" @@ -4281,7 +4302,7 @@ msgstr "" msgid "Posts" msgstr "Gönderiler" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "" @@ -4325,7 +4346,7 @@ msgstr "Birincil Dil" msgid "Prioritize Your Follows" msgstr "Takipçilerinizi Önceliklendirin" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Gizlilik" @@ -4333,7 +4354,7 @@ msgstr "Gizlilik" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Gizlilik Politikası" @@ -4346,7 +4367,7 @@ msgstr "" msgid "Processing..." msgstr "İşleniyor..." -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "" @@ -4363,7 +4384,7 @@ msgstr "Profil" msgid "Profile updated" msgstr "Profil güncellendi" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "E-postanızı doğrulayarak hesabınızı koruyun." @@ -4433,11 +4454,11 @@ msgstr "" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4492,7 +4513,7 @@ msgstr "Resmi kaldır" msgid "Remove image preview" msgstr "Resim önizlemesini kaldır" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "" @@ -4568,7 +4589,7 @@ msgstr "Yanıt Filtreleri" #~ msgstr "<0/>'a yanıt" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" @@ -4668,7 +4689,7 @@ msgstr "Gönderiyi yeniden gönder veya alıntıla" msgid "Reposted By" msgstr "Yeniden Gönderen" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "{0} tarafından yeniden gönderildi" @@ -4676,7 +4697,7 @@ msgstr "{0} tarafından yeniden gönderildi" #~ msgid "Reposted by <0/>" #~ msgstr "<0/>'a yeniden gönderildi" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "" @@ -4684,7 +4705,7 @@ msgstr "" msgid "reposted your post" msgstr "gönderinizi yeniden gönderdi" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Bu gönderinin yeniden gönderilmesi" @@ -4731,8 +4752,8 @@ msgstr "Sıfırlama Kodu" #~ msgid "Reset onboarding" #~ msgstr "Onboarding sıfırla" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "Onboarding durumunu sıfırla" @@ -4744,20 +4765,20 @@ msgstr "Şifreyi sıfırla" #~ msgid "Reset preferences" #~ msgstr "Tercihleri sıfırla" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "Tercih durumunu sıfırla" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "Onboarding durumunu sıfırlar" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "Tercih durumunu sıfırlar" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "Giriş tekrar denemesi" @@ -4769,8 +4790,8 @@ msgstr "Son hataya neden olan son eylemi tekrarlar" #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4803,8 +4824,8 @@ msgstr "" #~ msgstr "KUM KUTUSU. Gönderiler ve hesaplar kalıcı değildir." #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4817,7 +4838,7 @@ msgctxt "action" msgid "Save" msgstr "Kaydet" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Alternatif metni kaydet" @@ -5034,7 +5055,7 @@ msgstr "Aşağıdaki hesaplardan bazılarını takip et" msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "" @@ -5110,14 +5131,14 @@ msgid "Send feedback" msgstr "Geribildirim gönder" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "" @@ -5262,7 +5283,6 @@ msgstr "" #~ msgstr "Bluesky istemcisi için sunucuyu ayarlar" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -5326,7 +5346,7 @@ msgstr "" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -5358,10 +5378,14 @@ msgstr "" #~ msgid "Show embeds from {0}" #~ msgstr "{0} adresinden gömülü öğeleri göster" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "{0} adresine benzer takipçileri göster" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -5369,7 +5393,7 @@ msgstr "" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "Daha Fazla Göster" @@ -5378,6 +5402,10 @@ msgstr "Daha Fazla Göster" msgid "Show more like this" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Beslemelerimden Gönderileri Göster" @@ -5427,7 +5455,7 @@ msgid "Show reposts in Following" msgstr "Takip etme beslemesinde yeniden göndermeleri göster" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "İçeriği göster" @@ -5455,7 +5483,7 @@ msgstr "Beslemenizde {0} adresinden gönderileri gösterir" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -5577,7 +5605,7 @@ msgstr "" #~ msgstr "Bir şeyler yanlış gitti. E-postanızı kontrol edin ve tekrar deneyin." #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "Üzgünüz! Oturumunuzun süresi doldu. Lütfen tekrar giriş yapın." @@ -5593,7 +5621,7 @@ msgstr "Aynı gönderiye verilen yanıtları şuna göre sırala:" #~ msgid "Source:" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "" @@ -5618,7 +5646,7 @@ msgstr "Kare" #~ msgid "Staging" #~ msgstr "Staging" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "" @@ -5634,7 +5662,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Durum sayfası" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "" @@ -5655,12 +5683,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Depolama temizlendi, şimdi uygulamayı yeniden başlatmanız gerekiyor." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "Storybook" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5730,11 +5758,11 @@ msgstr "Giriş yaptığınız hesabı değiştirir" msgid "System" msgstr "Sistem" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "Sistem günlüğü" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "" @@ -5764,7 +5792,7 @@ msgstr "Şartlar" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5776,17 +5804,17 @@ msgstr "Hizmet Şartları" msgid "Terms used violate community standards" msgstr "" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Metin giriş alanı" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "" @@ -5798,7 +5826,7 @@ msgstr "" msgid "That handle is already taken." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Hesap, engeli kaldırdıktan sonra sizinle etkileşime geçebilecek." @@ -5819,11 +5847,11 @@ msgstr "Telif Hakkı Politikası <0/> konumuna taşındı" msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "" @@ -5831,8 +5859,8 @@ msgstr "" msgid "The following steps will help customize your Bluesky experience." msgstr "Aşağıdaki adımlar, Bluesky deneyiminizi özelleştirmenize yardımcı olacaktır." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Gönderi silinmiş olabilir." @@ -5907,7 +5935,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Listelerinizi almakta bir sorun oluştu. Tekrar denemek için buraya dokunun." #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "" @@ -5915,13 +5943,13 @@ msgstr "" msgid "There was an issue syncing your preferences with the server" msgstr "Tercihlerinizi sunucuyla senkronize etme konusunda bir sorun oluştu" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Uygulama şifrelerinizi almakta bir sorun oluştu" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5969,7 +5997,7 @@ msgstr "Bu hesap, kullanıcıların profilini görüntülemek için giriş yapma msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "" @@ -6052,7 +6080,7 @@ msgstr "" #~ msgid "This label was applied by you" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "" @@ -6072,11 +6100,11 @@ msgstr "Bu liste boş!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "Bu isim zaten kullanılıyor" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "Bu gönderi silindi." @@ -6142,7 +6170,7 @@ msgstr "" #~ msgid "This warning is only available for posts with media attached." #~ msgstr "Bu uyarı yalnızca medya ekli gönderiler için mevcuttur." -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "" @@ -6179,7 +6207,7 @@ msgstr "" msgid "To whom would you like to send this report?" msgstr "" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "" @@ -6212,7 +6240,7 @@ msgctxt "action" msgid "Try again" msgstr "Tekrar dene" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "" @@ -6234,7 +6262,7 @@ msgstr "Listeyi sessizden çıkar" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -6245,14 +6273,14 @@ msgstr "Hizmetinize ulaşılamıyor. Lütfen internet bağlantınızı kontrol e #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "Engeli kaldır" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "Engeli kaldır" @@ -6267,7 +6295,7 @@ msgstr "" msgid "Unblock Account" msgstr "Hesabın engelini kaldır" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "" @@ -6288,7 +6316,7 @@ msgstr "Takibi bırak" msgid "Unfollow" msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "{0} adresini takibi bırak" @@ -6425,7 +6453,7 @@ msgstr "" msgid "Use a file on your server" msgstr "" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Uygulama şifrelerini kullanarak hesabınızın veya şifrenizin tam erişimini vermeden diğer Bluesky istemcilerine giriş yapın." @@ -6455,7 +6483,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Bunu, kullanıcı adınızla birlikte diğer uygulamaya giriş yapmak için kullanın." @@ -6523,7 +6551,7 @@ msgstr "Kullanıcı listesi güncellendi" msgid "User Lists" msgstr "Kullanıcı Listeleri" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "Kullanıcı adı veya e-posta adresi" @@ -6537,8 +6565,8 @@ msgstr "<0/> tarafından takip edilen kullanıcılar" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "" @@ -6566,15 +6594,15 @@ msgstr "" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "E-postayı doğrula" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "E-postamı doğrula" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "E-postamı Doğrula" @@ -6595,7 +6623,7 @@ msgstr "E-postanızı Doğrulayın" #~ msgid "Version {0}" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6619,7 +6647,7 @@ msgstr "" msgid "View details for reporting a copyright violation" msgstr "" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "Tam konuyu görüntüle" @@ -6627,8 +6655,8 @@ msgstr "Tam konuyu görüntüle" msgid "View information about these labels" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Profili görüntüle" @@ -6689,7 +6717,7 @@ msgstr "Harika vakit geçirmenizi umuyoruz. Unutmayın, Bluesky:" msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "Takipçilerinizden gönderi kalmadı. İşte <0/>'den en son gönderiler." -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "" @@ -6721,7 +6749,7 @@ msgstr "Hesabınız hazır olduğunda size bildireceğiz." msgid "We'll use this to help customize your experience." msgstr "Bu, deneyiminizi özelleştirmenize yardımcı olmak için kullanılacak." -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "" @@ -6733,7 +6761,7 @@ msgstr "Sizi aramızda görmekten çok mutluyuz!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Üzgünüz, ancak bu listeyi çözemedik. Bu durum devam ederse, lütfen liste oluşturucu, @{handleOrDid} ile iletişime geçin." -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "" @@ -6786,7 +6814,7 @@ msgid "Who can reply" msgstr "Kimler yanıtlayabilir" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" @@ -6819,7 +6847,7 @@ msgid "Wide" msgstr "Geniş" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "" @@ -6875,6 +6903,10 @@ msgstr "Bu ayarları daha sonra değiştirebilirsiniz." msgid "You can change this at any time." msgstr "" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6900,7 +6932,7 @@ msgstr "Sabitlemiş beslemeniz yok." msgid "You don't have any saved feeds." msgstr "Kaydedilmiş beslemeniz yok." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Yazarı engellediniz veya yazar tarafından engellendiniz." @@ -6942,7 +6974,7 @@ msgstr "" #~ msgid "You have muted this user." #~ msgstr "Bu kullanıcıyı sessize aldınız." -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "" @@ -6967,7 +6999,7 @@ msgstr "" #~ msgid "You have not blocked any accounts yet. To block an account, go to their profile and selected \"Block account\" from the menu on their account." #~ msgstr "Henüz hiçbir hesabı engellemediniz. Bir hesabı engellemek için, profilinize gidin ve hesaplarının menüsünden \"Hesabı engelle\" seçeneğini seçin." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Henüz hiçbir uygulama şifresi oluşturmadınız. Aşağıdaki düğmeye basarak bir tane oluşturabilirsiniz." @@ -6983,15 +7015,15 @@ msgstr "" msgid "You have reached the end" msgstr "" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "" @@ -7007,7 +7039,7 @@ msgstr "" msgid "You must be 18 years or older to enable adult content" msgstr "Yetişkin içeriğini etkinleştirmek için 18 yaşında veya daha büyük olmalısınız" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "" @@ -7113,7 +7145,7 @@ msgstr "Tam kullanıcı adınız <0>@{0} olacak" #~ msgid "Your invite codes are hidden when logged in using an App Password" #~ msgstr "Uygulama Şifresi kullanarak giriş yaptığınızda davet kodlarınız gizlenir" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "" diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po index 22de9e233e..3593181547 100644 --- a/src/locale/locales/uk/messages.po +++ b/src/locale/locales/uk/messages.po @@ -46,12 +46,12 @@ msgstr "" msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "" @@ -60,7 +60,7 @@ msgstr "" msgid "{0, plural, one {Like (# like)} other {Like (# likes)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:359 +#: src/view/com/post-thread/PostThreadItem.tsx:358 msgid "{0, plural, one {like} other {likes}}" msgstr "" @@ -76,7 +76,7 @@ msgstr "" msgid "{0, plural, one {Reply (# reply)} other {Reply (# replies)}}" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:339 +#: src/view/com/post-thread/PostThreadItem.tsx:338 msgid "{0, plural, one {repost} other {reposts}}" msgstr "" @@ -100,7 +100,7 @@ msgstr "" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} підписок" @@ -168,7 +168,7 @@ msgstr "" msgid "⚠Invalid Handle" msgstr "⚠Недопустимий псевдонім" -#: src/screens/Login/LoginForm.tsx:241 +#: src/screens/Login/LoginForm.tsx:244 msgid "2FA Confirmation" msgstr "" @@ -199,9 +199,9 @@ msgstr "" #~ msgid "account" #~ msgstr "обліковий запис" -#: src/screens/Login/LoginForm.tsx:164 +#: src/screens/Login/LoginForm.tsx:167 #: src/view/screens/Settings/index.tsx:338 -#: src/view/screens/Settings/index.tsx:720 +#: src/view/screens/Settings/index.tsx:745 msgid "Account" msgstr "Обліковий запис" @@ -234,7 +234,7 @@ msgstr "Параметри облікового запису" msgid "Account removed from quick access" msgstr "Обліковий запис вилучено зі швидкого доступу" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:136 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:131 #: src/view/com/profile/ProfileMenu.tsx:129 msgid "Account unblocked" msgstr "Обліковий запис розблоковано" @@ -247,7 +247,7 @@ msgstr "Ви відписалися від облікового запису" msgid "Account unmuted" msgstr "Обліковий запис більше не ігнорується" -#: src/components/dialogs/MutedWords.tsx:164 +#: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/UserAddRemoveLists.tsx:219 #: src/view/screens/ProfileList.tsx:880 @@ -268,12 +268,12 @@ msgstr "Додати користувача до списку" msgid "Add account" msgstr "Додати обліковий запис" -#: src/view/com/composer/GifAltText.tsx:69 -#: src/view/com/composer/GifAltText.tsx:135 -#: src/view/com/composer/GifAltText.tsx:175 +#: src/view/com/composer/GifAltText.tsx:70 +#: src/view/com/composer/GifAltText.tsx:136 +#: src/view/com/composer/GifAltText.tsx:176 #: src/view/com/composer/photos/Gallery.tsx:120 #: src/view/com/composer/photos/Gallery.tsx:187 -#: src/view/com/modals/AltImage.tsx:117 +#: src/view/com/modals/AltImage.tsx:118 msgid "Add alt text" msgstr "Додати альтернативний текст" @@ -281,9 +281,9 @@ msgstr "Додати альтернативний текст" #~ msgid "Add ALT text" #~ msgstr "" -#: src/view/screens/AppPasswords.tsx:104 -#: src/view/screens/AppPasswords.tsx:145 -#: src/view/screens/AppPasswords.tsx:158 +#: src/view/screens/AppPasswords.tsx:106 +#: src/view/screens/AppPasswords.tsx:148 +#: src/view/screens/AppPasswords.tsx:161 msgid "Add App Password" msgstr "Додати пароль застосунку" @@ -295,11 +295,11 @@ msgstr "Додати пароль застосунку" #~ msgid "Add link card:" #~ msgstr "Додати попередній перегляд:" -#: src/components/dialogs/MutedWords.tsx:157 +#: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" msgstr "Додати слово до ігнорування з обраними налаштуваннями" -#: src/components/dialogs/MutedWords.tsx:86 +#: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" msgstr "Додати ігноровані слова та теги" @@ -352,7 +352,7 @@ msgid "Adult content is disabled." msgstr "Контент для дорослих вимкнено." #: src/screens/Moderation/index.tsx:375 -#: src/view/screens/Settings/index.tsx:654 +#: src/view/screens/Settings/index.tsx:679 msgid "Advanced" msgstr "Розширені" @@ -360,9 +360,19 @@ msgstr "Розширені" msgid "All the feeds you've saved, right in one place." msgstr "Усі збережені стрічки в одному місці." +#: src/view/com/modals/AddAppPasswords.tsx:188 +#: src/view/com/modals/AddAppPasswords.tsx:195 +msgid "Allow access to your direct messages" +msgstr "" + #: src/screens/Messages/Settings.tsx:61 #: src/screens/Messages/Settings.tsx:64 -msgid "Allow messages from" +#~ msgid "Allow messages from" +#~ msgstr "" + +#: src/screens/Messages/Settings.tsx:62 +#: src/screens/Messages/Settings.tsx:65 +msgid "Allow new messages from" msgstr "" #: src/screens/Login/ForgotPasswordForm.tsx:178 @@ -374,13 +384,13 @@ msgstr "Вже маєте код?" msgid "Already signed in as @{0}" msgstr "Вже увійшли як @{0}" -#: src/view/com/composer/GifAltText.tsx:93 +#: src/view/com/composer/GifAltText.tsx:94 #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/util/post-embeds/GifEmbed.tsx:173 msgid "ALT" msgstr "ALT" -#: src/view/com/composer/GifAltText.tsx:144 +#: src/view/com/composer/GifAltText.tsx:145 #: src/view/com/modals/EditImage.tsx:316 #: src/view/screens/AccessibilitySettings.tsx:77 msgid "Alt text" @@ -449,38 +459,38 @@ msgstr "Антисоціальна поведінка" msgid "App Language" msgstr "Мова застосунку" -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" msgstr "Пароль застосунку видалено" -#: src/view/com/modals/AddAppPasswords.tsx:135 +#: src/view/com/modals/AddAppPasswords.tsx:139 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." msgstr "Назва пароля може містити лише латинські літери, цифри, пробіли, мінуси та нижні підкреслення." -#: src/view/com/modals/AddAppPasswords.tsx:100 +#: src/view/com/modals/AddAppPasswords.tsx:104 msgid "App Password names must be at least 4 characters long." msgstr "Назва пароля застосунку мусить бути хоча б 4 символи в довжину." -#: src/view/screens/Settings/index.tsx:665 +#: src/view/screens/Settings/index.tsx:690 msgid "App password settings" msgstr "Налаштування пароля застосунків" #: src/Navigation.tsx:258 -#: src/view/screens/AppPasswords.tsx:189 -#: src/view/screens/Settings/index.tsx:674 +#: src/view/screens/AppPasswords.tsx:192 +#: src/view/screens/Settings/index.tsx:699 msgid "App Passwords" msgstr "Паролі для застосунків" -#: src/components/moderation/LabelsOnMeDialog.tsx:152 -#: src/components/moderation/LabelsOnMeDialog.tsx:155 +#: src/components/moderation/LabelsOnMeDialog.tsx:153 +#: src/components/moderation/LabelsOnMeDialog.tsx:156 msgid "Appeal" msgstr "Звернення" -#: src/components/moderation/LabelsOnMeDialog.tsx:237 +#: src/components/moderation/LabelsOnMeDialog.tsx:238 msgid "Appeal \"{0}\" label" msgstr "Оскаржити мітку \"{0}\"" -#: src/components/moderation/LabelsOnMeDialog.tsx:228 +#: src/components/moderation/LabelsOnMeDialog.tsx:229 #: src/screens/Messages/Conversation/ChatDisabled.tsx:91 msgid "Appeal submitted" msgstr "" @@ -505,7 +515,7 @@ msgstr "Оформлення" msgid "Apply default recommended feeds" msgstr "" -#: src/view/screens/AppPasswords.tsx:265 +#: src/view/screens/AppPasswords.tsx:282 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Ви дійсно хочете видалити пароль для застосунку \"{name}\"?" @@ -533,7 +543,7 @@ msgstr "Ви впевнені, що бажаєте видалити {0} зі с msgid "Are you sure you'd like to discard this draft?" msgstr "Ви дійсно бажаєте видалити цю чернетку?" -#: src/components/dialogs/MutedWords.tsx:281 +#: src/components/dialogs/MutedWords.tsx:283 msgid "Are you sure?" msgstr "Ви впевнені?" @@ -554,14 +564,14 @@ msgid "At least 3 characters" msgstr "Не менше 3-х символів" #: src/components/dms/MessagesListHeader.tsx:74 -#: src/components/moderation/LabelsOnMeDialog.tsx:282 #: src/components/moderation/LabelsOnMeDialog.tsx:283 +#: src/components/moderation/LabelsOnMeDialog.tsx:284 #: src/screens/Login/ChooseAccountForm.tsx:98 #: src/screens/Login/ChooseAccountForm.tsx:103 #: src/screens/Login/ForgotPasswordForm.tsx:129 #: src/screens/Login/ForgotPasswordForm.tsx:135 -#: src/screens/Login/LoginForm.tsx:272 -#: src/screens/Login/LoginForm.tsx:278 +#: src/screens/Login/LoginForm.tsx:275 +#: src/screens/Login/LoginForm.tsx:281 #: src/screens/Login/SetNewPasswordForm.tsx:160 #: src/screens/Login/SetNewPasswordForm.tsx:166 #: src/screens/Messages/Conversation/ChatDisabled.tsx:133 @@ -588,7 +598,7 @@ msgstr "Дата народження" msgid "Birthday:" msgstr "Дата народження:" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 msgid "Block" msgstr "Заблокувати" @@ -641,7 +651,7 @@ msgstr "Заблоковані облікові записи не можуть msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you. You will not see their content and they will be prevented from seeing yours." msgstr "Заблоковані облікові записи не можуть вам відповідати, згадувати вас у своїх постах, і взаємодіяти з вами будь-яким іншим чином. Ви не будете бачити їхні пости і вони не будуть бачити ваші." -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:370 msgid "Blocked post." msgstr "Заблокований пост." @@ -742,7 +752,7 @@ msgstr "створено вами" msgid "Camera" msgstr "Камера" -#: src/view/com/modals/AddAppPasswords.tsx:217 +#: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long." msgstr "Може містити лише літери, цифри, пробіли, дефіси та знаки підкреслення, і мати довжину від 4 до 32 символів." @@ -819,12 +829,12 @@ msgctxt "action" msgid "Change" msgstr "Змінити" -#: src/view/screens/Settings/index.tsx:686 +#: src/view/screens/Settings/index.tsx:711 msgid "Change handle" msgstr "Змінити псевдонім" #: src/view/com/modals/ChangeHandle.tsx:156 -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:722 msgid "Change Handle" msgstr "Змінити псевдонім" @@ -832,12 +842,12 @@ msgstr "Змінити псевдонім" msgid "Change my email" msgstr "Змінити адресу електронної пошти" -#: src/view/screens/Settings/index.tsx:731 +#: src/view/screens/Settings/index.tsx:756 msgid "Change password" msgstr "Змінити пароль" #: src/view/com/modals/ChangePassword.tsx:143 -#: src/view/screens/Settings/index.tsx:742 +#: src/view/screens/Settings/index.tsx:767 msgid "Change Password" msgstr "Зміна пароля" @@ -862,10 +872,16 @@ msgstr "" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 +#: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "" +#: src/screens/Messages/Settings.tsx:59 +#: src/view/screens/Settings/index.tsx:640 +msgid "Chat Settings" +msgstr "" + #: src/components/dms/ConvoMenu.tsx:82 msgid "Chat unmuted" msgstr "" @@ -887,7 +903,7 @@ msgstr "Перевірити мій статус" #~ msgid "Check out some recommended users. Follow them to see similar users." #~ msgstr "Ознайомтеся з деякими рекомендованими користувачами. Слідкуйте за ними, щоб побачити дописи від подібних користувачів." -#: src/screens/Login/LoginForm.tsx:265 +#: src/screens/Login/LoginForm.tsx:268 msgid "Check your email for a login code and enter it here." msgstr "" @@ -924,19 +940,19 @@ msgstr "Виберіть ваші основні стрічки" msgid "Choose your password" msgstr "Вкажіть пароль" -#: src/view/screens/Settings/index.tsx:855 +#: src/view/screens/Settings/index.tsx:880 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:858 +#: src/view/screens/Settings/index.tsx:883 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings/index.tsx:867 +#: src/view/screens/Settings/index.tsx:892 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:895 msgid "Clear all storage data (restart after this)" msgstr "" @@ -945,11 +961,11 @@ msgstr "" msgid "Clear search query" msgstr "Очистити пошуковий запит" -#: src/view/screens/Settings/index.tsx:856 +#: src/view/screens/Settings/index.tsx:881 msgid "Clears all legacy storage data" msgstr "Видаляє всі застарілі дані зі сховища" -#: src/view/screens/Settings/index.tsx:868 +#: src/view/screens/Settings/index.tsx:893 msgid "Clears all storage data" msgstr "Видаляє всі дані зі сховища" @@ -982,7 +998,7 @@ msgid "Clip 🐴 clop 🐴" msgstr "" #: src/components/dialogs/GifSelect.tsx:301 -#: src/components/dms/NewChatDialog/index.tsx:439 +#: src/components/dms/NewChatDialog/index.tsx:437 #: src/view/com/modals/ChangePassword.tsx:269 #: src/view/com/modals/ChangePassword.tsx:272 #: src/view/com/util/post-embeds/GifEmbed.tsx:185 @@ -1125,7 +1141,7 @@ msgstr "Підтвердіть ваш вік:" msgid "Confirm your birthdate" msgstr "Підтвердіть вашу дату народження" -#: src/screens/Login/LoginForm.tsx:247 +#: src/screens/Login/LoginForm.tsx:250 #: src/view/com/modals/ChangeEmail.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:186 #: src/view/com/modals/DeleteAccount.tsx:192 @@ -1135,7 +1151,7 @@ msgstr "Підтвердіть вашу дату народження" msgid "Confirmation code" msgstr "Код підтвердження" -#: src/screens/Login/LoginForm.tsx:299 +#: src/screens/Login/LoginForm.tsx:302 msgid "Connecting..." msgstr "З’єднання..." @@ -1210,7 +1226,7 @@ msgstr "Перейти до наступного кроку" msgid "Continue to the next step without following any accounts" msgstr "Перейдіть до наступного кроку, ні на кого не підписуючись" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "" @@ -1218,7 +1234,7 @@ msgstr "" msgid "Cooking" msgstr "Кухарство" -#: src/view/com/modals/AddAppPasswords.tsx:196 +#: src/view/com/modals/AddAppPasswords.tsx:221 #: src/view/com/modals/InviteCodes.tsx:183 msgid "Copied" msgstr "Скопійовано" @@ -1228,7 +1244,7 @@ msgid "Copied build version to clipboard" msgstr "Версію збірки скопійовано до буфера обміну" #: src/components/dms/MessageMenu.tsx:51 -#: src/view/com/modals/AddAppPasswords.tsx:77 +#: src/view/com/modals/AddAppPasswords.tsx:81 #: src/view/com/modals/ChangeHandle.tsx:320 #: src/view/com/modals/InviteCodes.tsx:153 #: src/view/com/util/forms/PostDropdownBtn.tsx:172 @@ -1239,11 +1255,11 @@ msgstr "Скопійовано" msgid "Copied!" msgstr "Скопійовано!" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:215 msgid "Copies app password" msgstr "Копіює пароль застосунку" -#: src/view/com/modals/AddAppPasswords.tsx:189 +#: src/view/com/modals/AddAppPasswords.tsx:214 msgid "Copy" msgstr "Скопіювати" @@ -1326,7 +1342,7 @@ msgstr "Створити обліковий запис" msgid "Create an avatar instead" msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:227 +#: src/view/com/modals/AddAppPasswords.tsx:243 msgid "Create App Password" msgstr "Створити пароль застосунку" @@ -1339,7 +1355,7 @@ msgstr "Створити новий обліковий запис" msgid "Create report for {0}" msgstr "Створити звіт для {0}" -#: src/view/screens/AppPasswords.tsx:246 +#: src/view/screens/AppPasswords.tsx:251 msgid "Created {0}" msgstr "Створено: {0}" @@ -1386,7 +1402,7 @@ msgstr "Темна тема" msgid "Date of birth" msgstr "Дата народження" -#: src/view/screens/Settings/index.tsx:818 +#: src/view/screens/Settings/index.tsx:843 msgid "Debug Moderation" msgstr "Налагодження модерації" @@ -1396,12 +1412,12 @@ msgstr "Панель налагодження" #: src/components/dms/MessageMenu.tsx:126 #: src/view/com/util/forms/PostDropdownBtn.tsx:392 -#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/AppPasswords.tsx:285 #: src/view/screens/ProfileList.tsx:666 msgid "Delete" msgstr "Видалити" -#: src/view/screens/Settings/index.tsx:773 +#: src/view/screens/Settings/index.tsx:798 msgid "Delete account" msgstr "Видалити обліковий запис" @@ -1413,16 +1429,16 @@ msgstr "Видалити обліковий запис" msgid "Delete Account <0>\"<1>{0}<2>\"" msgstr "" -#: src/view/screens/AppPasswords.tsx:239 +#: src/view/screens/AppPasswords.tsx:244 msgid "Delete app password" msgstr "Видалити пароль для застосунку" -#: src/view/screens/AppPasswords.tsx:263 +#: src/view/screens/AppPasswords.tsx:280 msgid "Delete app password?" msgstr "Видалити пароль для застосунку?" -#: src/view/screens/Settings/index.tsx:835 -#: src/view/screens/Settings/index.tsx:838 +#: src/view/screens/Settings/index.tsx:860 +#: src/view/screens/Settings/index.tsx:863 msgid "Delete chat declaration record" msgstr "" @@ -1446,7 +1462,7 @@ msgstr "" msgid "Delete my account" msgstr "Видалити мій обліковий запис" -#: src/view/screens/Settings/index.tsx:785 +#: src/view/screens/Settings/index.tsx:810 msgid "Delete My Account…" msgstr "Видалити мій обліковий запис..." @@ -1467,11 +1483,11 @@ msgstr "Видалити цей пост?" msgid "Deleted" msgstr "Видалено" -#: src/view/com/post-thread/PostThread.tsx:308 +#: src/view/com/post-thread/PostThread.tsx:362 msgid "Deleted post." msgstr "Видалений пост." -#: src/view/screens/Settings/index.tsx:836 +#: src/view/screens/Settings/index.tsx:861 msgid "Deletes the chat declaration record" msgstr "" @@ -1482,7 +1498,7 @@ msgstr "" msgid "Description" msgstr "Опис" -#: src/view/com/composer/GifAltText.tsx:140 +#: src/view/com/composer/GifAltText.tsx:141 msgid "Descriptive alt text" msgstr "" @@ -1521,8 +1537,8 @@ msgstr "" #: src/lib/moderation/useLabelBehaviorDescription.ts:32 #: src/lib/moderation/useLabelBehaviorDescription.ts:42 #: src/lib/moderation/useLabelBehaviorDescription.ts:68 -#: src/screens/Messages/Settings.tsx:124 -#: src/screens/Messages/Settings.tsx:127 +#: src/screens/Messages/Settings.tsx:140 +#: src/screens/Messages/Settings.tsx:143 #: src/screens/Moderation/index.tsx:341 msgid "Disabled" msgstr "Вимкнено" @@ -1585,8 +1601,8 @@ msgstr "Домен перевірено!" #: src/screens/Onboarding/StepProfile/index.tsx:328 #: src/view/com/auth/server-input/index.tsx:169 #: src/view/com/auth/server-input/index.tsx:170 -#: src/view/com/modals/AddAppPasswords.tsx:227 -#: src/view/com/modals/AltImage.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:243 +#: src/view/com/modals/AltImage.tsx:141 #: src/view/com/modals/crop-image/CropImage.web.tsx:177 #: src/view/com/modals/InviteCodes.tsx:81 #: src/view/com/modals/InviteCodes.tsx:124 @@ -1698,12 +1714,12 @@ msgid "Edit my profile" msgstr "Редагувати мій профіль" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:181 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:176 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:171 msgid "Edit profile" msgstr "Редагувати профіль" #: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 msgid "Edit Profile" msgstr "Редагувати профіль" @@ -1806,8 +1822,8 @@ msgstr "Увімкніть цей параметр, щоб бачити відп msgid "Enable this source only" msgstr "Увімкнути лише джерело" -#: src/screens/Messages/Settings.tsx:115 -#: src/screens/Messages/Settings.tsx:118 +#: src/screens/Messages/Settings.tsx:131 +#: src/screens/Messages/Settings.tsx:134 #: src/screens/Moderation/index.tsx:339 msgid "Enabled" msgstr "Увімкнено" @@ -1820,7 +1836,7 @@ msgstr "Кінець стрічки" #~ msgid "End of list" #~ msgstr "" -#: src/view/com/modals/AddAppPasswords.tsx:167 +#: src/view/com/modals/AddAppPasswords.tsx:161 msgid "Enter a name for this App Password" msgstr "Введіть ім'я для цього пароля застосунку" @@ -1828,8 +1844,8 @@ msgstr "Введіть ім'я для цього пароля застосунк msgid "Enter a password" msgstr "Введіть пароль" -#: src/components/dialogs/MutedWords.tsx:99 #: src/components/dialogs/MutedWords.tsx:100 +#: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" msgstr "Введіть слово або тег" @@ -1893,8 +1909,8 @@ msgstr "" #: src/components/dms/MessagesNUX.tsx:131 #: src/components/dms/MessagesNUX.tsx:134 -#: src/screens/Messages/Settings.tsx:74 -#: src/screens/Messages/Settings.tsx:77 +#: src/screens/Messages/Settings.tsx:75 +#: src/screens/Messages/Settings.tsx:78 msgid "Everyone" msgstr "" @@ -1944,12 +1960,12 @@ msgstr "Відверто або потенційно проблемний вмі msgid "Explicit sexual images." msgstr "Відверті сексуальні зображення." -#: src/view/screens/Settings/index.tsx:754 +#: src/view/screens/Settings/index.tsx:779 msgid "Export my data" msgstr "Експорт моїх даних" #: src/view/screens/Settings/ExportCarDialog.tsx:63 -#: src/view/screens/Settings/index.tsx:765 +#: src/view/screens/Settings/index.tsx:790 msgid "Export My Data" msgstr "Експорт моїх даних" @@ -1965,16 +1981,16 @@ msgstr "Зовнішні медіа можуть дозволяти вебсай #: src/Navigation.tsx:282 #: src/view/screens/PreferencesExternalEmbeds.tsx:53 -#: src/view/screens/Settings/index.tsx:647 +#: src/view/screens/Settings/index.tsx:672 msgid "External Media Preferences" msgstr "Налаштування зовнішніх медіа" -#: src/view/screens/Settings/index.tsx:638 +#: src/view/screens/Settings/index.tsx:663 msgid "External media settings" msgstr "Налаштування зовнішніх медіа" -#: src/view/com/modals/AddAppPasswords.tsx:116 #: src/view/com/modals/AddAppPasswords.tsx:120 +#: src/view/com/modals/AddAppPasswords.tsx:124 msgid "Failed to create app password." msgstr "Не вдалося створити пароль застосунку." @@ -2019,13 +2035,13 @@ msgstr "" #~ msgid "Failed to send message(s)." #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:224 +#: src/components/moderation/LabelsOnMeDialog.tsx:225 #: src/screens/Messages/Conversation/ChatDisabled.tsx:87 msgid "Failed to submit appeal, please try again." msgstr "" #: src/components/dms/MessagesNUX.tsx:60 -#: src/screens/Messages/Settings.tsx:34 +#: src/screens/Messages/Settings.tsx:35 msgid "Failed to update settings" msgstr "" @@ -2131,10 +2147,10 @@ msgstr "Віддзеркалити горизонтально" msgid "Flip vertically" msgstr "Віддзеркалити вертикально" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:249 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:247 msgid "Follow" @@ -2146,7 +2162,7 @@ msgid "Follow" msgstr "Підписатись" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:235 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:230 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:128 msgid "Follow {0}" msgstr "Підписатися на {0}" @@ -2193,9 +2209,9 @@ msgstr "підписка на вас" msgid "Followers" msgstr "Підписники" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:247 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 #: src/view/screens/Feeds.tsx:682 @@ -2204,7 +2220,7 @@ msgstr "Підписники" msgid "Following" msgstr "Підписані" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:92 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:90 msgid "Following {0}" msgstr "Підписання на \"{0}\"" @@ -2236,7 +2252,7 @@ msgstr "Їжа" msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "З міркувань безпеки нам потрібно буде відправити код підтвердження на вашу електронну адресу." -#: src/view/com/modals/AddAppPasswords.tsx:210 +#: src/view/com/modals/AddAppPasswords.tsx:233 msgid "For security reasons, you won't be able to view this again. If you lose this password, you'll need to generate a new one." msgstr "З міркувань безпеки цей пароль відображається лише один раз. Якщо ви втратите цей пароль, вам потрібно буде згенерувати новий." @@ -2245,11 +2261,11 @@ msgstr "З міркувань безпеки цей пароль відобра msgid "Forgot Password" msgstr "Забули пароль" -#: src/screens/Login/LoginForm.tsx:221 +#: src/screens/Login/LoginForm.tsx:224 msgid "Forgot password?" msgstr "Забули пароль?" -#: src/screens/Login/LoginForm.tsx:232 +#: src/screens/Login/LoginForm.tsx:235 msgid "Forgot?" msgstr "Забули пароль?" @@ -2261,7 +2277,7 @@ msgstr "Часто публікує неприйнятний контент" msgid "From @{sanitizedAuthor}" msgstr "Від @{sanitizedAuthor}" -#: src/view/com/posts/FeedItem.tsx:230 +#: src/view/com/posts/FeedItem.tsx:225 msgctxt "from-feed" msgid "From <0/>" msgstr "Зі стрічки \"<0/>\"" @@ -2309,7 +2325,7 @@ msgstr "Назад" #: src/components/dms/ReportDialog.tsx:152 #: src/components/ReportDialog/SelectReportOptionView.tsx:77 -#: src/components/ReportDialog/SubmitView.tsx:104 +#: src/components/ReportDialog/SubmitView.tsx:105 #: src/screens/Onboarding/Layout.tsx:102 #: src/screens/Onboarding/Layout.tsx:191 #: src/screens/Signup/index.tsx:187 @@ -2329,7 +2345,7 @@ msgstr "Повернутися на головну" #~ msgid "Go to @{queryMaybeHandle}" #~ msgstr "Перейти до @{queryMaybeHandle}" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "" @@ -2395,13 +2411,13 @@ msgstr "Ось декілька популярних тематичних стр msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." msgstr "Ось декілька тематичних стрічок на основі ваших інтересів: {interestsText}. Ви можете підписатися на скільки забажаєте з них." -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:204 msgid "Here is your app password." msgstr "Це ваш пароль для застосунків." #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:134 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/lib/moderation/useLabelBehaviorDescription.ts:15 #: src/lib/moderation/useLabelBehaviorDescription.ts:20 #: src/lib/moderation/useLabelBehaviorDescription.ts:25 @@ -2423,7 +2439,7 @@ msgid "Hide post" msgstr "Сховати пост" #: src/components/moderation/ContentHider.tsx:67 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Hide the content" msgstr "Приховати вміст" @@ -2476,7 +2492,7 @@ msgid "Host:" msgstr "Host:" #: src/screens/Login/ForgotPasswordForm.tsx:89 -#: src/screens/Login/LoginForm.tsx:154 +#: src/screens/Login/LoginForm.tsx:157 #: src/screens/Signup/StepInfo/index.tsx:40 #: src/view/com/modals/ChangeHandle.tsx:275 msgid "Hosting provider" @@ -2537,7 +2553,7 @@ msgstr "Незаконний та невідкладний" msgid "Image" msgstr "Зображення" -#: src/view/com/modals/AltImage.tsx:121 +#: src/view/com/modals/AltImage.tsx:122 msgid "Image alt text" msgstr "Опис зображення" @@ -2557,7 +2573,7 @@ msgstr "Введіть код, надісланий на вашу електро msgid "Input confirmation code for account deletion" msgstr "Введіть код підтвердження для видалення облікового запису" -#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/AddAppPasswords.tsx:175 msgid "Input name for app password" msgstr "Введіть ім'я для пароля застосунку" @@ -2569,19 +2585,19 @@ msgstr "Введіть новий пароль" msgid "Input password for account deletion" msgstr "Введіть пароль для видалення облікового запису" -#: src/screens/Login/LoginForm.tsx:260 +#: src/screens/Login/LoginForm.tsx:263 msgid "Input the code which has been emailed to you" msgstr "" -#: src/screens/Login/LoginForm.tsx:215 +#: src/screens/Login/LoginForm.tsx:218 msgid "Input the password tied to {identifier}" msgstr "Введіть пароль, прив'язаний до {identifier}" -#: src/screens/Login/LoginForm.tsx:188 +#: src/screens/Login/LoginForm.tsx:191 msgid "Input the username or email address you used at signup" msgstr "Введіть псевдонім або ел. адресу, які ви використовували для реєстрації" -#: src/screens/Login/LoginForm.tsx:214 +#: src/screens/Login/LoginForm.tsx:217 msgid "Input your password" msgstr "Введіть ваш пароль" @@ -2597,16 +2613,16 @@ msgstr "Введіть ваш псевдонім" msgid "Introducing Direct Messages" msgstr "" -#: src/screens/Login/LoginForm.tsx:129 +#: src/screens/Login/LoginForm.tsx:132 #: src/view/screens/Settings/DisableEmail2FADialog.tsx:70 msgid "Invalid 2FA confirmation code." msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:222 +#: src/view/com/post-thread/PostThreadItem.tsx:221 msgid "Invalid or unsupported post record" msgstr "Невірний або непідтримуваний пост" -#: src/screens/Login/LoginForm.tsx:134 +#: src/screens/Login/LoginForm.tsx:137 msgid "Invalid username or password" msgstr "Невірне ім'я користувача або пароль" @@ -2666,11 +2682,11 @@ msgstr "Мітки є анотаціями для користувачів і к #~ msgid "labels have been placed on this {labelTarget}" #~ msgstr "мітка була розміщена на {labelTarget}" -#: src/components/moderation/LabelsOnMeDialog.tsx:79 +#: src/components/moderation/LabelsOnMeDialog.tsx:80 msgid "Labels on your account" msgstr "Мітки на вашому обліковому записі" -#: src/components/moderation/LabelsOnMeDialog.tsx:81 +#: src/components/moderation/LabelsOnMeDialog.tsx:82 msgid "Labels on your content" msgstr "Мітки на вашому контенті" @@ -2705,7 +2721,7 @@ msgstr "Дізнатися більше" msgid "Learn more about the moderation applied to this content." msgstr "Дізнайтеся більше про те, яка модерація застосована до цього вмісту." -#: src/components/moderation/PostHider.tsx:94 +#: src/components/moderation/PostHider.tsx:96 #: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "Дізнатися більше про це попередження" @@ -2811,7 +2827,7 @@ msgstr "сподобався ваш пост" msgid "Likes" msgstr "Вподобання" -#: src/view/com/post-thread/PostThreadItem.tsx:183 +#: src/view/com/post-thread/PostThreadItem.tsx:182 msgid "Likes on this post" msgstr "Вподобайки цього поста" @@ -2869,7 +2885,7 @@ msgid "Load new notifications" msgstr "Завантажити нові сповіщення" #: src/screens/Profile/Sections/Feed.tsx:86 -#: src/view/com/feeds/FeedPage.tsx:142 +#: src/view/com/feeds/FeedPage.tsx:135 #: src/view/screens/ProfileFeed.tsx:492 #: src/view/screens/ProfileList.tsx:748 msgid "Load new posts" @@ -2926,7 +2942,7 @@ msgstr "" msgid "Make sure this is where you intend to go!" msgstr "Переконайтеся, що це дійсно той сайт, що ви збираєтеся відвідати!" -#: src/components/dialogs/MutedWords.tsx:82 +#: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" msgstr "Налаштовуйте ваші ігноровані слова та теги" @@ -2958,6 +2974,7 @@ msgid "Message {0}" msgstr "" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "" @@ -2970,18 +2987,18 @@ msgid "Message input field" msgstr "" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:37 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "" @@ -3094,11 +3111,11 @@ msgstr "Ігнорувати всі пости {displayTag}" msgid "Mute conversation" msgstr "" -#: src/components/dialogs/MutedWords.tsx:148 +#: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" msgstr "Ігнорувати лише в тегах" -#: src/components/dialogs/MutedWords.tsx:133 +#: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" msgstr "Ігнорувати в тексті та тегах" @@ -3115,11 +3132,11 @@ msgstr "Ігнорувати список" msgid "Mute these accounts?" msgstr "Ігнорувати ці облікові записи?" -#: src/components/dialogs/MutedWords.tsx:126 +#: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" msgstr "Ігнорувати це слово у постах і тегах" -#: src/components/dialogs/MutedWords.tsx:141 +#: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" msgstr "Ігнорувати це слово лише у тегах" @@ -3183,7 +3200,7 @@ msgstr "Мої збережені стрічки" msgid "My Saved Feeds" msgstr "Мої збережені стрічки" -#: src/view/com/modals/AddAppPasswords.tsx:180 +#: src/view/com/modals/AddAppPasswords.tsx:174 #: src/view/com/modals/CreateOrEditList.tsx:293 msgid "Name" msgstr "Ім'я" @@ -3203,7 +3220,7 @@ msgid "Nature" msgstr "Природа" #: src/screens/Login/ForgotPasswordForm.tsx:173 -#: src/screens/Login/LoginForm.tsx:306 +#: src/screens/Login/LoginForm.tsx:309 #: src/view/com/modals/ChangePassword.tsx:170 msgid "Navigates to the next screen" msgstr "Переходить до наступного екрана" @@ -3239,8 +3256,8 @@ msgid "New" msgstr "Новий" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "" @@ -3260,7 +3277,7 @@ msgstr "Новий пароль" msgid "New Password" msgstr "Новий Пароль" -#: src/view/com/feeds/FeedPage.tsx:153 +#: src/view/com/feeds/FeedPage.tsx:146 msgctxt "action" msgid "New post" msgstr "Новий пост" @@ -3294,8 +3311,8 @@ msgstr "Новини" #: src/screens/Login/ForgotPasswordForm.tsx:143 #: src/screens/Login/ForgotPasswordForm.tsx:150 -#: src/screens/Login/LoginForm.tsx:305 -#: src/screens/Login/LoginForm.tsx:312 +#: src/screens/Login/LoginForm.tsx:308 +#: src/screens/Login/LoginForm.tsx:315 #: src/screens/Login/SetNewPasswordForm.tsx:174 #: src/screens/Login/SetNewPasswordForm.tsx:180 #: src/screens/Signup/index.tsx:220 @@ -3335,7 +3352,7 @@ msgstr "Немає панелі DNS" msgid "No featured GIFs found. There may be an issue with Tenor." msgstr "" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:117 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:112 msgid "No longer following {0}" msgstr "Ви більше не підписані на {0}" @@ -3347,7 +3364,7 @@ msgstr "Не може бути довшим за 253 символи" msgid "No messages yet" msgstr "" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "" @@ -3357,8 +3374,8 @@ msgstr "Ще ніяких сповіщень!" #: src/components/dms/MessagesNUX.tsx:149 #: src/components/dms/MessagesNUX.tsx:152 -#: src/screens/Messages/Settings.tsx:92 -#: src/screens/Messages/Settings.tsx:95 +#: src/screens/Messages/Settings.tsx:93 +#: src/screens/Messages/Settings.tsx:96 msgid "No one" msgstr "" @@ -3367,7 +3384,7 @@ msgstr "" msgid "No result" msgstr "Результати відсутні" -#: src/components/dms/NewChatDialog/index.tsx:380 +#: src/components/dms/NewChatDialog/index.tsx:378 msgid "No results" msgstr "" @@ -3439,15 +3456,15 @@ msgstr "Примітка щодо поширення" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "Примітка: Bluesky є відкритою і публічною мережею. Цей параметр обмежує видимість вашого вмісту лише у застосунках і на сайті Bluesky, але інші застосунки можуть цього не дотримуватися. Ваш вміст все ще може бути показаний відвідувачам без облікового запису іншими застосунками і вебсайтами." -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "" -#: src/screens/Messages/Settings.tsx:108 +#: src/screens/Messages/Settings.tsx:124 msgid "Notification sounds" msgstr "" -#: src/screens/Messages/Settings.tsx:105 +#: src/screens/Messages/Settings.tsx:121 msgid "Notification Sounds" msgstr "" @@ -3528,7 +3545,7 @@ msgid "Oops, something went wrong!" msgstr "Ой, щось пішло не так!" #: src/components/Lists.tsx:191 -#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/AppPasswords.tsx:69 #: src/view/screens/Profile.tsx:100 msgid "Oops!" msgstr "Ой!" @@ -3541,8 +3558,8 @@ msgstr "Відкрити" msgid "Open avatar creator" msgstr "" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "" @@ -3555,7 +3572,7 @@ msgstr "Емоджі" msgid "Open feed options menu" msgstr "Відкрити меню налаштувань стрічки" -#: src/view/screens/Settings/index.tsx:704 +#: src/view/screens/Settings/index.tsx:729 msgid "Open links with in-app browser" msgstr "Вбудований браузер" @@ -3575,12 +3592,12 @@ msgstr "Відкрити навігацію" msgid "Open post options menu" msgstr "Відкрити меню налаштувань посту" -#: src/view/screens/Settings/index.tsx:805 -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:830 +#: src/view/screens/Settings/index.tsx:840 msgid "Open storybook page" msgstr "Відкрити storybook сторінку" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:818 msgid "Open system log" msgstr "Відкрити системний журнал" @@ -3604,6 +3621,10 @@ msgstr "Відкрити розширений список користувач msgid "Opens camera on device" msgstr "Відкриває камеру на пристрої" +#: src/view/screens/Settings/index.tsx:632 +msgid "Opens chat settings" +msgstr "" + #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" msgstr "Відкрити редактор" @@ -3616,7 +3637,7 @@ msgstr "Відкриває налаштування мов" msgid "Opens device photo gallery" msgstr "Відкриває фотогалерею пристрою" -#: src/view/screens/Settings/index.tsx:639 +#: src/view/screens/Settings/index.tsx:664 msgid "Opens external embeds settings" msgstr "Відкриває налаштування зовнішніх вбудувань" @@ -3638,23 +3659,23 @@ msgstr "" msgid "Opens list of invite codes" msgstr "Відкриває список кодів запрошення" -#: src/view/screens/Settings/index.tsx:775 +#: src/view/screens/Settings/index.tsx:800 msgid "Opens modal for account deletion confirmation. Requires email code" msgstr "Відкриває модальне вікно для підтвердження видалення облікового запису. Потребує код з електронної пошти" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:758 msgid "Opens modal for changing your Bluesky password" msgstr "Відкриває модальне вікно для зміни паролю в Bluesky" -#: src/view/screens/Settings/index.tsx:688 +#: src/view/screens/Settings/index.tsx:713 msgid "Opens modal for choosing a new Bluesky handle" msgstr "Відкриває модальне вікно для вибору псевдоніму в Bluesky" -#: src/view/screens/Settings/index.tsx:756 +#: src/view/screens/Settings/index.tsx:781 msgid "Opens modal for downloading your Bluesky account data (repository)" msgstr "Відкриває модальне вікно для завантаження даних з вашого облікового запису Bluesky (репозиторій)" -#: src/view/screens/Settings/index.tsx:953 +#: src/view/screens/Settings/index.tsx:978 msgid "Opens modal for email verification" msgstr "Відкриває модальне вікно для перевірки електронної пошти" @@ -3666,7 +3687,7 @@ msgstr "Відкриває діалог налаштування власног msgid "Opens moderation settings" msgstr "Відкриває налаштування модерації" -#: src/screens/Login/LoginForm.tsx:222 +#: src/screens/Login/LoginForm.tsx:225 msgid "Opens password reset form" msgstr "Відкриває форму скидання пароля" @@ -3679,7 +3700,7 @@ msgstr "Відкриває сторінку з усіма збереженими msgid "Opens screen with all saved feeds" msgstr "Відкриває сторінку з усіма збереженими каналами" -#: src/view/screens/Settings/index.tsx:666 +#: src/view/screens/Settings/index.tsx:691 msgid "Opens the app password settings" msgstr "Відкриває налаштування паролів для застосунків" @@ -3695,12 +3716,12 @@ msgstr "Відкриває посилання" #~ msgid "Opens the message settings page" #~ msgstr "" -#: src/view/screens/Settings/index.tsx:806 -#: src/view/screens/Settings/index.tsx:816 +#: src/view/screens/Settings/index.tsx:831 +#: src/view/screens/Settings/index.tsx:841 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings/index.tsx:794 +#: src/view/screens/Settings/index.tsx:819 msgid "Opens the system log page" msgstr "Відкриває системний журнал" @@ -3713,7 +3734,7 @@ msgid "Option {0} of {numItems}" msgstr "Опція {0} з {numItems}" #: src/components/dms/ReportDialog.tsx:181 -#: src/components/ReportDialog/SubmitView.tsx:162 +#: src/components/ReportDialog/SubmitView.tsx:163 msgid "Optionally provide additional information below:" msgstr "За бажанням надайте додаткову інформацію нижче:" @@ -3746,7 +3767,7 @@ msgstr "Сторінку не знайдено" msgid "Page Not Found" msgstr "Сторінку не знайдено" -#: src/screens/Login/LoginForm.tsx:198 +#: src/screens/Login/LoginForm.tsx:201 #: src/screens/Signup/StepInfo/index.tsx:102 #: src/view/com/modals/DeleteAccount.tsx:205 #: src/view/com/modals/DeleteAccount.tsx:212 @@ -3856,15 +3877,15 @@ msgstr "Будь ласка, завершіть перевірку Captcha." msgid "Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed." msgstr "Будь ласка, підтвердіть вашу електронну адресу, перш ніж змінити її. Це тимчасова вимога під час додавання інструментів оновлення електронної адреси, незабаром її видалять." -#: src/view/com/modals/AddAppPasswords.tsx:91 +#: src/view/com/modals/AddAppPasswords.tsx:95 msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "Будь ласка, введіть ім'я для пароля застосунку. Пробіли і пропуски не допускаються." -#: src/view/com/modals/AddAppPasswords.tsx:146 +#: src/view/com/modals/AddAppPasswords.tsx:151 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "Будь ласка, введіть унікальну назву для цього паролю або використовуйте нашу випадково згенеровану." -#: src/components/dialogs/MutedWords.tsx:67 +#: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" msgstr "Будь ласка, введіть допустиме слово, тег або фразу для ігнорування" @@ -3876,7 +3897,7 @@ msgstr "Будь ласка, введіть адресу ел. пошти." msgid "Please enter your password as well:" msgstr "Будь ласка, також введіть ваш пароль:" -#: src/components/moderation/LabelsOnMeDialog.tsx:257 +#: src/components/moderation/LabelsOnMeDialog.tsx:258 msgid "Please explain why you think this label was incorrectly applied by {0}" msgstr "Будь ласка, поясніть, чому ви вважаєте, що ця позначка була помилково додана до {0}" @@ -3911,12 +3932,12 @@ msgctxt "action" msgid "Post" msgstr "Запостити" -#: src/view/com/post-thread/PostThread.tsx:295 +#: src/view/com/post-thread/PostThread.tsx:331 msgctxt "description" msgid "Post" msgstr "Пост" -#: src/view/com/post-thread/PostThreadItem.tsx:176 +#: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" msgstr "Пост від {0}" @@ -3930,7 +3951,7 @@ msgstr "Пост від @{0}" msgid "Post deleted" msgstr "Пост видалено" -#: src/view/com/post-thread/PostThread.tsx:157 +#: src/view/com/post-thread/PostThread.tsx:193 msgid "Post hidden" msgstr "Пост приховано" @@ -3952,8 +3973,8 @@ msgstr "Мова посту" msgid "Post Languages" msgstr "Мови посту" -#: src/view/com/post-thread/PostThread.tsx:152 -#: src/view/com/post-thread/PostThread.tsx:164 +#: src/view/com/post-thread/PostThread.tsx:188 +#: src/view/com/post-thread/PostThread.tsx:200 msgid "Post not found" msgstr "Пост не знайдено" @@ -3965,7 +3986,7 @@ msgstr "пости" msgid "Posts" msgstr "Пости" -#: src/components/dialogs/MutedWords.tsx:89 +#: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." msgstr "Пости можуть бути ігноровані за їхнім текстом, тегами чи за обома." @@ -4009,7 +4030,7 @@ msgstr "Основна мова" msgid "Prioritize Your Follows" msgstr "Пріоритезувати ваші підписки" -#: src/view/screens/Settings/index.tsx:622 +#: src/view/screens/Settings/index.tsx:647 #: src/view/shell/desktop/RightNav.tsx:76 msgid "Privacy" msgstr "Конфіденційність" @@ -4017,7 +4038,7 @@ msgstr "Конфіденційність" #: src/Navigation.tsx:238 #: src/screens/Signup/StepInfo/Policies.tsx:56 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:902 +#: src/view/screens/Settings/index.tsx:927 #: src/view/shell/Drawer.tsx:284 msgid "Privacy Policy" msgstr "Політика конфіденційності" @@ -4030,7 +4051,7 @@ msgstr "" msgid "Processing..." msgstr "Обробка..." -#: src/view/screens/DebugMod.tsx:889 +#: src/view/screens/DebugMod.tsx:894 #: src/view/screens/Profile.tsx:345 msgid "profile" msgstr "профіль" @@ -4047,7 +4068,7 @@ msgstr "Профіль" msgid "Profile updated" msgstr "Профіль оновлено" -#: src/view/screens/Settings/index.tsx:966 +#: src/view/screens/Settings/index.tsx:991 msgid "Protect your account by verifying your email." msgstr "Захистіть свій обліковий запис, підтвердивши свою електронну адресу." @@ -4117,11 +4138,11 @@ msgstr "Останні запити" msgid "Reconnect" msgstr "" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "" -#: src/components/dialogs/MutedWords.tsx:286 +#: src/components/dialogs/MutedWords.tsx:288 #: src/view/com/feeds/FeedSourceCard.tsx:285 #: src/view/com/modals/ListAddRemoveUsers.tsx:268 #: src/view/com/modals/SelfLabel.tsx:84 @@ -4172,7 +4193,7 @@ msgstr "Вилучити зображення" msgid "Remove image preview" msgstr "Вилучити попередній перегляд зображення" -#: src/components/dialogs/MutedWords.tsx:329 +#: src/components/dialogs/MutedWords.tsx:331 msgid "Remove mute word from your list" msgstr "Вилучити ігноровані слова з вашого списку" @@ -4240,7 +4261,7 @@ msgstr "Які відповіді показувати" #~ msgstr "У відповідь <0/>" #: src/view/com/post/Post.tsx:176 -#: src/view/com/posts/FeedItem.tsx:336 +#: src/view/com/posts/FeedItem.tsx:421 msgctxt "description" msgid "Reply to <0><1/>" msgstr "" @@ -4336,7 +4357,7 @@ msgstr "Репостити або цитувати" msgid "Reposted By" msgstr "Зробив(-ла) репост" -#: src/view/com/posts/FeedItem.tsx:248 +#: src/view/com/posts/FeedItem.tsx:243 msgid "Reposted by {0}" msgstr "{0} зробив(-ла) репост" @@ -4344,7 +4365,7 @@ msgstr "{0} зробив(-ла) репост" #~ msgid "Reposted by <0/>" #~ msgstr "" -#: src/view/com/posts/FeedItem.tsx:266 +#: src/view/com/posts/FeedItem.tsx:261 msgid "Reposted by <0><1/>" msgstr "Зроблено репост від <0><1/>" @@ -4352,7 +4373,7 @@ msgstr "Зроблено репост від <0><1/>" msgid "reposted your post" msgstr "зробив(-ла) репост вашого допису" -#: src/view/com/post-thread/PostThreadItem.tsx:188 +#: src/view/com/post-thread/PostThreadItem.tsx:187 msgid "Reposts of this post" msgstr "Репости цього поста" @@ -4391,8 +4412,8 @@ msgstr "Код підтвердження" msgid "Reset Code" msgstr "Код скидання" -#: src/view/screens/Settings/index.tsx:845 -#: src/view/screens/Settings/index.tsx:848 +#: src/view/screens/Settings/index.tsx:870 +#: src/view/screens/Settings/index.tsx:873 msgid "Reset onboarding state" msgstr "" @@ -4400,20 +4421,20 @@ msgstr "" msgid "Reset password" msgstr "Скинути пароль" -#: src/view/screens/Settings/index.tsx:825 -#: src/view/screens/Settings/index.tsx:828 +#: src/view/screens/Settings/index.tsx:850 +#: src/view/screens/Settings/index.tsx:853 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings/index.tsx:846 +#: src/view/screens/Settings/index.tsx:871 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings/index.tsx:826 +#: src/view/screens/Settings/index.tsx:851 msgid "Resets the preferences state" msgstr "" -#: src/screens/Login/LoginForm.tsx:286 +#: src/screens/Login/LoginForm.tsx:289 msgid "Retries login" msgstr "Повторити спробу" @@ -4425,8 +4446,8 @@ msgstr "Повторити останню дію, яка спричинила п #: src/components/dms/MessageItem.tsx:227 #: src/components/Error.tsx:90 #: src/components/Lists.tsx:104 -#: src/screens/Login/LoginForm.tsx:285 -#: src/screens/Login/LoginForm.tsx:292 +#: src/screens/Login/LoginForm.tsx:288 +#: src/screens/Login/LoginForm.tsx:295 #: src/screens/Messages/Conversation/MessageListError.tsx:25 #: src/screens/Onboarding/StepInterests/index.tsx:236 #: src/screens/Onboarding/StepInterests/index.tsx:239 @@ -4455,8 +4476,8 @@ msgid "Returns to previous page" msgstr "Повертає до попередньої сторінки" #: src/components/dialogs/BirthDateSettings.tsx:125 -#: src/view/com/composer/GifAltText.tsx:162 -#: src/view/com/composer/GifAltText.tsx:168 +#: src/view/com/composer/GifAltText.tsx:163 +#: src/view/com/composer/GifAltText.tsx:169 #: src/view/com/modals/ChangeHandle.tsx:168 #: src/view/com/modals/CreateOrEditList.tsx:340 #: src/view/com/modals/EditProfile.tsx:225 @@ -4469,7 +4490,7 @@ msgctxt "action" msgid "Save" msgstr "Зберегти" -#: src/view/com/modals/AltImage.tsx:131 +#: src/view/com/modals/AltImage.tsx:132 msgid "Save alt text" msgstr "Зберегти опис" @@ -4677,7 +4698,7 @@ msgstr "Оберіть деякі облікові записи, щоб підп msgid "Select the {emojiName} emoji as your avatar" msgstr "" -#: src/components/ReportDialog/SubmitView.tsx:135 +#: src/components/ReportDialog/SubmitView.tsx:136 msgid "Select the moderation service(s) to report to" msgstr "Оберіть сервіс модерації для скарги" @@ -4745,14 +4766,14 @@ msgid "Send feedback" msgstr "Надіслати відгук" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:110 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "" #: src/components/dms/ReportDialog.tsx:232 #: src/components/dms/ReportDialog.tsx:235 -#: src/components/ReportDialog/SubmitView.tsx:215 -#: src/components/ReportDialog/SubmitView.tsx:219 +#: src/components/ReportDialog/SubmitView.tsx:216 +#: src/components/ReportDialog/SubmitView.tsx:220 msgid "Send report" msgstr "Поскаржитись" @@ -4846,7 +4867,6 @@ msgid "Sets image aspect ratio to wide" msgstr "Встановлює співвідношення сторін зображення до ширини" #: src/Navigation.tsx:146 -#: src/screens/Messages/Settings.tsx:58 #: src/view/screens/Settings/index.tsx:325 #: src/view/shell/desktop/LeftNav.tsx:389 #: src/view/shell/Drawer.tsx:558 @@ -4910,7 +4930,7 @@ msgstr "Поширює посилання" #: src/components/moderation/ContentHider.tsx:115 #: src/components/moderation/LabelPreference.tsx:136 -#: src/components/moderation/PostHider.tsx:116 +#: src/components/moderation/PostHider.tsx:118 #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 #: src/view/screens/Settings/index.tsx:374 msgid "Show" @@ -4938,10 +4958,14 @@ msgstr "Показати значок" msgid "Show badge and filter from feeds" msgstr "Показати значок і фільтри зі стрічки" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:212 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:207 msgid "Show follows similar to {0}" msgstr "Показати підписки, схожі на {0}" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show hidden replies" +msgstr "" + #: src/view/com/util/forms/PostDropdownBtn.tsx:305 #: src/view/com/util/forms/PostDropdownBtn.tsx:307 msgid "Show less like this" @@ -4949,7 +4973,7 @@ msgstr "" #: src/view/com/post-thread/PostThreadItem.tsx:508 #: src/view/com/post/Post.tsx:213 -#: src/view/com/posts/FeedItem.tsx:417 +#: src/view/com/posts/FeedItem.tsx:386 msgid "Show More" msgstr "Показати більше" @@ -4958,6 +4982,10 @@ msgstr "Показати більше" msgid "Show more like this" msgstr "" +#: src/view/com/post-thread/PostThreadShowHiddenReplies.tsx:21 +msgid "Show muted replies" +msgstr "" + #: src/view/screens/PreferencesFollowingFeed.tsx:257 msgid "Show Posts from My Feeds" msgstr "Показувати пости зі збережених стрічок" @@ -5007,7 +5035,7 @@ msgid "Show reposts in Following" msgstr "Показувати репости у стрічці \"Following\"" #: src/components/moderation/ContentHider.tsx:68 -#: src/components/moderation/PostHider.tsx:73 +#: src/components/moderation/PostHider.tsx:75 msgid "Show the content" msgstr "Показати вміст" @@ -5031,7 +5059,7 @@ msgstr "Показує дописи з {0} у вашій стрічці" #: src/components/dialogs/Signin.tsx:99 #: src/screens/Login/index.tsx:100 #: src/screens/Login/index.tsx:119 -#: src/screens/Login/LoginForm.tsx:151 +#: src/screens/Login/LoginForm.tsx:154 #: src/view/com/auth/SplashScreen.tsx:63 #: src/view/com/auth/SplashScreen.tsx:72 #: src/view/com/auth/SplashScreen.web.tsx:112 @@ -5127,7 +5155,7 @@ msgid "Something went wrong, please try again." msgstr "Щось пішло не так. Будь ласка, спробуйте ще раз." #: src/App.native.tsx:85 -#: src/App.web.tsx:73 +#: src/App.web.tsx:74 msgid "Sorry! Your session expired. Please log in again." msgstr "Даруйте! Ваш сеанс вичерпався. Будь ласка, увійдіть знову." @@ -5143,7 +5171,7 @@ msgstr "Оберіть, як сортувати відповіді до пост #~ msgid "Source:" #~ msgstr "Джерело:" -#: src/components/moderation/LabelsOnMeDialog.tsx:169 +#: src/components/moderation/LabelsOnMeDialog.tsx:170 msgid "Source: <0>{0}" msgstr "" @@ -5164,7 +5192,7 @@ msgstr "Спорт" msgid "Square" msgstr "Квадратне" -#: src/components/dms/NewChatDialog/index.tsx:469 +#: src/components/dms/NewChatDialog/index.tsx:467 msgid "Start a new chat" msgstr "" @@ -5180,7 +5208,7 @@ msgstr "" #~ msgid "Status page" #~ msgstr "Сторінка стану" -#: src/view/screens/Settings/index.tsx:908 +#: src/view/screens/Settings/index.tsx:933 msgid "Status Page" msgstr "" @@ -5197,12 +5225,12 @@ msgid "Storage cleared, you need to restart the app now." msgstr "Сховище очищено, тепер вам треба перезапустити застосунок." #: src/Navigation.tsx:218 -#: src/view/screens/Settings/index.tsx:808 +#: src/view/screens/Settings/index.tsx:833 msgid "Storybook" msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:291 #: src/components/moderation/LabelsOnMeDialog.tsx:292 +#: src/components/moderation/LabelsOnMeDialog.tsx:293 #: src/screens/Messages/Conversation/ChatDisabled.tsx:142 #: src/screens/Messages/Conversation/ChatDisabled.tsx:143 msgid "Submit" @@ -5268,11 +5296,11 @@ msgstr "Переключає обліковий запис" msgid "System" msgstr "Системне" -#: src/view/screens/Settings/index.tsx:796 +#: src/view/screens/Settings/index.tsx:821 msgid "System log" msgstr "Системний журнал" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "tag" msgstr "тег" @@ -5302,7 +5330,7 @@ msgstr "Умови" #: src/Navigation.tsx:243 #: src/screens/Signup/StepInfo/Policies.tsx:49 -#: src/view/screens/Settings/index.tsx:896 +#: src/view/screens/Settings/index.tsx:921 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:278 msgid "Terms of Service" @@ -5314,17 +5342,17 @@ msgstr "Умови Використання" msgid "Terms used violate community standards" msgstr "Використані терміни порушують стандарти спільноти" -#: src/components/dialogs/MutedWords.tsx:323 +#: src/components/dialogs/MutedWords.tsx:325 msgid "text" msgstr "текст" -#: src/components/moderation/LabelsOnMeDialog.tsx:255 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 #: src/screens/Messages/Conversation/ChatDisabled.tsx:108 msgid "Text input field" msgstr "Поле вводу тексту" #: src/components/dms/ReportDialog.tsx:132 -#: src/components/ReportDialog/SubmitView.tsx:77 +#: src/components/ReportDialog/SubmitView.tsx:78 msgid "Thank you. Your report has been sent." msgstr "Дякуємо. Вашу скаргу було надіслано." @@ -5336,7 +5364,7 @@ msgstr "Що містить наступне:" msgid "That handle is already taken." msgstr "Цей псевдонім вже зайнятий." -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:296 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:291 #: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." msgstr "Обліковий запис зможе взаємодіяти з вами після розблокування." @@ -5357,11 +5385,11 @@ msgstr "Політику захисту авторського права пер msgid "The feed has been replaced with Discover." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:65 +#: src/components/moderation/LabelsOnMeDialog.tsx:66 msgid "The following labels were applied to your account." msgstr "Наступні мітки були додано до вашого облікового запису." -#: src/components/moderation/LabelsOnMeDialog.tsx:66 +#: src/components/moderation/LabelsOnMeDialog.tsx:67 msgid "The following labels were applied to your content." msgstr "Наступні мітки були додано до вашого контенту." @@ -5369,8 +5397,8 @@ msgstr "Наступні мітки були додано до вашого ко msgid "The following steps will help customize your Bluesky experience." msgstr "Наступні кроки допоможуть налаштувати Ваш досвід використання Bluesky." -#: src/view/com/post-thread/PostThread.tsx:153 -#: src/view/com/post-thread/PostThread.tsx:165 +#: src/view/com/post-thread/PostThread.tsx:189 +#: src/view/com/post-thread/PostThread.tsx:201 msgid "The post may have been deleted." msgstr "Можливо цей пост було видалено." @@ -5445,7 +5473,7 @@ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "Виникла проблема з завантаженням ваших списків. Натисніть тут, щоб повторити спробу." #: src/components/dms/ReportDialog.tsx:220 -#: src/components/ReportDialog/SubmitView.tsx:82 +#: src/components/ReportDialog/SubmitView.tsx:83 msgid "There was an issue sending your report. Please check your internet connection." msgstr "Виникла проблема з надсиланням вашої скарги. Будь ласка, перевірте підключення до Інтернету." @@ -5453,13 +5481,13 @@ msgstr "Виникла проблема з надсиланням вашої с msgid "There was an issue syncing your preferences with the server" msgstr "Виникла проблема під час синхронізації ваших налаштувань із сервером" -#: src/view/screens/AppPasswords.tsx:68 +#: src/view/screens/AppPasswords.tsx:70 msgid "There was an issue with fetching your app passwords" msgstr "Виникла проблема з завантаженням ваших паролів для застосунків" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:104 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:126 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:140 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:99 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:121 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:135 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:99 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:111 #: src/view/com/profile/ProfileMenu.tsx:107 @@ -5503,7 +5531,7 @@ msgstr "Цей користувач вказав, що не хоче, аби й msgid "This account is blocked by one or more of your moderation lists. To unblock, please visit the lists directly and remove this user." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:240 +#: src/components/moderation/LabelsOnMeDialog.tsx:241 msgid "This appeal will be sent to <0>{0}." msgstr "Це звернення буде надіслано до <0>{0}." @@ -5586,7 +5614,7 @@ msgstr "" #~ msgid "This label was applied by you" #~ msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:167 +#: src/components/moderation/LabelsOnMeDialog.tsx:168 msgid "This label was applied by you." msgstr "" @@ -5606,11 +5634,11 @@ msgstr "Список порожній!" msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." msgstr "Даний сервіс модерації недоступний. Перегляньте деталі нижче. Якщо проблема не зникне, зв'яжіться з нами." -#: src/view/com/modals/AddAppPasswords.tsx:107 +#: src/view/com/modals/AddAppPasswords.tsx:111 msgid "This name is already in use" msgstr "Це ім'я вже використовується" -#: src/view/com/post-thread/PostThreadItem.tsx:126 +#: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "Цей пост було видалено." @@ -5668,7 +5696,7 @@ msgstr "Цей користувач не підписаний ні на кого #~ msgid "This warning is only available for posts with media attached." #~ msgstr "Це попередження доступне тільки для записів з прикріпленими медіа-файлами." -#: src/components/dialogs/MutedWords.tsx:283 +#: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." msgstr "Це видалить {0} зі ваших ігнорованих слів. Ви завжди можете додати його назад." @@ -5701,7 +5729,7 @@ msgstr "" msgid "To whom would you like to send this report?" msgstr "Кому ви хотіли б відправити цю скаргу?" -#: src/components/dialogs/MutedWords.tsx:112 +#: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." msgstr "Перемикання між опціями ігнорування слів." @@ -5734,7 +5762,7 @@ msgctxt "action" msgid "Try again" msgstr "Спробувати ще раз" -#: src/view/screens/Settings/index.tsx:713 +#: src/view/screens/Settings/index.tsx:738 msgid "Two-factor authentication" msgstr "" @@ -5756,7 +5784,7 @@ msgstr "Перестати ігнорувати" #: src/screens/Login/ForgotPasswordForm.tsx:74 #: src/screens/Login/index.tsx:78 -#: src/screens/Login/LoginForm.tsx:139 +#: src/screens/Login/LoginForm.tsx:142 #: src/screens/Login/SetNewPasswordForm.tsx:77 #: src/screens/Signup/index.tsx:66 #: src/view/com/modals/ChangePassword.tsx:72 @@ -5767,14 +5795,14 @@ msgstr "Не вдалося зв'язатися з вашим хостинг-п #: src/components/dms/MessagesListBlockedFooter.tsx:96 #: src/components/dms/MessagesListBlockedFooter.tsx:104 #: src/components/dms/MessagesListBlockedFooter.tsx:111 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:300 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:184 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:295 #: src/view/com/profile/ProfileMenu.tsx:361 #: src/view/screens/ProfileList.tsx:625 msgid "Unblock" msgstr "Розблокувати" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:194 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:189 msgctxt "action" msgid "Unblock" msgstr "Розблокувати" @@ -5789,7 +5817,7 @@ msgstr "" msgid "Unblock Account" msgstr "Розблокувати обліковий запис" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:294 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:289 #: src/view/com/profile/ProfileMenu.tsx:343 msgid "Unblock Account?" msgstr "Розблокувати обліковий запис?" @@ -5810,7 +5838,7 @@ msgstr "Відписатись" msgid "Unfollow" msgstr "Не стежити" -#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:234 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 msgid "Unfollow {0}" msgstr "Відписатися від {0}" @@ -5935,7 +5963,7 @@ msgstr "Завантажити з бібліотеки" msgid "Use a file on your server" msgstr "Використовувати файл на вашому сервері" -#: src/view/screens/AppPasswords.tsx:197 +#: src/view/screens/AppPasswords.tsx:200 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "Використовуйте паролі для застосунків для входу в інших застосунках для Bluesky. Це дозволить використовувати їх, не надаючи повний доступ до вашого облікового запису і вашого основного пароля." @@ -5965,7 +5993,7 @@ msgstr "" msgid "Use the DNS panel" msgstr "Використати панель DNS" -#: src/view/com/modals/AddAppPasswords.tsx:156 +#: src/view/com/modals/AddAppPasswords.tsx:206 msgid "Use this to sign into the other app along with your handle." msgstr "Скористайтесь ним для входу в інші застосунки." @@ -6025,7 +6053,7 @@ msgstr "Список користувачів оновлено" msgid "User Lists" msgstr "Списки користувачів" -#: src/screens/Login/LoginForm.tsx:171 +#: src/screens/Login/LoginForm.tsx:174 msgid "Username or email address" msgstr "Ім'я користувача або електронна адреса" @@ -6039,8 +6067,8 @@ msgstr "користувачі, на яких підписані <0/>" #: src/components/dms/MessagesNUX.tsx:140 #: src/components/dms/MessagesNUX.tsx:143 -#: src/screens/Messages/Settings.tsx:83 -#: src/screens/Messages/Settings.tsx:86 +#: src/screens/Messages/Settings.tsx:84 +#: src/screens/Messages/Settings.tsx:87 msgid "Users I follow" msgstr "" @@ -6064,15 +6092,15 @@ msgstr "Значення:" msgid "Verify DNS Record" msgstr "" -#: src/view/screens/Settings/index.tsx:927 +#: src/view/screens/Settings/index.tsx:952 msgid "Verify email" msgstr "Підтвердити електронну адресу" -#: src/view/screens/Settings/index.tsx:952 +#: src/view/screens/Settings/index.tsx:977 msgid "Verify my email" msgstr "Підтвердити мою електронну адресу" -#: src/view/screens/Settings/index.tsx:961 +#: src/view/screens/Settings/index.tsx:986 msgid "Verify My Email" msgstr "Підтвердити мою електронну адресу" @@ -6093,7 +6121,7 @@ msgstr "Підтвердьте адресу вашої електронної п #~ msgid "Version {0}" #~ msgstr "Версія {0}" -#: src/view/screens/Settings/index.tsx:880 +#: src/view/screens/Settings/index.tsx:905 msgid "Version {appVersion} {bundleInfo}" msgstr "" @@ -6117,7 +6145,7 @@ msgstr "Переглянути деталі" msgid "View details for reporting a copyright violation" msgstr "Переглянути деталі як надіслати скаргу про порушення авторських прав" -#: src/view/com/posts/FeedSlice.tsx:104 +#: src/view/com/posts/FeedSlice.tsx:112 msgid "View full thread" msgstr "Переглянути обговорення" @@ -6125,8 +6153,8 @@ msgstr "Переглянути обговорення" msgid "View information about these labels" msgstr "Переглянути інформацію про мітки" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "Переглянути профіль" @@ -6183,7 +6211,7 @@ msgstr "Ми сподіваємося, що ви проведете чудово msgid "We ran out of posts from your follows. Here's the latest from <0/>." msgstr "У нас закінчилися дописи у ваших підписках. Ось останні пости зі стрічки <0/>." -#: src/components/dialogs/MutedWords.tsx:203 +#: src/components/dialogs/MutedWords.tsx:204 msgid "We recommend avoiding common words that appear in many posts, since it can result in no posts being shown." msgstr "Ми рекомендуємо уникати загальних слів, що зʼявляються у багатьох постах, оскільки це може призвести до того, що жодного поста не буде показано." @@ -6211,7 +6239,7 @@ msgstr "Ми повідомимо вас, коли ваш обліковий з msgid "We'll use this to help customize your experience." msgstr "Ми скористаємося цим, щоб підлаштувати Ваш досвід." -#: src/components/dms/NewChatDialog/index.tsx:328 +#: src/components/dms/NewChatDialog/index.tsx:326 msgid "We're having network issues, try again" msgstr "" @@ -6223,7 +6251,7 @@ msgstr "Ми дуже раді, що ви приєдналися!" msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." msgstr "Дуже прикро, але нам не вдалося знайти цей список. Якщо це продовжується, будь ласка, зв'яжіться з його автором: @{handleOrDid}." -#: src/components/dialogs/MutedWords.tsx:229 +#: src/components/dialogs/MutedWords.tsx:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." msgstr "На жаль, ми не змогли зараз завантажити ваші ігноровані слова. Будь ласка, спробуйте ще раз." @@ -6272,7 +6300,7 @@ msgid "Who can reply" msgstr "Хто може відповідати" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "" @@ -6305,7 +6333,7 @@ msgid "Wide" msgstr "Широке" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:98 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "" @@ -6357,6 +6385,10 @@ msgstr "Ви можете змінити ці налаштування пізн msgid "You can change this at any time." msgstr "" +#: src/screens/Messages/Settings.tsx:111 +msgid "You can continue ongoing conversations regardless of which setting you choose." +msgstr "" + #: src/screens/Login/index.tsx:158 #: src/screens/Login/PasswordUpdatedForm.tsx:33 msgid "You can now sign in with your new password." @@ -6382,7 +6414,7 @@ msgstr "У вас немає закріплених стрічок." msgid "You don't have any saved feeds." msgstr "У вас немає збережених стрічок." -#: src/view/com/post-thread/PostThread.tsx:159 +#: src/view/com/post-thread/PostThread.tsx:195 msgid "You have blocked the author or you have been blocked by the author." msgstr "Ви заблокували автора або автор заблокував вас." @@ -6420,7 +6452,7 @@ msgstr "Ви увімкнули ігнорування цього обліков msgid "You have muted this user" msgstr "Ви увімкнули ігнорування цього користувача" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "" @@ -6441,7 +6473,7 @@ msgstr "У вас немає списків." msgid "You have not blocked any accounts yet. To block an account, go to their profile and select \"Block account\" from the menu on their account." msgstr "Ви ще не заблокували жодного облікового запису. Щоб заблокувати когось, перейдіть до їх профілю та виберіть опцію \"Заблокувати\" у меню їх облікового запису." -#: src/view/screens/AppPasswords.tsx:89 +#: src/view/screens/AppPasswords.tsx:91 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Ви ще не створили жодного пароля для застосунків. Ви можете створити новий пароль, натиснувши кнопку нижче." @@ -6453,15 +6485,15 @@ msgstr "Ви ще не ігноруєте жодного облікового з msgid "You have reached the end" msgstr "" -#: src/components/dialogs/MutedWords.tsx:249 +#: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" msgstr "У вас ще немає ігнорованих слів чи тегів" -#: src/components/moderation/LabelsOnMeDialog.tsx:86 +#: src/components/moderation/LabelsOnMeDialog.tsx:87 msgid "You may appeal non-self labels if you feel they were placed in error." msgstr "" -#: src/components/moderation/LabelsOnMeDialog.tsx:91 +#: src/components/moderation/LabelsOnMeDialog.tsx:92 msgid "You may appeal these labels if you feel they were placed in error." msgstr "Ви можете оскаржувати мітки, якщо вважаєте, що вони були розміщені помилково." @@ -6473,7 +6505,7 @@ msgstr "Вам має виповнитись 13 років для того, що msgid "You must be 18 years or older to enable adult content" msgstr "Ви повинні бути старше 18 років, щоб дозволити перегляд контенту для дорослих" -#: src/components/ReportDialog/SubmitView.tsx:205 +#: src/components/ReportDialog/SubmitView.tsx:206 msgid "You must select at least one labeler for a report" msgstr "Ви повинні обрати хоча б одного маркувальника для скарги" @@ -6570,7 +6602,7 @@ msgstr "Ваш повний псевдонім буде" msgid "Your full handle will be <0>@{0}" msgstr "Вашим повним псевдонімом буде <0>@{0}" -#: src/components/dialogs/MutedWords.tsx:220 +#: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" msgstr "Ваші ігноровані слова" diff --git a/src/locale/locales/zh-CN/messages.po b/src/locale/locales/zh-CN/messages.po index 9dc697bbdf..95f5043da1 100644 --- a/src/locale/locales/zh-CN/messages.po +++ b/src/locale/locales/zh-CN/messages.po @@ -33,12 +33,12 @@ msgstr "{0, plural, one {# 个标签已标记到此内容} other {# 个标签已 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "{0, plural, one {# 条转发} other {# 条转发}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "{0, plural, one {关注者} other {关注者}}" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "{0, plural, one {正在关注} other {正在关注}}" @@ -83,7 +83,7 @@ msgstr "{estimatedTimeHrs, plural, one {时} other {时}}" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "{estimatedTimeMins, plural, one {分} other {分}}" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} 个正在关注" @@ -770,7 +770,7 @@ msgstr "已隐藏对话" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 #: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "私信设置" @@ -1095,7 +1095,7 @@ msgstr "继续下一步" msgid "Continue to the next step without following any accounts" msgstr "继续下一步,不关注任何账户" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "对话已删除" @@ -1959,8 +1959,8 @@ msgstr "水平翻转" msgid "Flip vertically" msgstr "垂直翻转" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 @@ -2017,8 +2017,8 @@ msgstr "关注了你" msgid "Followers" msgstr "关注者" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 @@ -2148,7 +2148,7 @@ msgstr "返回主页" msgid "Go Home" msgstr "返回主页" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "转到与 {0} 的对话" @@ -2747,6 +2747,7 @@ msgid "Message {0}" msgstr "私信 {0}" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "私信已删除" @@ -2759,18 +2760,18 @@ msgid "Message input field" msgstr "私信输入栏" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:40 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "私信过长" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "私信设置" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "私信" @@ -3014,8 +3015,8 @@ msgid "New" msgstr "新建" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "新私信" @@ -3117,7 +3118,7 @@ msgstr "不超过 253 个字符" msgid "No messages yet" msgstr "目前还没有任何私信" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "没有更多对话可显示" @@ -3201,7 +3202,7 @@ msgstr "分享注意事项" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "注意:Bluesky 是一个开放的公共网络。这个设置项仅限制你发布的内容在 Bluesky 应用和网站上的可见性,其他应用可能不遵从这个设置项,仍可能会向未登录的用户显示你的动态。" -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "这里什么也没有" @@ -3299,8 +3300,8 @@ msgstr "开启" msgid "Open avatar creator" msgstr "开启头像创建工具" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "开启对话选项" @@ -3853,7 +3854,7 @@ msgstr "最近的搜索" msgid "Reconnect" msgstr "重新连接" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "重新加载对话" @@ -4450,7 +4451,7 @@ msgid "Send feedback" msgstr "提交反馈" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:141 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "发送私信" @@ -5773,8 +5774,8 @@ msgstr "查看整个讨论串" msgid "View information about these labels" msgstr "查看这个标记的详情" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "查看个人资料" @@ -5916,7 +5917,7 @@ msgid "Who can reply" msgstr "谁可以回复" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "糟糕!" @@ -5949,7 +5950,7 @@ msgid "Wide" msgstr "宽" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:122 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "编写私信" @@ -6064,7 +6065,7 @@ msgstr "你已隐藏这个账户。" msgid "You have muted this user" msgstr "你已隐藏这个用户" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "你还没有任何私信,立即与其他人展开对话吧!" diff --git a/src/locale/locales/zh-TW/messages.po b/src/locale/locales/zh-TW/messages.po index bf563fd4fd..376acd5969 100644 --- a/src/locale/locales/zh-TW/messages.po +++ b/src/locale/locales/zh-TW/messages.po @@ -33,12 +33,12 @@ msgstr "{0, plural, one {該內容有 # 個標籤} other {該內容有 # 個標 msgid "{0, plural, one {# repost} other {# reposts}}" msgstr "{0, plural, one {# 個轉貼} other {# 個轉貼}}" -#: src/components/ProfileHoverCard/index.web.tsx:377 +#: src/components/ProfileHoverCard/index.web.tsx:376 #: src/screens/Profile/Header/Metrics.tsx:23 msgid "{0, plural, one {follower} other {followers}}" msgstr "{0, plural,one {個跟隨者} other {個跟隨者}}" -#: src/components/ProfileHoverCard/index.web.tsx:381 +#: src/components/ProfileHoverCard/index.web.tsx:380 #: src/screens/Profile/Header/Metrics.tsx:27 msgid "{0, plural, one {following} other {following}}" msgstr "{0, plural, one {個跟隨中} other {個跟隨中}}" @@ -83,7 +83,7 @@ msgstr "{estimatedTimeHrs, plural, one {時} other {時}}" msgid "{estimatedTimeMins, plural, one {minute} other {minutes}}" msgstr "{estimatedTimeMins, plural, one {分} other {分}}" -#: src/components/ProfileHoverCard/index.web.tsx:458 +#: src/components/ProfileHoverCard/index.web.tsx:457 #: src/screens/Profile/Header/Metrics.tsx:50 msgid "{following} following" msgstr "{following} 個跟隨中" @@ -770,7 +770,7 @@ msgstr "對話已靜音" #: src/components/dms/ConvoMenu.tsx:110 #: src/components/dms/MessageMenu.tsx:67 #: src/Navigation.tsx:307 -#: src/screens/Messages/List/index.tsx:68 +#: src/screens/Messages/List/index.tsx:88 #: src/view/screens/Settings/index.tsx:631 msgid "Chat settings" msgstr "對話設定" @@ -1095,7 +1095,7 @@ msgstr "繼續下一步" msgid "Continue to the next step without following any accounts" msgstr "繼續下一步,不跟隨任何帳號" -#: src/screens/Messages/List/ChatListItem.tsx:108 +#: src/screens/Messages/List/ChatListItem.tsx:109 msgid "Conversation deleted" msgstr "對話已刪除" @@ -1959,8 +1959,8 @@ msgstr "水平翻轉" msgid "Flip vertically" msgstr "垂直翻轉" -#: src/components/ProfileHoverCard/index.web.tsx:413 -#: src/components/ProfileHoverCard/index.web.tsx:424 +#: src/components/ProfileHoverCard/index.web.tsx:412 +#: src/components/ProfileHoverCard/index.web.tsx:423 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:189 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:244 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:146 @@ -2017,8 +2017,8 @@ msgstr "已跟隨您" msgid "Followers" msgstr "跟隨者" -#: src/components/ProfileHoverCard/index.web.tsx:412 -#: src/components/ProfileHoverCard/index.web.tsx:423 +#: src/components/ProfileHoverCard/index.web.tsx:411 +#: src/components/ProfileHoverCard/index.web.tsx:422 #: src/screens/Profile/Header/ProfileHeaderStandard.tsx:242 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:149 #: src/view/com/profile/ProfileFollows.tsx:104 @@ -2148,7 +2148,7 @@ msgstr "前往首頁" msgid "Go Home" msgstr "前往首頁" -#: src/screens/Messages/List/ChatListItem.tsx:156 +#: src/screens/Messages/List/ChatListItem.tsx:158 msgid "Go to conversation with {0}" msgstr "與 {0} 對話" @@ -2747,6 +2747,7 @@ msgid "Message {0}" msgstr "給 {0} 傳送訊息" #: src/components/dms/MessageMenu.tsx:58 +#: src/screens/Messages/List/ChatListItem.tsx:110 msgid "Message deleted" msgstr "訊息已刪除" @@ -2759,18 +2760,18 @@ msgid "Message input field" msgstr "訊息輸入欄位" #: src/screens/Messages/Conversation/MessageInput.tsx:62 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:40 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:42 msgid "Message is too long" msgstr "訊息太長了" -#: src/screens/Messages/List/index.tsx:301 +#: src/screens/Messages/List/index.tsx:321 msgid "Message settings" msgstr "訊息設定" #: src/Navigation.tsx:520 -#: src/screens/Messages/List/index.tsx:144 -#: src/screens/Messages/List/index.tsx:226 -#: src/screens/Messages/List/index.tsx:297 +#: src/screens/Messages/List/index.tsx:164 +#: src/screens/Messages/List/index.tsx:246 +#: src/screens/Messages/List/index.tsx:317 msgid "Messages" msgstr "訊息" @@ -3014,8 +3015,8 @@ msgid "New" msgstr "新增" #: src/components/dms/NewChatDialog/index.tsx:98 -#: src/screens/Messages/List/index.tsx:311 -#: src/screens/Messages/List/index.tsx:318 +#: src/screens/Messages/List/index.tsx:331 +#: src/screens/Messages/List/index.tsx:338 msgid "New chat" msgstr "新對話" @@ -3117,7 +3118,7 @@ msgstr "不超過 253 個字符" msgid "No messages yet" msgstr "還沒有訊息" -#: src/screens/Messages/List/index.tsx:254 +#: src/screens/Messages/List/index.tsx:274 msgid "No more conversations to show" msgstr "已經沒有對話啦!" @@ -3201,7 +3202,7 @@ msgstr "關於分享的注意事項" msgid "Note: Bluesky is an open and public network. This setting only limits the visibility of your content on the Bluesky app and website, and other apps may not respect this setting. Your content may still be shown to logged-out users by other apps and websites." msgstr "注意:Bluesky 是一個開放且公開的網路。此設定僅限制您在 Bluesky 應用程式和網站上的內容可見性,其他應用程式可能不尊遵循這樣的規則。您的內容仍可能由其他應用程式和網站顯示給未登入的使用者。" -#: src/screens/Messages/List/index.tsx:195 +#: src/screens/Messages/List/index.tsx:215 msgid "Nothing here" msgstr "這裡什麼也沒有" @@ -3299,8 +3300,8 @@ msgstr "開啟" msgid "Open avatar creator" msgstr "開啟頭像創建工具" -#: src/screens/Messages/List/ChatListItem.tsx:162 -#: src/screens/Messages/List/ChatListItem.tsx:163 +#: src/screens/Messages/List/ChatListItem.tsx:164 +#: src/screens/Messages/List/ChatListItem.tsx:165 msgid "Open conversation options" msgstr "開啟對話選項" @@ -3853,7 +3854,7 @@ msgstr "最近的搜尋結果" msgid "Reconnect" msgstr "重新連線" -#: src/screens/Messages/List/index.tsx:180 +#: src/screens/Messages/List/index.tsx:200 msgid "Reload conversations" msgstr "重新載入對話" @@ -4450,7 +4451,7 @@ msgid "Send feedback" msgstr "提交意見" #: src/screens/Messages/Conversation/MessageInput.tsx:144 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:141 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:145 msgid "Send message" msgstr "重送訊息" @@ -5773,8 +5774,8 @@ msgstr "查看整個討論串" msgid "View information about these labels" msgstr "查看有關這些標記的資訊" -#: src/components/ProfileHoverCard/index.web.tsx:397 -#: src/components/ProfileHoverCard/index.web.tsx:430 +#: src/components/ProfileHoverCard/index.web.tsx:396 +#: src/components/ProfileHoverCard/index.web.tsx:429 #: src/view/com/posts/FeedErrorMessage.tsx:175 msgid "View profile" msgstr "查看資料" @@ -5916,7 +5917,7 @@ msgid "Who can reply" msgstr "誰可以回覆" #: src/screens/Home/NoFeedsPinned.tsx:92 -#: src/screens/Messages/List/index.tsx:165 +#: src/screens/Messages/List/index.tsx:185 msgid "Whoops!" msgstr "哎呀!" @@ -5949,7 +5950,7 @@ msgid "Wide" msgstr "寬" #: src/screens/Messages/Conversation/MessageInput.tsx:121 -#: src/screens/Messages/Conversation/MessageInput.web.tsx:122 +#: src/screens/Messages/Conversation/MessageInput.web.tsx:124 msgid "Write a message" msgstr "撰寫訊息" @@ -6064,7 +6065,7 @@ msgstr "您已隱藏這個帳號。" msgid "You have muted this user" msgstr "您已靜音這個用戶" -#: src/screens/Messages/List/index.tsx:205 +#: src/screens/Messages/List/index.tsx:225 msgid "You have no conversations yet. Start one!" msgstr "您還沒有對話,與其他用戶開始對話吧!" From af10d3acbb23eb99ea58a6481b257251bf426fe5 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 27 May 2024 16:43:07 -0700 Subject: [PATCH 211/277] set `onEndReachedThreshold` to `2` for notifications (#4235) --- src/view/com/notifications/Feed.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/view/com/notifications/Feed.tsx b/src/view/com/notifications/Feed.tsx index 7d34596d98..15c103bed0 100644 --- a/src/view/com/notifications/Feed.tsx +++ b/src/view/com/notifications/Feed.tsx @@ -165,7 +165,7 @@ export function Feed({ refreshing={isPTRing} onRefresh={onRefresh} onEndReached={onEndReached} - onEndReachedThreshold={0.6} + onEndReachedThreshold={2} onScrolledDownChange={onScrolledDownChange} contentContainerStyle={s.contentContainer} // @ts-ignore our .web version only -prf From 75e2c5487c9d7d6cbe303beb1a588db17bafa701 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 27 May 2024 22:21:25 -0700 Subject: [PATCH 212/277] bump iOS target to `14.0` (#4238) --- app.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.config.js b/app.config.js index 4ade9de31a..ffa6cf7dab 100644 --- a/app.config.js +++ b/app.config.js @@ -183,7 +183,7 @@ module.exports = function (config) { 'expo-build-properties', { ios: { - deploymentTarget: '13.4', + deploymentTarget: '14.0', newArchEnabled: false, }, android: { From 8a2f43c218c464e6165f331e482b6094b87eefc7 Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 28 May 2024 07:35:50 -0700 Subject: [PATCH 213/277] Bump 1.85.0 (#4237) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4c79e29f91..0634a6cce9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bsky.app", - "version": "1.84.0", + "version": "1.85.0", "private": true, "engines": { "node": ">=18" From 9bd411c15159609803c4e8c3e352a9db32ea527c Mon Sep 17 00:00:00 2001 From: dan Date: Tue, 28 May 2024 16:37:51 +0100 Subject: [PATCH 214/277] Replace getAgent() with reading agent (#4243) * Replace getAgent() with agent * Replace {agent} with agent --- src/components/ReportDialog/SubmitView.tsx | 6 +- src/components/dms/ReportDialog.tsx | 4 +- src/components/hooks/useRichText.ts | 6 +- .../moderation/LabelsOnMeDialog.tsx | 4 +- src/lib/api/feed/author.ts | 12 +-- src/lib/api/feed/custom.ts | 14 ++-- src/lib/api/feed/following.ts | 10 +-- src/lib/api/feed/home.ts | 16 ++-- src/lib/api/feed/likes.ts | 12 +-- src/lib/api/feed/list.ts | 12 +-- src/lib/api/feed/merge.ts | 38 ++++----- src/lib/notifications/notifications.ts | 10 +-- src/screens/Deactivated.tsx | 10 +-- .../Messages/Conversation/ChatDisabled.tsx | 4 +- .../Messages/Conversation/MessagesList.tsx | 6 +- src/screens/Onboarding/StepFinished.tsx | 16 ++-- .../Onboarding/StepInterests/index.tsx | 5 +- src/screens/Onboarding/util.ts | 19 ++--- src/screens/Signup/index.tsx | 6 +- src/state/feed-feedback.tsx | 6 +- src/state/messages/convo/index.tsx | 4 +- src/state/messages/events/index.tsx | 4 +- src/state/queries/actor-autocomplete.ts | 10 +-- src/state/queries/actor-search.ts | 4 +- src/state/queries/app-passwords.ts | 12 +-- src/state/queries/feed.ts | 24 +++--- src/state/queries/handle.ts | 16 ++-- src/state/queries/invites.ts | 6 +- src/state/queries/labeler.ts | 18 ++--- src/state/queries/like.ts | 8 +- src/state/queries/list-members.ts | 4 +- src/state/queries/list-memberships.ts | 12 +-- src/state/queries/list.ts | 78 ++++++++----------- .../queries/messages/actor-declaration.ts | 8 +- src/state/queries/messages/conversation.ts | 8 +- .../queries/messages/get-convo-for-members.ts | 13 ++-- .../queries/messages/leave-conversation.ts | 4 +- .../queries/messages/list-converations.tsx | 4 +- .../queries/messages/mute-conversation.ts | 4 +- src/state/queries/my-blocked-accounts.ts | 4 +- src/state/queries/my-lists.ts | 14 ++-- src/state/queries/my-muted-accounts.ts | 4 +- src/state/queries/notifications/feed.ts | 4 +- src/state/queries/notifications/unread.tsx | 10 +-- src/state/queries/notifications/util.ts | 14 ++-- src/state/queries/post-feed.ts | 26 +++---- src/state/queries/post-liked-by.ts | 4 +- src/state/queries/post-reposted-by.ts | 4 +- src/state/queries/post-thread.ts | 4 +- src/state/queries/post.ts | 32 ++++---- src/state/queries/preferences/index.ts | 68 ++++++++-------- src/state/queries/profile-feedgens.ts | 4 +- src/state/queries/profile-followers.ts | 4 +- src/state/queries/profile-follows.ts | 4 +- src/state/queries/profile-lists.ts | 4 +- src/state/queries/profile.ts | 52 ++++++------- src/state/queries/resolve-uri.ts | 4 +- src/state/queries/search-posts.ts | 4 +- src/state/queries/suggested-feeds.ts | 4 +- src/state/queries/suggested-follows.ts | 8 +- src/state/session/index.tsx | 11 +-- src/view/com/composer/Composer.tsx | 4 +- .../com/composer/useExternalLinkFetch.e2e.ts | 6 +- src/view/com/composer/useExternalLinkFetch.ts | 10 +-- src/view/com/modals/ChangeEmail.tsx | 12 +-- src/view/com/modals/ChangeHandle.tsx | 10 +-- src/view/com/modals/ChangePassword.tsx | 3 +- src/view/com/modals/CreateOrEditList.tsx | 6 +- src/view/com/modals/DeleteAccount.tsx | 8 +- src/view/com/modals/VerifyEmail.tsx | 8 +- src/view/screens/Profile.tsx | 6 +- .../Settings/DisableEmail2FADialog.tsx | 8 +- src/view/screens/Settings/Email2FAToggle.tsx | 8 +- src/view/screens/Settings/ExportCarDialog.tsx | 5 +- 74 files changed, 400 insertions(+), 438 deletions(-) diff --git a/src/components/ReportDialog/SubmitView.tsx b/src/components/ReportDialog/SubmitView.tsx index e921d102a9..74ecf92e41 100644 --- a/src/components/ReportDialog/SubmitView.tsx +++ b/src/components/ReportDialog/SubmitView.tsx @@ -36,7 +36,7 @@ export function SubmitView({ }) { const t = useTheme() const {_} = useLingui() - const {getAgent} = useAgent() + const agent = useAgent() const [details, setDetails] = React.useState('') const [submitting, setSubmitting] = React.useState(false) const [selectedServices, setSelectedServices] = React.useState([ @@ -62,7 +62,7 @@ export function SubmitView({ } const results = await Promise.all( selectedServices.map(did => - getAgent() + agent .withProxy('atproto_labeler', did) .createModerationReport(report) .then( @@ -92,7 +92,7 @@ export function SubmitView({ selectedServices, onSubmitComplete, setError, - getAgent, + agent, ]) return ( diff --git a/src/components/dms/ReportDialog.tsx b/src/components/dms/ReportDialog.tsx index 63e4cd79e4..9c4ed2a0e9 100644 --- a/src/components/dms/ReportDialog.tsx +++ b/src/components/dms/ReportDialog.tsx @@ -102,7 +102,7 @@ function SubmitStep({ const t = useTheme() const [details, setDetails] = useState('') const control = Dialog.useDialogContext() - const {getAgent} = useAgent() + const agent = useAgent() const { mutate: submit, @@ -124,7 +124,7 @@ function SubmitStep({ reason: details, } satisfies ComAtprotoModerationCreateReport.InputSchema - await getAgent().createModerationReport(report) + await agent.createModerationReport(report) } }, onSuccess: () => { diff --git a/src/components/hooks/useRichText.ts b/src/components/hooks/useRichText.ts index 4329638ea6..caf6febc04 100644 --- a/src/components/hooks/useRichText.ts +++ b/src/components/hooks/useRichText.ts @@ -7,7 +7,7 @@ export function useRichText(text: string): [RichTextAPI, boolean] { const [prevText, setPrevText] = React.useState(text) const [rawRT, setRawRT] = React.useState(() => new RichTextAPI({text})) const [resolvedRT, setResolvedRT] = React.useState(null) - const {getAgent} = useAgent() + const agent = useAgent() if (text !== prevText) { setPrevText(text) setRawRT(new RichTextAPI({text})) @@ -19,7 +19,7 @@ export function useRichText(text: string): [RichTextAPI, boolean] { async function resolveRTFacets() { // new each time const resolvedRT = new RichTextAPI({text}) - await resolvedRT.detectFacets(getAgent()) + await resolvedRT.detectFacets(agent) if (!ignore) { setResolvedRT(resolvedRT) } @@ -28,7 +28,7 @@ export function useRichText(text: string): [RichTextAPI, boolean] { return () => { ignore = true } - }, [text, getAgent]) + }, [text, agent]) const isResolving = resolvedRT === null return [resolvedRT ?? rawRT, isResolving] } diff --git a/src/components/moderation/LabelsOnMeDialog.tsx b/src/components/moderation/LabelsOnMeDialog.tsx index 2923981fd7..7c76269ac9 100644 --- a/src/components/moderation/LabelsOnMeDialog.tsx +++ b/src/components/moderation/LabelsOnMeDialog.tsx @@ -202,14 +202,14 @@ function AppealForm({ const {gtMobile} = useBreakpoints() const [details, setDetails] = React.useState('') const isAccountReport = 'did' in subject - const {getAgent} = useAgent() + const agent = useAgent() const {mutate, isPending} = useMutation({ mutationFn: async () => { const $type = !isAccountReport ? 'com.atproto.repo.strongRef' : 'com.atproto.admin.defs#repoRef' - await getAgent() + await agent .withProxy('atproto_labeler', label.src) .createModerationReport({ reasonType: ComAtprotoModerationDefs.REASONAPPEAL, diff --git a/src/lib/api/feed/author.ts b/src/lib/api/feed/author.ts index 85601d0683..56eff18816 100644 --- a/src/lib/api/feed/author.ts +++ b/src/lib/api/feed/author.ts @@ -7,22 +7,22 @@ import { import {FeedAPI, FeedAPIResponse} from './types' export class AuthorFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent params: GetAuthorFeed.QueryParams constructor({ - getAgent, + agent, feedParams, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedParams: GetAuthorFeed.QueryParams }) { - this.getAgent = getAgent + this.agent = agent this.params = feedParams } async peekLatest(): Promise { - const res = await this.getAgent().getAuthorFeed({ + const res = await this.agent.getAuthorFeed({ ...this.params, limit: 1, }) @@ -36,7 +36,7 @@ export class AuthorFeedAPI implements FeedAPI { cursor: string | undefined limit: number }): Promise { - const res = await this.getAgent().getAuthorFeed({ + const res = await this.agent.getAuthorFeed({ ...this.params, cursor, limit, diff --git a/src/lib/api/feed/custom.ts b/src/lib/api/feed/custom.ts index 87e45cebab..eb54dd29c1 100644 --- a/src/lib/api/feed/custom.ts +++ b/src/lib/api/feed/custom.ts @@ -10,27 +10,27 @@ import {FeedAPI, FeedAPIResponse} from './types' import {createBskyTopicsHeader, isBlueskyOwnedFeed} from './utils' export class CustomFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent params: GetCustomFeed.QueryParams userInterests?: string constructor({ - getAgent, + agent, feedParams, userInterests, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedParams: GetCustomFeed.QueryParams userInterests?: string }) { - this.getAgent = getAgent + this.agent = agent this.params = feedParams this.userInterests = userInterests } async peekLatest(): Promise { const contentLangs = getContentLanguages().join(',') - const res = await this.getAgent().app.bsky.feed.getFeed( + const res = await this.agent.app.bsky.feed.getFeed( { ...this.params, limit: 1, @@ -48,11 +48,11 @@ export class CustomFeedAPI implements FeedAPI { limit: number }): Promise { const contentLangs = getContentLanguages().join(',') - const agent = this.getAgent() + const agent = this.agent const isBlueskyOwned = isBlueskyOwnedFeed(this.params.feed) const res = agent.session - ? await this.getAgent().app.bsky.feed.getFeed( + ? await this.agent.app.bsky.feed.getFeed( { ...this.params, cursor, diff --git a/src/lib/api/feed/following.ts b/src/lib/api/feed/following.ts index 36c376554a..1004ccfb87 100644 --- a/src/lib/api/feed/following.ts +++ b/src/lib/api/feed/following.ts @@ -3,14 +3,14 @@ import {AppBskyFeedDefs, BskyAgent} from '@atproto/api' import {FeedAPI, FeedAPIResponse} from './types' export class FollowingFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent - constructor({getAgent}: {getAgent: () => BskyAgent}) { - this.getAgent = getAgent + constructor({agent}: {agent: BskyAgent}) { + this.agent = agent } async peekLatest(): Promise { - const res = await this.getAgent().getTimeline({ + const res = await this.agent.getTimeline({ limit: 1, }) return res.data.feed[0] @@ -23,7 +23,7 @@ export class FollowingFeedAPI implements FeedAPI { cursor: string | undefined limit: number }): Promise { - const res = await this.getAgent().getTimeline({ + const res = await this.agent.getTimeline({ cursor, limit, }) diff --git a/src/lib/api/feed/home.ts b/src/lib/api/feed/home.ts index 270f3aacb2..e6bc45bea0 100644 --- a/src/lib/api/feed/home.ts +++ b/src/lib/api/feed/home.ts @@ -27,7 +27,7 @@ export const FALLBACK_MARKER_POST: AppBskyFeedDefs.FeedViewPost = { } export class HomeFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent following: FollowingFeedAPI discover: CustomFeedAPI usingDiscover = false @@ -36,24 +36,24 @@ export class HomeFeedAPI implements FeedAPI { constructor({ userInterests, - getAgent, + agent, }: { userInterests?: string - getAgent: () => BskyAgent + agent: BskyAgent }) { - this.getAgent = getAgent - this.following = new FollowingFeedAPI({getAgent}) + this.agent = agent + this.following = new FollowingFeedAPI({agent}) this.discover = new CustomFeedAPI({ - getAgent, + agent, feedParams: {feed: PROD_DEFAULT_FEED('whats-hot')}, }) this.userInterests = userInterests } reset() { - this.following = new FollowingFeedAPI({getAgent: this.getAgent}) + this.following = new FollowingFeedAPI({agent: this.agent}) this.discover = new CustomFeedAPI({ - getAgent: this.getAgent, + agent: this.agent, feedParams: {feed: PROD_DEFAULT_FEED('whats-hot')}, userInterests: this.userInterests, }) diff --git a/src/lib/api/feed/likes.ts b/src/lib/api/feed/likes.ts index 1729ee05cf..a4e84d8f1f 100644 --- a/src/lib/api/feed/likes.ts +++ b/src/lib/api/feed/likes.ts @@ -7,22 +7,22 @@ import { import {FeedAPI, FeedAPIResponse} from './types' export class LikesFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent params: GetActorLikes.QueryParams constructor({ - getAgent, + agent, feedParams, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedParams: GetActorLikes.QueryParams }) { - this.getAgent = getAgent + this.agent = agent this.params = feedParams } async peekLatest(): Promise { - const res = await this.getAgent().getActorLikes({ + const res = await this.agent.getActorLikes({ ...this.params, limit: 1, }) @@ -36,7 +36,7 @@ export class LikesFeedAPI implements FeedAPI { cursor: string | undefined limit: number }): Promise { - const res = await this.getAgent().getActorLikes({ + const res = await this.agent.getActorLikes({ ...this.params, cursor, limit, diff --git a/src/lib/api/feed/list.ts b/src/lib/api/feed/list.ts index 004685b998..9744e3d4ce 100644 --- a/src/lib/api/feed/list.ts +++ b/src/lib/api/feed/list.ts @@ -7,22 +7,22 @@ import { import {FeedAPI, FeedAPIResponse} from './types' export class ListFeedAPI implements FeedAPI { - getAgent: () => BskyAgent + agent: BskyAgent params: GetListFeed.QueryParams constructor({ - getAgent, + agent, feedParams, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedParams: GetListFeed.QueryParams }) { - this.getAgent = getAgent + this.agent = agent this.params = feedParams } async peekLatest(): Promise { - const res = await this.getAgent().app.bsky.feed.getListFeed({ + const res = await this.agent.app.bsky.feed.getListFeed({ ...this.params, limit: 1, }) @@ -36,7 +36,7 @@ export class ListFeedAPI implements FeedAPI { cursor: string | undefined limit: number }): Promise { - const res = await this.getAgent().app.bsky.feed.getListFeed({ + const res = await this.agent.app.bsky.feed.getListFeed({ ...this.params, cursor, limit, diff --git a/src/lib/api/feed/merge.ts b/src/lib/api/feed/merge.ts index b7ac8bce1c..f551f5e4cc 100644 --- a/src/lib/api/feed/merge.ts +++ b/src/lib/api/feed/merge.ts @@ -16,7 +16,7 @@ const POST_AGE_CUTOFF = 60e3 * 60 * 24 // 24hours export class MergeFeedAPI implements FeedAPI { userInterests?: string - getAgent: () => BskyAgent + agent: BskyAgent params: FeedParams feedTuners: FeedTunerFn[] following: MergeFeedSource_Following @@ -26,29 +26,29 @@ export class MergeFeedAPI implements FeedAPI { sampleCursor = 0 constructor({ - getAgent, + agent, feedParams, feedTuners, userInterests, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedParams: FeedParams feedTuners: FeedTunerFn[] userInterests?: string }) { - this.getAgent = getAgent + this.agent = agent this.params = feedParams this.feedTuners = feedTuners this.userInterests = userInterests this.following = new MergeFeedSource_Following({ - getAgent: this.getAgent, + agent: this.agent, feedTuners: this.feedTuners, }) } reset() { this.following = new MergeFeedSource_Following({ - getAgent: this.getAgent, + agent: this.agent, feedTuners: this.feedTuners, }) this.customFeeds = [] @@ -60,7 +60,7 @@ export class MergeFeedAPI implements FeedAPI { this.params.mergeFeedSources.map( feedUri => new MergeFeedSource_Custom({ - getAgent: this.getAgent, + agent: this.agent, feedUri, feedTuners: this.feedTuners, userInterests: this.userInterests, @@ -73,7 +73,7 @@ export class MergeFeedAPI implements FeedAPI { } async peekLatest(): Promise { - const res = await this.getAgent().getTimeline({ + const res = await this.agent.getTimeline({ limit: 1, }) return res.data.feed[0] @@ -167,7 +167,7 @@ export class MergeFeedAPI implements FeedAPI { } class MergeFeedSource { - getAgent: () => BskyAgent + agent: BskyAgent feedTuners: FeedTunerFn[] sourceInfo: ReasonFeedSource | undefined cursor: string | undefined = undefined @@ -175,13 +175,13 @@ class MergeFeedSource { hasMore = true constructor({ - getAgent, + agent, feedTuners, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedTuners: FeedTunerFn[] }) { - this.getAgent = getAgent + this.agent = agent this.feedTuners = feedTuners } @@ -245,7 +245,7 @@ class MergeFeedSource_Following extends MergeFeedSource { cursor: string | undefined, limit: number, ): Promise { - const res = await this.getAgent().getTimeline({cursor, limit}) + const res = await this.agent.getTimeline({cursor, limit}) // run the tuner pre-emptively to ensure better mixing const slices = this.tuner.tune(res.data.feed, { dryRun: false, @@ -257,27 +257,27 @@ class MergeFeedSource_Following extends MergeFeedSource { } class MergeFeedSource_Custom extends MergeFeedSource { - getAgent: () => BskyAgent + agent: BskyAgent minDate: Date feedUri: string userInterests?: string constructor({ - getAgent, + agent, feedUri, feedTuners, userInterests, }: { - getAgent: () => BskyAgent + agent: BskyAgent feedUri: string feedTuners: FeedTunerFn[] userInterests?: string }) { super({ - getAgent, + agent, feedTuners, }) - this.getAgent = getAgent + this.agent = agent this.feedUri = feedUri this.userInterests = userInterests this.sourceInfo = { @@ -295,7 +295,7 @@ class MergeFeedSource_Custom extends MergeFeedSource { try { const contentLangs = getContentLanguages().join(',') const isBlueskyOwned = isBlueskyOwnedFeed(this.feedUri) - const res = await this.getAgent().app.bsky.feed.getFeed( + const res = await this.agent.app.bsky.feed.getFeed( { cursor, limit, diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index f9fbdb8bfa..f0667b0ccf 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -14,12 +14,12 @@ const SERVICE_DID = (serviceUrl?: string) => : 'did:web:api.bsky.app' async function registerPushToken( - getAgent: () => BskyAgent, + agent: BskyAgent, account: SessionAccount, token: Notifications.DevicePushToken, ) { try { - await getAgent().api.app.bsky.notification.registerPush({ + await agent.api.app.bsky.notification.registerPush({ serviceDid: SERVICE_DID(account.service), platform: devicePlatform, token: token.data, @@ -47,7 +47,7 @@ async function getPushToken(skipPermissionCheck = false) { } export function useNotificationsRegistration() { - const {getAgent} = useAgent() + const agent = useAgent() const {currentAccount} = useSession() React.useEffect(() => { @@ -60,13 +60,13 @@ export function useNotificationsRegistration() { // According to the Expo docs, there is a chance that the token will change while the app is open in some rare // cases. This will fire `registerPushToken` whenever that happens. const subscription = Notifications.addPushTokenListener(async newToken => { - registerPushToken(getAgent, currentAccount, newToken) + registerPushToken(agent, currentAccount, newToken) }) return () => { subscription.remove() } - }, [currentAccount, getAgent]) + }, [currentAccount, agent]) } export function useRequestNotificationsPermission() { diff --git a/src/screens/Deactivated.tsx b/src/screens/Deactivated.tsx index 08a2232df2..c9e9f95254 100644 --- a/src/screens/Deactivated.tsx +++ b/src/screens/Deactivated.tsx @@ -24,7 +24,7 @@ export function Deactivated() { const {gtMobile} = useBreakpoints() const onboardingDispatch = useOnboardingDispatch() const {logout} = useSessionApi() - const {getAgent} = useAgent() + const agent = useAgent() const [isProcessing, setProcessing] = React.useState(false) const [estimatedTime, setEstimatedTime] = React.useState( @@ -37,11 +37,11 @@ export function Deactivated() { const checkStatus = React.useCallback(async () => { setProcessing(true) try { - const res = await getAgent().com.atproto.temp.checkSignupQueue() + const res = await agent.com.atproto.temp.checkSignupQueue() if (res.data.activated) { // ready to go, exchange the access token for a usable one and kick off onboarding - await getAgent().refreshSession() - if (!isSessionDeactivated(getAgent().session?.accessJwt)) { + await agent.refreshSession() + if (!isSessionDeactivated(agent.session?.accessJwt)) { onboardingDispatch({type: 'start'}) } } else { @@ -61,7 +61,7 @@ export function Deactivated() { setEstimatedTime, setPlaceInQueue, onboardingDispatch, - getAgent, + agent, ]) React.useEffect(() => { diff --git a/src/screens/Messages/Conversation/ChatDisabled.tsx b/src/screens/Messages/Conversation/ChatDisabled.tsx index 6665dd1710..5c6e615863 100644 --- a/src/screens/Messages/Conversation/ChatDisabled.tsx +++ b/src/screens/Messages/Conversation/ChatDisabled.tsx @@ -66,14 +66,14 @@ function DialogInner() { const control = Dialog.useDialogContext() const [details, setDetails] = useState('') const {gtMobile} = useBreakpoints() - const {getAgent} = useAgent() + const agent = useAgent() const {currentAccount} = useSession() const {mutate, isPending} = useMutation({ mutationFn: async () => { if (!currentAccount) throw new Error('No current account, should be unreachable') - await getAgent().createModerationReport({ + await agent.createModerationReport({ reasonType: ComAtprotoModerationDefs.REASONAPPEAL, subject: { $type: 'com.atproto.admin.defs#repoRef', diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index a03d6bc034..bee7f6cd8f 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -79,7 +79,7 @@ export function MessagesList({ footer?: React.ReactNode }) { const convoState = useConvoActive() - const {getAgent} = useAgent() + const agent = useAgent() const flatListRef = useAnimatedRef() @@ -265,7 +265,7 @@ export function MessagesList({ const onSendMessage = useCallback( async (text: string) => { let rt = new RichText({text}, {cleanNewlines: true}) - await rt.detectFacets(getAgent()) + await rt.detectFacets(agent) rt = shortenLinks(rt) // filter out any mention facets that didn't map to a user @@ -288,7 +288,7 @@ export function MessagesList({ facets: rt.facets, }) }, - [convoState, getAgent, hasScrolled, setHasScrolled], + [convoState, agent, hasScrolled, setHasScrolled], ) // -- List layout changes (opening emoji keyboard, etc.) diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index 855e12ed08..9658cfe15f 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -47,7 +47,7 @@ export function StepFinished() { const [saving, setSaving] = React.useState(false) const {mutateAsync: overwriteSavedFeeds} = useOverwriteSavedFeedsMutation() const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() const gate = useGate() const finishOnboarding = React.useCallback(async () => { @@ -70,12 +70,12 @@ export function StepFinished() { try { await Promise.all([ bulkWriteFollows( - getAgent, + agent, suggestedAccountsStepResults.accountDids.concat(BSKY_APP_ACCOUNT_DID), ), // these must be serial (async () => { - await getAgent().setInterestsPref({tags: selectedInterests}) + await agent.setInterestsPref({tags: selectedInterests}) /* * In the reduced onboading experiment, we'll rely on the default @@ -98,7 +98,7 @@ export function StepFinished() { * (mimics old behavior) */ if ( - IS_PROD_SERVICE(getAgent().service.toString()) && + IS_PROD_SERVICE(agent.service.toString()) && !otherFeeds.length ) { otherFeeds.push({ @@ -124,8 +124,8 @@ export function StepFinished() { const {imageUri, imageMime} = profileStepResults if (imageUri && imageMime) { - const blobPromise = uploadBlob(getAgent(), imageUri, imageMime) - await getAgent().upsertProfile(async existing => { + const blobPromise = uploadBlob(agent, imageUri, imageMime) + await agent.upsertProfile(async existing => { existing = existing ?? {} const res = await blobPromise if (res.data.blob) { @@ -156,7 +156,7 @@ export function StepFinished() { queryKey: preferencesQueryKey, }), queryClient.invalidateQueries({ - queryKey: profileRQKey(getAgent().session?.did ?? ''), + queryKey: profileRQKey(agent.session?.did ?? ''), }), ]).catch(e => { logger.error(e) @@ -176,7 +176,7 @@ export function StepFinished() { setSaving, overwriteSavedFeeds, track, - getAgent, + agent, gate, queryClient, ]) diff --git a/src/screens/Onboarding/StepInterests/index.tsx b/src/screens/Onboarding/StepInterests/index.tsx index d95445d795..2589e66c2d 100644 --- a/src/screens/Onboarding/StepInterests/index.tsx +++ b/src/screens/Onboarding/StepInterests/index.tsx @@ -43,13 +43,12 @@ export function StepInterests() { state.interestsStepResults.selectedInterests.map(i => i), ) const onboardDispatch = useOnboardingDispatch() - const {getAgent} = useAgent() + const agent = useAgent() const {isLoading, isError, error, data, refetch, isFetching} = useQuery({ queryKey: ['interests'], queryFn: async () => { try { - const {data} = - await getAgent().app.bsky.unspecced.getTaggedSuggestions() + const {data} = await agent.app.bsky.unspecced.getTaggedSuggestions() return data.suggestions.reduce( (agg, s) => { const {tag, subject, subjectType} = s diff --git a/src/screens/Onboarding/util.ts b/src/screens/Onboarding/util.ts index fde4316e93..4174177075 100644 --- a/src/screens/Onboarding/util.ts +++ b/src/screens/Onboarding/util.ts @@ -66,11 +66,8 @@ export function aggregateInterestItems( return Array.from(new Set(results)).slice(0, 20) } -export async function bulkWriteFollows( - getAgent: () => BskyAgent, - dids: string[], -) { - const session = getAgent().session +export async function bulkWriteFollows(agent: BskyAgent, dids: string[]) { + const session = agent.session if (!session) { throw new Error(`bulkWriteFollows failed: no session`) @@ -89,19 +86,15 @@ export async function bulkWriteFollows( value: r, })) - await getAgent().com.atproto.repo.applyWrites({ + await agent.com.atproto.repo.applyWrites({ repo: session.did, writes: followWrites, }) - await whenFollowsIndexed( - getAgent, - session.did, - res => !!res.data.follows.length, - ) + await whenFollowsIndexed(agent, session.did, res => !!res.data.follows.length) } async function whenFollowsIndexed( - getAgent: () => BskyAgent, + agent: BskyAgent, actor: string, fn: (res: AppBskyGraphGetFollows.Response) => boolean, ) { @@ -110,7 +103,7 @@ async function whenFollowsIndexed( 1e3, // 1s delay between tries fn, () => - getAgent().app.bsky.graph.getFollows({ + agent.app.bsky.graph.getFollows({ actor, limit: 1, }), diff --git a/src/screens/Signup/index.tsx b/src/screens/Signup/index.tsx index 3d8b505b91..2cc1bcab0b 100644 --- a/src/screens/Signup/index.tsx +++ b/src/screens/Signup/index.tsx @@ -36,7 +36,7 @@ export function Signup({onPressBack}: {onPressBack: () => void}) { const [state, dispatch] = React.useReducer(reducer, initialState) const submit = useSubmitSignup({state, dispatch}) const {gtMobile} = useBreakpoints() - const {getAgent} = useAgent() + const agent = useAgent() const { data: serviceInfo, @@ -77,7 +77,7 @@ export function Signup({onPressBack}: {onPressBack: () => void}) { try { dispatch({type: 'setIsLoading', value: true}) - const res = await getAgent().resolveHandle({ + const res = await agent.resolveHandle({ handle: createFullHandle(state.handle, state.userDomain), }) @@ -115,7 +115,7 @@ export function Signup({onPressBack}: {onPressBack: () => void}) { state.serviceDescription?.phoneVerificationRequired, state.userDomain, submit, - getAgent, + agent, ]) const onBackPress = React.useCallback(() => { diff --git a/src/state/feed-feedback.tsx b/src/state/feed-feedback.tsx index 5bfc77d0a5..64bdd4b893 100644 --- a/src/state/feed-feedback.tsx +++ b/src/state/feed-feedback.tsx @@ -25,7 +25,7 @@ const stateContext = React.createContext({ }) export function useFeedFeedback(feed: FeedDescriptor, hasSession: boolean) { - const {getAgent} = useAgent() + const agent = useAgent() const enabled = isDiscoverFeed(feed) && hasSession const queue = React.useRef>(new Set()) const history = React.useRef< @@ -35,7 +35,7 @@ export function useFeedFeedback(feed: FeedDescriptor, hasSession: boolean) { >(new WeakSet()) const sendToFeedNoDelay = React.useCallback(() => { - const proxyAgent = getAgent().withProxy( + const proxyAgent = agent.withProxy( // @ts-ignore TODO need to update withProxy() to support this key -prf 'bsky_fg', // TODO when we start sending to other feeds, we need to grab their DID -prf @@ -50,7 +50,7 @@ export function useFeedFeedback(feed: FeedDescriptor, hasSession: boolean) { .catch((e: any) => { logger.warn('Failed to send feed interactions', {error: e}) }) - }, [getAgent]) + }, [agent]) const sendToFeed = React.useMemo( () => diff --git a/src/state/messages/convo/index.tsx b/src/state/messages/convo/index.tsx index 7ba337e454..78c513909c 100644 --- a/src/state/messages/convo/index.tsx +++ b/src/state/messages/convo/index.tsx @@ -58,13 +58,13 @@ export function ConvoProvider({ convoId, }: Pick & {children: React.ReactNode}) { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() const events = useMessagesEventBus() const [convo] = useState( () => new Convo({ convoId, - agent: getAgent(), + agent, events, }), ) diff --git a/src/state/messages/events/index.tsx b/src/state/messages/events/index.tsx index d972c8c6a6..b3321df640 100644 --- a/src/state/messages/events/index.tsx +++ b/src/state/messages/events/index.tsx @@ -43,11 +43,11 @@ export function MessagesEventBusProviderInner({ }: { children: React.ReactNode }) { - const {getAgent} = useAgent() + const agent = useAgent() const [bus] = React.useState( () => new MessagesEventBus({ - agent: getAgent(), + agent, }), ) diff --git a/src/state/queries/actor-autocomplete.ts b/src/state/queries/actor-autocomplete.ts index 17b00dc26e..7e997ea016 100644 --- a/src/state/queries/actor-autocomplete.ts +++ b/src/state/queries/actor-autocomplete.ts @@ -23,7 +23,7 @@ export function useActorAutocompleteQuery( limit?: number, ) { const moderationOpts = useModerationOpts() - const {getAgent} = useAgent() + const agent = useAgent() prefix = prefix.toLowerCase().trim() if (prefix.endsWith('.')) { @@ -36,7 +36,7 @@ export function useActorAutocompleteQuery( queryKey: RQKEY(prefix || ''), async queryFn() { const res = prefix - ? await getAgent().searchActorsTypeahead({ + ? await agent.searchActorsTypeahead({ q: prefix, limit: limit || 8, }) @@ -57,7 +57,7 @@ export type ActorAutocompleteFn = ReturnType export function useActorAutocompleteFn() { const queryClient = useQueryClient() const moderationOpts = useModerationOpts() - const {getAgent} = useAgent() + const agent = useAgent() return React.useCallback( async ({query, limit = 8}: {query: string; limit?: number}) => { @@ -69,7 +69,7 @@ export function useActorAutocompleteFn() { staleTime: STALE.MINUTES.ONE, queryKey: RQKEY(query || ''), queryFn: () => - getAgent().searchActorsTypeahead({ + agent.searchActorsTypeahead({ q: query, limit, }), @@ -86,7 +86,7 @@ export function useActorAutocompleteFn() { moderationOpts || DEFAULT_MOD_OPTS, ) }, - [queryClient, moderationOpts, getAgent], + [queryClient, moderationOpts, agent], ) } diff --git a/src/state/queries/actor-search.ts b/src/state/queries/actor-search.ts index e50c68aacd..1e301a1bac 100644 --- a/src/state/queries/actor-search.ts +++ b/src/state/queries/actor-search.ts @@ -14,12 +14,12 @@ export function useActorSearch({ query: string enabled?: boolean }) { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ staleTime: STALE.MINUTES.ONE, queryKey: RQKEY(query || ''), async queryFn() { - const res = await getAgent().searchActors({ + const res = await agent.searchActors({ q: query, }) return res.data.actors diff --git a/src/state/queries/app-passwords.ts b/src/state/queries/app-passwords.ts index 33009a3a4a..bbf2dea974 100644 --- a/src/state/queries/app-passwords.ts +++ b/src/state/queries/app-passwords.ts @@ -8,12 +8,12 @@ const RQKEY_ROOT = 'app-passwords' export const RQKEY = () => [RQKEY_ROOT] export function useAppPasswordsQuery() { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ staleTime: STALE.MINUTES.FIVE, queryKey: RQKEY(), queryFn: async () => { - const res = await getAgent().com.atproto.server.listAppPasswords({}) + const res = await agent.com.atproto.server.listAppPasswords({}) return res.data.passwords }, }) @@ -21,7 +21,7 @@ export function useAppPasswordsQuery() { export function useAppPasswordCreateMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation< ComAtprotoServerCreateAppPassword.OutputSchema, Error, @@ -29,7 +29,7 @@ export function useAppPasswordCreateMutation() { >({ mutationFn: async ({name, privileged}) => { return ( - await getAgent().com.atproto.server.createAppPassword({ + await agent.com.atproto.server.createAppPassword({ name, privileged, }) @@ -45,10 +45,10 @@ export function useAppPasswordCreateMutation() { export function useAppPasswordDeleteMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({name}) => { - await getAgent().com.atproto.server.revokeAppPassword({ + await agent.com.atproto.server.revokeAppPassword({ name, }) }, diff --git a/src/state/queries/feed.ts b/src/state/queries/feed.ts index 19cded087b..b599ac1a0f 100644 --- a/src/state/queries/feed.ts +++ b/src/state/queries/feed.ts @@ -147,7 +147,7 @@ export function getAvatarTypeFromUri(uri: string) { export function useFeedSourceInfoQuery({uri}: {uri: string}) { const type = getFeedTypeFromUri(uri) - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ staleTime: STALE.INFINITY, @@ -156,10 +156,10 @@ export function useFeedSourceInfoQuery({uri}: {uri: string}) { let view: FeedSourceInfo if (type === 'feed') { - const res = await getAgent().app.bsky.feed.getFeedGenerator({feed: uri}) + const res = await agent.app.bsky.feed.getFeedGenerator({feed: uri}) view = hydrateFeedGenerator(res.data.view) } else { - const res = await getAgent().app.bsky.graph.getList({ + const res = await agent.app.bsky.graph.getList({ list: uri, limit: 1, }) @@ -174,7 +174,7 @@ export function useFeedSourceInfoQuery({uri}: {uri: string}) { export const useGetPopularFeedsQueryKey = ['getPopularFeeds'] export function useGetPopularFeedsQuery() { - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyUnspeccedGetPopularFeedGenerators.OutputSchema, Error, @@ -184,7 +184,7 @@ export function useGetPopularFeedsQuery() { >({ queryKey: useGetPopularFeedsQueryKey, queryFn: async ({pageParam}) => { - const res = await getAgent().app.bsky.unspecced.getPopularFeedGenerators({ + const res = await agent.app.bsky.unspecced.getPopularFeedGenerators({ limit: 10, cursor: pageParam, }) @@ -196,10 +196,10 @@ export function useGetPopularFeedsQuery() { } export function useSearchPopularFeedsMutation() { - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async (query: string) => { - const res = await getAgent().app.bsky.unspecced.getPopularFeedGenerators({ + const res = await agent.app.bsky.unspecced.getPopularFeedGenerators({ limit: 10, query: query, }) @@ -241,7 +241,7 @@ const pinnedFeedInfosQueryKeyRoot = 'pinnedFeedsInfos' export function usePinnedFeedsInfos() { const {hasSession} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const {data: preferences, isLoading: isLoadingPrefs} = usePreferencesQuery() const pinnedItems = preferences?.savedFeeds.filter(feed => feed.pinned) ?? [] @@ -264,8 +264,8 @@ export function usePinnedFeedsInfos() { const pinnedFeeds = pinnedItems.filter(feed => feed.type === 'feed') let feedsPromise = Promise.resolve() if (pinnedFeeds.length > 0) { - feedsPromise = getAgent() - .app.bsky.feed.getFeedGenerators({ + feedsPromise = agent.app.bsky.feed + .getFeedGenerators({ feeds: pinnedFeeds.map(f => f.value), }) .then(res => { @@ -279,8 +279,8 @@ export function usePinnedFeedsInfos() { // Get all lists. This currently has to be done individually. const pinnedLists = pinnedItems.filter(feed => feed.type === 'list') const listsPromises = pinnedLists.map(list => - getAgent() - .app.bsky.graph.getList({ + agent.app.bsky.graph + .getList({ list: list.value, limit: 1, }) diff --git a/src/state/queries/handle.ts b/src/state/queries/handle.ts index 1ab275fcf7..d2d79e12d2 100644 --- a/src/state/queries/handle.ts +++ b/src/state/queries/handle.ts @@ -14,7 +14,7 @@ const fetchDidQueryKey = (handleOrDid: string) => [didQueryKeyRoot, handleOrDid] export function useFetchHandle() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return React.useCallback( async (handleOrDid: string) => { @@ -22,23 +22,23 @@ export function useFetchHandle() { const res = await queryClient.fetchQuery({ staleTime: STALE.MINUTES.FIVE, queryKey: fetchHandleQueryKey(handleOrDid), - queryFn: () => getAgent().getProfile({actor: handleOrDid}), + queryFn: () => agent.getProfile({actor: handleOrDid}), }) return res.data.handle } return handleOrDid }, - [queryClient, getAgent], + [queryClient, agent], ) } export function useUpdateHandleMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({handle}: {handle: string}) => { - await getAgent().updateHandle({handle}) + await agent.updateHandle({handle}) }, onSuccess(_data, variables) { queryClient.invalidateQueries({ @@ -50,7 +50,7 @@ export function useUpdateHandleMutation() { export function useFetchDid() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return React.useCallback( async (handleOrDid: string) => { @@ -60,13 +60,13 @@ export function useFetchDid() { queryFn: async () => { let identifier = handleOrDid if (!identifier.startsWith('did:')) { - const res = await getAgent().resolveHandle({handle: identifier}) + const res = await agent.resolveHandle({handle: identifier}) identifier = res.data.did } return identifier }, }) }, - [queryClient, getAgent], + [queryClient, agent], ) } diff --git a/src/state/queries/invites.ts b/src/state/queries/invites.ts index f9cf25c697..fdccac8cbd 100644 --- a/src/state/queries/invites.ts +++ b/src/state/queries/invites.ts @@ -16,13 +16,13 @@ export type InviteCodesQueryResponse = Exclude< undefined > export function useInviteCodesQuery() { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ staleTime: STALE.MINUTES.FIVE, queryKey: [inviteCodesQueryKeyRoot], queryFn: async () => { - const res = await getAgent() - .com.atproto.server.getAccountInviteCodes({}) + const res = await agent.com.atproto.server + .getAccountInviteCodes({}) .catch(e => { if (cleanError(e) === 'Bad token scope') { return null diff --git a/src/state/queries/labeler.ts b/src/state/queries/labeler.ts index 359291636c..058e8fcdee 100644 --- a/src/state/queries/labeler.ts +++ b/src/state/queries/labeler.ts @@ -31,12 +31,12 @@ export function useLabelerInfoQuery({ did?: string enabled?: boolean }) { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ enabled: !!did && enabled !== false, queryKey: labelerInfoQueryKey(did as string), queryFn: async () => { - const res = await getAgent().app.bsky.labeler.getServices({ + const res = await agent.app.bsky.labeler.getServices({ dids: [did as string], detailed: true, }) @@ -46,26 +46,26 @@ export function useLabelerInfoQuery({ } export function useLabelersInfoQuery({dids}: {dids: string[]}) { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ enabled: !!dids.length, queryKey: labelersInfoQueryKey(dids), queryFn: async () => { - const res = await getAgent().app.bsky.labeler.getServices({dids}) + const res = await agent.app.bsky.labeler.getServices({dids}) return res.data.views as AppBskyLabelerDefs.LabelerView[] }, }) } export function useLabelersDetailedInfoQuery({dids}: {dids: string[]}) { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ enabled: !!dids.length, queryKey: labelersDetailedInfoQueryKey(dids), gcTime: 1000 * 60 * 60 * 6, // 6 hours staleTime: STALE.MINUTES.ONE, queryFn: async () => { - const res = await getAgent().app.bsky.labeler.getServices({ + const res = await agent.app.bsky.labeler.getServices({ dids, detailed: true, }) @@ -76,7 +76,7 @@ export function useLabelersDetailedInfoQuery({dids}: {dids: string[]}) { export function useLabelerSubscriptionMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ async mutationFn({did, subscribe}: {did: string; subscribe: boolean}) { @@ -87,9 +87,9 @@ export function useLabelerSubscriptionMutation() { }).parse({did, subscribe}) if (subscribe) { - await getAgent().addLabeler(did) + await agent.addLabeler(did) } else { - await getAgent().removeLabeler(did) + await agent.removeLabeler(did) } }, onSuccess() { diff --git a/src/state/queries/like.ts b/src/state/queries/like.ts index 75e93951a5..fa40300a40 100644 --- a/src/state/queries/like.ts +++ b/src/state/queries/like.ts @@ -3,20 +3,20 @@ import {useMutation} from '@tanstack/react-query' import {useAgent} from '#/state/session' export function useLikeMutation() { - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({uri, cid}: {uri: string; cid: string}) => { - const res = await getAgent().like(uri, cid) + const res = await agent.like(uri, cid) return {uri: res.uri} }, }) } export function useUnlikeMutation() { - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({uri}: {uri: string}) => { - await getAgent().deleteLike(uri) + await agent.deleteLike(uri) }, }) } diff --git a/src/state/queries/list-members.ts b/src/state/queries/list-members.ts index 6f87d53c0f..de9a36ab7f 100644 --- a/src/state/queries/list-members.ts +++ b/src/state/queries/list-members.ts @@ -16,7 +16,7 @@ const RQKEY_ROOT = 'list-members' export const RQKEY = (uri: string) => [RQKEY_ROOT, uri] export function useListMembersQuery(uri: string) { - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyGraphGetList.OutputSchema, Error, @@ -27,7 +27,7 @@ export function useListMembersQuery(uri: string) { staleTime: STALE.MINUTES.ONE, queryKey: RQKEY(uri), async queryFn({pageParam}: {pageParam: RQPageParam}) { - const res = await getAgent().app.bsky.graph.getList({ + const res = await agent.app.bsky.graph.getList({ list: uri, limit: PAGE_SIZE, cursor: pageParam, diff --git a/src/state/queries/list-memberships.ts b/src/state/queries/list-memberships.ts index 46e6bdfc2c..83a2c2db13 100644 --- a/src/state/queries/list-memberships.ts +++ b/src/state/queries/list-memberships.ts @@ -40,7 +40,7 @@ export interface ListMembersip { */ export function useDangerousListMembershipsQuery() { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ staleTime: STALE.MINUTES.FIVE, queryKey: RQKEY(), @@ -51,7 +51,7 @@ export function useDangerousListMembershipsQuery() { let cursor let arr: ListMembersip[] = [] for (let i = 0; i < SANITY_PAGE_LIMIT; i++) { - const res = await getAgent().app.bsky.graph.listitem.list({ + const res = await agent.app.bsky.graph.listitem.list({ repo: currentAccount.did, limit: PAGE_SIZE, cursor, @@ -92,7 +92,7 @@ export function getMembership( export function useListMembershipAddMutation() { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const queryClient = useQueryClient() return useMutation< {uri: string; cid: string}, @@ -103,7 +103,7 @@ export function useListMembershipAddMutation() { if (!currentAccount) { throw new Error('Not logged in') } - const res = await getAgent().app.bsky.graph.listitem.create( + const res = await agent.app.bsky.graph.listitem.create( {repo: currentAccount.did}, { subject: actorDid, @@ -151,7 +151,7 @@ export function useListMembershipAddMutation() { export function useListMembershipRemoveMutation() { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const queryClient = useQueryClient() return useMutation< void, @@ -163,7 +163,7 @@ export function useListMembershipRemoveMutation() { throw new Error('Not logged in') } const membershipUrip = new AtUri(membershipUri) - await getAgent().app.bsky.graph.listitem.delete({ + await agent.app.bsky.graph.listitem.delete({ repo: currentAccount.did, rkey: membershipUrip.rkey, }) diff --git a/src/state/queries/list.ts b/src/state/queries/list.ts index dd2e21fb63..eeb9c3b381 100644 --- a/src/state/queries/list.ts +++ b/src/state/queries/list.ts @@ -21,7 +21,7 @@ const RQKEY_ROOT = 'list' export const RQKEY = (uri: string) => [RQKEY_ROOT, uri] export function useListQuery(uri?: string) { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ staleTime: STALE.MINUTES.ONE, queryKey: RQKEY(uri || ''), @@ -29,7 +29,7 @@ export function useListQuery(uri?: string) { if (!uri) { throw new Error('URI not provided') } - const res = await getAgent().app.bsky.graph.getList({ + const res = await agent.app.bsky.graph.getList({ list: uri, limit: 1, }) @@ -49,7 +49,7 @@ export interface ListCreateMutateParams { export function useListCreateMutation() { const {currentAccount} = useSession() const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation<{uri: string; cid: string}, Error, ListCreateMutateParams>( { async mutationFn({ @@ -77,10 +77,10 @@ export function useListCreateMutation() { createdAt: new Date().toISOString(), } if (avatar) { - const blobRes = await uploadBlob(getAgent(), avatar.path, avatar.mime) + const blobRes = await uploadBlob(agent, avatar.path, avatar.mime) record.avatar = blobRes.data.blob } - const res = await getAgent().app.bsky.graph.list.create( + const res = await agent.app.bsky.graph.list.create( { repo: currentAccount.did, }, @@ -89,7 +89,7 @@ export function useListCreateMutation() { // wait for the appview to update await whenAppViewReady( - getAgent, + agent, res.uri, (v: AppBskyGraphGetList.Response) => { return typeof v?.data?.list.uri === 'string' @@ -116,7 +116,7 @@ export interface ListMetadataMutateParams { } export function useListMetadataMutation() { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const queryClient = useQueryClient() return useMutation< {uri: string; cid: string}, @@ -133,7 +133,7 @@ export function useListMetadataMutation() { } // get the current record - const {value: record} = await getAgent().app.bsky.graph.list.get({ + const {value: record} = await agent.app.bsky.graph.list.get({ repo: currentAccount.did, rkey, }) @@ -143,13 +143,13 @@ export function useListMetadataMutation() { record.description = description record.descriptionFacets = descriptionFacets if (avatar) { - const blobRes = await uploadBlob(getAgent(), avatar.path, avatar.mime) + const blobRes = await uploadBlob(agent, avatar.path, avatar.mime) record.avatar = blobRes.data.blob } else if (avatar === null) { record.avatar = undefined } const res = ( - await getAgent().com.atproto.repo.putRecord({ + await agent.com.atproto.repo.putRecord({ repo: currentAccount.did, collection: 'app.bsky.graph.list', rkey, @@ -159,7 +159,7 @@ export function useListMetadataMutation() { // wait for the appview to update await whenAppViewReady( - getAgent, + agent, res.uri, (v: AppBskyGraphGetList.Response) => { const list = v.data.list @@ -184,7 +184,7 @@ export function useListMetadataMutation() { export function useListDeleteMutation() { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const queryClient = useQueryClient() return useMutation({ mutationFn: async ({uri}) => { @@ -195,7 +195,7 @@ export function useListDeleteMutation() { let cursor let listitemRecordUris: string[] = [] for (let i = 0; i < 100; i++) { - const res = await getAgent().app.bsky.graph.listitem.list({ + const res = await agent.app.bsky.graph.listitem.list({ repo: currentAccount.did, cursor, limit: 100, @@ -226,20 +226,16 @@ export function useListDeleteMutation() { // apply in chunks for (const writesChunk of chunk(writes, 10)) { - await getAgent().com.atproto.repo.applyWrites({ + await agent.com.atproto.repo.applyWrites({ repo: currentAccount.did, writes: writesChunk, }) } // wait for the appview to update - await whenAppViewReady( - getAgent, - uri, - (v: AppBskyGraphGetList.Response) => { - return !v?.success - }, - ) + await whenAppViewReady(agent, uri, (v: AppBskyGraphGetList.Response) => { + return !v?.success + }) }, onSuccess() { invalidateMyLists(queryClient) @@ -253,22 +249,18 @@ export function useListDeleteMutation() { export function useListMuteMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({uri, mute}) => { if (mute) { - await getAgent().muteModList(uri) + await agent.muteModList(uri) } else { - await getAgent().unmuteModList(uri) + await agent.unmuteModList(uri) } - await whenAppViewReady( - getAgent, - uri, - (v: AppBskyGraphGetList.Response) => { - return Boolean(v?.data.list.viewer?.muted) === mute - }, - ) + await whenAppViewReady(agent, uri, (v: AppBskyGraphGetList.Response) => { + return Boolean(v?.data.list.viewer?.muted) === mute + }) }, onSuccess(data, variables) { queryClient.invalidateQueries({ @@ -280,24 +272,20 @@ export function useListMuteMutation() { export function useListBlockMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({uri, block}) => { if (block) { - await getAgent().blockModList(uri) + await agent.blockModList(uri) } else { - await getAgent().unblockModList(uri) + await agent.unblockModList(uri) } - await whenAppViewReady( - getAgent, - uri, - (v: AppBskyGraphGetList.Response) => { - return block - ? typeof v?.data.list.viewer?.blocked === 'string' - : !v?.data.list.viewer?.blocked - }, - ) + await whenAppViewReady(agent, uri, (v: AppBskyGraphGetList.Response) => { + return block + ? typeof v?.data.list.viewer?.blocked === 'string' + : !v?.data.list.viewer?.blocked + }) }, onSuccess(data, variables) { queryClient.invalidateQueries({ @@ -308,7 +296,7 @@ export function useListBlockMutation() { } async function whenAppViewReady( - getAgent: () => BskyAgent, + agent: BskyAgent, uri: string, fn: (res: AppBskyGraphGetList.Response) => boolean, ) { @@ -317,7 +305,7 @@ async function whenAppViewReady( 1e3, // 1s delay between tries fn, () => - getAgent().app.bsky.graph.getList({ + agent.app.bsky.graph.getList({ list: uri, limit: 1, }), diff --git a/src/state/queries/messages/actor-declaration.ts b/src/state/queries/messages/actor-declaration.ts index d6a86cf698..1105e2b3cb 100644 --- a/src/state/queries/messages/actor-declaration.ts +++ b/src/state/queries/messages/actor-declaration.ts @@ -14,12 +14,12 @@ export function useUpdateActorDeclaration({ }) { const queryClient = useQueryClient() const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async (allowIncoming: 'all' | 'none' | 'following') => { if (!currentAccount) throw new Error('Not logged in') - const result = await getAgent().api.com.atproto.repo.putRecord({ + const result = await agent.api.com.atproto.repo.putRecord({ repo: currentAccount.did, collection: 'chat.bsky.actor.declaration', rkey: 'self', @@ -64,13 +64,13 @@ export function useUpdateActorDeclaration({ // for use in the settings screen for testing export function useDeleteActorDeclaration() { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async () => { if (!currentAccount) throw new Error('Not logged in') // TODO(sam): remove validate: false once PDSes have the new lexicon - const result = await getAgent().api.com.atproto.repo.deleteRecord({ + const result = await agent.api.com.atproto.repo.deleteRecord({ repo: currentAccount.did, collection: 'chat.bsky.actor.declaration', rkey: 'self', diff --git a/src/state/queries/messages/conversation.ts b/src/state/queries/messages/conversation.ts index baf69223a5..16ace3c5a8 100644 --- a/src/state/queries/messages/conversation.ts +++ b/src/state/queries/messages/conversation.ts @@ -11,12 +11,12 @@ const RQKEY_ROOT = 'convo' export const RQKEY = (convoId: string) => [RQKEY_ROOT, convoId] export function useConvoQuery(convo: ChatBskyConvoDefs.ConvoView) { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ queryKey: RQKEY(convo.id), queryFn: async () => { - const {data} = await getAgent().api.chat.bsky.convo.getConvo( + const {data} = await agent.api.chat.bsky.convo.getConvo( {convoId: convo.id}, {headers: DM_SERVICE_HEADERS}, ) @@ -30,7 +30,7 @@ export function useConvoQuery(convo: ChatBskyConvoDefs.ConvoView) { export function useMarkAsReadMutation() { const optimisticUpdate = useOnMarkAsRead() const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({ @@ -42,7 +42,7 @@ export function useMarkAsReadMutation() { }) => { if (!convoId) throw new Error('No convoId provided') - await getAgent().api.chat.bsky.convo.updateRead( + await agent.api.chat.bsky.convo.updateRead( { convoId, messageId, diff --git a/src/state/queries/messages/get-convo-for-members.ts b/src/state/queries/messages/get-convo-for-members.ts index a260d54161..7979e06659 100644 --- a/src/state/queries/messages/get-convo-for-members.ts +++ b/src/state/queries/messages/get-convo-for-members.ts @@ -18,11 +18,11 @@ export function useGetConvoForMembers({ onError?: (error: Error) => void }) { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async (members: string[]) => { - const {data} = await getAgent().api.chat.bsky.convo.getConvoForMembers( + const {data} = await agent.api.chat.bsky.convo.getConvoForMembers( {members: members}, {headers: DM_SERVICE_HEADERS}, ) @@ -44,16 +44,13 @@ export function useGetConvoForMembers({ * Gets the conversation ID for a given DID. Returns null if it's not possible to message them. */ export function useMaybeConvoForUser(did: string) { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ queryKey: RQKEY(did), queryFn: async () => { - const convo = await getAgent() - .api.chat.bsky.convo.getConvoForMembers( - {members: [did]}, - {headers: DM_SERVICE_HEADERS}, - ) + const convo = await agent.api.chat.bsky.convo + .getConvoForMembers({members: [did]}, {headers: DM_SERVICE_HEADERS}) .catch(() => ({success: null})) if (convo.success) { diff --git a/src/state/queries/messages/leave-conversation.ts b/src/state/queries/messages/leave-conversation.ts index 9f45de5445..29c71a6066 100644 --- a/src/state/queries/messages/leave-conversation.ts +++ b/src/state/queries/messages/leave-conversation.ts @@ -17,13 +17,13 @@ export function useLeaveConvo( }, ) { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async () => { if (!convoId) throw new Error('No convoId provided') - const {data} = await getAgent().api.chat.bsky.convo.leaveConvo( + const {data} = await agent.api.chat.bsky.convo.leaveConvo( {convoId}, {headers: DM_SERVICE_HEADERS, encoding: 'application/json'}, ) diff --git a/src/state/queries/messages/list-converations.tsx b/src/state/queries/messages/list-converations.tsx index 13a4a3bf21..46892f6aeb 100644 --- a/src/state/queries/messages/list-converations.tsx +++ b/src/state/queries/messages/list-converations.tsx @@ -27,12 +27,12 @@ export const RQKEY = ['convo-list'] type RQPageParam = string | undefined export function useListConvosQuery() { - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery({ queryKey: RQKEY, queryFn: async ({pageParam}) => { - const {data} = await getAgent().api.chat.bsky.convo.listConvos( + const {data} = await agent.api.chat.bsky.convo.listConvos( {cursor: pageParam}, {headers: DM_SERVICE_HEADERS}, ) diff --git a/src/state/queries/messages/mute-conversation.ts b/src/state/queries/messages/mute-conversation.ts index fa760e00de..bc383fde11 100644 --- a/src/state/queries/messages/mute-conversation.ts +++ b/src/state/queries/messages/mute-conversation.ts @@ -21,13 +21,11 @@ export function useMuteConvo( }, ) { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({mute}: {mute: boolean}) => { if (!convoId) throw new Error('No convoId provided') - - const agent = getAgent() if (mute) { const {data} = await agent.api.chat.bsky.convo.muteConvo( {convoId}, diff --git a/src/state/queries/my-blocked-accounts.ts b/src/state/queries/my-blocked-accounts.ts index 73e2890569..05a78825fa 100644 --- a/src/state/queries/my-blocked-accounts.ts +++ b/src/state/queries/my-blocked-accounts.ts @@ -13,7 +13,7 @@ export const RQKEY = () => [RQKEY_ROOT] type RQPageParam = string | undefined export function useMyBlockedAccountsQuery() { - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyGraphGetBlocks.OutputSchema, Error, @@ -23,7 +23,7 @@ export function useMyBlockedAccountsQuery() { >({ queryKey: RQKEY(), async queryFn({pageParam}: {pageParam: RQPageParam}) { - const res = await getAgent().app.bsky.graph.getBlocks({ + const res = await agent.app.bsky.graph.getBlocks({ limit: 30, cursor: pageParam, }) diff --git a/src/state/queries/my-lists.ts b/src/state/queries/my-lists.ts index 7fce8b68ea..0f8721c61a 100644 --- a/src/state/queries/my-lists.ts +++ b/src/state/queries/my-lists.ts @@ -16,7 +16,7 @@ export const RQKEY = (filter: MyListsFilter) => [RQKEY_ROOT, filter] export function useMyListsQuery(filter: MyListsFilter) { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ staleTime: STALE.MINUTES.ONE, queryKey: RQKEY(filter), @@ -24,8 +24,8 @@ export function useMyListsQuery(filter: MyListsFilter) { let lists: AppBskyGraphDefs.ListView[] = [] const promises = [ accumulate(cursor => - getAgent() - .app.bsky.graph.getLists({ + agent.app.bsky.graph + .getLists({ actor: currentAccount!.did, cursor, limit: 50, @@ -39,8 +39,8 @@ export function useMyListsQuery(filter: MyListsFilter) { if (filter === 'all-including-subscribed' || filter === 'mod') { promises.push( accumulate(cursor => - getAgent() - .app.bsky.graph.getListMutes({ + agent.app.bsky.graph + .getListMutes({ cursor, limit: 50, }) @@ -52,8 +52,8 @@ export function useMyListsQuery(filter: MyListsFilter) { ) promises.push( accumulate(cursor => - getAgent() - .app.bsky.graph.getListBlocks({ + agent.app.bsky.graph + .getListBlocks({ cursor, limit: 50, }) diff --git a/src/state/queries/my-muted-accounts.ts b/src/state/queries/my-muted-accounts.ts index 6eded3f83f..5fb0fa79b9 100644 --- a/src/state/queries/my-muted-accounts.ts +++ b/src/state/queries/my-muted-accounts.ts @@ -13,7 +13,7 @@ export const RQKEY = () => [RQKEY_ROOT] type RQPageParam = string | undefined export function useMyMutedAccountsQuery() { - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyGraphGetMutes.OutputSchema, Error, @@ -23,7 +23,7 @@ export function useMyMutedAccountsQuery() { >({ queryKey: RQKEY(), async queryFn({pageParam}: {pageParam: RQPageParam}) { - const res = await getAgent().app.bsky.graph.getMutes({ + const res = await agent.app.bsky.graph.getMutes({ limit: 30, cursor: pageParam, }) diff --git a/src/state/queries/notifications/feed.ts b/src/state/queries/notifications/feed.ts index 80e5a4c472..523af28244 100644 --- a/src/state/queries/notifications/feed.ts +++ b/src/state/queries/notifications/feed.ts @@ -47,7 +47,7 @@ export function RQKEY() { } export function useNotificationFeedQuery(opts?: {enabled?: boolean}) { - const {getAgent} = useAgent() + const agent = useAgent() const queryClient = useQueryClient() const moderationOpts = useModerationOpts() const threadMutes = useMutedThreads() @@ -73,7 +73,7 @@ export function useNotificationFeedQuery(opts?: {enabled?: boolean}) { if (!page) { page = ( await fetchPage({ - getAgent, + agent, limit: PAGE_SIZE, cursor: pageParam, queryClient, diff --git a/src/state/queries/notifications/unread.tsx b/src/state/queries/notifications/unread.tsx index acc68c360e..5f33cdf740 100644 --- a/src/state/queries/notifications/unread.tsx +++ b/src/state/queries/notifications/unread.tsx @@ -45,7 +45,7 @@ const apiContext = React.createContext({ export function Provider({children}: React.PropsWithChildren<{}>) { const {hasSession} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const queryClient = useQueryClient() const moderationOpts = useModerationOpts() const threadMutes = useMutedThreads() @@ -112,7 +112,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { return { async markAllRead() { // update server - await getAgent().updateSeenNotifications( + await agent.updateSeenNotifications( cacheRef.current.syncedAt.toISOString(), ) @@ -127,7 +127,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { isPoll, }: {invalidate?: boolean; isPoll?: boolean} = {}) { try { - if (!getAgent().session) return + if (!agent.session) return if (AppState.currentState !== 'active') { return } @@ -142,7 +142,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { // count const {page, indexedAt: lastIndexed} = await fetchPage({ - getAgent, + agent, cursor: undefined, limit: 40, queryClient, @@ -192,7 +192,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { } }, } - }, [setNumUnread, queryClient, moderationOpts, threadMutes, getAgent]) + }, [setNumUnread, queryClient, moderationOpts, threadMutes, agent]) checkUnreadRef.current = api.checkUnread return ( diff --git a/src/state/queries/notifications/util.ts b/src/state/queries/notifications/util.ts index 5029a33ccc..ebcdff6866 100644 --- a/src/state/queries/notifications/util.ts +++ b/src/state/queries/notifications/util.ts @@ -23,7 +23,7 @@ const MS_2DAY = MS_1HR * 48 // = export async function fetchPage({ - getAgent, + agent, cursor, limit, queryClient, @@ -31,7 +31,7 @@ export async function fetchPage({ threadMutes, fetchAdditionalData, }: { - getAgent: () => BskyAgent + agent: BskyAgent cursor: string | undefined limit: number queryClient: QueryClient @@ -39,7 +39,7 @@ export async function fetchPage({ threadMutes: string[] fetchAdditionalData: boolean }): Promise<{page: FeedPage; indexedAt: string | undefined}> { - const res = await getAgent().listNotifications({ + const res = await agent.listNotifications({ limit, cursor, }) @@ -56,7 +56,7 @@ export async function fetchPage({ // we fetch subjects of notifications (usually posts) now instead of lazily // in the UI to avoid relayouts if (fetchAdditionalData) { - const subjects = await fetchSubjects(getAgent, notifsGrouped) + const subjects = await fetchSubjects(agent, notifsGrouped) for (const notif of notifsGrouped) { if (notif.subjectUri) { notif.subject = subjects.get(notif.subjectUri) @@ -140,7 +140,7 @@ export function groupNotifications( } async function fetchSubjects( - getAgent: () => BskyAgent, + agent: BskyAgent, groupedNotifs: FeedNotification[], ): Promise> { const uris = new Set() @@ -152,9 +152,7 @@ async function fetchSubjects( const uriChunks = chunk(Array.from(uris), 25) const postsChunks = await Promise.all( uriChunks.map(uris => - getAgent() - .app.bsky.feed.getPosts({uris}) - .then(res => res.data.posts), + agent.app.bsky.feed.getPosts({uris}).then(res => res.data.posts), ), ) const map = new Map() diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index 2851a0c2ac..eeec692c67 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -117,7 +117,7 @@ export function usePostFeedQuery( f => f.pinned && f.value === 'following', ) ?? -1 const enableFollowingToDiscoverFallback = followingPinnedIndex === 0 - const {getAgent} = useAgent() + const agent = useAgent() const lastRun = useRef<{ data: InfiniteData args: typeof selectArgs @@ -155,7 +155,7 @@ export function usePostFeedQuery( feedDesc, feedParams: params || {}, feedTuners, - getAgent, + agent, // Not in the query key because they don't change: userInterests, // Not in the query key. Reacting to it switching isn't important: @@ -173,7 +173,7 @@ export function usePostFeedQuery( * moderations happen later, which results in some posts being shown and * some not. */ - if (!getAgent().session) { + if (!agent.session) { assertSomePostsPassModeration(res.feed) } @@ -397,50 +397,50 @@ function createApi({ feedParams, feedTuners, userInterests, - getAgent, + agent, enableFollowingToDiscoverFallback, }: { feedDesc: FeedDescriptor feedParams: FeedParams feedTuners: FeedTunerFn[] userInterests?: string - getAgent: () => BskyAgent + agent: BskyAgent enableFollowingToDiscoverFallback: boolean }) { if (feedDesc === 'following') { if (feedParams.mergeFeedEnabled) { return new MergeFeedAPI({ - getAgent, + agent, feedParams, feedTuners, userInterests, }) } else { if (enableFollowingToDiscoverFallback) { - return new HomeFeedAPI({getAgent, userInterests}) + return new HomeFeedAPI({agent, userInterests}) } else { - return new FollowingFeedAPI({getAgent}) + return new FollowingFeedAPI({agent}) } } } else if (feedDesc.startsWith('author')) { const [_, actor, filter] = feedDesc.split('|') - return new AuthorFeedAPI({getAgent, feedParams: {actor, filter}}) + return new AuthorFeedAPI({agent, feedParams: {actor, filter}}) } else if (feedDesc.startsWith('likes')) { const [_, actor] = feedDesc.split('|') - return new LikesFeedAPI({getAgent, feedParams: {actor}}) + return new LikesFeedAPI({agent, feedParams: {actor}}) } else if (feedDesc.startsWith('feedgen')) { const [_, feed] = feedDesc.split('|') return new CustomFeedAPI({ - getAgent, + agent, feedParams: {feed}, userInterests, }) } else if (feedDesc.startsWith('list')) { const [_, list] = feedDesc.split('|') - return new ListFeedAPI({getAgent, feedParams: {list}}) + return new ListFeedAPI({agent, feedParams: {list}}) } else { // shouldnt happen - return new FollowingFeedAPI({getAgent}) + return new FollowingFeedAPI({agent}) } } diff --git a/src/state/queries/post-liked-by.ts b/src/state/queries/post-liked-by.ts index fdf6948609..ab9f5c7bba 100644 --- a/src/state/queries/post-liked-by.ts +++ b/src/state/queries/post-liked-by.ts @@ -16,7 +16,7 @@ const RQKEY_ROOT = 'liked-by' export const RQKEY = (resolvedUri: string) => [RQKEY_ROOT, resolvedUri] export function useLikedByQuery(resolvedUri: string | undefined) { - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyFeedGetLikes.OutputSchema, Error, @@ -26,7 +26,7 @@ export function useLikedByQuery(resolvedUri: string | undefined) { >({ queryKey: RQKEY(resolvedUri || ''), async queryFn({pageParam}: {pageParam: RQPageParam}) { - const res = await getAgent().getLikes({ + const res = await agent.getLikes({ uri: resolvedUri || '', limit: PAGE_SIZE, cursor: pageParam, diff --git a/src/state/queries/post-reposted-by.ts b/src/state/queries/post-reposted-by.ts index 13643e98d2..a27f203dd9 100644 --- a/src/state/queries/post-reposted-by.ts +++ b/src/state/queries/post-reposted-by.ts @@ -16,7 +16,7 @@ const RQKEY_ROOT = 'post-reposted-by' export const RQKEY = (resolvedUri: string) => [RQKEY_ROOT, resolvedUri] export function usePostRepostedByQuery(resolvedUri: string | undefined) { - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyFeedGetRepostedBy.OutputSchema, Error, @@ -26,7 +26,7 @@ export function usePostRepostedByQuery(resolvedUri: string | undefined) { >({ queryKey: RQKEY(resolvedUri || ''), async queryFn({pageParam}: {pageParam: RQPageParam}) { - const res = await getAgent().getRepostedBy({ + const res = await agent.getRepostedBy({ uri: resolvedUri || '', limit: PAGE_SIZE, cursor: pageParam, diff --git a/src/state/queries/post-thread.ts b/src/state/queries/post-thread.ts index 4ee0eb3f9e..6c70bbc5d7 100644 --- a/src/state/queries/post-thread.ts +++ b/src/state/queries/post-thread.ts @@ -68,12 +68,12 @@ export type ThreadModerationCache = WeakMap export function usePostThreadQuery(uri: string | undefined) { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ gcTime: 0, queryKey: RQKEY(uri || ''), async queryFn() { - const res = await getAgent().getPostThread({uri: uri!}) + const res = await agent.getPostThread({uri: uri!}) if (res.success) { return responseToThreadNodes(res.data.thread) } diff --git a/src/state/queries/post.ts b/src/state/queries/post.ts index d52c657134..f27628d696 100644 --- a/src/state/queries/post.ts +++ b/src/state/queries/post.ts @@ -14,11 +14,11 @@ const RQKEY_ROOT = 'post' export const RQKEY = (postUri: string) => [RQKEY_ROOT, postUri] export function usePostQuery(uri: string | undefined) { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ queryKey: RQKEY(uri || ''), async queryFn() { - const res = await getAgent().getPosts({uris: [uri!]}) + const res = await agent.getPosts({uris: [uri!]}) if (res.success && res.data.posts[0]) { return res.data.posts[0] } @@ -31,7 +31,7 @@ export function usePostQuery(uri: string | undefined) { export function useGetPost() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useCallback( async ({uri}: {uri: string}) => { return queryClient.fetchQuery({ @@ -40,13 +40,13 @@ export function useGetPost() { const urip = new AtUri(uri) if (!urip.host.startsWith('did:')) { - const res = await getAgent().resolveHandle({ + const res = await agent.resolveHandle({ handle: urip.host, }) urip.host = res.data.did } - const res = await getAgent().getPosts({ + const res = await agent.getPosts({ uris: [urip.toString()!], }) @@ -58,7 +58,7 @@ export function useGetPost() { }, }) }, - [queryClient, getAgent], + [queryClient, agent], ) } @@ -127,7 +127,7 @@ function usePostLikeMutation( const {currentAccount} = useSession() const queryClient = useQueryClient() const postAuthor = post.author - const {getAgent} = useAgent() + const agent = useAgent() return useMutation< {uri: string}, // responds with the uri of the like Error, @@ -154,7 +154,7 @@ function usePostLikeMutation( ? toClout(post.likeCount + post.repostCount + post.replyCount) : undefined, }) - return getAgent().like(uri, cid) + return agent.like(uri, cid) }, onSuccess() { track('Post:Like') @@ -165,11 +165,11 @@ function usePostLikeMutation( function usePostUnlikeMutation( logContext: LogEvents['post:unlike']['logContext'], ) { - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: ({likeUri}) => { logEvent('post:unlike', {logContext}) - return getAgent().deleteLike(likeUri) + return agent.deleteLike(likeUri) }, onSuccess() { track('Post:Unlike') @@ -238,7 +238,7 @@ export function usePostRepostMutationQueue( function usePostRepostMutation( logContext: LogEvents['post:repost']['logContext'], ) { - const {getAgent} = useAgent() + const agent = useAgent() return useMutation< {uri: string}, // responds with the uri of the repost Error, @@ -246,7 +246,7 @@ function usePostRepostMutation( >({ mutationFn: post => { logEvent('post:repost', {logContext}) - return getAgent().repost(post.uri, post.cid) + return agent.repost(post.uri, post.cid) }, onSuccess() { track('Post:Repost') @@ -257,11 +257,11 @@ function usePostRepostMutation( function usePostUnrepostMutation( logContext: LogEvents['post:unrepost']['logContext'], ) { - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: ({repostUri}) => { logEvent('post:unrepost', {logContext}) - return getAgent().deleteRepost(repostUri) + return agent.deleteRepost(repostUri) }, onSuccess() { track('Post:Unrepost') @@ -271,10 +271,10 @@ function usePostUnrepostMutation( export function usePostDeleteMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({uri}) => { - await getAgent().deletePost(uri) + await agent.deletePost(uri) }, onSuccess(data, variables) { updatePostShadow(queryClient, variables.uri, {isDeleted: true}) diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts index 555fd85a49..672abfcac5 100644 --- a/src/state/queries/preferences/index.ts +++ b/src/state/queries/preferences/index.ts @@ -30,15 +30,13 @@ const preferencesQueryKeyRoot = 'getPreferences' export const preferencesQueryKey = [preferencesQueryKeyRoot] export function usePreferencesQuery() { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ staleTime: STALE.SECONDS.FIFTEEN, structuralSharing: replaceEqualDeep, refetchOnWindowFocus: true, queryKey: preferencesQueryKey, queryFn: async () => { - const agent = getAgent() - if (agent.session?.did === undefined) { return DEFAULT_LOGGED_OUT_PREFERENCES } else { @@ -75,11 +73,11 @@ export function usePreferencesQuery() { export function useClearPreferencesMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async () => { - await getAgent().app.bsky.actor.putPreferences({preferences: []}) + await agent.app.bsky.actor.putPreferences({preferences: []}) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, @@ -89,7 +87,7 @@ export function useClearPreferencesMutation() { } export function usePreferencesSetContentLabelMutation() { - const {getAgent} = useAgent() + const agent = useAgent() const queryClient = useQueryClient() return useMutation< @@ -98,7 +96,7 @@ export function usePreferencesSetContentLabelMutation() { {label: string; visibility: LabelPreference; labelerDid: string | undefined} >({ mutationFn: async ({label, visibility, labelerDid}) => { - await getAgent().setContentLabelPref(label, visibility, labelerDid) + await agent.setContentLabelPref(label, visibility, labelerDid) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, @@ -109,7 +107,7 @@ export function usePreferencesSetContentLabelMutation() { export function useSetContentLabelMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({ @@ -121,7 +119,7 @@ export function useSetContentLabelMutation() { visibility: LabelPreference labelerDid?: string }) => { - await getAgent().setContentLabelPref(label, visibility, labelerDid) + await agent.setContentLabelPref(label, visibility, labelerDid) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, @@ -132,11 +130,11 @@ export function useSetContentLabelMutation() { export function usePreferencesSetAdultContentMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({enabled}) => { - await getAgent().setAdultContentEnabled(enabled) + await agent.setAdultContentEnabled(enabled) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, @@ -147,11 +145,11 @@ export function usePreferencesSetAdultContentMutation() { export function usePreferencesSetBirthDateMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({birthDate}: {birthDate: Date}) => { - await getAgent().setPersonalDetails({birthDate: birthDate.toISOString()}) + await agent.setPersonalDetails({birthDate: birthDate.toISOString()}) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, @@ -162,7 +160,7 @@ export function usePreferencesSetBirthDateMutation() { export function useSetFeedViewPreferencesMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation>({ mutationFn: async prefs => { @@ -170,7 +168,7 @@ export function useSetFeedViewPreferencesMutation() { * special handling here, merged into `feedViewPrefs` above, since * following was previously called `home` */ - await getAgent().setFeedViewPrefs('home', prefs) + await agent.setFeedViewPrefs('home', prefs) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, @@ -181,11 +179,11 @@ export function useSetFeedViewPreferencesMutation() { export function useSetThreadViewPreferencesMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation>({ mutationFn: async prefs => { - await getAgent().setThreadViewPrefs(prefs) + await agent.setThreadViewPrefs(prefs) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, @@ -196,11 +194,11 @@ export function useSetThreadViewPreferencesMutation() { export function useOverwriteSavedFeedsMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async savedFeeds => { - await getAgent().overwriteSavedFeeds(savedFeeds) + await agent.overwriteSavedFeeds(savedFeeds) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, @@ -211,7 +209,7 @@ export function useOverwriteSavedFeedsMutation() { export function useAddSavedFeedsMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation< void, @@ -219,7 +217,7 @@ export function useAddSavedFeedsMutation() { Pick[] >({ mutationFn: async savedFeeds => { - await getAgent().addSavedFeeds(savedFeeds) + await agent.addSavedFeeds(savedFeeds) track('CustomFeed:Save') // triggers a refetch await queryClient.invalidateQueries({ @@ -231,11 +229,11 @@ export function useAddSavedFeedsMutation() { export function useRemoveFeedMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation>({ mutationFn: async savedFeed => { - await getAgent().removeSavedFeeds([savedFeed.id]) + await agent.removeSavedFeeds([savedFeed.id]) track('CustomFeed:Unsave') // triggers a refetch await queryClient.invalidateQueries({ @@ -247,7 +245,7 @@ export function useRemoveFeedMutation() { export function useReplaceForYouWithDiscoverFeedMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({ @@ -258,10 +256,10 @@ export function useReplaceForYouWithDiscoverFeedMutation() { discoverFeedConfig: AppBskyActorDefs.SavedFeed | undefined }) => { if (forYouFeedConfig) { - await getAgent().removeSavedFeeds([forYouFeedConfig.id]) + await agent.removeSavedFeeds([forYouFeedConfig.id]) } if (!discoverFeedConfig) { - await getAgent().addSavedFeeds([ + await agent.addSavedFeeds([ { type: 'feed', value: PROD_DEFAULT_FEED('whats-hot'), @@ -269,7 +267,7 @@ export function useReplaceForYouWithDiscoverFeedMutation() { }, ]) } else { - await getAgent().updateSavedFeeds([ + await agent.updateSavedFeeds([ { ...discoverFeedConfig, pinned: true, @@ -286,11 +284,11 @@ export function useReplaceForYouWithDiscoverFeedMutation() { export function useUpdateSavedFeedsMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async feeds => { - await getAgent().updateSavedFeeds(feeds) + await agent.updateSavedFeeds(feeds) // triggers a refetch await queryClient.invalidateQueries({ @@ -302,11 +300,11 @@ export function useUpdateSavedFeedsMutation() { export function useUpsertMutedWordsMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async (mutedWords: AppBskyActorDefs.MutedWord[]) => { - await getAgent().upsertMutedWords(mutedWords) + await agent.upsertMutedWords(mutedWords) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, @@ -317,11 +315,11 @@ export function useUpsertMutedWordsMutation() { export function useUpdateMutedWordMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async (mutedWord: AppBskyActorDefs.MutedWord) => { - await getAgent().updateMutedWord(mutedWord) + await agent.updateMutedWord(mutedWord) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, @@ -332,11 +330,11 @@ export function useUpdateMutedWordMutation() { export function useRemoveMutedWordMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async (mutedWord: AppBskyActorDefs.MutedWord) => { - await getAgent().removeMutedWord(mutedWord) + await agent.removeMutedWord(mutedWord) // triggers a refetch await queryClient.invalidateQueries({ queryKey: preferencesQueryKey, diff --git a/src/state/queries/profile-feedgens.ts b/src/state/queries/profile-feedgens.ts index 27f2d5aaab..e2508f994e 100644 --- a/src/state/queries/profile-feedgens.ts +++ b/src/state/queries/profile-feedgens.ts @@ -15,7 +15,7 @@ export function useProfileFeedgensQuery( opts?: {enabled?: boolean}, ) { const enabled = opts?.enabled !== false - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyFeedGetActorFeeds.OutputSchema, Error, @@ -25,7 +25,7 @@ export function useProfileFeedgensQuery( >({ queryKey: RQKEY(did), async queryFn({pageParam}: {pageParam: RQPageParam}) { - const res = await getAgent().app.bsky.feed.getActorFeeds({ + const res = await agent.app.bsky.feed.getActorFeeds({ actor: did, limit: PAGE_SIZE, cursor: pageParam, diff --git a/src/state/queries/profile-followers.ts b/src/state/queries/profile-followers.ts index d0cbccaf57..131343cd10 100644 --- a/src/state/queries/profile-followers.ts +++ b/src/state/queries/profile-followers.ts @@ -15,7 +15,7 @@ const RQKEY_ROOT = 'profile-followers' export const RQKEY = (did: string) => [RQKEY_ROOT, did] export function useProfileFollowersQuery(did: string | undefined) { - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyGraphGetFollowers.OutputSchema, Error, @@ -25,7 +25,7 @@ export function useProfileFollowersQuery(did: string | undefined) { >({ queryKey: RQKEY(did || ''), async queryFn({pageParam}: {pageParam: RQPageParam}) { - const res = await getAgent().app.bsky.graph.getFollowers({ + const res = await agent.app.bsky.graph.getFollowers({ actor: did || '', limit: PAGE_SIZE, cursor: pageParam, diff --git a/src/state/queries/profile-follows.ts b/src/state/queries/profile-follows.ts index 1919409c7f..6d832a8416 100644 --- a/src/state/queries/profile-follows.ts +++ b/src/state/queries/profile-follows.ts @@ -26,7 +26,7 @@ export function useProfileFollowsQuery( limit: PAGE_SIZE, }, ) { - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyGraphGetFollows.OutputSchema, Error, @@ -37,7 +37,7 @@ export function useProfileFollowsQuery( staleTime: STALE.MINUTES.ONE, queryKey: RQKEY(did || ''), async queryFn({pageParam}: {pageParam: RQPageParam}) { - const res = await getAgent().app.bsky.graph.getFollows({ + const res = await agent.app.bsky.graph.getFollows({ actor: did || '', limit: limit || PAGE_SIZE, cursor: pageParam, diff --git a/src/state/queries/profile-lists.ts b/src/state/queries/profile-lists.ts index 543961d635..2bb5f4d28b 100644 --- a/src/state/queries/profile-lists.ts +++ b/src/state/queries/profile-lists.ts @@ -11,7 +11,7 @@ export const RQKEY = (did: string) => [RQKEY_ROOT, did] export function useProfileListsQuery(did: string, opts?: {enabled?: boolean}) { const enabled = opts?.enabled !== false - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyGraphGetLists.OutputSchema, Error, @@ -21,7 +21,7 @@ export function useProfileListsQuery(did: string, opts?: {enabled?: boolean}) { >({ queryKey: RQKEY(did), async queryFn({pageParam}: {pageParam: RQPageParam}) { - const res = await getAgent().app.bsky.graph.getLists({ + const res = await agent.app.bsky.graph.getLists({ actor: did, limit: PAGE_SIZE, cursor: pageParam, diff --git a/src/state/queries/profile.ts b/src/state/queries/profile.ts index af8718c5e0..7cc9f69116 100644 --- a/src/state/queries/profile.ts +++ b/src/state/queries/profile.ts @@ -52,7 +52,7 @@ export function useProfileQuery({ staleTime?: number }) { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ // WARNING // this staleTime is load-bearing @@ -62,7 +62,7 @@ export function useProfileQuery({ refetchOnWindowFocus: true, queryKey: RQKEY(did ?? ''), queryFn: async () => { - const res = await getAgent().getProfile({actor: did ?? ''}) + const res = await agent.getProfile({actor: did ?? ''}) return res.data }, placeholderData: () => { @@ -77,31 +77,31 @@ export function useProfileQuery({ } export function useProfilesQuery({handles}: {handles: string[]}) { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ staleTime: STALE.MINUTES.FIVE, queryKey: profilesQueryKey(handles), queryFn: async () => { - const res = await getAgent().getProfiles({actors: handles}) + const res = await agent.getProfiles({actors: handles}) return res.data }, }) } export function usePrefetchProfileQuery() { - const {getAgent} = useAgent() + const agent = useAgent() const queryClient = useQueryClient() const prefetchProfileQuery = useCallback( async (did: string) => { await queryClient.prefetchQuery({ queryKey: RQKEY(did), queryFn: async () => { - const res = await getAgent().getProfile({actor: did || ''}) + const res = await agent.getProfile({actor: did || ''}) return res.data }, }) }, - [queryClient, getAgent], + [queryClient, agent], ) return prefetchProfileQuery } @@ -117,7 +117,7 @@ interface ProfileUpdateParams { } export function useProfileUpdateMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({ profile, @@ -131,7 +131,7 @@ export function useProfileUpdateMutation() { | undefined if (newUserAvatar) { newUserAvatarPromise = uploadBlob( - getAgent(), + agent, newUserAvatar.path, newUserAvatar.mime, ) @@ -141,12 +141,12 @@ export function useProfileUpdateMutation() { | undefined if (newUserBanner) { newUserBannerPromise = uploadBlob( - getAgent(), + agent, newUserBanner.path, newUserBanner.mime, ) } - await getAgent().upsertProfile(async existing => { + await agent.upsertProfile(async existing => { existing = existing || {} if (typeof updates === 'function') { existing = updates(existing) @@ -169,7 +169,7 @@ export function useProfileUpdateMutation() { return existing }) await whenAppViewReady( - getAgent, + agent, profile.did, checkCommitted || (res => { @@ -271,7 +271,7 @@ function useProfileFollowMutation( profile: Shadow, ) { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const queryClient = useQueryClient() return useMutation<{uri: string; cid: string}, Error, {did: string}>({ mutationFn: async ({did}) => { @@ -287,7 +287,7 @@ function useProfileFollowMutation( followeeClout: toClout(profile.followersCount), followerClout: toClout(ownProfile?.followersCount), }) - return await getAgent().follow(did) + return await agent.follow(did) }, onSuccess(data, variables) { track('Profile:Follow', {username: variables.did}) @@ -298,12 +298,12 @@ function useProfileFollowMutation( function useProfileUnfollowMutation( logContext: LogEvents['profile:unfollow']['logContext'], ) { - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({followUri}) => { logEvent('profile:unfollow', {logContext}) track('Profile:Unfollow', {username: followUri}) - return await getAgent().deleteFollow(followUri) + return await agent.deleteFollow(followUri) }, }) } @@ -359,10 +359,10 @@ export function useProfileMuteMutationQueue( function useProfileMuteMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({did}) => { - await getAgent().mute(did) + await agent.mute(did) }, onSuccess() { queryClient.invalidateQueries({queryKey: RQKEY_MY_MUTED()}) @@ -372,10 +372,10 @@ function useProfileMuteMutation() { function useProfileUnmuteMutation() { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useMutation({ mutationFn: async ({did}) => { - await getAgent().unmute(did) + await agent.unmute(did) }, onSuccess() { queryClient.invalidateQueries({queryKey: RQKEY_MY_MUTED()}) @@ -440,14 +440,14 @@ export function useProfileBlockMutationQueue( function useProfileBlockMutation() { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const queryClient = useQueryClient() return useMutation<{uri: string; cid: string}, Error, {did: string}>({ mutationFn: async ({did}) => { if (!currentAccount) { throw new Error('Not signed in') } - return await getAgent().app.bsky.graph.block.create( + return await agent.app.bsky.graph.block.create( {repo: currentAccount.did}, {subject: did, createdAt: new Date().toISOString()}, ) @@ -461,7 +461,7 @@ function useProfileBlockMutation() { function useProfileUnblockMutation() { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const queryClient = useQueryClient() return useMutation({ mutationFn: async ({blockUri}) => { @@ -469,7 +469,7 @@ function useProfileUnblockMutation() { throw new Error('Not signed in') } const {rkey} = new AtUri(blockUri) - await getAgent().app.bsky.graph.block.delete({ + await agent.app.bsky.graph.block.delete({ repo: currentAccount.did, rkey, }) @@ -489,7 +489,7 @@ export function precacheProfile( } async function whenAppViewReady( - getAgent: () => BskyAgent, + agent: BskyAgent, actor: string, fn: (res: AppBskyActorGetProfile.Response) => boolean, ) { @@ -497,7 +497,7 @@ async function whenAppViewReady( 5, // 5 tries 1e3, // 1s delay between tries fn, - () => getAgent().app.bsky.actor.getProfile({actor}), + () => agent.app.bsky.actor.getProfile({actor}), ) } diff --git a/src/state/queries/resolve-uri.ts b/src/state/queries/resolve-uri.ts index b1980f07d1..7bd26435cf 100644 --- a/src/state/queries/resolve-uri.ts +++ b/src/state/queries/resolve-uri.ts @@ -24,7 +24,7 @@ export function useResolveUriQuery(uri: string | undefined): UriUseQueryResult { export function useResolveDidQuery(didOrHandle: string | undefined) { const queryClient = useQueryClient() - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ staleTime: STALE.HOURS.ONE, @@ -34,7 +34,7 @@ export function useResolveDidQuery(didOrHandle: string | undefined) { // Just return the did if it's already one if (didOrHandle.startsWith('did:')) return didOrHandle - const res = await getAgent().resolveHandle({handle: didOrHandle}) + const res = await agent.resolveHandle({handle: didOrHandle}) return res.data.did }, initialData: () => { diff --git a/src/state/queries/search-posts.ts b/src/state/queries/search-posts.ts index b0720af3c8..5bee96535f 100644 --- a/src/state/queries/search-posts.ts +++ b/src/state/queries/search-posts.ts @@ -25,7 +25,7 @@ export function useSearchPostsQuery({ sort?: 'top' | 'latest' enabled?: boolean }) { - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyFeedSearchPosts.OutputSchema, Error, @@ -35,7 +35,7 @@ export function useSearchPostsQuery({ >({ queryKey: searchPostsQueryKey({query, sort}), queryFn: async ({pageParam}) => { - const res = await getAgent().app.bsky.feed.searchPosts({ + const res = await agent.app.bsky.feed.searchPosts({ q: query, limit: 25, cursor: pageParam, diff --git a/src/state/queries/suggested-feeds.ts b/src/state/queries/suggested-feeds.ts index c7751448e9..19614c2cb2 100644 --- a/src/state/queries/suggested-feeds.ts +++ b/src/state/queries/suggested-feeds.ts @@ -8,7 +8,7 @@ const suggestedFeedsQueryKeyRoot = 'suggestedFeeds' export const suggestedFeedsQueryKey = [suggestedFeedsQueryKeyRoot] export function useSuggestedFeedsQuery() { - const {getAgent} = useAgent() + const agent = useAgent() return useInfiniteQuery< AppBskyFeedGetSuggestedFeeds.OutputSchema, Error, @@ -19,7 +19,7 @@ export function useSuggestedFeedsQuery() { staleTime: STALE.HOURS.ONE, queryKey: suggestedFeedsQueryKey, queryFn: async ({pageParam}) => { - const res = await getAgent().app.bsky.feed.getSuggestedFeeds({ + const res = await agent.app.bsky.feed.getSuggestedFeeds({ limit: 10, cursor: pageParam, }) diff --git a/src/state/queries/suggested-follows.ts b/src/state/queries/suggested-follows.ts index 7740b1977c..59b8f7ed55 100644 --- a/src/state/queries/suggested-follows.ts +++ b/src/state/queries/suggested-follows.ts @@ -33,7 +33,7 @@ const suggestedFollowsByActorQueryKey = (did: string) => [ export function useSuggestedFollowsQuery() { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const moderationOpts = useModerationOpts() const {data: preferences} = usePreferencesQuery() @@ -49,7 +49,7 @@ export function useSuggestedFollowsQuery() { queryKey: suggestedFollowsQueryKey, queryFn: async ({pageParam}) => { const contentLangs = getContentLanguages().join(',') - const res = await getAgent().app.bsky.actor.getSuggestions( + const res = await agent.app.bsky.actor.getSuggestions( { limit: 25, cursor: pageParam, @@ -94,11 +94,11 @@ export function useSuggestedFollowsQuery() { } export function useSuggestedFollowsByActorQuery({did}: {did: string}) { - const {getAgent} = useAgent() + const agent = useAgent() return useQuery({ queryKey: suggestedFollowsByActorQueryKey(did), queryFn: async () => { - const res = await getAgent().app.bsky.graph.getSuggestedFollowsByActor({ + const res = await agent.app.bsky.graph.getSuggestedFollowsByActor({ actor: did, }) return res.data diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx index af8417f8d7..e38dd2bb55 100644 --- a/src/state/session/index.tsx +++ b/src/state/session/index.tsx @@ -268,17 +268,10 @@ export function useRequireAuth() { ) } -export function useAgent(): {getAgent: () => BskyAgent} { +export function useAgent(): BskyAgent { const agent = React.useContext(AgentContext) if (!agent) { throw Error('useAgent() must be below .') } - return React.useMemo( - () => ({ - getAgent() { - return agent - }, - }), - [agent], - ) + return agent } diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 7b102c8236..12e57c411d 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -90,7 +90,7 @@ export const ComposePost = observer(function ComposePost({ imageUris: initImageUris, }: Props) { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const {data: currentProfile} = useProfileQuery({did: currentAccount!.did}) const {isModalActive} = useModals() const {closeComposer} = useComposerControls() @@ -260,7 +260,7 @@ export const ComposePost = observer(function ComposePost({ let postUri try { postUri = ( - await apilib.post(getAgent(), { + await apilib.post(agent, { rawText: richtext.text, replyTo: replyTo?.uri, images: gallery.images, diff --git a/src/view/com/composer/useExternalLinkFetch.e2e.ts b/src/view/com/composer/useExternalLinkFetch.e2e.ts index 65ecb866e7..257a3e8e52 100644 --- a/src/view/com/composer/useExternalLinkFetch.e2e.ts +++ b/src/view/com/composer/useExternalLinkFetch.e2e.ts @@ -8,7 +8,7 @@ import {ComposerOpts} from 'state/shell/composer' export function useExternalLinkFetch({}: { setQuote: (opts: ComposerOpts['quote']) => void }) { - const {getAgent} = useAgent() + const agent = useAgent() const [extLink, setExtLink] = useState( undefined, ) @@ -22,7 +22,7 @@ export function useExternalLinkFetch({}: { return cleanup } if (!extLink.meta) { - getLinkMeta(getAgent(), extLink.uri).then(meta => { + getLinkMeta(agent, extLink.uri).then(meta => { if (aborted) { return } @@ -41,7 +41,7 @@ export function useExternalLinkFetch({}: { }) } return cleanup - }, [extLink, getAgent]) + }, [extLink, agent]) return {extLink, setExtLink} } diff --git a/src/view/com/composer/useExternalLinkFetch.ts b/src/view/com/composer/useExternalLinkFetch.ts index d51dec42b1..2e0297a475 100644 --- a/src/view/com/composer/useExternalLinkFetch.ts +++ b/src/view/com/composer/useExternalLinkFetch.ts @@ -31,7 +31,7 @@ export function useExternalLinkFetch({ ) const getPost = useGetPost() const fetchDid = useFetchDid() - const {getAgent} = useAgent() + const agent = useAgent() useEffect(() => { let aborted = false @@ -59,7 +59,7 @@ export function useExternalLinkFetch({ }, ) } else if (isBskyCustomFeedUrl(extLink.uri)) { - getFeedAsEmbed(getAgent(), fetchDid, extLink.uri).then( + getFeedAsEmbed(agent, fetchDid, extLink.uri).then( ({embed, meta}) => { if (aborted) { return @@ -77,7 +77,7 @@ export function useExternalLinkFetch({ }, ) } else if (isBskyListUrl(extLink.uri)) { - getListAsEmbed(getAgent(), fetchDid, extLink.uri).then( + getListAsEmbed(agent, fetchDid, extLink.uri).then( ({embed, meta}) => { if (aborted) { return @@ -95,7 +95,7 @@ export function useExternalLinkFetch({ }, ) } else { - getLinkMeta(getAgent(), extLink.uri).then(meta => { + getLinkMeta(agent, extLink.uri).then(meta => { if (aborted) { return } @@ -137,7 +137,7 @@ export function useExternalLinkFetch({ }) } return cleanup - }, [extLink, setQuote, getPost, fetchDid, getAgent]) + }, [extLink, setQuote, getPost, fetchDid, agent]) return {extLink, setExtLink} } diff --git a/src/view/com/modals/ChangeEmail.tsx b/src/view/com/modals/ChangeEmail.tsx index b940b2d6dc..a214627e2d 100644 --- a/src/view/com/modals/ChangeEmail.tsx +++ b/src/view/com/modals/ChangeEmail.tsx @@ -27,7 +27,7 @@ export const snapPoints = ['90%'] export function Component() { const pal = usePalette('default') const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const {_} = useLingui() const [stage, setStage] = useState(Stages.InputEmail) const [email, setEmail] = useState(currentAccount?.email || '') @@ -45,12 +45,12 @@ export function Component() { setError('') setIsProcessing(true) try { - const res = await getAgent().com.atproto.server.requestEmailUpdate() + const res = await agent.com.atproto.server.requestEmailUpdate() if (res.data.tokenRequired) { setStage(Stages.ConfirmCode) } else { - await getAgent().com.atproto.server.updateEmail({email: email.trim()}) - await getAgent().resumeSession(getAgent().session!) + await agent.com.atproto.server.updateEmail({email: email.trim()}) + await agent.resumeSession(agent.session!) Toast.show(_(msg`Email updated`)) setStage(Stages.Done) } @@ -75,11 +75,11 @@ export function Component() { setError('') setIsProcessing(true) try { - await getAgent().com.atproto.server.updateEmail({ + await agent.com.atproto.server.updateEmail({ email: email.trim(), token: confirmationCode.trim(), }) - await getAgent().resumeSession(getAgent().session!) + await agent.resumeSession(agent.session!) Toast.show(_(msg`Email updated`)) setStage(Stages.Done) } catch (e) { diff --git a/src/view/com/modals/ChangeHandle.tsx b/src/view/com/modals/ChangeHandle.tsx index 52eb51031c..f2094ed75b 100644 --- a/src/view/com/modals/ChangeHandle.tsx +++ b/src/view/com/modals/ChangeHandle.tsx @@ -35,12 +35,12 @@ export type Props = {onChanged: () => void} export function Component(props: Props) { const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const { isLoading, data: serviceInfo, error: serviceInfoError, - } = useServiceQuery(getAgent().service.toString()) + } = useServiceQuery(agent.service.toString()) return isLoading || !currentAccount ? ( @@ -71,7 +71,7 @@ export function Inner({ const {closeModal} = useModalControls() const {mutateAsync: updateHandle, isPending: isUpdateHandlePending} = useUpdateHandleMutation() - const {getAgent} = useAgent() + const agent = useAgent() const [error, setError] = useState('') @@ -111,7 +111,7 @@ export function Inner({ await updateHandle({ handle: newHandle, }) - await getAgent().resumeSession(getAgent().session!) + await agent.resumeSession(agent.session!) closeModal() onChanged() } catch (err: any) { @@ -129,7 +129,7 @@ export function Inner({ closeModal, updateHandle, serviceInfo, - getAgent, + agent, ]) // rendering diff --git a/src/view/com/modals/ChangePassword.tsx b/src/view/com/modals/ChangePassword.tsx index 3ce7306b9d..196715b49f 100644 --- a/src/view/com/modals/ChangePassword.tsx +++ b/src/view/com/modals/ChangePassword.tsx @@ -37,7 +37,7 @@ export const snapPoints = isAndroid ? ['90%'] : ['45%'] export function Component() { const pal = usePalette('default') const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const {_} = useLingui() const [stage, setStage] = useState(Stages.RequestCode) const [isProcessing, setIsProcessing] = useState(false) @@ -46,7 +46,6 @@ export function Component() { const [error, setError] = useState('') const {isMobile} = useWebMediaQueries() const {closeModal} = useModalControls() - const agent = getAgent() const onRequestCode = async () => { if ( diff --git a/src/view/com/modals/CreateOrEditList.tsx b/src/view/com/modals/CreateOrEditList.tsx index 2dff636afc..2ea34e808b 100644 --- a/src/view/com/modals/CreateOrEditList.tsx +++ b/src/view/com/modals/CreateOrEditList.tsx @@ -62,7 +62,7 @@ export function Component({ const {_} = useLingui() const listCreateMutation = useListCreateMutation() const listMetadataMutation = useListMetadataMutation() - const {getAgent} = useAgent() + const agent = useAgent() const activePurpose = useMemo(() => { if (list?.purpose) { @@ -157,7 +157,7 @@ export function Component({ {cleanNewlines: true}, ) - await richText.detectFacets(getAgent()) + await richText.detectFacets(agent) richText = shortenLinks(richText) // filter out any mention facets that didn't map to a user @@ -229,7 +229,7 @@ export function Component({ listMetadataMutation, listCreateMutation, _, - getAgent, + agent, ]) return ( diff --git a/src/view/com/modals/DeleteAccount.tsx b/src/view/com/modals/DeleteAccount.tsx index cab5dc289c..06f1e111a0 100644 --- a/src/view/com/modals/DeleteAccount.tsx +++ b/src/view/com/modals/DeleteAccount.tsx @@ -31,7 +31,7 @@ export function Component({}: {}) { const pal = usePalette('default') const theme = useTheme() const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const {removeAccount} = useSessionApi() const {_} = useLingui() const {closeModal} = useModalControls() @@ -45,7 +45,7 @@ export function Component({}: {}) { setError('') setIsProcessing(true) try { - await getAgent().com.atproto.server.requestAccountDelete() + await agent.com.atproto.server.requestAccountDelete() setIsEmailSent(true) } catch (e: any) { setError(cleanError(e)) @@ -63,7 +63,7 @@ export function Component({}: {}) { try { // inform chat service of intent to delete account - const {success} = await getAgent().api.chat.bsky.actor.deleteAccount( + const {success} = await agent.api.chat.bsky.actor.deleteAccount( undefined, { headers: DM_SERVICE_HEADERS, @@ -72,7 +72,7 @@ export function Component({}: {}) { if (!success) { throw new Error('Failed to inform chat service of account deletion') } - await getAgent().com.atproto.server.deleteAccount({ + await agent.com.atproto.server.deleteAccount({ did: currentAccount.did, password, token, diff --git a/src/view/com/modals/VerifyEmail.tsx b/src/view/com/modals/VerifyEmail.tsx index 3fdde330d8..7c1146a016 100644 --- a/src/view/com/modals/VerifyEmail.tsx +++ b/src/view/com/modals/VerifyEmail.tsx @@ -41,7 +41,7 @@ export function Component({ onSuccess?: () => void }) { const pal = usePalette('default') - const {getAgent} = useAgent() + const agent = useAgent() const {currentAccount} = useSession() const {_} = useLingui() const [stage, setStage] = useState( @@ -64,7 +64,7 @@ export function Component({ setError('') setIsProcessing(true) try { - await getAgent().com.atproto.server.requestEmailConfirmation() + await agent.com.atproto.server.requestEmailConfirmation() setStage(Stages.ConfirmCode) } catch (e) { setError(cleanError(String(e))) @@ -77,11 +77,11 @@ export function Component({ setError('') setIsProcessing(true) try { - await getAgent().com.atproto.server.confirmEmail({ + await agent.com.atproto.server.confirmEmail({ email: (currentAccount?.email || '').trim(), token: confirmationCode.trim(), }) - await getAgent().resumeSession(getAgent().session!) + await agent.resumeSession(agent.session!) Toast.show(_(msg`Email verified`)) closeModal() onSuccess?.() diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index 4fa46a4cf1..734230c6c9 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -470,7 +470,7 @@ function ProfileScreenLoaded({ } function useRichText(text: string): [RichTextAPI, boolean] { - const {getAgent} = useAgent() + const agent = useAgent() const [prevText, setPrevText] = React.useState(text) const [rawRT, setRawRT] = React.useState(() => new RichTextAPI({text})) const [resolvedRT, setResolvedRT] = React.useState(null) @@ -485,7 +485,7 @@ function useRichText(text: string): [RichTextAPI, boolean] { async function resolveRTFacets() { // new each time const resolvedRT = new RichTextAPI({text}) - await resolvedRT.detectFacets(getAgent()) + await resolvedRT.detectFacets(agent) if (!ignore) { setResolvedRT(resolvedRT) } @@ -494,7 +494,7 @@ function useRichText(text: string): [RichTextAPI, boolean] { return () => { ignore = true } - }, [text, getAgent]) + }, [text, agent]) const isResolving = resolvedRT === null return [resolvedRT ?? rawRT, isResolving] } diff --git a/src/view/screens/Settings/DisableEmail2FADialog.tsx b/src/view/screens/Settings/DisableEmail2FADialog.tsx index b52dcc7a36..a27cff9a3e 100644 --- a/src/view/screens/Settings/DisableEmail2FADialog.tsx +++ b/src/view/screens/Settings/DisableEmail2FADialog.tsx @@ -30,7 +30,7 @@ export function DisableEmail2FADialog({ const t = useTheme() const {gtMobile} = useBreakpoints() const {currentAccount} = useSession() - const {getAgent} = useAgent() + const agent = useAgent() const [stage, setStage] = useState(Stages.Email) const [confirmationCode, setConfirmationCode] = useState('') @@ -41,7 +41,7 @@ export function DisableEmail2FADialog({ setError('') setIsProcessing(true) try { - await getAgent().com.atproto.server.requestEmailUpdate() + await agent.com.atproto.server.requestEmailUpdate() setStage(Stages.ConfirmCode) } catch (e) { setError(cleanError(String(e))) @@ -55,12 +55,12 @@ export function DisableEmail2FADialog({ setIsProcessing(true) try { if (currentAccount?.email) { - await getAgent().com.atproto.server.updateEmail({ + await agent.com.atproto.server.updateEmail({ email: currentAccount!.email, token: confirmationCode.trim(), emailAuthFactor: false, }) - await getAgent().resumeSession(getAgent().session!) + await agent.resumeSession(agent.session!) Toast.show(_(msg`Email 2FA disabled`)) } control.close() diff --git a/src/view/screens/Settings/Email2FAToggle.tsx b/src/view/screens/Settings/Email2FAToggle.tsx index efeb7e4d7c..b5e7adddb2 100644 --- a/src/view/screens/Settings/Email2FAToggle.tsx +++ b/src/view/screens/Settings/Email2FAToggle.tsx @@ -13,17 +13,17 @@ export function Email2FAToggle() { const {currentAccount} = useSession() const {openModal} = useModalControls() const disableDialogCtrl = useDialogControl() - const {getAgent} = useAgent() + const agent = useAgent() const enableEmailAuthFactor = React.useCallback(async () => { if (currentAccount?.email) { - await getAgent().com.atproto.server.updateEmail({ + await agent.com.atproto.server.updateEmail({ email: currentAccount.email, emailAuthFactor: true, }) - await getAgent().resumeSession(getAgent().session!) + await agent.resumeSession(agent.session!) } - }, [currentAccount, getAgent]) + }, [currentAccount, agent]) const onToggle = React.useCallback(() => { if (!currentAccount) { diff --git a/src/view/screens/Settings/ExportCarDialog.tsx b/src/view/screens/Settings/ExportCarDialog.tsx index af835cb620..72d943bcf0 100644 --- a/src/view/screens/Settings/ExportCarDialog.tsx +++ b/src/view/screens/Settings/ExportCarDialog.tsx @@ -21,11 +21,10 @@ export function ExportCarDialog({ }) { const {_} = useLingui() const t = useTheme() - const {getAgent} = useAgent() + const agent = useAgent() const [loading, setLoading] = React.useState(false) const download = React.useCallback(async () => { - const agent = getAgent() if (!agent.session) { return // shouldnt ever happen } @@ -49,7 +48,7 @@ export function ExportCarDialog({ setLoading(false) control.close() } - }, [_, control, getAgent]) + }, [_, control, agent]) return ( From adbbded003206f8005b680203c45bc1810be6537 Mon Sep 17 00:00:00 2001 From: dan Date: Tue, 28 May 2024 16:56:06 +0100 Subject: [PATCH 215/277] Remove old onboarding (#4224) * Hardcode onboarding_v2 to true, rm dead code * Rm initialState, use initialStateReduced * Rm dead code * Drop *reduced prefix in code * Prettier --- src/lib/statsig/gates.ts | 1 - .../Onboarding/StepAlgoFeeds/FeedCard.tsx | 378 ------------------ .../Onboarding/StepAlgoFeeds/index.tsx | 168 -------- src/screens/Onboarding/StepFinished.tsx | 95 +---- src/screens/Onboarding/StepFollowingFeed.tsx | 161 -------- .../Onboarding/StepInterests/index.tsx | 11 +- .../AdultContentEnabledPref.tsx | 131 ------ .../StepModeration/ModerationOption.tsx | 99 ----- .../Onboarding/StepModeration/index.tsx | 110 ----- src/screens/Onboarding/StepProfile/index.tsx | 6 +- .../SuggestedAccountCard.tsx | 188 --------- .../StepSuggestedAccounts/index.tsx | 210 ---------- src/screens/Onboarding/StepTopicalFeeds.tsx | 125 ------ src/screens/Onboarding/index.tsx | 30 +- src/screens/Onboarding/state.ts | 218 +--------- src/screens/Onboarding/util.ts | 76 ---- src/view/com/testing/TestCtrls.e2e.tsx | 6 - 17 files changed, 27 insertions(+), 1986 deletions(-) delete mode 100644 src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx delete mode 100644 src/screens/Onboarding/StepAlgoFeeds/index.tsx delete mode 100644 src/screens/Onboarding/StepFollowingFeed.tsx delete mode 100644 src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx delete mode 100644 src/screens/Onboarding/StepModeration/ModerationOption.tsx delete mode 100644 src/screens/Onboarding/StepModeration/index.tsx delete mode 100644 src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx delete mode 100644 src/screens/Onboarding/StepSuggestedAccounts/index.tsx delete mode 100644 src/screens/Onboarding/StepTopicalFeeds.tsx diff --git a/src/lib/statsig/gates.ts b/src/lib/statsig/gates.ts index 81e49e151b..c572c07211 100644 --- a/src/lib/statsig/gates.ts +++ b/src/lib/statsig/gates.ts @@ -1,5 +1,4 @@ export type Gate = // Keep this alphabetic please. - | 'reduced_onboarding_and_home_algo_v2' | 'request_notifications_permission_after_onboarding' | 'show_follow_back_label_v2' diff --git a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx b/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx deleted file mode 100644 index 0aa063faa5..0000000000 --- a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx +++ /dev/null @@ -1,378 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {Image} from 'expo-image' -import {LinearGradient} from 'expo-linear-gradient' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {FeedSourceInfo, useFeedSourceInfoQuery} from '#/state/queries/feed' -import {FeedConfig} from '#/screens/Onboarding/StepAlgoFeeds' -import {atoms as a, useTheme} from '#/alf' -import * as Toggle from '#/components/forms/Toggle' -import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' -import {RichText} from '#/components/RichText' -import {Text} from '#/components/Typography' - -function PrimaryFeedCardInner({ - feed, - config, -}: { - feed: FeedSourceInfo - config: FeedConfig -}) { - const t = useTheme() - const ctx = Toggle.useItemContext() - - const styles = React.useMemo( - () => ({ - active: [t.atoms.bg_contrast_25], - selected: [ - a.shadow_md, - { - backgroundColor: - t.name === 'light' ? t.palette.primary_50 : t.palette.primary_950, - }, - ], - selectedHover: [ - { - backgroundColor: - t.name === 'light' ? t.palette.primary_25 : t.palette.primary_975, - }, - ], - textSelected: [{color: t.palette.white}], - checkboxSelected: [ - { - borderColor: t.palette.white, - }, - ], - }), - [t], - ) - - return ( - - {ctx.selected && config.gradient && ( - v[1])} - locations={config.gradient.values.map(v => v[0])} - start={{x: 0, y: 0}} - end={{x: 1, y: 1}} - style={[a.absolute, a.inset_0]} - /> - )} - - - - - - - - - {feed.displayName} - - - - by @{feed.creatorHandle} - - - - - {ctx.selected && } - - - - - - - - - - ) -} - -export function PrimaryFeedCard({config}: {config: FeedConfig}) { - const {_} = useLingui() - const {data: feed} = useFeedSourceInfoQuery({uri: config.uri}) - - return !feed ? ( - - ) : ( - - - - ) -} - -function FeedCardInner({feed}: {feed: FeedSourceInfo; config: FeedConfig}) { - const t = useTheme() - const ctx = Toggle.useItemContext() - - const styles = React.useMemo( - () => ({ - active: [t.atoms.bg_contrast_25], - selected: [ - { - backgroundColor: - t.name === 'light' ? t.palette.primary_50 : t.palette.primary_950, - }, - ], - selectedHover: [ - { - backgroundColor: - t.name === 'light' ? t.palette.primary_25 : t.palette.primary_975, - }, - ], - textSelected: [], - checkboxSelected: [ - { - backgroundColor: t.palette.primary_500, - }, - ], - }), - [t], - ) - - return ( - - - - - - - - - {feed.displayName} - - - @{feed.creatorHandle} - - - - - {ctx.selected && } - - - - - - - - - - ) -} - -export function FeedCard({config}: {config: FeedConfig}) { - const {_} = useLingui() - const {data: feed} = useFeedSourceInfoQuery({uri: config.uri}) - - return !feed ? ( - - ) : feed.avatar ? ( - - - - ) : null -} - -export function FeedCardPlaceholder({primary}: {primary?: boolean}) { - const t = useTheme() - return ( - - - - - - - - - - - - - - - - - ) -} diff --git a/src/screens/Onboarding/StepAlgoFeeds/index.tsx b/src/screens/Onboarding/StepAlgoFeeds/index.tsx deleted file mode 100644 index 19bb401046..0000000000 --- a/src/screens/Onboarding/StepAlgoFeeds/index.tsx +++ /dev/null @@ -1,168 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' -import { - DescriptionText, - OnboardingControls, - TitleText, -} from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' -import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard' -import {atoms as a, tokens, useTheme} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {ListSparkle_Stroke2_Corner0_Rounded as ListSparkle} from '#/components/icons/ListSparkle' -import {Loader} from '#/components/Loader' -import {Text} from '#/components/Typography' -import {IS_PROD} from '#/env' - -export type FeedConfig = { - default: boolean - uri: string - gradient?: typeof tokens.gradients.midnight | typeof tokens.gradients.nordic -} - -export const PRIMARY_FEEDS: FeedConfig[] = [ - { - default: IS_PROD, // these feeds are only available in prod - uri: 'at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/whats-hot', - gradient: tokens.gradients.midnight, - }, -] - -const SECONDARY_FEEDS: FeedConfig[] = [ - { - default: false, - uri: 'at://did:plc:vpkhqolt662uhesyj6nxm7ys/app.bsky.feed.generator/infreq', - }, - { - default: false, - uri: 'at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/with-friends', - }, - { - default: false, - uri: 'at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.generator/best-of-follows', - }, - { - default: false, - uri: 'at://did:plc:tenurhgjptubkk5zf5qhi3og/app.bsky.feed.generator/catch-up', - }, - { - default: false, - uri: 'at://did:plc:q6gjnaw2blty4crticxkmujt/app.bsky.feed.generator/at-bangers', - }, -] - -export function StepAlgoFeeds() { - const {_} = useLingui() - const {track} = useAnalytics() - const t = useTheme() - const {state, dispatch} = React.useContext(Context) - const [primaryFeedUris, setPrimaryFeedUris] = React.useState( - PRIMARY_FEEDS.map(f => (f.default ? f.uri : '')).filter(Boolean), - ) - const [secondaryFeedUris, setSeconaryFeedUris] = React.useState([]) - const [saving, setSaving] = React.useState(false) - - const saveFeeds = React.useCallback(async () => { - setSaving(true) - - const uris = primaryFeedUris.concat(secondaryFeedUris) - dispatch({type: 'setAlgoFeedsStepResults', feedUris: uris}) - - setSaving(false) - dispatch({type: 'next'}) - track('OnboardingV2:StepAlgoFeeds:End', { - selectedPrimaryFeeds: primaryFeedUris, - selectedPrimaryFeedsLength: primaryFeedUris.length, - selectedSecondaryFeeds: secondaryFeedUris, - selectedSecondaryFeedsLength: secondaryFeedUris.length, - }) - logEvent('onboarding:algoFeeds:nextPressed', { - selectedPrimaryFeeds: primaryFeedUris, - selectedPrimaryFeedsLength: primaryFeedUris.length, - selectedSecondaryFeeds: secondaryFeedUris, - selectedSecondaryFeedsLength: secondaryFeedUris.length, - }) - }, [primaryFeedUris, secondaryFeedUris, dispatch, track]) - - React.useEffect(() => { - track('OnboardingV2:StepAlgoFeeds:Start') - }, [track]) - - return ( - - - - - Choose your main feeds - - - - Custom feeds built by the community bring you new experiences and help - you find the content you love. - - - - - - - We recommend our "Discover" feed: - - - - - - - There are many feeds to try: - - - {SECONDARY_FEEDS.map(config => ( - - ))} - - - - - - - - - ) -} diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index 9658cfe15f..b8a21680bf 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -1,19 +1,14 @@ import React from 'react' import {View} from 'react-native' -import {TID} from '@atproto/common-web' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' import {useAnalytics} from '#/lib/analytics/analytics' -import {BSKY_APP_ACCOUNT_DID, IS_PROD_SERVICE} from '#/lib/constants' -import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants' -import {logEvent, useGate} from '#/lib/statsig/statsig' +import {BSKY_APP_ACCOUNT_DID} from '#/lib/constants' +import {logEvent} from '#/lib/statsig/statsig' import {logger} from '#/logger' -import { - preferencesQueryKey, - useOverwriteSavedFeedsMutation, -} from '#/state/queries/preferences' +import {preferencesQueryKey} from '#/state/queries/preferences' import {RQKEY as profileRQKey} from '#/state/queries/profile' import {useAgent} from '#/state/session' import {useOnboardingDispatch} from '#/state/shell' @@ -24,10 +19,7 @@ import { TitleText, } from '#/screens/Onboarding/Layout' import {Context} from '#/screens/Onboarding/state' -import { - bulkWriteFollows, - sortPrimaryAlgorithmFeeds, -} from '#/screens/Onboarding/util' +import {bulkWriteFollows} from '#/screens/Onboarding/util' import {atoms as a, useTheme} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {IconCircle} from '#/components/IconCircle' @@ -45,83 +37,21 @@ export function StepFinished() { const {state, dispatch} = React.useContext(Context) const onboardDispatch = useOnboardingDispatch() const [saving, setSaving] = React.useState(false) - const {mutateAsync: overwriteSavedFeeds} = useOverwriteSavedFeedsMutation() const queryClient = useQueryClient() const agent = useAgent() - const gate = useGate() const finishOnboarding = React.useCallback(async () => { setSaving(true) - // TODO uncomment - const { - interestsStepResults, - suggestedAccountsStepResults, - algoFeedsStepResults, - topicalFeedsStepResults, - profileStepResults, - } = state + const {interestsStepResults, profileStepResults} = state const {selectedInterests} = interestsStepResults - const selectedFeeds = [ - ...sortPrimaryAlgorithmFeeds(algoFeedsStepResults.feedUris), - ...topicalFeedsStepResults.feedUris, - ] - try { await Promise.all([ - bulkWriteFollows( - agent, - suggestedAccountsStepResults.accountDids.concat(BSKY_APP_ACCOUNT_DID), - ), - // these must be serial + bulkWriteFollows(agent, [BSKY_APP_ACCOUNT_DID]), (async () => { await agent.setInterestsPref({tags: selectedInterests}) - - /* - * In the reduced onboading experiment, we'll rely on the default - * feeds set in `createAgentAndCreateAccount`. No feeds will be - * selected in onboarding and therefore we don't need to run this - * code (which would overwrite the other feeds already set). - */ - if (!gate('reduced_onboarding_and_home_algo_v2')) { - const otherFeeds = selectedFeeds.length - ? selectedFeeds.map(f => ({ - type: 'feed', - value: f, - pinned: true, - id: TID.nextStr(), - })) - : [] - - /* - * If no selected feeds and we're in prod, add the discover feed - * (mimics old behavior) - */ - if ( - IS_PROD_SERVICE(agent.service.toString()) && - !otherFeeds.length - ) { - otherFeeds.push({ - ...DISCOVER_SAVED_FEED, - pinned: true, - id: TID.nextStr(), - }) - } - - await overwriteSavedFeeds([ - { - ...TIMELINE_SAVED_FEED, - pinned: true, - id: TID.nextStr(), - }, - ...otherFeeds, - ]) - } })(), - (async () => { - if (!gate('reduced_onboarding_and_home_algo_v2')) return - const {imageUri, imageMime} = profileStepResults if (imageUri && imageMime) { const blobPromise = uploadBlob(agent, imageUri, imageMime) @@ -134,7 +64,6 @@ export function StepFinished() { return existing }) } - logEvent('onboarding:finished:avatarResult', { avatarResult: profileStepResults.isCreatedAvatar ? 'created' @@ -169,17 +98,7 @@ export function StepFinished() { track('OnboardingV2:StepFinished:End') track('OnboardingV2:Complete') logEvent('onboarding:finished:nextPressed', {}) - }, [ - state, - dispatch, - onboardDispatch, - setSaving, - overwriteSavedFeeds, - track, - agent, - gate, - queryClient, - ]) + }, [state, dispatch, onboardDispatch, setSaving, track, agent, queryClient]) React.useEffect(() => { track('OnboardingV2:StepFinished:Start') diff --git a/src/screens/Onboarding/StepFollowingFeed.tsx b/src/screens/Onboarding/StepFollowingFeed.tsx deleted file mode 100644 index a1c7299f02..0000000000 --- a/src/screens/Onboarding/StepFollowingFeed.tsx +++ /dev/null @@ -1,161 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' -import { - usePreferencesQuery, - useSetFeedViewPreferencesMutation, -} from 'state/queries/preferences' -import { - DescriptionText, - OnboardingControls, - TitleText, -} from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' -import {atoms as a} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {Divider} from '#/components/Divider' -import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {FilterTimeline_Stroke2_Corner0_Rounded as FilterTimeline} from '#/components/icons/FilterTimeline' -import {Text} from '#/components/Typography' - -export function StepFollowingFeed() { - const {_} = useLingui() - const {track} = useAnalytics() - const {dispatch} = React.useContext(Context) - - const {data: preferences} = usePreferencesQuery() - const {mutate: setFeedViewPref, variables} = - useSetFeedViewPreferencesMutation() - - const showReplies = !( - variables?.hideReplies ?? preferences?.feedViewPrefs.hideReplies - ) - const showReposts = !( - variables?.hideReposts ?? preferences?.feedViewPrefs.hideReposts - ) - const showQuotes = !( - variables?.hideQuotePosts ?? preferences?.feedViewPrefs.hideQuotePosts - ) - - const onContinue = React.useCallback(() => { - dispatch({type: 'next'}) - track('OnboardingV2:StepFollowingFeed:End') - logEvent('onboarding:followingFeed:nextPressed', {}) - }, [track, dispatch]) - - React.useEffect(() => { - track('OnboardingV2:StepFollowingFeed:Start') - }, [track]) - - return ( - // Hack for now to move the image container up - - - - - Your default feed is "Following" - - - It shows posts from the people you follow as they happen. - - - - { - setFeedViewPref({ - hideReplies: showReplies, - }) - }}> - - - Show replies in Following - - - - - - { - setFeedViewPref({ - hideReposts: showReposts, - }) - }}> - - - Show reposts in Following - - - - - - { - setFeedViewPref({ - hideQuotePosts: showQuotes, - }) - }}> - - - Show quotes in Following - - - - - - - - You can change these settings later. - - - - - - - ) -} diff --git a/src/screens/Onboarding/StepInterests/index.tsx b/src/screens/Onboarding/StepInterests/index.tsx index 2589e66c2d..866ea5c2f7 100644 --- a/src/screens/Onboarding/StepInterests/index.tsx +++ b/src/screens/Onboarding/StepInterests/index.tsx @@ -5,12 +5,11 @@ import {useLingui} from '@lingui/react' import {useQuery} from '@tanstack/react-query' import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent, useGate} from '#/lib/statsig/statsig' +import {logEvent} from '#/lib/statsig/statsig' import {capitalize} from '#/lib/strings/capitalize' import {logger} from '#/logger' import {useAgent} from '#/state/session' import {useOnboardingDispatch} from '#/state/shell' -import {useRequestNotificationsPermission} from 'lib/notifications/notifications' import { DescriptionText, OnboardingControls, @@ -34,8 +33,6 @@ export function StepInterests() { const t = useTheme() const {gtMobile} = useBreakpoints() const {track} = useAnalytics() - const gate = useGate() - const requestNotificationsPermission = useRequestNotificationsPermission() const {state, dispatch, interestsDisplayNames} = React.useContext(Context) const [saving, setSaving] = React.useState(false) @@ -132,12 +129,6 @@ export function StepInterests() { track('OnboardingV2:StepInterests:Start') }, [track]) - React.useEffect(() => { - if (!gate('reduced_onboarding_and_home_algo_v2')) { - requestNotificationsPermission('StartOnboarding') - } - }, [gate, requestNotificationsPermission]) - const title = isError ? ( Oh no! Something went wrong. ) : ( diff --git a/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx b/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx deleted file mode 100644 index 7563bece10..0000000000 --- a/src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx +++ /dev/null @@ -1,131 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {UseMutateFunction} from '@tanstack/react-query' - -import {logger} from '#/logger' -import {isIOS} from '#/platform/detection' -import {usePreferencesQuery} from '#/state/queries/preferences' -import * as Toast from '#/view/com/util/Toast' -import {atoms as a, useTheme} from '#/alf' -import * as Toggle from '#/components/forms/Toggle' -import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' -import * as Prompt from '#/components/Prompt' -import {Text} from '#/components/Typography' - -function Card({children}: React.PropsWithChildren<{}>) { - const t = useTheme() - return ( - - {children} - - ) -} - -export function AdultContentEnabledPref({ - mutate, - variables, -}: { - mutate: UseMutateFunction - variables: {enabled: boolean} | undefined -}) { - const {_} = useLingui() - const t = useTheme() - const prompt = Prompt.usePromptControl() - - // Reuse logic here form ContentFilteringSettings.tsx - const {data: preferences} = usePreferencesQuery() - - const onToggleAdultContent = React.useCallback(async () => { - if (isIOS) { - prompt.open() - return - } - - try { - mutate({ - enabled: !( - variables?.enabled ?? preferences?.moderationPrefs.adultContentEnabled - ), - }) - } catch (e) { - Toast.show( - _(msg`There was an issue syncing your preferences with the server`), - ) - logger.error('Failed to update preferences with server', {error: e}) - } - }, [variables, preferences, mutate, _, prompt]) - - if (!preferences) return null - - return ( - <> - {preferences.userAge && preferences.userAge >= 18 ? ( - - - - - Enable Adult Content - - - - - - ) : ( - - - - You must be 18 years or older to enable adult content - - - )} - - - - Adult Content - - - - Due to Apple policies, adult content can only be enabled on the web - after completing sign up. - - - - prompt.close()} cta={_(msg`OK`)} /> - - - - ) -} diff --git a/src/screens/Onboarding/StepModeration/ModerationOption.tsx b/src/screens/Onboarding/StepModeration/ModerationOption.tsx deleted file mode 100644 index d6334e6bda..0000000000 --- a/src/screens/Onboarding/StepModeration/ModerationOption.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {InterpretedLabelValueDefinition, LabelPreference} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useGlobalLabelStrings} from '#/lib/moderation/useGlobalLabelStrings' -import { - usePreferencesQuery, - usePreferencesSetContentLabelMutation, -} from '#/state/queries/preferences' -import {atoms as a, useTheme} from '#/alf' -import * as ToggleButton from '#/components/forms/ToggleButton' -import {Text} from '#/components/Typography' - -export function ModerationOption({ - labelValueDefinition, - disabled, -}: { - labelValueDefinition: InterpretedLabelValueDefinition - disabled?: boolean -}) { - const {_} = useLingui() - const t = useTheme() - const {data: preferences} = usePreferencesQuery() - const {mutate, variables} = usePreferencesSetContentLabelMutation() - const label = labelValueDefinition.identifier - const visibility = - variables?.visibility ?? preferences?.moderationPrefs.labels?.[label] - - const allLabelStrings = useGlobalLabelStrings() - const labelStrings = - labelValueDefinition.identifier in allLabelStrings - ? allLabelStrings[labelValueDefinition.identifier] - : { - name: labelValueDefinition.identifier, - description: `Labeled "${labelValueDefinition.identifier}"`, - } - - const onChange = React.useCallback( - (vis: string[]) => { - mutate({ - label, - visibility: vis[0] as LabelPreference, - labelerDid: undefined, - }) - }, - [mutate, label], - ) - - const labels = { - hide: _(msg`Hide`), - warn: _(msg`Warn`), - show: _(msg`Show`), - } - - return ( - - - {labelStrings.name} - - {labelStrings.description} - - - - {disabled ? ( - - Hide - - ) : ( - - - {labels.show} - - - {labels.warn} - - - {labels.hide} - - - )} - - - ) -} diff --git a/src/screens/Onboarding/StepModeration/index.tsx b/src/screens/Onboarding/StepModeration/index.tsx deleted file mode 100644 index d494f48dd1..0000000000 --- a/src/screens/Onboarding/StepModeration/index.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {LABELS} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' -import {usePreferencesQuery} from '#/state/queries/preferences' -import {usePreferencesSetAdultContentMutation} from 'state/queries/preferences' -import { - DescriptionText, - OnboardingControls, - TitleText, -} from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' -import {AdultContentEnabledPref} from '#/screens/Onboarding/StepModeration/AdultContentEnabledPref' -import {ModerationOption} from '#/screens/Onboarding/StepModeration/ModerationOption' -import {atoms as a} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import {IconCircle} from '#/components/IconCircle' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' -import {Loader} from '#/components/Loader' - -export function StepModeration() { - const {_} = useLingui() - const {track} = useAnalytics() - const {state, dispatch} = React.useContext(Context) - const {data: preferences} = usePreferencesQuery() - const {mutate, variables} = usePreferencesSetAdultContentMutation() - - // We need to know if the screen is mounted so we know if we want to run entering animations - // https://github.com/software-mansion/react-native-reanimated/discussions/2513 - const isMounted = React.useRef(false) - React.useLayoutEffect(() => { - isMounted.current = true - }, []) - - const adultContentEnabled = !!( - (variables && variables.enabled) || - (!variables && preferences?.moderationPrefs.adultContentEnabled) - ) - - const onContinue = React.useCallback(() => { - dispatch({type: 'next'}) - track('OnboardingV2:StepModeration:End') - logEvent('onboarding:moderation:nextPressed', {}) - }, [track, dispatch]) - - React.useEffect(() => { - track('OnboardingV2:StepModeration:Start') - }, [track]) - - return ( - - - - - You're in control - - - - Select what you want to see (or not see), and we’ll handle the rest. - - - - {!preferences ? ( - - - - ) : ( - <> - - - - - - - - - - )} - - - - - - ) -} diff --git a/src/screens/Onboarding/StepProfile/index.tsx b/src/screens/Onboarding/StepProfile/index.tsx index fc19d5bb34..e0a10419d6 100644 --- a/src/screens/Onboarding/StepProfile/index.tsx +++ b/src/screens/Onboarding/StepProfile/index.tsx @@ -92,11 +92,7 @@ export function StepProfile() { }, [track]) React.useEffect(() => { - // We have an experiment running for redueced onboarding, where this screen shows up as the first in onboarding. - // We only want to request permissions when that gate is actually active to prevent pollution - if (gate('reduced_onboarding_and_home_algo_v2')) { - requestNotificationsPermission('StartOnboarding') - } + requestNotificationsPermission('StartOnboarding') }, [gate, requestNotificationsPermission]) const openPicker = React.useCallback( diff --git a/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx b/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx deleted file mode 100644 index f0ba36e39f..0000000000 --- a/src/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard.tsx +++ /dev/null @@ -1,188 +0,0 @@ -import React from 'react' -import {View, ViewStyle} from 'react-native' -import {AppBskyActorDefs, moderateProfile} from '@atproto/api' - -import {useModerationOpts} from '#/state/preferences/moderation-opts' -import {UserAvatar} from '#/view/com/util/UserAvatar' -import {atoms as a, flatten, useTheme} from '#/alf' -import {useItemContext} from '#/components/forms/Toggle' -import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' -import {RichText} from '#/components/RichText' -import {Text} from '#/components/Typography' - -export function SuggestedAccountCard({ - profile, - moderationOpts, -}: { - profile: AppBskyActorDefs.ProfileViewDetailed - moderationOpts: ReturnType -}) { - const t = useTheme() - const ctx = useItemContext() - const moderation = moderateProfile(profile, moderationOpts!) - - const styles = React.useMemo(() => { - const light = t.name === 'light' - const base: ViewStyle[] = [t.atoms.bg_contrast_50] - const hover: ViewStyle[] = [t.atoms.bg_contrast_25] - const selected: ViewStyle[] = [ - { - backgroundColor: light ? t.palette.primary_50 : t.palette.primary_950, - }, - ] - const selectedHover: ViewStyle[] = [ - { - backgroundColor: light ? t.palette.primary_25 : t.palette.primary_975, - }, - ] - const checkboxBase: ViewStyle[] = [t.atoms.bg] - const checkboxSelected: ViewStyle[] = [ - { - backgroundColor: t.palette.primary_500, - }, - ] - const avatarBase: ViewStyle[] = [t.atoms.bg_contrast_100] - const avatarSelected: ViewStyle[] = [ - { - backgroundColor: light ? t.palette.primary_100 : t.palette.primary_900, - }, - ] - - return { - base, - hover: flatten(hover), - selected: flatten(selected), - selectedHover: flatten(selectedHover), - checkboxBase: flatten(checkboxBase), - checkboxSelected: flatten(checkboxSelected), - avatarBase: flatten(avatarBase), - avatarSelected: flatten(avatarSelected), - } - }, [t]) - - return ( - - - - - - - - - {profile.displayName} - - {profile.handle} - - - - - {ctx.selected && } - - - - {profile.description && ( - <> - - - - - )} - - ) -} - -export function SuggestedAccountCardPlaceholder() { - const t = useTheme() - return ( - - - - - - - - - - ) -} diff --git a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx deleted file mode 100644 index 774f2d3b01..0000000000 --- a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx +++ /dev/null @@ -1,210 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {AppBskyActorDefs} from '@atproto/api' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' -import {capitalize} from '#/lib/strings/capitalize' -import {useModerationOpts} from '#/state/preferences/moderation-opts' -import {useProfilesQuery} from '#/state/queries/profile' -import { - DescriptionText, - OnboardingControls, - TitleText, -} from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' -import { - SuggestedAccountCard, - SuggestedAccountCardPlaceholder, -} from '#/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard' -import {aggregateInterestItems} from '#/screens/Onboarding/util' -import {atoms as a, useBreakpoints} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' -import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At' -import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' -import {Loader} from '#/components/Loader' -import {Text} from '#/components/Typography' - -export function Inner({ - profiles, - onSelect, - moderationOpts, -}: { - profiles: AppBskyActorDefs.ProfileViewDetailed[] - onSelect: (dids: string[]) => void - moderationOpts: ReturnType -}) { - const {_} = useLingui() - const [dids, setDids] = React.useState(profiles.map(p => p.did)) - - React.useEffect(() => { - onSelect(dids) - }, [dids, onSelect]) - - return ( - - - {profiles.map(profile => ( - - - - ))} - - - ) -} - -export function StepSuggestedAccounts() { - const {_} = useLingui() - const {gtMobile} = useBreakpoints() - const {track} = useAnalytics() - const {state, dispatch, interestsDisplayNames} = React.useContext(Context) - const suggestedDids = React.useMemo(() => { - return aggregateInterestItems( - state.interestsStepResults.selectedInterests, - state.interestsStepResults.apiResponse.suggestedAccountDids, - state.interestsStepResults.apiResponse.suggestedAccountDids.default || [], - ) - }, [state.interestsStepResults]) - const moderationOpts = useModerationOpts() - const { - isLoading: isProfilesLoading, - isError, - data, - error, - } = useProfilesQuery({ - handles: suggestedDids, - }) - const [dids, setDids] = React.useState([]) - const [saving, setSaving] = React.useState(false) - - const interestsText = React.useMemo(() => { - const i = state.interestsStepResults.selectedInterests.map( - i => interestsDisplayNames[i] || capitalize(i), - ) - return i.join(', ') - }, [state.interestsStepResults.selectedInterests, interestsDisplayNames]) - - const handleContinue = React.useCallback(async () => { - setSaving(true) - - if (dids.length) { - dispatch({type: 'setSuggestedAccountsStepResults', accountDids: dids}) - } - - setSaving(false) - dispatch({type: 'next'}) - track('OnboardingV2:StepSuggestedAccounts:End', { - selectedAccountsLength: dids.length, - }) - logEvent('onboarding:suggestedAccounts:nextPressed', { - selectedAccountsLength: dids.length, - skipped: false, - }) - }, [dids, setSaving, dispatch, track]) - - const handleSkip = React.useCallback(() => { - // if a user comes back and clicks skip, erase follows - dispatch({type: 'setSuggestedAccountsStepResults', accountDids: []}) - dispatch({type: 'next'}) - logEvent('onboarding:suggestedAccounts:nextPressed', { - selectedAccountsLength: 0, - skipped: true, - }) - }, [dispatch]) - - const isLoading = isProfilesLoading && moderationOpts - - React.useEffect(() => { - track('OnboardingV2:StepSuggestedAccounts:Start') - }, [track]) - - return ( - - - - - Here are some accounts for you to follow - - - {state.interestsStepResults.selectedInterests.length ? ( - Based on your interest in {interestsText} - ) : ( - These are popular accounts you might like: - )} - - - - {isLoading ? ( - - {Array(10) - .fill(0) - .map((_, i) => ( - - ))} - - ) : isError || !data ? ( - {error?.toString()} - ) : ( - - )} - - - - - - - - - - ) -} diff --git a/src/screens/Onboarding/StepTopicalFeeds.tsx b/src/screens/Onboarding/StepTopicalFeeds.tsx deleted file mode 100644 index bfc9e91d1b..0000000000 --- a/src/screens/Onboarding/StepTopicalFeeds.tsx +++ /dev/null @@ -1,125 +0,0 @@ -import React from 'react' -import {View} from 'react-native' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' -import {capitalize} from '#/lib/strings/capitalize' -import {IS_TEST_USER} from 'lib/constants' -import {useSession} from 'state/session' -import { - DescriptionText, - OnboardingControls, - TitleText, -} from '#/screens/Onboarding/Layout' -import {Context} from '#/screens/Onboarding/state' -import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard' -import {aggregateInterestItems} from '#/screens/Onboarding/util' -import {atoms as a} from '#/alf' -import {Button, ButtonIcon, ButtonText} from '#/components/Button' -import * as Toggle from '#/components/forms/Toggle' -import {IconCircle} from '#/components/IconCircle' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' -import {ListMagnifyingGlass_Stroke2_Corner0_Rounded as ListMagnifyingGlass} from '#/components/icons/ListMagnifyingGlass' -import {Loader} from '#/components/Loader' - -export function StepTopicalFeeds() { - const {_} = useLingui() - const {track} = useAnalytics() - const {currentAccount} = useSession() - const {state, dispatch, interestsDisplayNames} = React.useContext(Context) - const [selectedFeedUris, setSelectedFeedUris] = React.useState([]) - const [saving, setSaving] = React.useState(false) - const suggestedFeedUris = React.useMemo(() => { - if (IS_TEST_USER(currentAccount?.handle)) return [] - return aggregateInterestItems( - state.interestsStepResults.selectedInterests, - state.interestsStepResults.apiResponse.suggestedFeedUris, - state.interestsStepResults.apiResponse.suggestedFeedUris.default || [], - ).slice(0, 10) - }, [ - currentAccount?.handle, - state.interestsStepResults.apiResponse.suggestedFeedUris, - state.interestsStepResults.selectedInterests, - ]) - - const interestsText = React.useMemo(() => { - const i = state.interestsStepResults.selectedInterests.map( - i => interestsDisplayNames[i] || capitalize(i), - ) - return i.join(', ') - }, [state.interestsStepResults.selectedInterests, interestsDisplayNames]) - - const saveFeeds = React.useCallback(async () => { - setSaving(true) - - dispatch({type: 'setTopicalFeedsStepResults', feedUris: selectedFeedUris}) - - setSaving(false) - dispatch({type: 'next'}) - track('OnboardingV2:StepTopicalFeeds:End', { - selectedFeeds: selectedFeedUris, - selectedFeedsLength: selectedFeedUris.length, - }) - logEvent('onboarding:topicalFeeds:nextPressed', { - selectedFeeds: selectedFeedUris, - selectedFeedsLength: selectedFeedUris.length, - }) - }, [selectedFeedUris, dispatch, track]) - - React.useEffect(() => { - track('OnboardingV2:StepTopicalFeeds:Start') - }, [track]) - - return ( - - - - - Feeds can be topical as well! - - - {state.interestsStepResults.selectedInterests.length ? ( - - Here are some topical feeds based on your interests: {interestsText} - . You can choose to follow as many as you like. - - ) : ( - - Here are some popular topical feeds. You can choose to follow as - many as you like. - - )} - - - - - - {suggestedFeedUris.map(uri => ( - - ))} - - - - - - - - - ) -} diff --git a/src/screens/Onboarding/index.tsx b/src/screens/Onboarding/index.tsx index 20271a4658..a5c423ca19 100644 --- a/src/screens/Onboarding/index.tsx +++ b/src/screens/Onboarding/index.tsx @@ -2,33 +2,18 @@ import React from 'react' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useGate} from '#/lib/statsig/statsig' import {Layout, OnboardingControls} from '#/screens/Onboarding/Layout' -import { - Context, - initialState, - initialStateReduced, - reducer, - reducerReduced, -} from '#/screens/Onboarding/state' -import {StepAlgoFeeds} from '#/screens/Onboarding/StepAlgoFeeds' +import {Context, initialState, reducer} from '#/screens/Onboarding/state' import {StepFinished} from '#/screens/Onboarding/StepFinished' -import {StepFollowingFeed} from '#/screens/Onboarding/StepFollowingFeed' import {StepInterests} from '#/screens/Onboarding/StepInterests' -import {StepModeration} from '#/screens/Onboarding/StepModeration' import {StepProfile} from '#/screens/Onboarding/StepProfile' -import {StepSuggestedAccounts} from '#/screens/Onboarding/StepSuggestedAccounts' -import {StepTopicalFeeds} from '#/screens/Onboarding/StepTopicalFeeds' import {Portal} from '#/components/Portal' export function Onboarding() { const {_} = useLingui() - const gate = useGate() - const isReducedOnboardingEnabled = gate('reduced_onboarding_and_home_algo_v2') - const [state, dispatch] = React.useReducer( - isReducedOnboardingEnabled ? reducerReduced : reducer, - isReducedOnboardingEnabled ? {...initialStateReduced} : {...initialState}, - ) + const [state, dispatch] = React.useReducer(reducer, { + ...initialState, + }) const interestsDisplayNames = React.useMemo(() => { return { @@ -68,13 +53,6 @@ export function Onboarding() { {state.activeStep === 'profile' && } {state.activeStep === 'interests' && } - {state.activeStep === 'suggestedAccounts' && ( - - )} - {state.activeStep === 'followingFeed' && } - {state.activeStep === 'algoFeeds' && } - {state.activeStep === 'topicalFeeds' && } - {state.activeStep === 'moderation' && } {state.activeStep === 'finished' && } diff --git a/src/screens/Onboarding/state.ts b/src/screens/Onboarding/state.ts index 50d815674c..8f61cb22eb 100644 --- a/src/screens/Onboarding/state.ts +++ b/src/screens/Onboarding/state.ts @@ -6,31 +6,13 @@ import {AvatarColor, Emoji} from '#/screens/Onboarding/StepProfile/types' export type OnboardingState = { hasPrev: boolean totalSteps: number - activeStep: - | 'profile' - | 'interests' - | 'suggestedAccounts' - | 'followingFeed' - | 'algoFeeds' - | 'topicalFeeds' - | 'moderation' - | 'profile' - | 'finished' + activeStep: 'profile' | 'interests' | 'finished' activeStepIndex: number interestsStepResults: { selectedInterests: string[] apiResponse: ApiResponseMap } - suggestedAccountsStepResults: { - accountDids: string[] - } - algoFeedsStepResults: { - feedUris: string[] - } - topicalFeedsStepResults: { - feedUris: string[] - } profileStepResults: { isCreatedAvatar: boolean image?: { @@ -64,18 +46,6 @@ export type OnboardingAction = selectedInterests: string[] apiResponse: ApiResponseMap } - | { - type: 'setSuggestedAccountsStepResults' - accountDids: string[] - } - | { - type: 'setAlgoFeedsStepResults' - feedUris: string[] - } - | { - type: 'setTopicalFeedsStepResults' - feedUris: string[] - } | { type: 'setProfileStepResults' isCreatedAvatar: boolean @@ -98,37 +68,6 @@ export type ApiResponseMap = { } } -export const initialState: OnboardingState = { - hasPrev: false, - totalSteps: 7, - activeStep: 'interests', - activeStepIndex: 1, - - interestsStepResults: { - selectedInterests: [], - apiResponse: { - interests: [], - suggestedAccountDids: {}, - suggestedFeedUris: {}, - }, - }, - suggestedAccountsStepResults: { - accountDids: [], - }, - algoFeedsStepResults: { - feedUris: [], - }, - topicalFeedsStepResults: { - feedUris: [], - }, - profileStepResults: { - isCreatedAvatar: false, - image: undefined, - imageUri: '', - imageMime: '', - }, -} - export const INTEREST_TO_DISPLAY_NAME_DEFAULTS: { [key: string]: string } = { @@ -156,125 +95,7 @@ export const INTEREST_TO_DISPLAY_NAME_DEFAULTS: { cooking: 'Cooking', } -export const Context = React.createContext<{ - state: OnboardingState - dispatch: React.Dispatch - interestsDisplayNames: {[key: string]: string} -}>({ - state: {...initialState}, - dispatch: () => {}, - interestsDisplayNames: INTEREST_TO_DISPLAY_NAME_DEFAULTS, -}) - -export function reducer( - s: OnboardingState, - a: OnboardingAction, -): OnboardingState { - let next = {...s} - - switch (a.type) { - case 'next': { - if (s.activeStep === 'interests') { - next.activeStep = 'suggestedAccounts' - next.activeStepIndex = 2 - } else if (s.activeStep === 'suggestedAccounts') { - next.activeStep = 'followingFeed' - next.activeStepIndex = 3 - } else if (s.activeStep === 'followingFeed') { - next.activeStep = 'algoFeeds' - next.activeStepIndex = 4 - } else if (s.activeStep === 'algoFeeds') { - next.activeStep = 'topicalFeeds' - next.activeStepIndex = 5 - } else if (s.activeStep === 'topicalFeeds') { - next.activeStep = 'moderation' - next.activeStepIndex = 6 - } else if (s.activeStep === 'moderation') { - next.activeStep = 'finished' - next.activeStepIndex = 7 - } - break - } - case 'prev': { - if (s.activeStep === 'suggestedAccounts') { - next.activeStep = 'interests' - next.activeStepIndex = 1 - } else if (s.activeStep === 'followingFeed') { - next.activeStep = 'suggestedAccounts' - next.activeStepIndex = 2 - } else if (s.activeStep === 'algoFeeds') { - next.activeStep = 'followingFeed' - next.activeStepIndex = 3 - } else if (s.activeStep === 'topicalFeeds') { - next.activeStep = 'algoFeeds' - next.activeStepIndex = 4 - } else if (s.activeStep === 'moderation') { - next.activeStep = 'topicalFeeds' - next.activeStepIndex = 5 - } else if (s.activeStep === 'finished') { - next.activeStep = 'moderation' - next.activeStepIndex = 6 - } - break - } - case 'finish': { - next = initialState - break - } - case 'setInterestsStepResults': { - next.interestsStepResults = { - selectedInterests: a.selectedInterests, - apiResponse: a.apiResponse, - } - break - } - case 'setSuggestedAccountsStepResults': { - next.suggestedAccountsStepResults = { - accountDids: next.suggestedAccountsStepResults.accountDids.concat( - a.accountDids, - ), - } - break - } - case 'setAlgoFeedsStepResults': { - next.algoFeedsStepResults = { - feedUris: a.feedUris, - } - break - } - case 'setTopicalFeedsStepResults': { - next.topicalFeedsStepResults = { - feedUris: next.topicalFeedsStepResults.feedUris.concat(a.feedUris), - } - break - } - } - - const state = { - ...next, - hasPrev: next.activeStep !== 'interests', - } - - logger.debug(`onboarding`, { - hasPrev: state.hasPrev, - activeStep: state.activeStep, - activeStepIndex: state.activeStepIndex, - interestsStepResults: { - selectedInterests: state.interestsStepResults.selectedInterests, - }, - suggestedAccountsStepResults: state.suggestedAccountsStepResults, - algoFeedsStepResults: state.algoFeedsStepResults, - topicalFeedsStepResults: state.topicalFeedsStepResults, - }) - - if (s.activeStep !== state.activeStep) { - logger.debug(`onboarding: step changed`, {activeStep: state.activeStep}) - } - - return state -} - -export const initialStateReduced: OnboardingState = { +export const initialState: OnboardingState = { hasPrev: false, totalSteps: 3, activeStep: 'profile', @@ -288,15 +109,6 @@ export const initialStateReduced: OnboardingState = { suggestedFeedUris: {}, }, }, - suggestedAccountsStepResults: { - accountDids: [], - }, - algoFeedsStepResults: { - feedUris: [], - }, - topicalFeedsStepResults: { - feedUris: [], - }, profileStepResults: { isCreatedAvatar: false, image: undefined, @@ -305,7 +117,17 @@ export const initialStateReduced: OnboardingState = { }, } -export function reducerReduced( +export const Context = React.createContext<{ + state: OnboardingState + dispatch: React.Dispatch + interestsDisplayNames: {[key: string]: string} +}>({ + state: {...initialState}, + dispatch: () => {}, + interestsDisplayNames: INTEREST_TO_DISPLAY_NAME_DEFAULTS, +}) + +export function reducer( s: OnboardingState, a: OnboardingAction, ): OnboardingState { @@ -333,7 +155,7 @@ export function reducerReduced( break } case 'finish': { - next = initialStateReduced + next = initialState break } case 'setInterestsStepResults': { @@ -343,15 +165,6 @@ export function reducerReduced( } break } - case 'setSuggestedAccountsStepResults': { - break - } - case 'setAlgoFeedsStepResults': { - break - } - case 'setTopicalFeedsStepResults': { - break - } case 'setProfileStepResults': { next.profileStepResults = { isCreatedAvatar: a.isCreatedAvatar, @@ -376,9 +189,6 @@ export function reducerReduced( interestsStepResults: { selectedInterests: state.interestsStepResults.selectedInterests, }, - suggestedAccountsStepResults: state.suggestedAccountsStepResults, - algoFeedsStepResults: state.algoFeedsStepResults, - topicalFeedsStepResults: state.topicalFeedsStepResults, profileStepResults: state.profileStepResults, }) diff --git a/src/screens/Onboarding/util.ts b/src/screens/Onboarding/util.ts index 4174177075..f3c800d053 100644 --- a/src/screens/Onboarding/util.ts +++ b/src/screens/Onboarding/util.ts @@ -5,66 +5,6 @@ import { } from '@atproto/api' import {until} from '#/lib/async/until' -import {PRIMARY_FEEDS} from './StepAlgoFeeds' - -function shuffle(array: any) { - let currentIndex = array.length, - randomIndex - - // While there remain elements to shuffle. - while (currentIndex > 0) { - // Pick a remaining element. - randomIndex = Math.floor(Math.random() * currentIndex) - currentIndex-- - - // And swap it with the current element. - ;[array[currentIndex], array[randomIndex]] = [ - array[randomIndex], - array[currentIndex], - ] - } - - return array -} - -export function aggregateInterestItems( - interests: string[], - map: {[key: string]: string[]}, - fallbackItems: string[], -) { - const selected = interests.length - const all = interests - .map(i => { - // suggestions from server - const rawSuggestions = map[i] - - // safeguard against a missing interest->suggestion mapping - if (!rawSuggestions || !rawSuggestions.length) { - return [] - } - - const suggestions = shuffle(rawSuggestions) - - if (selected === 1) { - return suggestions // return all - } else if (selected === 2) { - return suggestions.slice(0, 5) // return 5 - } else { - return suggestions.slice(0, 3) // return 3 - } - }) - .flat() - // dedupe suggestions - const results = Array.from(new Set(all)) - - // backfill - if (results.length < 20) { - results.push(...shuffle(fallbackItems)) - } - - // dedupe and return 20 - return Array.from(new Set(results)).slice(0, 20) -} export async function bulkWriteFollows(agent: BskyAgent, dids: string[]) { const session = agent.session @@ -109,19 +49,3 @@ async function whenFollowsIndexed( }), ) } - -/** - * Kinda hacky, but we want Discover to appear as the first pinned - * feed after Following - */ -export function sortPrimaryAlgorithmFeeds(uris: string[]) { - return uris.sort((a, b) => { - if (a === PRIMARY_FEEDS[0]?.uri) { - return -1 - } - if (b === PRIMARY_FEEDS[0]?.uri) { - return 1 - } - return a.localeCompare(b) - }) -} diff --git a/src/view/com/testing/TestCtrls.e2e.tsx b/src/view/com/testing/TestCtrls.e2e.tsx index 31122f8388..1291165b3d 100644 --- a/src/view/com/testing/TestCtrls.e2e.tsx +++ b/src/view/com/testing/TestCtrls.e2e.tsx @@ -2,7 +2,6 @@ import React from 'react' import {LogBox, Pressable, View} from 'react-native' import {useQueryClient} from '@tanstack/react-query' -import {useDangerousSetGate} from '#/lib/statsig/statsig' import {useModalControls} from '#/state/modals' import {useSessionApi} from '#/state/session' import {useLoggedOutViewControls} from '#/state/shell/logged-out' @@ -25,7 +24,6 @@ export function TestCtrls() { const {openModal} = useModalControls() const onboardingDispatch = useOnboardingDispatch() const {setShowLoggedOut} = useLoggedOutViewControls() - const setGate = useDangerousSetGate() const onPressSignInAlice = async () => { await login( { @@ -117,8 +115,6 @@ export function TestCtrls() { { - // TODO remove when experiment is over - setGate('reduced_onboarding_and_home_algo_v2', true) onboardingDispatch({type: 'start'}) }} accessibilityRole="button" @@ -128,8 +124,6 @@ export function TestCtrls() { { - // TODO remove when experiment is over - setGate('reduced_onboarding_and_home_algo_v2', false) onboardingDispatch({type: 'start'}) }} accessibilityRole="button" From 5ceb440d4e46a69747316836626a6abcf7246ca1 Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 28 May 2024 16:38:24 -0700 Subject: [PATCH 216/277] use custom github action for fingerprinting (#4226) * use custom github action for fingerprinting * update pr workflow * update names of workflows * make a native change (testing) * adjust the action * Revert "make a native change (testing)" This reverts commit 8db98357330c24b4ac89b795dc73e3d84a29d9af. * update bundle-deploy script * test a prod build * crazy depth * manually set * use prod default * force prod * revert test changes * save cache after deploy * revert testing --- .github/workflows/build-submit-android.yml | 12 ++ .github/workflows/build-submit-ios.yml | 12 ++ .../workflows/bundle-deploy-eas-update.yml | 112 ++++++++---------- .github/workflows/pull-request-commit.yml | 35 ++---- 4 files changed, 84 insertions(+), 87 deletions(-) diff --git a/.github/workflows/build-submit-android.yml b/.github/workflows/build-submit-android.yml index e6ce20b86d..b039512d6e 100644 --- a/.github/workflows/build-submit-android.yml +++ b/.github/workflows/build-submit-android.yml @@ -119,3 +119,15 @@ jobs: env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CLIENT_ALERT_WEBHOOK }} SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + + - name: ⬇️ Restore Cache + id: get-base-commit + uses: actions/cache@v4 + if: ${{ inputs.profile == 'testflight' && github.ref == 'refs/heads/main' }} + with: + path: most-recent-testflight-commit.txt + key: most-recent-testflight-commit + + - name: ✏️ Write commit hash to cache + if: ${{ inputs.profile == 'testflight' && github.ref == 'refs/heads/main' }} + run: echo ${{ github.sha }} > most-recent-testflight-commit.txt diff --git a/.github/workflows/build-submit-ios.yml b/.github/workflows/build-submit-ios.yml index bfd0670956..0256e96878 100644 --- a/.github/workflows/build-submit-ios.yml +++ b/.github/workflows/build-submit-ios.yml @@ -76,3 +76,15 @@ jobs: - name: 🚀 Deploy run: eas submit -p ios --non-interactive --path build.ipa + + - name: ⬇️ Restore Cache + id: get-base-commit + uses: actions/cache@v4 + if: ${{ inputs.profile == 'testflight' && github.ref == 'refs/heads/main' }} + with: + path: most-recent-testflight-commit.txt + key: most-recent-testflight-commit + + - name: ✏️ Write commit hash to cache + if: ${{ inputs.profile == 'testflight' && github.ref == 'refs/heads/main' }} + run: echo ${{ github.sha }} > most-recent-testflight-commit.txt diff --git a/.github/workflows/bundle-deploy-eas-update.yml b/.github/workflows/bundle-deploy-eas-update.yml index 3d49404677..192593b9b2 100644 --- a/.github/workflows/bundle-deploy-eas-update.yml +++ b/.github/workflows/bundle-deploy-eas-update.yml @@ -26,7 +26,7 @@ jobs: group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}-deploy cancel-in-progress: true outputs: - fingerprint-is-different: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different }} + changes-detected: ${{ steps.fingerprint.outputs.includes-changes }} steps: - name: Check for EXPO_TOKEN @@ -49,69 +49,22 @@ jobs: with: fetch-depth: 0 - - name: ⬇️ Get last successful deployment commit from the cache - id: get-base-commit - uses: actions/cache@v4 - with: - path: last-successful-commit-hash.txt - key: last-successful-deployment-commit-${{ github.ref_name }}-${{ github.sha }} - restore-keys: | - last-successful-deployment-commit-${{ github.ref_name }}- - - - name: Add the last successful deployment commit to the output - id: last-successful-commit - run: echo base-commit=$(cat last-successful-commit-hash.txt) >> "$GITHUB_OUTPUT" - - name: ⬇️ Fetch commits from base branch if: ${{ github.ref != 'refs/heads/main' }} run: git fetch origin main:main --depth 100 - # This should get the current production release's commit's hash to see if the update is compatible - - name: 🕵️ Get the base commit - id: base-commit - run: | - if ${{ inputs.channel == 'production' }}; then - echo base-commit=$(git show-ref -s ${{ inputs.runtimeVersion }}) >> "$GITHUB_OUTPUT" - else - echo base-commit=${{ steps.last-successful-commit.base-commit }} >> "$GITHUB_OUTPUT" - fi - - - name: ✓ Make sure we found a base commit - run: | - if [ -z "${{ steps.base-commit.outputs.base-commit }}" && ${{ inputs.channel == 'production' }} ]; then - echo "Could not find a base commit for this release. Exiting." - exit 1 - fi - - name: 🔧 Setup Node uses: actions/setup-node@v4 with: node-version-file: .nvmrc cache: yarn - - name: ⚙️ Install Dependencies - run: yarn install - - # Run the fingerprint - - name: 📷 Check fingerprint + - name: 📷 Check fingerprint and install dependencies id: fingerprint - uses: expo/expo-github-action/fingerprint@main + uses: bluesky-social/github-actions/fingerprint-native@main with: - previous-git-commit: ${{ steps.base-commit.outputs.base-commit }} - - - name: 👀 Debug fingerprint - id: fingerprint-debug - run: | - echo "previousGitCommit=${{ steps.fingerprint.outputs.previous-git-commit }} currentGitCommit=${{ steps.fingerprint.outputs.current-git-commit }}" - echo "isPreviousFingerprintEmpty=${{ steps.fingerprint.outputs.previous-fingerprint == '' }}" - - fingerprintDiff='$(echo "${{ steps.fingerprint.outputs.fingerprint-diff }}")' - - if [[ $fingerprintDiff =~ "bareRncliAutolinking" || $fingerprintDiff =~ "expoAutolinkingAndroid" || $fingerprintDiff =~ "expoAutolinkingIos" ]]; then - echo fingerprint-is-different="true" >> "$GITHUB_OUTPUT" - else - echo fingerprint-is-different="false" >> "$GITHUB_OUTPUT" - fi + profile: ${{ inputs.channel || 'testflight' }} + previous-commit-tag: ${{ inputs.runtimeVersion }} - name: Lint check run: yarn lint @@ -127,22 +80,22 @@ jobs: - name: 🔨 Setup EAS uses: expo/expo-github-action@v8 - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} with: expo-version: latest eas-version: latest token: ${{ secrets.EXPO_TOKEN }} - name: ⛏️ Setup Expo - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} run: yarn global add eas-cli-local-build-plugin - name: 🪛 Setup jq - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} uses: dcarbone/install-jq-action@v2 - name: ✏️ Write environment variables - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} run: | export json='${{ secrets.GOOGLE_SERVICES_TOKEN }}' echo "${{ secrets.ENV_TOKEN }}" > .env @@ -151,19 +104,28 @@ jobs: echo "$json" > google-services.json - name: 🏗️ Create Bundle - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} run: EXPO_PUBLIC_ENV="${{ inputs.channel || 'testflight' }}" yarn export - name: 📦 Package Bundle and 🚀 Deploy - if: ${{ steps.fingerprint-debug.outputs.fingerprint-is-different == 'false'}} + if: ${{ !steps.fingerprint.outputs.includes-changes }} run: yarn use-build-number bash scripts/bundleUpdate.sh env: DENIS_API_KEY: ${{ secrets.DENIS_API_KEY }} RUNTIME_VERSION: ${{ inputs.runtimeVersion }} CHANNEL_NAME: ${{ inputs.channel || 'testflight' }} - - name: Save successful deployment commit hash - run: echo ${{ steps.fingerprint.outputs.current-git-commit }} > last-successful-commit-hash.txt + - name: ⬇️ Restore Cache + id: get-base-commit + uses: actions/cache@v4 + if: ${{ !steps.fingerprint.outputs.includes-changes }} + with: + path: most-recent-testflight-commit.txt + key: most-recent-testflight-commit + + - name: ✏️ Write commit hash to cache + if: ${{ !steps.fingerprint.outputs.includes-changes }} + run: echo ${{ github.sha }} > most-recent-testflight-commit.txt # GitHub actions are horrible so let's just copy paste this in buildIfNecessaryIOS: @@ -171,11 +133,11 @@ jobs: runs-on: macos-14 concurrency: group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}-build-ios - cancel-in-progress: false + cancel-in-progress: true needs: [bundleDeploy] # Gotta check if its NOT '[]' because any md5 hash in the outputs is detected as a possible secret and won't be # available here - if: ${{ inputs.channel != 'production' && needs.bundleDeploy.outputs.fingerprint-is-different == 'true' }} + if: ${{ inputs.channel != 'production' && needs.bundleDeploy.outputs.changes-detected }} steps: - name: Check for EXPO_TOKEN run: > @@ -238,6 +200,18 @@ jobs: - name: 🚀 Deploy run: eas submit -p ios --non-interactive --path build.ipa + - name: ⬇️ Restore Cache + id: get-base-commit + uses: actions/cache@v4 + if: ${{ inputs.channel == 'testflight' }} + with: + path: most-recent-testflight-commit.txt + key: most-recent-testflight-commit + + - name: ✏️ Write commit hash to cache + if: ${{ inputs.channel == 'testflight' }} + run: echo ${{ github.sha }} > most-recent-testflight-commit.txt + buildIfNecessaryAndroid: name: Build and Submit Android runs-on: ubuntu-latest @@ -247,7 +221,7 @@ jobs: needs: [ bundleDeploy ] # Gotta check if its NOT '[]' because any md5 hash in the outputs is detected as a possible secret and won't be # available here - if: ${{ inputs.channel != 'production' && needs.bundleDeploy.outputs.fingerprint-is-different == 'true' }} + if: ${{ inputs.channel != 'production' && needs.bundleDeploy.outputs.changes-detected }} steps: - name: Check for EXPO_TOKEN @@ -325,3 +299,15 @@ jobs: env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_CLIENT_ALERT_WEBHOOK }} SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + + - name: ⬇️ Restore Cache + id: get-base-commit + uses: actions/cache@v4 + if: ${{ inputs.channel == 'testflight' }} + with: + path: most-recent-testflight-commit.txt + key: most-recent-testflight-commit + + - name: ✏️ Write commit hash to cache + if: ${{ inputs.channel == 'testflight' }} + run: echo ${{ github.sha }} > most-recent-testflight-commit.txt diff --git a/.github/workflows/pull-request-commit.yml b/.github/workflows/pull-request-commit.yml index 6c796fd7c4..53e3cc9983 100644 --- a/.github/workflows/pull-request-commit.yml +++ b/.github/workflows/pull-request-commit.yml @@ -1,7 +1,7 @@ # Credit for fingerprint action https://github.com/expo/expo # https://github.com/expo/expo/blob/main/.github/workflows/pr-labeler.yml --- -name: PR labeler +name: PR Tests on: push: @@ -21,7 +21,7 @@ permissions: jobs: webpack-analyzer: runs-on: ubuntu-22.04 - if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} + if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.event_name == 'pull_request'}} steps: - name: ⬇️ Checkout uses: actions/checkout@v4 @@ -94,10 +94,9 @@ jobs: | ${{ steps.get-diff.outputs.base_file_string }} | ${{ steps.get-diff.outputs.pr_file_string }} | ${{ steps.get-diff.outputs.diff_file_string }} (${{ steps.get-diff.outputs.percent }}%) | --- - test-suite-fingerprint: + fingerprint-native: runs-on: ubuntu-22.04 - if: ${{ github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push' }} - concurrency: fingerprint-${{ github.event_name != 'pull_request' && 'main' || github.run_id }} + if: ${{ github.event.pull_request.head.repo.full_name == github.repository && github.event_name == 'pull_request'}} steps: - name: ⬇️ Checkout uses: actions/checkout@v4 @@ -114,35 +113,23 @@ jobs: node-version-file: .nvmrc cache: yarn - - name: ⚙️ Install Dependencies - run: yarn install - - - name: Get the base commit - id: base-commit - run: echo base-commit=$(git log -n 1 main --pretty=format:'%H') >> "$GITHUB_OUTPUT" - - - name: 📷 Check fingerprint + - name: 📷 Check fingerprint and install dependencies id: fingerprint - uses: expo/expo-github-action/fingerprint@main + uses: bluesky-social/github-actions/fingerprint-native@main with: - previous-git-commit: ${{ steps.base-commit.outputs.base-commit }} - - - name: 👀 Debug fingerprint - run: | - echo "previousGitCommit=${{ steps.fingerprint.outputs.previous-git-commit }} currentGitCommit=${{ steps.fingerprint.outputs.current-git-commit }}" - echo "isPreviousFingerprintEmpty=${{ steps.fingerprint.outputs.previous-fingerprint == '' }}" + profile: pull-request - name: 💬 Drop a comment uses: marocchino/sticky-pull-request-comment@v2 - if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff != '[]' }} + if: ${{ steps.fingerprint.outputs.includes-changes }} with: header: fingerprint-diff message: | - The Pull Request introduced fingerprint changes against the base commit: ${{ steps.fingerprint.outputs.previous-git-commit }} + The Pull Request introduced fingerprint changes against the base commit:

Fingerprint diff ```json - ${{ steps.fingerprint.outputs.fingerprint-diff }} + ${{ steps.fingerprint.outputs.diff }} ```
@@ -152,7 +139,7 @@ jobs: - name: 💬 Delete comment uses: marocchino/sticky-pull-request-comment@v2 - if: ${{ github.event_name == 'pull_request' && steps.fingerprint.outputs.fingerprint-diff == '[]' }} + if: ${{ !steps.fingerprint.outputs.includes-changes }} with: header: fingerprint-diff delete: true From 888bec7b4fbe1b924d788333ec44c916fd3e8676 Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 28 May 2024 18:15:35 -0700 Subject: [PATCH 217/277] Upgrade to Expo 51 and React Native 0.74 (#3980) * upgrade packages * remove `expo-image-picker` patch * remove old expo-updates patch * rename rn patch * downgrade crop picker * bump `ExpoGifView` `SDWebImage` version * apply config changes * update build docs for apple silicon * update build docs for apple silicon * update expo-updates patch * add back patch readme * bump `expo-dev-client` * bump `babel-preset` * update `babel.config.js` * update `react-native-paste-input` patch * remove old ota updates hook * update types * update types * downgrade pager-view * update animated ref type * fix web-only type * update `react-native-bottom-sheet` `BottomSheetTextInput` * add `expo-application` to jest mocks * remove reanimated patch * update notifications patch * update reanimated path * fix import * update yarn.lock * use `ItemT` instead of `any` * expo bump * Revert logic change, fix types * Fix JSON file --------- Co-authored-by: Dan Abramov --- app.config.js | 1 - babel.config.js | 3 - docs/build.md | 5 +- jest/jestSetup.js | 9 +- .../ios/ExpoBlueskyGifView.podspec | 4 +- package.json | 80 +- ...rmost+react-native-paste-input+0.6.4.patch | 3612 ----------------- ...rmost+react-native-paste-input+0.7.1.patch | 16 + patches/expo-image-picker+14.7.1.patch | 112 - patches/expo-image-picker+14.7.1.patch.md | 3 - ....patch => expo-notifications+0.28.1.patch} | 80 +- ....24.7.patch => expo-updates+0.25.11.patch} | 16 +- ...patch.md => expo-updates+0.25.11.patch.md} | 2 +- ...0.73.2.patch => react-native+0.74.1.patch} | 0 ....patch.md => react-native+0.74.1.patch.md} | 0 ...h => react-native-reanimated+3.11.0.patch} | 28 +- src/lib/hooks/useOTAUpdate.ts | 56 - src/view/com/pager/PagerWithHeader.tsx | 7 +- src/view/com/util/Views.web.tsx | 3 +- src/view/screens/LanguageSettings.tsx | 36 +- src/view/screens/Search/Search.tsx | 2 +- yarn.lock | 1891 +++++---- 22 files changed, 1172 insertions(+), 4794 deletions(-) delete mode 100644 patches/@mattermost+react-native-paste-input+0.6.4.patch create mode 100644 patches/@mattermost+react-native-paste-input+0.7.1.patch delete mode 100644 patches/expo-image-picker+14.7.1.patch delete mode 100644 patches/expo-image-picker+14.7.1.patch.md rename patches/{expo-notifications+0.27.6.patch => expo-notifications+0.28.1.patch} (88%) rename patches/{expo-updates+0.24.7.patch => expo-updates+0.25.11.patch} (60%) rename patches/{expo-updates+0.24.7.patch.md => expo-updates+0.25.11.patch.md} (96%) rename patches/{react-native+0.73.2.patch => react-native+0.74.1.patch} (100%) rename patches/{react-native+0.73.2.patch.md => react-native+0.74.1.patch.md} (100%) rename patches/{react-native-reanimated+3.6.0.patch => react-native-reanimated+3.11.0.patch} (57%) delete mode 100644 src/lib/hooks/useOTAUpdate.ts diff --git a/app.config.js b/app.config.js index ffa6cf7dab..eafacc6cc1 100644 --- a/app.config.js +++ b/app.config.js @@ -175,7 +175,6 @@ module.exports = function (config) { checkAutomatically: 'NEVER', channel: UPDATES_CHANNEL, }, - assetBundlePatterns: ['**/*'], plugins: [ 'expo-localization', Boolean(process.env.SENTRY_AUTH_TOKEN) && 'sentry-expo', diff --git a/babel.config.js b/babel.config.js index a54deca7cd..c976d04b67 100644 --- a/babel.config.js +++ b/babel.config.js @@ -8,9 +8,6 @@ module.exports = function (api) { { lazyImports: true, native: { - // We should be able to remove this after upgrading Expo - // to a version that includes https://github.com/expo/expo/pull/24672. - unstable_transformProfile: 'hermes-stable', // Disable ESM -> CJS compilation because Metro takes care of it. // However, we need it in Jest tests since those run without Metro. disableImportExportTransform: !isTestEnv, diff --git a/docs/build.md b/docs/build.md index 88733d3b09..dc710686e7 100644 --- a/docs/build.md +++ b/docs/build.md @@ -4,7 +4,10 @@ - Set up your environment [using the expo instructions](https://docs.expo.dev/guides/local-app-development/). - make sure that the JAVA_HOME points to the zulu-17 directory in your `.zshrc` or `.bashrc` file: `export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home`. DO NOT use another JDK or you will encounter build errors. -- If you're running macOS, make sure you are running the correct versions of Ruby and Cocoapods: +- If you're running macOS, make sure you are running the correct versions of Ruby and Cocoapods:- + - If you are using Apple Silicon and this is the first time you are building for RN 0.74+, you may need to run: + - `arch -arm64 brew install llvm` + - `sudo gem install ffi` - Check if you've installed Cocoapods through `homebrew`. If you have, remove it: - `brew info cocoapods` - If output says `Installed`: diff --git a/jest/jestSetup.js b/jest/jestSetup.js index e690e813a9..a6b7c24f69 100644 --- a/jest/jestSetup.js +++ b/jest/jestSetup.js @@ -1,10 +1,10 @@ /* global jest */ -import {configure} from '@testing-library/react-native' import 'react-native-gesture-handler/jestSetup' - // IMPORTANT: this is what's used in the native runtime import 'react-native-url-polyfill/auto' +import {configure} from '@testing-library/react-native' + configure({asyncUtilTimeout: 20000}) jest.mock('@react-native-async-storage/async-storage', () => @@ -90,3 +90,8 @@ jest.mock('sentry-expo', () => ({ })) jest.mock('crypto', () => ({})) + +jest.mock('expo-application', () => ({ + nativeApplicationVersion: '1.0.0', + nativeBuildVersion: '1', +})) diff --git a/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifView.podspec b/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifView.podspec index ddd0877b24..352812640b 100644 --- a/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifView.podspec +++ b/modules/expo-bluesky-gif-view/ios/ExpoBlueskyGifView.podspec @@ -10,8 +10,8 @@ Pod::Spec.new do |s| s.static_framework = true s.dependency 'ExpoModulesCore' - s.dependency 'SDWebImage', '~> 5.17.0' - s.dependency 'SDWebImageWebPCoder', '~> 0.13.0' + s.dependency 'SDWebImage', '~> 5.19.1' + s.dependency 'SDWebImageWebPCoder', '~> 0.14.6' # Swift/Objective-C compatibility s.pod_target_xcconfig = { diff --git a/package.json b/package.json index 0634a6cce9..5a936e3c1c 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "@fortawesome/free-solid-svg-icons": "^6.1.1", "@fortawesome/react-native-fontawesome": "^0.3.0", "@lingui/react": "^4.5.0", - "@mattermost/react-native-paste-input": "^0.6.4", + "@mattermost/react-native-paste-input": "^0.7.1", "@miblanchard/react-native-slider": "^2.3.1", "@radix-ui/react-dropdown-menu": "^2.0.6", "@react-native-async-storage/async-storage": "1.23.1", @@ -107,35 +107,36 @@ "base64-js": "^1.5.1", "bcp-47-match": "^2.0.3", "date-fns": "^2.30.0", + "deprecated-react-native-prop-types": "^5.0.0", "email-validator": "^2.0.4", "emoji-mart": "^5.5.2", "eventemitter3": "^5.0.1", - "expo": "^50.0.17", - "expo-application": "^5.8.3", - "expo-build-properties": "^0.11.1", - "expo-camera": "~14.0.4", + "expo": "^51.0.8", + "expo-application": "^5.9.1", + "expo-build-properties": "^0.12.1", + "expo-camera": "~14.1.3", "expo-clipboard": "^5.0.1", - "expo-constants": "~15.4.5", - "expo-dev-client": "~3.3.8", + "expo-constants": "~15.4.6", + "expo-dev-client": "^4.0.14", "expo-device": "~5.9.3", "expo-file-system": "^16.0.9", "expo-haptics": "^12.8.1", - "expo-image": "~1.10.6", - "expo-image-manipulator": "^11.8.0", - "expo-image-picker": "~14.7.1", - "expo-linear-gradient": "^12.7.2", - "expo-linking": "^6.2.2", - "expo-localization": "~14.8.3", - "expo-media-library": "~15.9.1", - "expo-navigation-bar": "~2.8.1", - "expo-notifications": "~0.27.6", - "expo-sharing": "^11.10.0", - "expo-splash-screen": "~0.26.4", - "expo-status-bar": "~1.11.1", - "expo-system-ui": "~2.9.3", - "expo-task-manager": "~11.7.2", - "expo-updates": "~0.24.10", - "expo-web-browser": "~12.8.2", + "expo-image": "~1.12.9", + "expo-image-manipulator": "^12.0.3", + "expo-image-picker": "~15.0.4", + "expo-linear-gradient": "^13.0.2", + "expo-linking": "^6.3.1", + "expo-localization": "~15.0.3", + "expo-media-library": "~16.0.3", + "expo-navigation-bar": "~3.0.4", + "expo-notifications": "~0.28.1", + "expo-sharing": "^12.0.1", + "expo-splash-screen": "~0.27.4", + "expo-status-bar": "~1.12.1", + "expo-system-ui": "~3.0.4", + "expo-task-manager": "~11.8.1", + "expo-updates": "~0.25.11", + "expo-web-browser": "~13.0.3", "fast-text-encoding": "^1.0.6", "history": "^5.3.0", "js-sha256": "^0.9.0", @@ -164,30 +165,30 @@ "react-compiler-runtime": "file:./lib/react-compiler-runtime", "react-dom": "^18.2.0", "react-keyed-flatten-children": "^3.0.0", - "react-native": "0.73.2", - "react-native-date-picker": "^4.4.0", + "react-native": "0.74.1", + "react-native-date-picker": "^4.4.2", "react-native-drawer-layout": "^4.0.0-alpha.3", "react-native-fs": "^2.20.0", - "react-native-gesture-handler": "~2.14.0", + "react-native-gesture-handler": "~2.16.2", "react-native-get-random-values": "~1.11.0", - "react-native-image-crop-picker": "^0.38.1", + "react-native-image-crop-picker": "0.40.3", "react-native-ios-context-menu": "^1.15.3", "react-native-keyboard-controller": "^1.12.1", "react-native-pager-view": "6.2.3", - "react-native-picker-select": "^8.1.0", + "react-native-picker-select": "^9.1.3", "react-native-progress": "bluesky-social/react-native-progress", - "react-native-reanimated": "^3.6.0", + "react-native-reanimated": "^3.11.0", "react-native-root-siblings": "^4.1.1", - "react-native-safe-area-context": "4.8.2", - "react-native-screens": "~3.29.0", - "react-native-svg": "14.1.0", - "react-native-uitextview": "^1.1.6", + "react-native-safe-area-context": "4.10.1", + "react-native-screens": "~3.31.1", + "react-native-svg": "^15.2.0", + "react-native-uitextview": "^1.1.7", "react-native-url-polyfill": "^1.3.0", - "react-native-uuid": "^2.0.1", + "react-native-uuid": "^2.0.2", "react-native-view-shot": "^3.8.0", - "react-native-web": "~0.19.6", + "react-native-web": "~0.19.11", "react-native-web-webview": "^1.0.2", - "react-native-webview": "13.6.4", + "react-native-webview": "13.10.2", "react-responsive": "^9.0.2", "react-textarea-autosize": "^8.5.3", "rn-fetch-blob": "^0.12.0", @@ -210,7 +211,7 @@ "@lingui/macro": "^4.5.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", "@react-native-community/eslint-config": "^3.0.0", - "@react-native/typescript-config": "^0.74.0", + "@react-native/typescript-config": "^0.74.1", "@testing-library/jest-native": "^5.4.1", "@testing-library/react-native": "^11.5.2", "@tsconfig/react-native": "^2.0.3", @@ -254,7 +255,7 @@ "jest-expo": "^50.0.1", "jest-junit": "^15.0.0", "lint-staged": "^13.2.3", - "metro-react-native-babel-preset": "^0.73.7", + "metro-react-native-babel-preset": "^0.74.1", "prettier": "^2.8.3", "react-native-dotenv": "^3.3.1", "react-refresh": "^0.14.0", @@ -270,7 +271,8 @@ }, "resolutions": { "@types/react": "^18", - "**/zeed-dom": "0.10.9" + "**/zeed-dom": "0.10.9", + "@react-native/babel-preset": "0.74.1" }, "jest": { "preset": "jest-expo/ios", diff --git a/patches/@mattermost+react-native-paste-input+0.6.4.patch b/patches/@mattermost+react-native-paste-input+0.6.4.patch deleted file mode 100644 index 08413846ff..0000000000 --- a/patches/@mattermost+react-native-paste-input+0.6.4.patch +++ /dev/null @@ -1,3612 +0,0 @@ -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml -new file mode 100644 -index 0000000..0249d77 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml -@@ -0,0 +1,9 @@ -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json -new file mode 100644 -index 0000000..2aeca5f ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json -@@ -0,0 +1,18 @@ -+{ -+ "version": 3, -+ "artifactType": { -+ "type": "AAPT_FRIENDLY_MERGED_MANIFESTS", -+ "kind": "Directory" -+ }, -+ "applicationId": "com.mattermost.pasteinput", -+ "variantName": "debug", -+ "elements": [ -+ { -+ "type": "SINGLE", -+ "filters": [], -+ "attributes": [], -+ "outputFile": "AndroidManifest.xml" -+ } -+ ], -+ "elementType": "File" -+} -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aar_metadata/debug/aar-metadata.properties b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aar_metadata/debug/aar-metadata.properties -new file mode 100644 -index 0000000..8c9c699 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/aar_metadata/debug/aar-metadata.properties -@@ -0,0 +1,4 @@ -+aarFormatVersion=1.0 -+aarMetadataVersion=1.0 -+minCompileSdk=1 -+minAndroidGradlePluginVersion=1.0.0 -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/compile_r_class_jar/debug/R.jar b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/compile_r_class_jar/debug/R.jar -new file mode 100644 -index 0000000..e69de29 -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/compile_symbol_list/debug/R.txt b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/compile_symbol_list/debug/R.txt -new file mode 100644 -index 0000000..7c9d30e ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/compile_symbol_list/debug/R.txt -@@ -0,0 +1,1953 @@ -+int anim abc_fade_in 0x0 -+int anim abc_fade_out 0x0 -+int anim abc_grow_fade_in_from_bottom 0x0 -+int anim abc_popup_enter 0x0 -+int anim abc_popup_exit 0x0 -+int anim abc_shrink_fade_out_from_bottom 0x0 -+int anim abc_slide_in_bottom 0x0 -+int anim abc_slide_in_top 0x0 -+int anim abc_slide_out_bottom 0x0 -+int anim abc_slide_out_top 0x0 -+int anim abc_tooltip_enter 0x0 -+int anim abc_tooltip_exit 0x0 -+int anim btn_checkbox_to_checked_box_inner_merged_animation 0x0 -+int anim btn_checkbox_to_checked_box_outer_merged_animation 0x0 -+int anim btn_checkbox_to_checked_icon_null_animation 0x0 -+int anim btn_checkbox_to_unchecked_box_inner_merged_animation 0x0 -+int anim btn_checkbox_to_unchecked_check_path_merged_animation 0x0 -+int anim btn_checkbox_to_unchecked_icon_null_animation 0x0 -+int anim btn_radio_to_off_mtrl_dot_group_animation 0x0 -+int anim btn_radio_to_off_mtrl_ring_outer_animation 0x0 -+int anim btn_radio_to_off_mtrl_ring_outer_path_animation 0x0 -+int anim btn_radio_to_on_mtrl_dot_group_animation 0x0 -+int anim btn_radio_to_on_mtrl_ring_outer_animation 0x0 -+int anim btn_radio_to_on_mtrl_ring_outer_path_animation 0x0 -+int anim catalyst_fade_in 0x0 -+int anim catalyst_fade_out 0x0 -+int anim catalyst_push_up_in 0x0 -+int anim catalyst_push_up_out 0x0 -+int anim catalyst_slide_down 0x0 -+int anim catalyst_slide_up 0x0 -+int anim fragment_fast_out_extra_slow_in 0x0 -+int animator fragment_close_enter 0x0 -+int animator fragment_close_exit 0x0 -+int animator fragment_fade_enter 0x0 -+int animator fragment_fade_exit 0x0 -+int animator fragment_open_enter 0x0 -+int animator fragment_open_exit 0x0 -+int attr actionBarDivider 0x0 -+int attr actionBarItemBackground 0x0 -+int attr actionBarPopupTheme 0x0 -+int attr actionBarSize 0x0 -+int attr actionBarSplitStyle 0x0 -+int attr actionBarStyle 0x0 -+int attr actionBarTabBarStyle 0x0 -+int attr actionBarTabStyle 0x0 -+int attr actionBarTabTextStyle 0x0 -+int attr actionBarTheme 0x0 -+int attr actionBarWidgetTheme 0x0 -+int attr actionButtonStyle 0x0 -+int attr actionDropDownStyle 0x0 -+int attr actionLayout 0x0 -+int attr actionMenuTextAppearance 0x0 -+int attr actionMenuTextColor 0x0 -+int attr actionModeBackground 0x0 -+int attr actionModeCloseButtonStyle 0x0 -+int attr actionModeCloseContentDescription 0x0 -+int attr actionModeCloseDrawable 0x0 -+int attr actionModeCopyDrawable 0x0 -+int attr actionModeCutDrawable 0x0 -+int attr actionModeFindDrawable 0x0 -+int attr actionModePasteDrawable 0x0 -+int attr actionModePopupWindowStyle 0x0 -+int attr actionModeSelectAllDrawable 0x0 -+int attr actionModeShareDrawable 0x0 -+int attr actionModeSplitBackground 0x0 -+int attr actionModeStyle 0x0 -+int attr actionModeTheme 0x0 -+int attr actionModeWebSearchDrawable 0x0 -+int attr actionOverflowButtonStyle 0x0 -+int attr actionOverflowMenuStyle 0x0 -+int attr actionProviderClass 0x0 -+int attr actionViewClass 0x0 -+int attr activityChooserViewStyle 0x0 -+int attr actualImageResource 0x0 -+int attr actualImageScaleType 0x0 -+int attr actualImageUri 0x0 -+int attr alertDialogButtonGroupStyle 0x0 -+int attr alertDialogCenterButtons 0x0 -+int attr alertDialogStyle 0x0 -+int attr alertDialogTheme 0x0 -+int attr allowStacking 0x0 -+int attr alpha 0x0 -+int attr alphabeticModifiers 0x0 -+int attr arrowHeadLength 0x0 -+int attr arrowShaftLength 0x0 -+int attr autoCompleteTextViewStyle 0x0 -+int attr autoSizeMaxTextSize 0x0 -+int attr autoSizeMinTextSize 0x0 -+int attr autoSizePresetSizes 0x0 -+int attr autoSizeStepGranularity 0x0 -+int attr autoSizeTextType 0x0 -+int attr autofillInlineSuggestionChip 0x0 -+int attr autofillInlineSuggestionEndIconStyle 0x0 -+int attr autofillInlineSuggestionStartIconStyle 0x0 -+int attr autofillInlineSuggestionSubtitle 0x0 -+int attr autofillInlineSuggestionTitle 0x0 -+int attr background 0x0 -+int attr backgroundImage 0x0 -+int attr backgroundSplit 0x0 -+int attr backgroundStacked 0x0 -+int attr backgroundTint 0x0 -+int attr backgroundTintMode 0x0 -+int attr barLength 0x0 -+int attr borderlessButtonStyle 0x0 -+int attr buttonBarButtonStyle 0x0 -+int attr buttonBarNegativeButtonStyle 0x0 -+int attr buttonBarNeutralButtonStyle 0x0 -+int attr buttonBarPositiveButtonStyle 0x0 -+int attr buttonBarStyle 0x0 -+int attr buttonCompat 0x0 -+int attr buttonGravity 0x0 -+int attr buttonIconDimen 0x0 -+int attr buttonPanelSideLayout 0x0 -+int attr buttonStyle 0x0 -+int attr buttonStyleSmall 0x0 -+int attr buttonTint 0x0 -+int attr buttonTintMode 0x0 -+int attr checkMarkCompat 0x0 -+int attr checkMarkTint 0x0 -+int attr checkMarkTintMode 0x0 -+int attr checkboxStyle 0x0 -+int attr checkedTextViewStyle 0x0 -+int attr closeIcon 0x0 -+int attr closeItemLayout 0x0 -+int attr collapseContentDescription 0x0 -+int attr collapseIcon 0x0 -+int attr color 0x0 -+int attr colorAccent 0x0 -+int attr colorBackgroundFloating 0x0 -+int attr colorButtonNormal 0x0 -+int attr colorControlActivated 0x0 -+int attr colorControlHighlight 0x0 -+int attr colorControlNormal 0x0 -+int attr colorError 0x0 -+int attr colorPrimary 0x0 -+int attr colorPrimaryDark 0x0 -+int attr colorSwitchThumbNormal 0x0 -+int attr commitIcon 0x0 -+int attr contentDescription 0x0 -+int attr contentInsetEnd 0x0 -+int attr contentInsetEndWithActions 0x0 -+int attr contentInsetLeft 0x0 -+int attr contentInsetRight 0x0 -+int attr contentInsetStart 0x0 -+int attr contentInsetStartWithNavigation 0x0 -+int attr controlBackground 0x0 -+int attr customNavigationLayout 0x0 -+int attr defaultQueryHint 0x0 -+int attr dialogCornerRadius 0x0 -+int attr dialogPreferredPadding 0x0 -+int attr dialogTheme 0x0 -+int attr displayOptions 0x0 -+int attr divider 0x0 -+int attr dividerHorizontal 0x0 -+int attr dividerPadding 0x0 -+int attr dividerVertical 0x0 -+int attr drawableBottomCompat 0x0 -+int attr drawableEndCompat 0x0 -+int attr drawableLeftCompat 0x0 -+int attr drawableRightCompat 0x0 -+int attr drawableSize 0x0 -+int attr drawableStartCompat 0x0 -+int attr drawableTint 0x0 -+int attr drawableTintMode 0x0 -+int attr drawableTopCompat 0x0 -+int attr drawerArrowStyle 0x0 -+int attr dropDownListViewStyle 0x0 -+int attr dropdownListPreferredItemHeight 0x0 -+int attr editTextBackground 0x0 -+int attr editTextColor 0x0 -+int attr editTextStyle 0x0 -+int attr elevation 0x0 -+int attr emojiCompatEnabled 0x0 -+int attr expandActivityOverflowButtonDrawable 0x0 -+int attr fadeDuration 0x0 -+int attr failureImage 0x0 -+int attr failureImageScaleType 0x0 -+int attr firstBaselineToTopHeight 0x0 -+int attr font 0x0 -+int attr fontFamily 0x0 -+int attr fontProviderAuthority 0x0 -+int attr fontProviderCerts 0x0 -+int attr fontProviderFetchStrategy 0x0 -+int attr fontProviderFetchTimeout 0x0 -+int attr fontProviderPackage 0x0 -+int attr fontProviderQuery 0x0 -+int attr fontProviderSystemFontFamily 0x0 -+int attr fontStyle 0x0 -+int attr fontVariationSettings 0x0 -+int attr fontWeight 0x0 -+int attr gapBetweenBars 0x0 -+int attr goIcon 0x0 -+int attr height 0x0 -+int attr hideOnContentScroll 0x0 -+int attr homeAsUpIndicator 0x0 -+int attr homeLayout 0x0 -+int attr icon 0x0 -+int attr iconTint 0x0 -+int attr iconTintMode 0x0 -+int attr iconifiedByDefault 0x0 -+int attr imageButtonStyle 0x0 -+int attr indeterminateProgressStyle 0x0 -+int attr initialActivityCount 0x0 -+int attr isAutofillInlineSuggestionTheme 0x0 -+int attr isLightTheme 0x0 -+int attr itemPadding 0x0 -+int attr lStar 0x0 -+int attr lastBaselineToBottomHeight 0x0 -+int attr layout 0x0 -+int attr lineHeight 0x0 -+int attr listChoiceBackgroundIndicator 0x0 -+int attr listChoiceIndicatorMultipleAnimated 0x0 -+int attr listChoiceIndicatorSingleAnimated 0x0 -+int attr listDividerAlertDialog 0x0 -+int attr listItemLayout 0x0 -+int attr listLayout 0x0 -+int attr listMenuViewStyle 0x0 -+int attr listPopupWindowStyle 0x0 -+int attr listPreferredItemHeight 0x0 -+int attr listPreferredItemHeightLarge 0x0 -+int attr listPreferredItemHeightSmall 0x0 -+int attr listPreferredItemPaddingEnd 0x0 -+int attr listPreferredItemPaddingLeft 0x0 -+int attr listPreferredItemPaddingRight 0x0 -+int attr listPreferredItemPaddingStart 0x0 -+int attr logo 0x0 -+int attr logoDescription 0x0 -+int attr maxButtonHeight 0x0 -+int attr measureWithLargestChild 0x0 -+int attr menu 0x0 -+int attr multiChoiceItemLayout 0x0 -+int attr navigationContentDescription 0x0 -+int attr navigationIcon 0x0 -+int attr navigationMode 0x0 -+int attr nestedScrollViewStyle 0x0 -+int attr numericModifiers 0x0 -+int attr overlapAnchor 0x0 -+int attr overlayImage 0x0 -+int attr paddingBottomNoButtons 0x0 -+int attr paddingEnd 0x0 -+int attr paddingStart 0x0 -+int attr paddingTopNoTitle 0x0 -+int attr panelBackground 0x0 -+int attr panelMenuListTheme 0x0 -+int attr panelMenuListWidth 0x0 -+int attr placeholderImage 0x0 -+int attr placeholderImageScaleType 0x0 -+int attr popupMenuStyle 0x0 -+int attr popupTheme 0x0 -+int attr popupWindowStyle 0x0 -+int attr preserveIconSpacing 0x0 -+int attr pressedStateOverlayImage 0x0 -+int attr progressBarAutoRotateInterval 0x0 -+int attr progressBarImage 0x0 -+int attr progressBarImageScaleType 0x0 -+int attr progressBarPadding 0x0 -+int attr progressBarStyle 0x0 -+int attr queryBackground 0x0 -+int attr queryHint 0x0 -+int attr queryPatterns 0x0 -+int attr radioButtonStyle 0x0 -+int attr ratingBarStyle 0x0 -+int attr ratingBarStyleIndicator 0x0 -+int attr ratingBarStyleSmall 0x0 -+int attr retryImage 0x0 -+int attr retryImageScaleType 0x0 -+int attr roundAsCircle 0x0 -+int attr roundBottomEnd 0x0 -+int attr roundBottomLeft 0x0 -+int attr roundBottomRight 0x0 -+int attr roundBottomStart 0x0 -+int attr roundTopEnd 0x0 -+int attr roundTopLeft 0x0 -+int attr roundTopRight 0x0 -+int attr roundTopStart 0x0 -+int attr roundWithOverlayColor 0x0 -+int attr roundedCornerRadius 0x0 -+int attr roundingBorderColor 0x0 -+int attr roundingBorderPadding 0x0 -+int attr roundingBorderWidth 0x0 -+int attr searchHintIcon 0x0 -+int attr searchIcon 0x0 -+int attr searchViewStyle 0x0 -+int attr seekBarStyle 0x0 -+int attr selectableItemBackground 0x0 -+int attr selectableItemBackgroundBorderless 0x0 -+int attr shortcutMatchRequired 0x0 -+int attr showAsAction 0x0 -+int attr showDividers 0x0 -+int attr showText 0x0 -+int attr showTitle 0x0 -+int attr singleChoiceItemLayout 0x0 -+int attr spinBars 0x0 -+int attr spinnerDropDownItemStyle 0x0 -+int attr spinnerStyle 0x0 -+int attr splitTrack 0x0 -+int attr srcCompat 0x0 -+int attr state_above_anchor 0x0 -+int attr subMenuArrow 0x0 -+int attr submitBackground 0x0 -+int attr subtitle 0x0 -+int attr subtitleTextAppearance 0x0 -+int attr subtitleTextColor 0x0 -+int attr subtitleTextStyle 0x0 -+int attr suggestionRowLayout 0x0 -+int attr switchMinWidth 0x0 -+int attr switchPadding 0x0 -+int attr switchStyle 0x0 -+int attr switchTextAppearance 0x0 -+int attr textAllCaps 0x0 -+int attr textAppearanceLargePopupMenu 0x0 -+int attr textAppearanceListItem 0x0 -+int attr textAppearanceListItemSecondary 0x0 -+int attr textAppearanceListItemSmall 0x0 -+int attr textAppearancePopupMenuHeader 0x0 -+int attr textAppearanceSearchResultSubtitle 0x0 -+int attr textAppearanceSearchResultTitle 0x0 -+int attr textAppearanceSmallPopupMenu 0x0 -+int attr textColorAlertDialogListItem 0x0 -+int attr textColorSearchUrl 0x0 -+int attr textLocale 0x0 -+int attr theme 0x0 -+int attr thickness 0x0 -+int attr thumbTextPadding 0x0 -+int attr thumbTint 0x0 -+int attr thumbTintMode 0x0 -+int attr tickMark 0x0 -+int attr tickMarkTint 0x0 -+int attr tickMarkTintMode 0x0 -+int attr tint 0x0 -+int attr tintMode 0x0 -+int attr title 0x0 -+int attr titleMargin 0x0 -+int attr titleMarginBottom 0x0 -+int attr titleMarginEnd 0x0 -+int attr titleMarginStart 0x0 -+int attr titleMarginTop 0x0 -+int attr titleMargins 0x0 -+int attr titleTextAppearance 0x0 -+int attr titleTextColor 0x0 -+int attr titleTextStyle 0x0 -+int attr toolbarNavigationButtonStyle 0x0 -+int attr toolbarStyle 0x0 -+int attr tooltipForegroundColor 0x0 -+int attr tooltipFrameBackground 0x0 -+int attr tooltipText 0x0 -+int attr track 0x0 -+int attr trackTint 0x0 -+int attr trackTintMode 0x0 -+int attr ttcIndex 0x0 -+int attr viewAspectRatio 0x0 -+int attr viewInflaterClass 0x0 -+int attr voiceIcon 0x0 -+int attr windowActionBar 0x0 -+int attr windowActionBarOverlay 0x0 -+int attr windowActionModeOverlay 0x0 -+int attr windowFixedHeightMajor 0x0 -+int attr windowFixedHeightMinor 0x0 -+int attr windowFixedWidthMajor 0x0 -+int attr windowFixedWidthMinor 0x0 -+int attr windowMinWidthMajor 0x0 -+int attr windowMinWidthMinor 0x0 -+int attr windowNoTitle 0x0 -+int bool abc_action_bar_embed_tabs 0x0 -+int bool abc_config_actionMenuItemAllCaps 0x0 -+int color abc_background_cache_hint_selector_material_dark 0x0 -+int color abc_background_cache_hint_selector_material_light 0x0 -+int color abc_btn_colored_borderless_text_material 0x0 -+int color abc_btn_colored_text_material 0x0 -+int color abc_color_highlight_material 0x0 -+int color abc_decor_view_status_guard 0x0 -+int color abc_decor_view_status_guard_light 0x0 -+int color abc_hint_foreground_material_dark 0x0 -+int color abc_hint_foreground_material_light 0x0 -+int color abc_primary_text_disable_only_material_dark 0x0 -+int color abc_primary_text_disable_only_material_light 0x0 -+int color abc_primary_text_material_dark 0x0 -+int color abc_primary_text_material_light 0x0 -+int color abc_search_url_text 0x0 -+int color abc_search_url_text_normal 0x0 -+int color abc_search_url_text_pressed 0x0 -+int color abc_search_url_text_selected 0x0 -+int color abc_secondary_text_material_dark 0x0 -+int color abc_secondary_text_material_light 0x0 -+int color abc_tint_btn_checkable 0x0 -+int color abc_tint_default 0x0 -+int color abc_tint_edittext 0x0 -+int color abc_tint_seek_thumb 0x0 -+int color abc_tint_spinner 0x0 -+int color abc_tint_switch_track 0x0 -+int color accent_material_dark 0x0 -+int color accent_material_light 0x0 -+int color androidx_core_ripple_material_light 0x0 -+int color androidx_core_secondary_text_default_material_light 0x0 -+int color background_floating_material_dark 0x0 -+int color background_floating_material_light 0x0 -+int color background_material_dark 0x0 -+int color background_material_light 0x0 -+int color bright_foreground_disabled_material_dark 0x0 -+int color bright_foreground_disabled_material_light 0x0 -+int color bright_foreground_inverse_material_dark 0x0 -+int color bright_foreground_inverse_material_light 0x0 -+int color bright_foreground_material_dark 0x0 -+int color bright_foreground_material_light 0x0 -+int color button_material_dark 0x0 -+int color button_material_light 0x0 -+int color catalyst_logbox_background 0x0 -+int color catalyst_redbox_background 0x0 -+int color dim_foreground_disabled_material_dark 0x0 -+int color dim_foreground_disabled_material_light 0x0 -+int color dim_foreground_material_dark 0x0 -+int color dim_foreground_material_light 0x0 -+int color error_color_material_dark 0x0 -+int color error_color_material_light 0x0 -+int color foreground_material_dark 0x0 -+int color foreground_material_light 0x0 -+int color highlighted_text_material_dark 0x0 -+int color highlighted_text_material_light 0x0 -+int color material_blue_grey_800 0x0 -+int color material_blue_grey_900 0x0 -+int color material_blue_grey_950 0x0 -+int color material_deep_teal_200 0x0 -+int color material_deep_teal_500 0x0 -+int color material_grey_100 0x0 -+int color material_grey_300 0x0 -+int color material_grey_50 0x0 -+int color material_grey_600 0x0 -+int color material_grey_800 0x0 -+int color material_grey_850 0x0 -+int color material_grey_900 0x0 -+int color notification_action_color_filter 0x0 -+int color notification_icon_bg_color 0x0 -+int color primary_dark_material_dark 0x0 -+int color primary_dark_material_light 0x0 -+int color primary_material_dark 0x0 -+int color primary_material_light 0x0 -+int color primary_text_default_material_dark 0x0 -+int color primary_text_default_material_light 0x0 -+int color primary_text_disabled_material_dark 0x0 -+int color primary_text_disabled_material_light 0x0 -+int color ripple_material_dark 0x0 -+int color ripple_material_light 0x0 -+int color secondary_text_default_material_dark 0x0 -+int color secondary_text_default_material_light 0x0 -+int color secondary_text_disabled_material_dark 0x0 -+int color secondary_text_disabled_material_light 0x0 -+int color switch_thumb_disabled_material_dark 0x0 -+int color switch_thumb_disabled_material_light 0x0 -+int color switch_thumb_material_dark 0x0 -+int color switch_thumb_material_light 0x0 -+int color switch_thumb_normal_material_dark 0x0 -+int color switch_thumb_normal_material_light 0x0 -+int color tooltip_background_dark 0x0 -+int color tooltip_background_light 0x0 -+int dimen abc_action_bar_content_inset_material 0x0 -+int dimen abc_action_bar_content_inset_with_nav 0x0 -+int dimen abc_action_bar_default_height_material 0x0 -+int dimen abc_action_bar_default_padding_end_material 0x0 -+int dimen abc_action_bar_default_padding_start_material 0x0 -+int dimen abc_action_bar_elevation_material 0x0 -+int dimen abc_action_bar_icon_vertical_padding_material 0x0 -+int dimen abc_action_bar_overflow_padding_end_material 0x0 -+int dimen abc_action_bar_overflow_padding_start_material 0x0 -+int dimen abc_action_bar_stacked_max_height 0x0 -+int dimen abc_action_bar_stacked_tab_max_width 0x0 -+int dimen abc_action_bar_subtitle_bottom_margin_material 0x0 -+int dimen abc_action_bar_subtitle_top_margin_material 0x0 -+int dimen abc_action_button_min_height_material 0x0 -+int dimen abc_action_button_min_width_material 0x0 -+int dimen abc_action_button_min_width_overflow_material 0x0 -+int dimen abc_alert_dialog_button_bar_height 0x0 -+int dimen abc_alert_dialog_button_dimen 0x0 -+int dimen abc_button_inset_horizontal_material 0x0 -+int dimen abc_button_inset_vertical_material 0x0 -+int dimen abc_button_padding_horizontal_material 0x0 -+int dimen abc_button_padding_vertical_material 0x0 -+int dimen abc_cascading_menus_min_smallest_width 0x0 -+int dimen abc_config_prefDialogWidth 0x0 -+int dimen abc_control_corner_material 0x0 -+int dimen abc_control_inset_material 0x0 -+int dimen abc_control_padding_material 0x0 -+int dimen abc_dialog_corner_radius_material 0x0 -+int dimen abc_dialog_fixed_height_major 0x0 -+int dimen abc_dialog_fixed_height_minor 0x0 -+int dimen abc_dialog_fixed_width_major 0x0 -+int dimen abc_dialog_fixed_width_minor 0x0 -+int dimen abc_dialog_list_padding_bottom_no_buttons 0x0 -+int dimen abc_dialog_list_padding_top_no_title 0x0 -+int dimen abc_dialog_min_width_major 0x0 -+int dimen abc_dialog_min_width_minor 0x0 -+int dimen abc_dialog_padding_material 0x0 -+int dimen abc_dialog_padding_top_material 0x0 -+int dimen abc_dialog_title_divider_material 0x0 -+int dimen abc_disabled_alpha_material_dark 0x0 -+int dimen abc_disabled_alpha_material_light 0x0 -+int dimen abc_dropdownitem_icon_width 0x0 -+int dimen abc_dropdownitem_text_padding_left 0x0 -+int dimen abc_dropdownitem_text_padding_right 0x0 -+int dimen abc_edit_text_inset_bottom_material 0x0 -+int dimen abc_edit_text_inset_horizontal_material 0x0 -+int dimen abc_edit_text_inset_top_material 0x0 -+int dimen abc_floating_window_z 0x0 -+int dimen abc_list_item_height_large_material 0x0 -+int dimen abc_list_item_height_material 0x0 -+int dimen abc_list_item_height_small_material 0x0 -+int dimen abc_list_item_padding_horizontal_material 0x0 -+int dimen abc_panel_menu_list_width 0x0 -+int dimen abc_progress_bar_height_material 0x0 -+int dimen abc_search_view_preferred_height 0x0 -+int dimen abc_search_view_preferred_width 0x0 -+int dimen abc_seekbar_track_background_height_material 0x0 -+int dimen abc_seekbar_track_progress_height_material 0x0 -+int dimen abc_select_dialog_padding_start_material 0x0 -+int dimen abc_star_big 0x0 -+int dimen abc_star_medium 0x0 -+int dimen abc_star_small 0x0 -+int dimen abc_switch_padding 0x0 -+int dimen abc_text_size_body_1_material 0x0 -+int dimen abc_text_size_body_2_material 0x0 -+int dimen abc_text_size_button_material 0x0 -+int dimen abc_text_size_caption_material 0x0 -+int dimen abc_text_size_display_1_material 0x0 -+int dimen abc_text_size_display_2_material 0x0 -+int dimen abc_text_size_display_3_material 0x0 -+int dimen abc_text_size_display_4_material 0x0 -+int dimen abc_text_size_headline_material 0x0 -+int dimen abc_text_size_large_material 0x0 -+int dimen abc_text_size_medium_material 0x0 -+int dimen abc_text_size_menu_header_material 0x0 -+int dimen abc_text_size_menu_material 0x0 -+int dimen abc_text_size_small_material 0x0 -+int dimen abc_text_size_subhead_material 0x0 -+int dimen abc_text_size_subtitle_material_toolbar 0x0 -+int dimen abc_text_size_title_material 0x0 -+int dimen abc_text_size_title_material_toolbar 0x0 -+int dimen autofill_inline_suggestion_icon_size 0x0 -+int dimen compat_button_inset_horizontal_material 0x0 -+int dimen compat_button_inset_vertical_material 0x0 -+int dimen compat_button_padding_horizontal_material 0x0 -+int dimen compat_button_padding_vertical_material 0x0 -+int dimen compat_control_corner_material 0x0 -+int dimen compat_notification_large_icon_max_height 0x0 -+int dimen compat_notification_large_icon_max_width 0x0 -+int dimen disabled_alpha_material_dark 0x0 -+int dimen disabled_alpha_material_light 0x0 -+int dimen highlight_alpha_material_colored 0x0 -+int dimen highlight_alpha_material_dark 0x0 -+int dimen highlight_alpha_material_light 0x0 -+int dimen hint_alpha_material_dark 0x0 -+int dimen hint_alpha_material_light 0x0 -+int dimen hint_pressed_alpha_material_dark 0x0 -+int dimen hint_pressed_alpha_material_light 0x0 -+int dimen notification_action_icon_size 0x0 -+int dimen notification_action_text_size 0x0 -+int dimen notification_big_circle_margin 0x0 -+int dimen notification_content_margin_start 0x0 -+int dimen notification_large_icon_height 0x0 -+int dimen notification_large_icon_width 0x0 -+int dimen notification_main_column_padding_top 0x0 -+int dimen notification_media_narrow_margin 0x0 -+int dimen notification_right_icon_size 0x0 -+int dimen notification_right_side_padding_top 0x0 -+int dimen notification_small_icon_background_padding 0x0 -+int dimen notification_small_icon_size_as_large 0x0 -+int dimen notification_subtext_size 0x0 -+int dimen notification_top_pad 0x0 -+int dimen notification_top_pad_large_text 0x0 -+int dimen tooltip_corner_radius 0x0 -+int dimen tooltip_horizontal_padding 0x0 -+int dimen tooltip_margin 0x0 -+int dimen tooltip_precise_anchor_extra_offset 0x0 -+int dimen tooltip_precise_anchor_threshold 0x0 -+int dimen tooltip_vertical_padding 0x0 -+int dimen tooltip_y_offset_non_touch 0x0 -+int dimen tooltip_y_offset_touch 0x0 -+int drawable abc_ab_share_pack_mtrl_alpha 0x0 -+int drawable abc_action_bar_item_background_material 0x0 -+int drawable abc_btn_borderless_material 0x0 -+int drawable abc_btn_check_material 0x0 -+int drawable abc_btn_check_material_anim 0x0 -+int drawable abc_btn_check_to_on_mtrl_000 0x0 -+int drawable abc_btn_check_to_on_mtrl_015 0x0 -+int drawable abc_btn_colored_material 0x0 -+int drawable abc_btn_default_mtrl_shape 0x0 -+int drawable abc_btn_radio_material 0x0 -+int drawable abc_btn_radio_material_anim 0x0 -+int drawable abc_btn_radio_to_on_mtrl_000 0x0 -+int drawable abc_btn_radio_to_on_mtrl_015 0x0 -+int drawable abc_btn_switch_to_on_mtrl_00001 0x0 -+int drawable abc_btn_switch_to_on_mtrl_00012 0x0 -+int drawable abc_cab_background_internal_bg 0x0 -+int drawable abc_cab_background_top_material 0x0 -+int drawable abc_cab_background_top_mtrl_alpha 0x0 -+int drawable abc_control_background_material 0x0 -+int drawable abc_dialog_material_background 0x0 -+int drawable abc_edit_text_material 0x0 -+int drawable abc_ic_ab_back_material 0x0 -+int drawable abc_ic_arrow_drop_right_black_24dp 0x0 -+int drawable abc_ic_clear_material 0x0 -+int drawable abc_ic_commit_search_api_mtrl_alpha 0x0 -+int drawable abc_ic_go_search_api_material 0x0 -+int drawable abc_ic_menu_copy_mtrl_am_alpha 0x0 -+int drawable abc_ic_menu_cut_mtrl_alpha 0x0 -+int drawable abc_ic_menu_overflow_material 0x0 -+int drawable abc_ic_menu_paste_mtrl_am_alpha 0x0 -+int drawable abc_ic_menu_selectall_mtrl_alpha 0x0 -+int drawable abc_ic_menu_share_mtrl_alpha 0x0 -+int drawable abc_ic_search_api_material 0x0 -+int drawable abc_ic_voice_search_api_material 0x0 -+int drawable abc_item_background_holo_dark 0x0 -+int drawable abc_item_background_holo_light 0x0 -+int drawable abc_list_divider_material 0x0 -+int drawable abc_list_divider_mtrl_alpha 0x0 -+int drawable abc_list_focused_holo 0x0 -+int drawable abc_list_longpressed_holo 0x0 -+int drawable abc_list_pressed_holo_dark 0x0 -+int drawable abc_list_pressed_holo_light 0x0 -+int drawable abc_list_selector_background_transition_holo_dark 0x0 -+int drawable abc_list_selector_background_transition_holo_light 0x0 -+int drawable abc_list_selector_disabled_holo_dark 0x0 -+int drawable abc_list_selector_disabled_holo_light 0x0 -+int drawable abc_list_selector_holo_dark 0x0 -+int drawable abc_list_selector_holo_light 0x0 -+int drawable abc_menu_hardkey_panel_mtrl_mult 0x0 -+int drawable abc_popup_background_mtrl_mult 0x0 -+int drawable abc_ratingbar_indicator_material 0x0 -+int drawable abc_ratingbar_material 0x0 -+int drawable abc_ratingbar_small_material 0x0 -+int drawable abc_scrubber_control_off_mtrl_alpha 0x0 -+int drawable abc_scrubber_control_to_pressed_mtrl_000 0x0 -+int drawable abc_scrubber_control_to_pressed_mtrl_005 0x0 -+int drawable abc_scrubber_primary_mtrl_alpha 0x0 -+int drawable abc_scrubber_track_mtrl_alpha 0x0 -+int drawable abc_seekbar_thumb_material 0x0 -+int drawable abc_seekbar_tick_mark_material 0x0 -+int drawable abc_seekbar_track_material 0x0 -+int drawable abc_spinner_mtrl_am_alpha 0x0 -+int drawable abc_spinner_textfield_background_material 0x0 -+int drawable abc_star_black_48dp 0x0 -+int drawable abc_star_half_black_48dp 0x0 -+int drawable abc_switch_thumb_material 0x0 -+int drawable abc_switch_track_mtrl_alpha 0x0 -+int drawable abc_tab_indicator_material 0x0 -+int drawable abc_tab_indicator_mtrl_alpha 0x0 -+int drawable abc_text_cursor_material 0x0 -+int drawable abc_text_select_handle_left_mtrl 0x0 -+int drawable abc_text_select_handle_middle_mtrl 0x0 -+int drawable abc_text_select_handle_right_mtrl 0x0 -+int drawable abc_textfield_activated_mtrl_alpha 0x0 -+int drawable abc_textfield_default_mtrl_alpha 0x0 -+int drawable abc_textfield_search_activated_mtrl_alpha 0x0 -+int drawable abc_textfield_search_default_mtrl_alpha 0x0 -+int drawable abc_textfield_search_material 0x0 -+int drawable abc_vector_test 0x0 -+int drawable autofill_inline_suggestion_chip_background 0x0 -+int drawable btn_checkbox_checked_mtrl 0x0 -+int drawable btn_checkbox_checked_to_unchecked_mtrl_animation 0x0 -+int drawable btn_checkbox_unchecked_mtrl 0x0 -+int drawable btn_checkbox_unchecked_to_checked_mtrl_animation 0x0 -+int drawable btn_radio_off_mtrl 0x0 -+int drawable btn_radio_off_to_on_mtrl_animation 0x0 -+int drawable btn_radio_on_mtrl 0x0 -+int drawable btn_radio_on_to_off_mtrl_animation 0x0 -+int drawable notification_action_background 0x0 -+int drawable notification_bg 0x0 -+int drawable notification_bg_low 0x0 -+int drawable notification_bg_low_normal 0x0 -+int drawable notification_bg_low_pressed 0x0 -+int drawable notification_bg_normal 0x0 -+int drawable notification_bg_normal_pressed 0x0 -+int drawable notification_icon_background 0x0 -+int drawable notification_template_icon_bg 0x0 -+int drawable notification_template_icon_low_bg 0x0 -+int drawable notification_tile_bg 0x0 -+int drawable notify_panel_notification_icon_bg 0x0 -+int drawable redbox_top_border_background 0x0 -+int drawable test_level_drawable 0x0 -+int drawable tooltip_frame_dark 0x0 -+int drawable tooltip_frame_light 0x0 -+int id accessibility_action_clickable_span 0x0 -+int id accessibility_actions 0x0 -+int id accessibility_collection 0x0 -+int id accessibility_collection_item 0x0 -+int id accessibility_custom_action_0 0x0 -+int id accessibility_custom_action_1 0x0 -+int id accessibility_custom_action_10 0x0 -+int id accessibility_custom_action_11 0x0 -+int id accessibility_custom_action_12 0x0 -+int id accessibility_custom_action_13 0x0 -+int id accessibility_custom_action_14 0x0 -+int id accessibility_custom_action_15 0x0 -+int id accessibility_custom_action_16 0x0 -+int id accessibility_custom_action_17 0x0 -+int id accessibility_custom_action_18 0x0 -+int id accessibility_custom_action_19 0x0 -+int id accessibility_custom_action_2 0x0 -+int id accessibility_custom_action_20 0x0 -+int id accessibility_custom_action_21 0x0 -+int id accessibility_custom_action_22 0x0 -+int id accessibility_custom_action_23 0x0 -+int id accessibility_custom_action_24 0x0 -+int id accessibility_custom_action_25 0x0 -+int id accessibility_custom_action_26 0x0 -+int id accessibility_custom_action_27 0x0 -+int id accessibility_custom_action_28 0x0 -+int id accessibility_custom_action_29 0x0 -+int id accessibility_custom_action_3 0x0 -+int id accessibility_custom_action_30 0x0 -+int id accessibility_custom_action_31 0x0 -+int id accessibility_custom_action_4 0x0 -+int id accessibility_custom_action_5 0x0 -+int id accessibility_custom_action_6 0x0 -+int id accessibility_custom_action_7 0x0 -+int id accessibility_custom_action_8 0x0 -+int id accessibility_custom_action_9 0x0 -+int id accessibility_hint 0x0 -+int id accessibility_label 0x0 -+int id accessibility_links 0x0 -+int id accessibility_role 0x0 -+int id accessibility_state 0x0 -+int id accessibility_value 0x0 -+int id action_bar 0x0 -+int id action_bar_activity_content 0x0 -+int id action_bar_container 0x0 -+int id action_bar_root 0x0 -+int id action_bar_spinner 0x0 -+int id action_bar_subtitle 0x0 -+int id action_bar_title 0x0 -+int id action_container 0x0 -+int id action_context_bar 0x0 -+int id action_divider 0x0 -+int id action_image 0x0 -+int id action_menu_divider 0x0 -+int id action_menu_presenter 0x0 -+int id action_mode_bar 0x0 -+int id action_mode_bar_stub 0x0 -+int id action_mode_close_button 0x0 -+int id action_text 0x0 -+int id actions 0x0 -+int id activity_chooser_view_content 0x0 -+int id add 0x0 -+int id alertTitle 0x0 -+int id async 0x0 -+int id autofill_inline_suggestion_end_icon 0x0 -+int id autofill_inline_suggestion_start_icon 0x0 -+int id autofill_inline_suggestion_subtitle 0x0 -+int id autofill_inline_suggestion_title 0x0 -+int id blocking 0x0 -+int id buttonPanel 0x0 -+int id catalyst_redbox_title 0x0 -+int id center 0x0 -+int id centerCrop 0x0 -+int id centerInside 0x0 -+int id checkbox 0x0 -+int id checked 0x0 -+int id chronometer 0x0 -+int id content 0x0 -+int id contentPanel 0x0 -+int id custom 0x0 -+int id customPanel 0x0 -+int id decor_content_parent 0x0 -+int id default_activity_button 0x0 -+int id dialog_button 0x0 -+int id edit_query 0x0 -+int id expand_activities_button 0x0 -+int id expanded_menu 0x0 -+int id fitBottomStart 0x0 -+int id fitCenter 0x0 -+int id fitEnd 0x0 -+int id fitStart 0x0 -+int id fitXY 0x0 -+int id focusCrop 0x0 -+int id forever 0x0 -+int id fps_text 0x0 -+int id fragment_container_view_tag 0x0 -+int id group_divider 0x0 -+int id home 0x0 -+int id icon 0x0 -+int id icon_group 0x0 -+int id image 0x0 -+int id info 0x0 -+int id italic 0x0 -+int id item1 0x0 -+int id item2 0x0 -+int id item3 0x0 -+int id item4 0x0 -+int id labelled_by 0x0 -+int id line1 0x0 -+int id line3 0x0 -+int id listMode 0x0 -+int id list_item 0x0 -+int id message 0x0 -+int id multiply 0x0 -+int id none 0x0 -+int id normal 0x0 -+int id notification_background 0x0 -+int id notification_main_column 0x0 -+int id notification_main_column_container 0x0 -+int id off 0x0 -+int id on 0x0 -+int id parentPanel 0x0 -+int id pointer_events 0x0 -+int id progress_circular 0x0 -+int id progress_horizontal 0x0 -+int id radio 0x0 -+int id react_test_id 0x0 -+int id right_icon 0x0 -+int id right_side 0x0 -+int id rn_frame_file 0x0 -+int id rn_frame_method 0x0 -+int id rn_redbox_dismiss_button 0x0 -+int id rn_redbox_line_separator 0x0 -+int id rn_redbox_loading_indicator 0x0 -+int id rn_redbox_reload_button 0x0 -+int id rn_redbox_report_button 0x0 -+int id rn_redbox_report_label 0x0 -+int id rn_redbox_stack 0x0 -+int id screen 0x0 -+int id scrollIndicatorDown 0x0 -+int id scrollIndicatorUp 0x0 -+int id scrollView 0x0 -+int id search_badge 0x0 -+int id search_bar 0x0 -+int id search_button 0x0 -+int id search_close_btn 0x0 -+int id search_edit_frame 0x0 -+int id search_go_btn 0x0 -+int id search_mag_icon 0x0 -+int id search_plate 0x0 -+int id search_src_text 0x0 -+int id search_voice_btn 0x0 -+int id select_dialog_listview 0x0 -+int id shortcut 0x0 -+int id spacer 0x0 -+int id special_effects_controller_view_tag 0x0 -+int id split_action_bar 0x0 -+int id src_atop 0x0 -+int id src_in 0x0 -+int id src_over 0x0 -+int id submenuarrow 0x0 -+int id submit_area 0x0 -+int id tabMode 0x0 -+int id tag_accessibility_actions 0x0 -+int id tag_accessibility_clickable_spans 0x0 -+int id tag_accessibility_heading 0x0 -+int id tag_accessibility_pane_title 0x0 -+int id tag_on_apply_window_listener 0x0 -+int id tag_on_receive_content_listener 0x0 -+int id tag_on_receive_content_mime_types 0x0 -+int id tag_screen_reader_focusable 0x0 -+int id tag_state_description 0x0 -+int id tag_transition_group 0x0 -+int id tag_unhandled_key_event_manager 0x0 -+int id tag_unhandled_key_listeners 0x0 -+int id tag_window_insets_animation_callback 0x0 -+int id text 0x0 -+int id text2 0x0 -+int id textSpacerNoButtons 0x0 -+int id textSpacerNoTitle 0x0 -+int id time 0x0 -+int id title 0x0 -+int id titleDividerNoCustom 0x0 -+int id title_template 0x0 -+int id topPanel 0x0 -+int id unchecked 0x0 -+int id uniform 0x0 -+int id up 0x0 -+int id view_tag_instance_handle 0x0 -+int id view_tag_native_id 0x0 -+int id view_tree_lifecycle_owner 0x0 -+int id view_tree_saved_state_registry_owner 0x0 -+int id view_tree_view_model_store_owner 0x0 -+int id visible_removing_fragment_view_tag 0x0 -+int id wrap_content 0x0 -+int integer abc_config_activityDefaultDur 0x0 -+int integer abc_config_activityShortDur 0x0 -+int integer cancel_button_image_alpha 0x0 -+int integer config_tooltipAnimTime 0x0 -+int integer react_native_dev_server_port 0x0 -+int integer react_native_inspector_proxy_port 0x0 -+int integer status_bar_notification_info_maxnum 0x0 -+int interpolator btn_checkbox_checked_mtrl_animation_interpolator_0 0x0 -+int interpolator btn_checkbox_checked_mtrl_animation_interpolator_1 0x0 -+int interpolator btn_checkbox_unchecked_mtrl_animation_interpolator_0 0x0 -+int interpolator btn_checkbox_unchecked_mtrl_animation_interpolator_1 0x0 -+int interpolator btn_radio_to_off_mtrl_animation_interpolator_0 0x0 -+int interpolator btn_radio_to_on_mtrl_animation_interpolator_0 0x0 -+int interpolator fast_out_slow_in 0x0 -+int layout abc_action_bar_title_item 0x0 -+int layout abc_action_bar_up_container 0x0 -+int layout abc_action_menu_item_layout 0x0 -+int layout abc_action_menu_layout 0x0 -+int layout abc_action_mode_bar 0x0 -+int layout abc_action_mode_close_item_material 0x0 -+int layout abc_activity_chooser_view 0x0 -+int layout abc_activity_chooser_view_list_item 0x0 -+int layout abc_alert_dialog_button_bar_material 0x0 -+int layout abc_alert_dialog_material 0x0 -+int layout abc_alert_dialog_title_material 0x0 -+int layout abc_cascading_menu_item_layout 0x0 -+int layout abc_dialog_title_material 0x0 -+int layout abc_expanded_menu_layout 0x0 -+int layout abc_list_menu_item_checkbox 0x0 -+int layout abc_list_menu_item_icon 0x0 -+int layout abc_list_menu_item_layout 0x0 -+int layout abc_list_menu_item_radio 0x0 -+int layout abc_popup_menu_header_item_layout 0x0 -+int layout abc_popup_menu_item_layout 0x0 -+int layout abc_screen_content_include 0x0 -+int layout abc_screen_simple 0x0 -+int layout abc_screen_simple_overlay_action_mode 0x0 -+int layout abc_screen_toolbar 0x0 -+int layout abc_search_dropdown_item_icons_2line 0x0 -+int layout abc_search_view 0x0 -+int layout abc_select_dialog_material 0x0 -+int layout abc_tooltip 0x0 -+int layout autofill_inline_suggestion 0x0 -+int layout custom_dialog 0x0 -+int layout dev_loading_view 0x0 -+int layout fps_view 0x0 -+int layout notification_action 0x0 -+int layout notification_action_tombstone 0x0 -+int layout notification_template_custom_big 0x0 -+int layout notification_template_icon_group 0x0 -+int layout notification_template_part_chronometer 0x0 -+int layout notification_template_part_time 0x0 -+int layout redbox_item_frame 0x0 -+int layout redbox_item_title 0x0 -+int layout redbox_view 0x0 -+int layout select_dialog_item_material 0x0 -+int layout select_dialog_multichoice_material 0x0 -+int layout select_dialog_singlechoice_material 0x0 -+int layout support_simple_spinner_dropdown_item 0x0 -+int menu example_menu 0x0 -+int menu example_menu2 0x0 -+int string abc_action_bar_home_description 0x0 -+int string abc_action_bar_up_description 0x0 -+int string abc_action_menu_overflow_description 0x0 -+int string abc_action_mode_done 0x0 -+int string abc_activity_chooser_view_see_all 0x0 -+int string abc_activitychooserview_choose_application 0x0 -+int string abc_capital_off 0x0 -+int string abc_capital_on 0x0 -+int string abc_menu_alt_shortcut_label 0x0 -+int string abc_menu_ctrl_shortcut_label 0x0 -+int string abc_menu_delete_shortcut_label 0x0 -+int string abc_menu_enter_shortcut_label 0x0 -+int string abc_menu_function_shortcut_label 0x0 -+int string abc_menu_meta_shortcut_label 0x0 -+int string abc_menu_shift_shortcut_label 0x0 -+int string abc_menu_space_shortcut_label 0x0 -+int string abc_menu_sym_shortcut_label 0x0 -+int string abc_prepend_shortcut_label 0x0 -+int string abc_search_hint 0x0 -+int string abc_searchview_description_clear 0x0 -+int string abc_searchview_description_query 0x0 -+int string abc_searchview_description_search 0x0 -+int string abc_searchview_description_submit 0x0 -+int string abc_searchview_description_voice 0x0 -+int string abc_shareactionprovider_share_with 0x0 -+int string abc_shareactionprovider_share_with_application 0x0 -+int string abc_toolbar_collapse_description 0x0 -+int string alert_description 0x0 -+int string catalyst_change_bundle_location 0x0 -+int string catalyst_copy_button 0x0 -+int string catalyst_debug 0x0 -+int string catalyst_debug_chrome 0x0 -+int string catalyst_debug_chrome_stop 0x0 -+int string catalyst_debug_connecting 0x0 -+int string catalyst_debug_error 0x0 -+int string catalyst_debug_open 0x0 -+int string catalyst_debug_stop 0x0 -+int string catalyst_devtools_open 0x0 -+int string catalyst_dismiss_button 0x0 -+int string catalyst_heap_capture 0x0 -+int string catalyst_hot_reloading 0x0 -+int string catalyst_hot_reloading_auto_disable 0x0 -+int string catalyst_hot_reloading_auto_enable 0x0 -+int string catalyst_hot_reloading_stop 0x0 -+int string catalyst_inspector 0x0 -+int string catalyst_inspector_stop 0x0 -+int string catalyst_loading_from_url 0x0 -+int string catalyst_open_flipper_error 0x0 -+int string catalyst_perf_monitor 0x0 -+int string catalyst_perf_monitor_stop 0x0 -+int string catalyst_reload 0x0 -+int string catalyst_reload_button 0x0 -+int string catalyst_reload_error 0x0 -+int string catalyst_report_button 0x0 -+int string catalyst_sample_profiler_disable 0x0 -+int string catalyst_sample_profiler_enable 0x0 -+int string catalyst_settings 0x0 -+int string catalyst_settings_title 0x0 -+int string combobox_description 0x0 -+int string header_description 0x0 -+int string image_description 0x0 -+int string imagebutton_description 0x0 -+int string link_description 0x0 -+int string menu_description 0x0 -+int string menubar_description 0x0 -+int string menuitem_description 0x0 -+int string progressbar_description 0x0 -+int string radiogroup_description 0x0 -+int string rn_tab_description 0x0 -+int string scrollbar_description 0x0 -+int string search_menu_title 0x0 -+int string spinbutton_description 0x0 -+int string state_busy_description 0x0 -+int string state_collapsed_description 0x0 -+int string state_expanded_description 0x0 -+int string state_mixed_description 0x0 -+int string state_off_description 0x0 -+int string state_on_description 0x0 -+int string state_unselected_description 0x0 -+int string status_bar_notification_info_overflow 0x0 -+int string summary_description 0x0 -+int string tablist_description 0x0 -+int string timer_description 0x0 -+int string toolbar_description 0x0 -+int style AlertDialog_AppCompat 0x0 -+int style AlertDialog_AppCompat_Light 0x0 -+int style Animation_AppCompat_Dialog 0x0 -+int style Animation_AppCompat_DropDownUp 0x0 -+int style Animation_AppCompat_Tooltip 0x0 -+int style Animation_Catalyst_LogBox 0x0 -+int style Animation_Catalyst_RedBox 0x0 -+int style Base_AlertDialog_AppCompat 0x0 -+int style Base_AlertDialog_AppCompat_Light 0x0 -+int style Base_Animation_AppCompat_Dialog 0x0 -+int style Base_Animation_AppCompat_DropDownUp 0x0 -+int style Base_Animation_AppCompat_Tooltip 0x0 -+int style Base_DialogWindowTitleBackground_AppCompat 0x0 -+int style Base_DialogWindowTitle_AppCompat 0x0 -+int style Base_TextAppearance_AppCompat 0x0 -+int style Base_TextAppearance_AppCompat_Body1 0x0 -+int style Base_TextAppearance_AppCompat_Body2 0x0 -+int style Base_TextAppearance_AppCompat_Button 0x0 -+int style Base_TextAppearance_AppCompat_Caption 0x0 -+int style Base_TextAppearance_AppCompat_Display1 0x0 -+int style Base_TextAppearance_AppCompat_Display2 0x0 -+int style Base_TextAppearance_AppCompat_Display3 0x0 -+int style Base_TextAppearance_AppCompat_Display4 0x0 -+int style Base_TextAppearance_AppCompat_Headline 0x0 -+int style Base_TextAppearance_AppCompat_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Large 0x0 -+int style Base_TextAppearance_AppCompat_Large_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x0 -+int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x0 -+int style Base_TextAppearance_AppCompat_Medium 0x0 -+int style Base_TextAppearance_AppCompat_Medium_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Menu 0x0 -+int style Base_TextAppearance_AppCompat_SearchResult 0x0 -+int style Base_TextAppearance_AppCompat_SearchResult_Subtitle 0x0 -+int style Base_TextAppearance_AppCompat_SearchResult_Title 0x0 -+int style Base_TextAppearance_AppCompat_Small 0x0 -+int style Base_TextAppearance_AppCompat_Small_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Subhead 0x0 -+int style Base_TextAppearance_AppCompat_Subhead_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Title 0x0 -+int style Base_TextAppearance_AppCompat_Title_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Tooltip 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Menu 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x0 -+int style Base_TextAppearance_AppCompat_Widget_ActionMode_Title 0x0 -+int style Base_TextAppearance_AppCompat_Widget_Button 0x0 -+int style Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored 0x0 -+int style Base_TextAppearance_AppCompat_Widget_Button_Colored 0x0 -+int style Base_TextAppearance_AppCompat_Widget_Button_Inverse 0x0 -+int style Base_TextAppearance_AppCompat_Widget_DropDownItem 0x0 -+int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Header 0x0 -+int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Large 0x0 -+int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Small 0x0 -+int style Base_TextAppearance_AppCompat_Widget_Switch 0x0 -+int style Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x0 -+int style Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x0 -+int style Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x0 -+int style Base_TextAppearance_Widget_AppCompat_Toolbar_Title 0x0 -+int style Base_ThemeOverlay_AppCompat 0x0 -+int style Base_ThemeOverlay_AppCompat_ActionBar 0x0 -+int style Base_ThemeOverlay_AppCompat_Dark 0x0 -+int style Base_ThemeOverlay_AppCompat_Dark_ActionBar 0x0 -+int style Base_ThemeOverlay_AppCompat_Dialog 0x0 -+int style Base_ThemeOverlay_AppCompat_Dialog_Alert 0x0 -+int style Base_ThemeOverlay_AppCompat_Light 0x0 -+int style Base_Theme_AppCompat 0x0 -+int style Base_Theme_AppCompat_CompactMenu 0x0 -+int style Base_Theme_AppCompat_Dialog 0x0 -+int style Base_Theme_AppCompat_DialogWhenLarge 0x0 -+int style Base_Theme_AppCompat_Dialog_Alert 0x0 -+int style Base_Theme_AppCompat_Dialog_FixedSize 0x0 -+int style Base_Theme_AppCompat_Dialog_MinWidth 0x0 -+int style Base_Theme_AppCompat_Light 0x0 -+int style Base_Theme_AppCompat_Light_DarkActionBar 0x0 -+int style Base_Theme_AppCompat_Light_Dialog 0x0 -+int style Base_Theme_AppCompat_Light_DialogWhenLarge 0x0 -+int style Base_Theme_AppCompat_Light_Dialog_Alert 0x0 -+int style Base_Theme_AppCompat_Light_Dialog_FixedSize 0x0 -+int style Base_Theme_AppCompat_Light_Dialog_MinWidth 0x0 -+int style Base_V21_ThemeOverlay_AppCompat_Dialog 0x0 -+int style Base_V21_Theme_AppCompat 0x0 -+int style Base_V21_Theme_AppCompat_Dialog 0x0 -+int style Base_V21_Theme_AppCompat_Light 0x0 -+int style Base_V21_Theme_AppCompat_Light_Dialog 0x0 -+int style Base_V22_Theme_AppCompat 0x0 -+int style Base_V22_Theme_AppCompat_Light 0x0 -+int style Base_V23_Theme_AppCompat 0x0 -+int style Base_V23_Theme_AppCompat_Light 0x0 -+int style Base_V26_Theme_AppCompat 0x0 -+int style Base_V26_Theme_AppCompat_Light 0x0 -+int style Base_V26_Widget_AppCompat_Toolbar 0x0 -+int style Base_V28_Theme_AppCompat 0x0 -+int style Base_V28_Theme_AppCompat_Light 0x0 -+int style Base_V7_ThemeOverlay_AppCompat_Dialog 0x0 -+int style Base_V7_Theme_AppCompat 0x0 -+int style Base_V7_Theme_AppCompat_Dialog 0x0 -+int style Base_V7_Theme_AppCompat_Light 0x0 -+int style Base_V7_Theme_AppCompat_Light_Dialog 0x0 -+int style Base_V7_Widget_AppCompat_AutoCompleteTextView 0x0 -+int style Base_V7_Widget_AppCompat_EditText 0x0 -+int style Base_V7_Widget_AppCompat_Toolbar 0x0 -+int style Base_Widget_AppCompat_ActionBar 0x0 -+int style Base_Widget_AppCompat_ActionBar_Solid 0x0 -+int style Base_Widget_AppCompat_ActionBar_TabBar 0x0 -+int style Base_Widget_AppCompat_ActionBar_TabText 0x0 -+int style Base_Widget_AppCompat_ActionBar_TabView 0x0 -+int style Base_Widget_AppCompat_ActionButton 0x0 -+int style Base_Widget_AppCompat_ActionButton_CloseMode 0x0 -+int style Base_Widget_AppCompat_ActionButton_Overflow 0x0 -+int style Base_Widget_AppCompat_ActionMode 0x0 -+int style Base_Widget_AppCompat_ActivityChooserView 0x0 -+int style Base_Widget_AppCompat_AutoCompleteTextView 0x0 -+int style Base_Widget_AppCompat_Button 0x0 -+int style Base_Widget_AppCompat_ButtonBar 0x0 -+int style Base_Widget_AppCompat_ButtonBar_AlertDialog 0x0 -+int style Base_Widget_AppCompat_Button_Borderless 0x0 -+int style Base_Widget_AppCompat_Button_Borderless_Colored 0x0 -+int style Base_Widget_AppCompat_Button_ButtonBar_AlertDialog 0x0 -+int style Base_Widget_AppCompat_Button_Colored 0x0 -+int style Base_Widget_AppCompat_Button_Small 0x0 -+int style Base_Widget_AppCompat_CompoundButton_CheckBox 0x0 -+int style Base_Widget_AppCompat_CompoundButton_RadioButton 0x0 -+int style Base_Widget_AppCompat_CompoundButton_Switch 0x0 -+int style Base_Widget_AppCompat_DrawerArrowToggle 0x0 -+int style Base_Widget_AppCompat_DrawerArrowToggle_Common 0x0 -+int style Base_Widget_AppCompat_DropDownItem_Spinner 0x0 -+int style Base_Widget_AppCompat_EditText 0x0 -+int style Base_Widget_AppCompat_ImageButton 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar_Solid 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar_TabBar 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar_TabText 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x0 -+int style Base_Widget_AppCompat_Light_ActionBar_TabView 0x0 -+int style Base_Widget_AppCompat_Light_PopupMenu 0x0 -+int style Base_Widget_AppCompat_Light_PopupMenu_Overflow 0x0 -+int style Base_Widget_AppCompat_ListMenuView 0x0 -+int style Base_Widget_AppCompat_ListPopupWindow 0x0 -+int style Base_Widget_AppCompat_ListView 0x0 -+int style Base_Widget_AppCompat_ListView_DropDown 0x0 -+int style Base_Widget_AppCompat_ListView_Menu 0x0 -+int style Base_Widget_AppCompat_PopupMenu 0x0 -+int style Base_Widget_AppCompat_PopupMenu_Overflow 0x0 -+int style Base_Widget_AppCompat_PopupWindow 0x0 -+int style Base_Widget_AppCompat_ProgressBar 0x0 -+int style Base_Widget_AppCompat_ProgressBar_Horizontal 0x0 -+int style Base_Widget_AppCompat_RatingBar 0x0 -+int style Base_Widget_AppCompat_RatingBar_Indicator 0x0 -+int style Base_Widget_AppCompat_RatingBar_Small 0x0 -+int style Base_Widget_AppCompat_SearchView 0x0 -+int style Base_Widget_AppCompat_SearchView_ActionBar 0x0 -+int style Base_Widget_AppCompat_SeekBar 0x0 -+int style Base_Widget_AppCompat_SeekBar_Discrete 0x0 -+int style Base_Widget_AppCompat_Spinner 0x0 -+int style Base_Widget_AppCompat_Spinner_Underlined 0x0 -+int style Base_Widget_AppCompat_TextView 0x0 -+int style Base_Widget_AppCompat_TextView_SpinnerItem 0x0 -+int style Base_Widget_AppCompat_Toolbar 0x0 -+int style Base_Widget_AppCompat_Toolbar_Button_Navigation 0x0 -+int style CalendarDatePickerDialog 0x0 -+int style CalendarDatePickerStyle 0x0 -+int style DialogAnimationFade 0x0 -+int style DialogAnimationSlide 0x0 -+int style Platform_AppCompat 0x0 -+int style Platform_AppCompat_Light 0x0 -+int style Platform_ThemeOverlay_AppCompat 0x0 -+int style Platform_ThemeOverlay_AppCompat_Dark 0x0 -+int style Platform_ThemeOverlay_AppCompat_Light 0x0 -+int style Platform_V21_AppCompat 0x0 -+int style Platform_V21_AppCompat_Light 0x0 -+int style Platform_V25_AppCompat 0x0 -+int style Platform_V25_AppCompat_Light 0x0 -+int style Platform_Widget_AppCompat_Spinner 0x0 -+int style RtlOverlay_DialogWindowTitle_AppCompat 0x0 -+int style RtlOverlay_Widget_AppCompat_ActionBar_TitleItem 0x0 -+int style RtlOverlay_Widget_AppCompat_DialogTitle_Icon 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Shortcut 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_SubmenuArrow 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Text 0x0 -+int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Title 0x0 -+int style RtlOverlay_Widget_AppCompat_SearchView_MagIcon 0x0 -+int style RtlOverlay_Widget_AppCompat_Search_DropDown 0x0 -+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 0x0 -+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 0x0 -+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Query 0x0 -+int style RtlOverlay_Widget_AppCompat_Search_DropDown_Text 0x0 -+int style RtlUnderlay_Widget_AppCompat_ActionButton 0x0 -+int style RtlUnderlay_Widget_AppCompat_ActionButton_Overflow 0x0 -+int style SpinnerDatePickerDialog 0x0 -+int style SpinnerDatePickerStyle 0x0 -+int style TextAppearance_AppCompat 0x0 -+int style TextAppearance_AppCompat_Body1 0x0 -+int style TextAppearance_AppCompat_Body2 0x0 -+int style TextAppearance_AppCompat_Button 0x0 -+int style TextAppearance_AppCompat_Caption 0x0 -+int style TextAppearance_AppCompat_Display1 0x0 -+int style TextAppearance_AppCompat_Display2 0x0 -+int style TextAppearance_AppCompat_Display3 0x0 -+int style TextAppearance_AppCompat_Display4 0x0 -+int style TextAppearance_AppCompat_Headline 0x0 -+int style TextAppearance_AppCompat_Inverse 0x0 -+int style TextAppearance_AppCompat_Large 0x0 -+int style TextAppearance_AppCompat_Large_Inverse 0x0 -+int style TextAppearance_AppCompat_Light_SearchResult_Subtitle 0x0 -+int style TextAppearance_AppCompat_Light_SearchResult_Title 0x0 -+int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x0 -+int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x0 -+int style TextAppearance_AppCompat_Medium 0x0 -+int style TextAppearance_AppCompat_Medium_Inverse 0x0 -+int style TextAppearance_AppCompat_Menu 0x0 -+int style TextAppearance_AppCompat_SearchResult_Subtitle 0x0 -+int style TextAppearance_AppCompat_SearchResult_Title 0x0 -+int style TextAppearance_AppCompat_Small 0x0 -+int style TextAppearance_AppCompat_Small_Inverse 0x0 -+int style TextAppearance_AppCompat_Subhead 0x0 -+int style TextAppearance_AppCompat_Subhead_Inverse 0x0 -+int style TextAppearance_AppCompat_Title 0x0 -+int style TextAppearance_AppCompat_Title_Inverse 0x0 -+int style TextAppearance_AppCompat_Tooltip 0x0 -+int style TextAppearance_AppCompat_Widget_ActionBar_Menu 0x0 -+int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x0 -+int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x0 -+int style TextAppearance_AppCompat_Widget_ActionBar_Title 0x0 -+int style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x0 -+int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x0 -+int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse 0x0 -+int style TextAppearance_AppCompat_Widget_ActionMode_Title 0x0 -+int style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse 0x0 -+int style TextAppearance_AppCompat_Widget_Button 0x0 -+int style TextAppearance_AppCompat_Widget_Button_Borderless_Colored 0x0 -+int style TextAppearance_AppCompat_Widget_Button_Colored 0x0 -+int style TextAppearance_AppCompat_Widget_Button_Inverse 0x0 -+int style TextAppearance_AppCompat_Widget_DropDownItem 0x0 -+int style TextAppearance_AppCompat_Widget_PopupMenu_Header 0x0 -+int style TextAppearance_AppCompat_Widget_PopupMenu_Large 0x0 -+int style TextAppearance_AppCompat_Widget_PopupMenu_Small 0x0 -+int style TextAppearance_AppCompat_Widget_Switch 0x0 -+int style TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x0 -+int style TextAppearance_Compat_Notification 0x0 -+int style TextAppearance_Compat_Notification_Info 0x0 -+int style TextAppearance_Compat_Notification_Line2 0x0 -+int style TextAppearance_Compat_Notification_Time 0x0 -+int style TextAppearance_Compat_Notification_Title 0x0 -+int style TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x0 -+int style TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x0 -+int style TextAppearance_Widget_AppCompat_Toolbar_Title 0x0 -+int style Theme 0x0 -+int style ThemeOverlay_AppCompat 0x0 -+int style ThemeOverlay_AppCompat_ActionBar 0x0 -+int style ThemeOverlay_AppCompat_Dark 0x0 -+int style ThemeOverlay_AppCompat_Dark_ActionBar 0x0 -+int style ThemeOverlay_AppCompat_DayNight 0x0 -+int style ThemeOverlay_AppCompat_DayNight_ActionBar 0x0 -+int style ThemeOverlay_AppCompat_Dialog 0x0 -+int style ThemeOverlay_AppCompat_Dialog_Alert 0x0 -+int style ThemeOverlay_AppCompat_Light 0x0 -+int style Theme_AppCompat 0x0 -+int style Theme_AppCompat_CompactMenu 0x0 -+int style Theme_AppCompat_DayNight 0x0 -+int style Theme_AppCompat_DayNight_DarkActionBar 0x0 -+int style Theme_AppCompat_DayNight_Dialog 0x0 -+int style Theme_AppCompat_DayNight_DialogWhenLarge 0x0 -+int style Theme_AppCompat_DayNight_Dialog_Alert 0x0 -+int style Theme_AppCompat_DayNight_Dialog_MinWidth 0x0 -+int style Theme_AppCompat_DayNight_NoActionBar 0x0 -+int style Theme_AppCompat_Dialog 0x0 -+int style Theme_AppCompat_DialogWhenLarge 0x0 -+int style Theme_AppCompat_Dialog_Alert 0x0 -+int style Theme_AppCompat_Dialog_MinWidth 0x0 -+int style Theme_AppCompat_Empty 0x0 -+int style Theme_AppCompat_Light 0x0 -+int style Theme_AppCompat_Light_DarkActionBar 0x0 -+int style Theme_AppCompat_Light_Dialog 0x0 -+int style Theme_AppCompat_Light_DialogWhenLarge 0x0 -+int style Theme_AppCompat_Light_Dialog_Alert 0x0 -+int style Theme_AppCompat_Light_Dialog_MinWidth 0x0 -+int style Theme_AppCompat_Light_NoActionBar 0x0 -+int style Theme_AppCompat_NoActionBar 0x0 -+int style Theme_AutofillInlineSuggestion 0x0 -+int style Theme_Catalyst 0x0 -+int style Theme_Catalyst_LogBox 0x0 -+int style Theme_Catalyst_RedBox 0x0 -+int style Theme_FullScreenDialog 0x0 -+int style Theme_FullScreenDialogAnimatedFade 0x0 -+int style Theme_FullScreenDialogAnimatedSlide 0x0 -+int style Theme_ReactNative_AppCompat_Light 0x0 -+int style Theme_ReactNative_AppCompat_Light_NoActionBar_FullScreen 0x0 -+int style Widget_AppCompat_ActionBar 0x0 -+int style Widget_AppCompat_ActionBar_Solid 0x0 -+int style Widget_AppCompat_ActionBar_TabBar 0x0 -+int style Widget_AppCompat_ActionBar_TabText 0x0 -+int style Widget_AppCompat_ActionBar_TabView 0x0 -+int style Widget_AppCompat_ActionButton 0x0 -+int style Widget_AppCompat_ActionButton_CloseMode 0x0 -+int style Widget_AppCompat_ActionButton_Overflow 0x0 -+int style Widget_AppCompat_ActionMode 0x0 -+int style Widget_AppCompat_ActivityChooserView 0x0 -+int style Widget_AppCompat_AutoCompleteTextView 0x0 -+int style Widget_AppCompat_Button 0x0 -+int style Widget_AppCompat_ButtonBar 0x0 -+int style Widget_AppCompat_ButtonBar_AlertDialog 0x0 -+int style Widget_AppCompat_Button_Borderless 0x0 -+int style Widget_AppCompat_Button_Borderless_Colored 0x0 -+int style Widget_AppCompat_Button_ButtonBar_AlertDialog 0x0 -+int style Widget_AppCompat_Button_Colored 0x0 -+int style Widget_AppCompat_Button_Small 0x0 -+int style Widget_AppCompat_CompoundButton_CheckBox 0x0 -+int style Widget_AppCompat_CompoundButton_RadioButton 0x0 -+int style Widget_AppCompat_CompoundButton_Switch 0x0 -+int style Widget_AppCompat_DrawerArrowToggle 0x0 -+int style Widget_AppCompat_DropDownItem_Spinner 0x0 -+int style Widget_AppCompat_EditText 0x0 -+int style Widget_AppCompat_ImageButton 0x0 -+int style Widget_AppCompat_Light_ActionBar 0x0 -+int style Widget_AppCompat_Light_ActionBar_Solid 0x0 -+int style Widget_AppCompat_Light_ActionBar_Solid_Inverse 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabBar 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabBar_Inverse 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabText 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabView 0x0 -+int style Widget_AppCompat_Light_ActionBar_TabView_Inverse 0x0 -+int style Widget_AppCompat_Light_ActionButton 0x0 -+int style Widget_AppCompat_Light_ActionButton_CloseMode 0x0 -+int style Widget_AppCompat_Light_ActionButton_Overflow 0x0 -+int style Widget_AppCompat_Light_ActionMode_Inverse 0x0 -+int style Widget_AppCompat_Light_ActivityChooserView 0x0 -+int style Widget_AppCompat_Light_AutoCompleteTextView 0x0 -+int style Widget_AppCompat_Light_DropDownItem_Spinner 0x0 -+int style Widget_AppCompat_Light_ListPopupWindow 0x0 -+int style Widget_AppCompat_Light_ListView_DropDown 0x0 -+int style Widget_AppCompat_Light_PopupMenu 0x0 -+int style Widget_AppCompat_Light_PopupMenu_Overflow 0x0 -+int style Widget_AppCompat_Light_SearchView 0x0 -+int style Widget_AppCompat_Light_Spinner_DropDown_ActionBar 0x0 -+int style Widget_AppCompat_ListMenuView 0x0 -+int style Widget_AppCompat_ListPopupWindow 0x0 -+int style Widget_AppCompat_ListView 0x0 -+int style Widget_AppCompat_ListView_DropDown 0x0 -+int style Widget_AppCompat_ListView_Menu 0x0 -+int style Widget_AppCompat_PopupMenu 0x0 -+int style Widget_AppCompat_PopupMenu_Overflow 0x0 -+int style Widget_AppCompat_PopupWindow 0x0 -+int style Widget_AppCompat_ProgressBar 0x0 -+int style Widget_AppCompat_ProgressBar_Horizontal 0x0 -+int style Widget_AppCompat_RatingBar 0x0 -+int style Widget_AppCompat_RatingBar_Indicator 0x0 -+int style Widget_AppCompat_RatingBar_Small 0x0 -+int style Widget_AppCompat_SearchView 0x0 -+int style Widget_AppCompat_SearchView_ActionBar 0x0 -+int style Widget_AppCompat_SeekBar 0x0 -+int style Widget_AppCompat_SeekBar_Discrete 0x0 -+int style Widget_AppCompat_Spinner 0x0 -+int style Widget_AppCompat_Spinner_DropDown 0x0 -+int style Widget_AppCompat_Spinner_DropDown_ActionBar 0x0 -+int style Widget_AppCompat_Spinner_Underlined 0x0 -+int style Widget_AppCompat_TextView 0x0 -+int style Widget_AppCompat_TextView_SpinnerItem 0x0 -+int style Widget_AppCompat_Toolbar 0x0 -+int style Widget_AppCompat_Toolbar_Button_Navigation 0x0 -+int style Widget_Autofill 0x0 -+int style Widget_Autofill_InlineSuggestionChip 0x0 -+int style Widget_Autofill_InlineSuggestionEndIconStyle 0x0 -+int style Widget_Autofill_InlineSuggestionStartIconStyle 0x0 -+int style Widget_Autofill_InlineSuggestionSubtitle 0x0 -+int style Widget_Autofill_InlineSuggestionTitle 0x0 -+int style Widget_Compat_NotificationActionContainer 0x0 -+int style Widget_Compat_NotificationActionText 0x0 -+int style redboxButton 0x0 -+int[] styleable ActionBar { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable ActionBar_background 0 -+int styleable ActionBar_backgroundSplit 1 -+int styleable ActionBar_backgroundStacked 2 -+int styleable ActionBar_contentInsetEnd 3 -+int styleable ActionBar_contentInsetEndWithActions 4 -+int styleable ActionBar_contentInsetLeft 5 -+int styleable ActionBar_contentInsetRight 6 -+int styleable ActionBar_contentInsetStart 7 -+int styleable ActionBar_contentInsetStartWithNavigation 8 -+int styleable ActionBar_customNavigationLayout 9 -+int styleable ActionBar_displayOptions 10 -+int styleable ActionBar_divider 11 -+int styleable ActionBar_elevation 12 -+int styleable ActionBar_height 13 -+int styleable ActionBar_hideOnContentScroll 14 -+int styleable ActionBar_homeAsUpIndicator 15 -+int styleable ActionBar_homeLayout 16 -+int styleable ActionBar_icon 17 -+int styleable ActionBar_indeterminateProgressStyle 18 -+int styleable ActionBar_itemPadding 19 -+int styleable ActionBar_logo 20 -+int styleable ActionBar_navigationMode 21 -+int styleable ActionBar_popupTheme 22 -+int styleable ActionBar_progressBarPadding 23 -+int styleable ActionBar_progressBarStyle 24 -+int styleable ActionBar_subtitle 25 -+int styleable ActionBar_subtitleTextStyle 26 -+int styleable ActionBar_title 27 -+int styleable ActionBar_titleTextStyle 28 -+int[] styleable ActionBarLayout { 0x10100b3 } -+int styleable ActionBarLayout_android_layout_gravity 0 -+int[] styleable ActionMenuItemView { 0x101013f } -+int styleable ActionMenuItemView_android_minWidth 0 -+int[] styleable ActionMenuView { } -+int[] styleable ActionMode { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable ActionMode_background 0 -+int styleable ActionMode_backgroundSplit 1 -+int styleable ActionMode_closeItemLayout 2 -+int styleable ActionMode_height 3 -+int styleable ActionMode_subtitleTextStyle 4 -+int styleable ActionMode_titleTextStyle 5 -+int[] styleable ActivityChooserView { 0x0, 0x0 } -+int styleable ActivityChooserView_expandActivityOverflowButtonDrawable 0 -+int styleable ActivityChooserView_initialActivityCount 1 -+int[] styleable AlertDialog { 0x10100f2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable AlertDialog_android_layout 0 -+int styleable AlertDialog_buttonIconDimen 1 -+int styleable AlertDialog_buttonPanelSideLayout 2 -+int styleable AlertDialog_listItemLayout 3 -+int styleable AlertDialog_listLayout 4 -+int styleable AlertDialog_multiChoiceItemLayout 5 -+int styleable AlertDialog_showTitle 6 -+int styleable AlertDialog_singleChoiceItemLayout 7 -+int[] styleable AnimatedStateListDrawableCompat { 0x1010196, 0x101011c, 0x101030c, 0x101030d, 0x1010195, 0x1010194 } -+int styleable AnimatedStateListDrawableCompat_android_constantSize 0 -+int styleable AnimatedStateListDrawableCompat_android_dither 1 -+int styleable AnimatedStateListDrawableCompat_android_enterFadeDuration 2 -+int styleable AnimatedStateListDrawableCompat_android_exitFadeDuration 3 -+int styleable AnimatedStateListDrawableCompat_android_variablePadding 4 -+int styleable AnimatedStateListDrawableCompat_android_visible 5 -+int[] styleable AnimatedStateListDrawableItem { 0x1010199, 0x10100d0 } -+int styleable AnimatedStateListDrawableItem_android_drawable 0 -+int styleable AnimatedStateListDrawableItem_android_id 1 -+int[] styleable AnimatedStateListDrawableTransition { 0x1010199, 0x101044a, 0x101044b, 0x1010449 } -+int styleable AnimatedStateListDrawableTransition_android_drawable 0 -+int styleable AnimatedStateListDrawableTransition_android_fromId 1 -+int styleable AnimatedStateListDrawableTransition_android_reversible 2 -+int styleable AnimatedStateListDrawableTransition_android_toId 3 -+int[] styleable AppCompatEmojiHelper { } -+int[] styleable AppCompatImageView { 0x1010119, 0x0, 0x0, 0x0 } -+int styleable AppCompatImageView_android_src 0 -+int styleable AppCompatImageView_srcCompat 1 -+int styleable AppCompatImageView_tint 2 -+int styleable AppCompatImageView_tintMode 3 -+int[] styleable AppCompatSeekBar { 0x1010142, 0x0, 0x0, 0x0 } -+int styleable AppCompatSeekBar_android_thumb 0 -+int styleable AppCompatSeekBar_tickMark 1 -+int styleable AppCompatSeekBar_tickMarkTint 2 -+int styleable AppCompatSeekBar_tickMarkTintMode 3 -+int[] styleable AppCompatTextHelper { 0x101016e, 0x1010393, 0x101016f, 0x1010170, 0x1010392, 0x101016d, 0x1010034 } -+int styleable AppCompatTextHelper_android_drawableBottom 0 -+int styleable AppCompatTextHelper_android_drawableEnd 1 -+int styleable AppCompatTextHelper_android_drawableLeft 2 -+int styleable AppCompatTextHelper_android_drawableRight 3 -+int styleable AppCompatTextHelper_android_drawableStart 4 -+int styleable AppCompatTextHelper_android_drawableTop 5 -+int styleable AppCompatTextHelper_android_textAppearance 6 -+int[] styleable AppCompatTextView { 0x1010034, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable AppCompatTextView_android_textAppearance 0 -+int styleable AppCompatTextView_autoSizeMaxTextSize 1 -+int styleable AppCompatTextView_autoSizeMinTextSize 2 -+int styleable AppCompatTextView_autoSizePresetSizes 3 -+int styleable AppCompatTextView_autoSizeStepGranularity 4 -+int styleable AppCompatTextView_autoSizeTextType 5 -+int styleable AppCompatTextView_drawableBottomCompat 6 -+int styleable AppCompatTextView_drawableEndCompat 7 -+int styleable AppCompatTextView_drawableLeftCompat 8 -+int styleable AppCompatTextView_drawableRightCompat 9 -+int styleable AppCompatTextView_drawableStartCompat 10 -+int styleable AppCompatTextView_drawableTint 11 -+int styleable AppCompatTextView_drawableTintMode 12 -+int styleable AppCompatTextView_drawableTopCompat 13 -+int styleable AppCompatTextView_emojiCompatEnabled 14 -+int styleable AppCompatTextView_firstBaselineToTopHeight 15 -+int styleable AppCompatTextView_fontFamily 16 -+int styleable AppCompatTextView_fontVariationSettings 17 -+int styleable AppCompatTextView_lastBaselineToBottomHeight 18 -+int styleable AppCompatTextView_lineHeight 19 -+int styleable AppCompatTextView_textAllCaps 20 -+int styleable AppCompatTextView_textLocale 21 -+int[] styleable AppCompatTheme { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10100ae, 0x1010057, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable AppCompatTheme_actionBarDivider 0 -+int styleable AppCompatTheme_actionBarItemBackground 1 -+int styleable AppCompatTheme_actionBarPopupTheme 2 -+int styleable AppCompatTheme_actionBarSize 3 -+int styleable AppCompatTheme_actionBarSplitStyle 4 -+int styleable AppCompatTheme_actionBarStyle 5 -+int styleable AppCompatTheme_actionBarTabBarStyle 6 -+int styleable AppCompatTheme_actionBarTabStyle 7 -+int styleable AppCompatTheme_actionBarTabTextStyle 8 -+int styleable AppCompatTheme_actionBarTheme 9 -+int styleable AppCompatTheme_actionBarWidgetTheme 10 -+int styleable AppCompatTheme_actionButtonStyle 11 -+int styleable AppCompatTheme_actionDropDownStyle 12 -+int styleable AppCompatTheme_actionMenuTextAppearance 13 -+int styleable AppCompatTheme_actionMenuTextColor 14 -+int styleable AppCompatTheme_actionModeBackground 15 -+int styleable AppCompatTheme_actionModeCloseButtonStyle 16 -+int styleable AppCompatTheme_actionModeCloseContentDescription 17 -+int styleable AppCompatTheme_actionModeCloseDrawable 18 -+int styleable AppCompatTheme_actionModeCopyDrawable 19 -+int styleable AppCompatTheme_actionModeCutDrawable 20 -+int styleable AppCompatTheme_actionModeFindDrawable 21 -+int styleable AppCompatTheme_actionModePasteDrawable 22 -+int styleable AppCompatTheme_actionModePopupWindowStyle 23 -+int styleable AppCompatTheme_actionModeSelectAllDrawable 24 -+int styleable AppCompatTheme_actionModeShareDrawable 25 -+int styleable AppCompatTheme_actionModeSplitBackground 26 -+int styleable AppCompatTheme_actionModeStyle 27 -+int styleable AppCompatTheme_actionModeTheme 28 -+int styleable AppCompatTheme_actionModeWebSearchDrawable 29 -+int styleable AppCompatTheme_actionOverflowButtonStyle 30 -+int styleable AppCompatTheme_actionOverflowMenuStyle 31 -+int styleable AppCompatTheme_activityChooserViewStyle 32 -+int styleable AppCompatTheme_alertDialogButtonGroupStyle 33 -+int styleable AppCompatTheme_alertDialogCenterButtons 34 -+int styleable AppCompatTheme_alertDialogStyle 35 -+int styleable AppCompatTheme_alertDialogTheme 36 -+int styleable AppCompatTheme_android_windowAnimationStyle 37 -+int styleable AppCompatTheme_android_windowIsFloating 38 -+int styleable AppCompatTheme_autoCompleteTextViewStyle 39 -+int styleable AppCompatTheme_borderlessButtonStyle 40 -+int styleable AppCompatTheme_buttonBarButtonStyle 41 -+int styleable AppCompatTheme_buttonBarNegativeButtonStyle 42 -+int styleable AppCompatTheme_buttonBarNeutralButtonStyle 43 -+int styleable AppCompatTheme_buttonBarPositiveButtonStyle 44 -+int styleable AppCompatTheme_buttonBarStyle 45 -+int styleable AppCompatTheme_buttonStyle 46 -+int styleable AppCompatTheme_buttonStyleSmall 47 -+int styleable AppCompatTheme_checkboxStyle 48 -+int styleable AppCompatTheme_checkedTextViewStyle 49 -+int styleable AppCompatTheme_colorAccent 50 -+int styleable AppCompatTheme_colorBackgroundFloating 51 -+int styleable AppCompatTheme_colorButtonNormal 52 -+int styleable AppCompatTheme_colorControlActivated 53 -+int styleable AppCompatTheme_colorControlHighlight 54 -+int styleable AppCompatTheme_colorControlNormal 55 -+int styleable AppCompatTheme_colorError 56 -+int styleable AppCompatTheme_colorPrimary 57 -+int styleable AppCompatTheme_colorPrimaryDark 58 -+int styleable AppCompatTheme_colorSwitchThumbNormal 59 -+int styleable AppCompatTheme_controlBackground 60 -+int styleable AppCompatTheme_dialogCornerRadius 61 -+int styleable AppCompatTheme_dialogPreferredPadding 62 -+int styleable AppCompatTheme_dialogTheme 63 -+int styleable AppCompatTheme_dividerHorizontal 64 -+int styleable AppCompatTheme_dividerVertical 65 -+int styleable AppCompatTheme_dropDownListViewStyle 66 -+int styleable AppCompatTheme_dropdownListPreferredItemHeight 67 -+int styleable AppCompatTheme_editTextBackground 68 -+int styleable AppCompatTheme_editTextColor 69 -+int styleable AppCompatTheme_editTextStyle 70 -+int styleable AppCompatTheme_homeAsUpIndicator 71 -+int styleable AppCompatTheme_imageButtonStyle 72 -+int styleable AppCompatTheme_listChoiceBackgroundIndicator 73 -+int styleable AppCompatTheme_listChoiceIndicatorMultipleAnimated 74 -+int styleable AppCompatTheme_listChoiceIndicatorSingleAnimated 75 -+int styleable AppCompatTheme_listDividerAlertDialog 76 -+int styleable AppCompatTheme_listMenuViewStyle 77 -+int styleable AppCompatTheme_listPopupWindowStyle 78 -+int styleable AppCompatTheme_listPreferredItemHeight 79 -+int styleable AppCompatTheme_listPreferredItemHeightLarge 80 -+int styleable AppCompatTheme_listPreferredItemHeightSmall 81 -+int styleable AppCompatTheme_listPreferredItemPaddingEnd 82 -+int styleable AppCompatTheme_listPreferredItemPaddingLeft 83 -+int styleable AppCompatTheme_listPreferredItemPaddingRight 84 -+int styleable AppCompatTheme_listPreferredItemPaddingStart 85 -+int styleable AppCompatTheme_panelBackground 86 -+int styleable AppCompatTheme_panelMenuListTheme 87 -+int styleable AppCompatTheme_panelMenuListWidth 88 -+int styleable AppCompatTheme_popupMenuStyle 89 -+int styleable AppCompatTheme_popupWindowStyle 90 -+int styleable AppCompatTheme_radioButtonStyle 91 -+int styleable AppCompatTheme_ratingBarStyle 92 -+int styleable AppCompatTheme_ratingBarStyleIndicator 93 -+int styleable AppCompatTheme_ratingBarStyleSmall 94 -+int styleable AppCompatTheme_searchViewStyle 95 -+int styleable AppCompatTheme_seekBarStyle 96 -+int styleable AppCompatTheme_selectableItemBackground 97 -+int styleable AppCompatTheme_selectableItemBackgroundBorderless 98 -+int styleable AppCompatTheme_spinnerDropDownItemStyle 99 -+int styleable AppCompatTheme_spinnerStyle 100 -+int styleable AppCompatTheme_switchStyle 101 -+int styleable AppCompatTheme_textAppearanceLargePopupMenu 102 -+int styleable AppCompatTheme_textAppearanceListItem 103 -+int styleable AppCompatTheme_textAppearanceListItemSecondary 104 -+int styleable AppCompatTheme_textAppearanceListItemSmall 105 -+int styleable AppCompatTheme_textAppearancePopupMenuHeader 106 -+int styleable AppCompatTheme_textAppearanceSearchResultSubtitle 107 -+int styleable AppCompatTheme_textAppearanceSearchResultTitle 108 -+int styleable AppCompatTheme_textAppearanceSmallPopupMenu 109 -+int styleable AppCompatTheme_textColorAlertDialogListItem 110 -+int styleable AppCompatTheme_textColorSearchUrl 111 -+int styleable AppCompatTheme_toolbarNavigationButtonStyle 112 -+int styleable AppCompatTheme_toolbarStyle 113 -+int styleable AppCompatTheme_tooltipForegroundColor 114 -+int styleable AppCompatTheme_tooltipFrameBackground 115 -+int styleable AppCompatTheme_viewInflaterClass 116 -+int styleable AppCompatTheme_windowActionBar 117 -+int styleable AppCompatTheme_windowActionBarOverlay 118 -+int styleable AppCompatTheme_windowActionModeOverlay 119 -+int styleable AppCompatTheme_windowFixedHeightMajor 120 -+int styleable AppCompatTheme_windowFixedHeightMinor 121 -+int styleable AppCompatTheme_windowFixedWidthMajor 122 -+int styleable AppCompatTheme_windowFixedWidthMinor 123 -+int styleable AppCompatTheme_windowMinWidthMajor 124 -+int styleable AppCompatTheme_windowMinWidthMinor 125 -+int styleable AppCompatTheme_windowNoTitle 126 -+int[] styleable Autofill_InlineSuggestion { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable Autofill_InlineSuggestion_autofillInlineSuggestionChip 0 -+int styleable Autofill_InlineSuggestion_autofillInlineSuggestionEndIconStyle 1 -+int styleable Autofill_InlineSuggestion_autofillInlineSuggestionStartIconStyle 2 -+int styleable Autofill_InlineSuggestion_autofillInlineSuggestionSubtitle 3 -+int styleable Autofill_InlineSuggestion_autofillInlineSuggestionTitle 4 -+int styleable Autofill_InlineSuggestion_isAutofillInlineSuggestionTheme 5 -+int[] styleable ButtonBarLayout { 0x0 } -+int styleable ButtonBarLayout_allowStacking 0 -+int[] styleable Capability { 0x0, 0x0 } -+int styleable Capability_queryPatterns 0 -+int styleable Capability_shortcutMatchRequired 1 -+int[] styleable CheckedTextView { 0x1010108, 0x0, 0x0, 0x0 } -+int styleable CheckedTextView_android_checkMark 0 -+int styleable CheckedTextView_checkMarkCompat 1 -+int styleable CheckedTextView_checkMarkTint 2 -+int styleable CheckedTextView_checkMarkTintMode 3 -+int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5, 0x1010647, 0x0 } -+int styleable ColorStateListItem_alpha 0 -+int styleable ColorStateListItem_android_alpha 1 -+int styleable ColorStateListItem_android_color 2 -+int styleable ColorStateListItem_android_lStar 3 -+int styleable ColorStateListItem_lStar 4 -+int[] styleable CompoundButton { 0x1010107, 0x0, 0x0, 0x0 } -+int styleable CompoundButton_android_button 0 -+int styleable CompoundButton_buttonCompat 1 -+int styleable CompoundButton_buttonTint 2 -+int styleable CompoundButton_buttonTintMode 3 -+int[] styleable DrawerArrowToggle { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable DrawerArrowToggle_arrowHeadLength 0 -+int styleable DrawerArrowToggle_arrowShaftLength 1 -+int styleable DrawerArrowToggle_barLength 2 -+int styleable DrawerArrowToggle_color 3 -+int styleable DrawerArrowToggle_drawableSize 4 -+int styleable DrawerArrowToggle_gapBetweenBars 5 -+int styleable DrawerArrowToggle_spinBars 6 -+int styleable DrawerArrowToggle_thickness 7 -+int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable FontFamily_fontProviderAuthority 0 -+int styleable FontFamily_fontProviderCerts 1 -+int styleable FontFamily_fontProviderFetchStrategy 2 -+int styleable FontFamily_fontProviderFetchTimeout 3 -+int styleable FontFamily_fontProviderPackage 4 -+int styleable FontFamily_fontProviderQuery 5 -+int styleable FontFamily_fontProviderSystemFontFamily 6 -+int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable FontFamilyFont_android_font 0 -+int styleable FontFamilyFont_android_fontStyle 1 -+int styleable FontFamilyFont_android_fontVariationSettings 2 -+int styleable FontFamilyFont_android_fontWeight 3 -+int styleable FontFamilyFont_android_ttcIndex 4 -+int styleable FontFamilyFont_font 5 -+int styleable FontFamilyFont_fontStyle 6 -+int styleable FontFamilyFont_fontVariationSettings 7 -+int styleable FontFamilyFont_fontWeight 8 -+int styleable FontFamilyFont_ttcIndex 9 -+int[] styleable Fragment { 0x10100d0, 0x1010003, 0x10100d1 } -+int styleable Fragment_android_id 0 -+int styleable Fragment_android_name 1 -+int styleable Fragment_android_tag 2 -+int[] styleable FragmentContainerView { 0x1010003, 0x10100d1 } -+int styleable FragmentContainerView_android_name 0 -+int styleable FragmentContainerView_android_tag 1 -+int[] styleable GenericDraweeHierarchy { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable GenericDraweeHierarchy_actualImageScaleType 0 -+int styleable GenericDraweeHierarchy_backgroundImage 1 -+int styleable GenericDraweeHierarchy_fadeDuration 2 -+int styleable GenericDraweeHierarchy_failureImage 3 -+int styleable GenericDraweeHierarchy_failureImageScaleType 4 -+int styleable GenericDraweeHierarchy_overlayImage 5 -+int styleable GenericDraweeHierarchy_placeholderImage 6 -+int styleable GenericDraweeHierarchy_placeholderImageScaleType 7 -+int styleable GenericDraweeHierarchy_pressedStateOverlayImage 8 -+int styleable GenericDraweeHierarchy_progressBarAutoRotateInterval 9 -+int styleable GenericDraweeHierarchy_progressBarImage 10 -+int styleable GenericDraweeHierarchy_progressBarImageScaleType 11 -+int styleable GenericDraweeHierarchy_retryImage 12 -+int styleable GenericDraweeHierarchy_retryImageScaleType 13 -+int styleable GenericDraweeHierarchy_roundAsCircle 14 -+int styleable GenericDraweeHierarchy_roundBottomEnd 15 -+int styleable GenericDraweeHierarchy_roundBottomLeft 16 -+int styleable GenericDraweeHierarchy_roundBottomRight 17 -+int styleable GenericDraweeHierarchy_roundBottomStart 18 -+int styleable GenericDraweeHierarchy_roundTopEnd 19 -+int styleable GenericDraweeHierarchy_roundTopLeft 20 -+int styleable GenericDraweeHierarchy_roundTopRight 21 -+int styleable GenericDraweeHierarchy_roundTopStart 22 -+int styleable GenericDraweeHierarchy_roundWithOverlayColor 23 -+int styleable GenericDraweeHierarchy_roundedCornerRadius 24 -+int styleable GenericDraweeHierarchy_roundingBorderColor 25 -+int styleable GenericDraweeHierarchy_roundingBorderPadding 26 -+int styleable GenericDraweeHierarchy_roundingBorderWidth 27 -+int styleable GenericDraweeHierarchy_viewAspectRatio 28 -+int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 } -+int styleable GradientColor_android_centerColor 0 -+int styleable GradientColor_android_centerX 1 -+int styleable GradientColor_android_centerY 2 -+int styleable GradientColor_android_endColor 3 -+int styleable GradientColor_android_endX 4 -+int styleable GradientColor_android_endY 5 -+int styleable GradientColor_android_gradientRadius 6 -+int styleable GradientColor_android_startColor 7 -+int styleable GradientColor_android_startX 8 -+int styleable GradientColor_android_startY 9 -+int styleable GradientColor_android_tileMode 10 -+int styleable GradientColor_android_type 11 -+int[] styleable GradientColorItem { 0x10101a5, 0x1010514 } -+int styleable GradientColorItem_android_color 0 -+int styleable GradientColorItem_android_offset 1 -+int[] styleable LinearLayoutCompat { 0x1010126, 0x1010127, 0x10100af, 0x10100c4, 0x1010128, 0x0, 0x0, 0x0, 0x0 } -+int styleable LinearLayoutCompat_android_baselineAligned 0 -+int styleable LinearLayoutCompat_android_baselineAlignedChildIndex 1 -+int styleable LinearLayoutCompat_android_gravity 2 -+int styleable LinearLayoutCompat_android_orientation 3 -+int styleable LinearLayoutCompat_android_weightSum 4 -+int styleable LinearLayoutCompat_divider 5 -+int styleable LinearLayoutCompat_dividerPadding 6 -+int styleable LinearLayoutCompat_measureWithLargestChild 7 -+int styleable LinearLayoutCompat_showDividers 8 -+int[] styleable LinearLayoutCompat_Layout { 0x10100b3, 0x10100f5, 0x1010181, 0x10100f4 } -+int styleable LinearLayoutCompat_Layout_android_layout_gravity 0 -+int styleable LinearLayoutCompat_Layout_android_layout_height 1 -+int styleable LinearLayoutCompat_Layout_android_layout_weight 2 -+int styleable LinearLayoutCompat_Layout_android_layout_width 3 -+int[] styleable ListPopupWindow { 0x10102ac, 0x10102ad } -+int styleable ListPopupWindow_android_dropDownHorizontalOffset 0 -+int styleable ListPopupWindow_android_dropDownVerticalOffset 1 -+int[] styleable MenuGroup { 0x10101e0, 0x101000e, 0x10100d0, 0x10101de, 0x10101df, 0x1010194 } -+int styleable MenuGroup_android_checkableBehavior 0 -+int styleable MenuGroup_android_enabled 1 -+int styleable MenuGroup_android_id 2 -+int styleable MenuGroup_android_menuCategory 3 -+int styleable MenuGroup_android_orderInCategory 4 -+int styleable MenuGroup_android_visible 5 -+int[] styleable MenuItem { 0x0, 0x0, 0x0, 0x0, 0x10101e3, 0x10101e5, 0x1010106, 0x101000e, 0x1010002, 0x10100d0, 0x10101de, 0x10101e4, 0x101026f, 0x10101df, 0x10101e1, 0x10101e2, 0x1010194, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable MenuItem_actionLayout 0 -+int styleable MenuItem_actionProviderClass 1 -+int styleable MenuItem_actionViewClass 2 -+int styleable MenuItem_alphabeticModifiers 3 -+int styleable MenuItem_android_alphabeticShortcut 4 -+int styleable MenuItem_android_checkable 5 -+int styleable MenuItem_android_checked 6 -+int styleable MenuItem_android_enabled 7 -+int styleable MenuItem_android_icon 8 -+int styleable MenuItem_android_id 9 -+int styleable MenuItem_android_menuCategory 10 -+int styleable MenuItem_android_numericShortcut 11 -+int styleable MenuItem_android_onClick 12 -+int styleable MenuItem_android_orderInCategory 13 -+int styleable MenuItem_android_title 14 -+int styleable MenuItem_android_titleCondensed 15 -+int styleable MenuItem_android_visible 16 -+int styleable MenuItem_contentDescription 17 -+int styleable MenuItem_iconTint 18 -+int styleable MenuItem_iconTintMode 19 -+int styleable MenuItem_numericModifiers 20 -+int styleable MenuItem_showAsAction 21 -+int styleable MenuItem_tooltipText 22 -+int[] styleable MenuView { 0x101012f, 0x101012d, 0x1010130, 0x1010131, 0x101012c, 0x101012e, 0x10100ae, 0x0, 0x0 } -+int styleable MenuView_android_headerBackground 0 -+int styleable MenuView_android_horizontalDivider 1 -+int styleable MenuView_android_itemBackground 2 -+int styleable MenuView_android_itemIconDisabledAlpha 3 -+int styleable MenuView_android_itemTextAppearance 4 -+int styleable MenuView_android_verticalDivider 5 -+int styleable MenuView_android_windowAnimationStyle 6 -+int styleable MenuView_preserveIconSpacing 7 -+int styleable MenuView_subMenuArrow 8 -+int[] styleable PopupWindow { 0x10102c9, 0x1010176, 0x0 } -+int styleable PopupWindow_android_popupAnimationStyle 0 -+int styleable PopupWindow_android_popupBackground 1 -+int styleable PopupWindow_overlapAnchor 2 -+int[] styleable PopupWindowBackgroundState { 0x0 } -+int styleable PopupWindowBackgroundState_state_above_anchor 0 -+int[] styleable RecycleListView { 0x0, 0x0 } -+int styleable RecycleListView_paddingBottomNoButtons 0 -+int styleable RecycleListView_paddingTopNoTitle 1 -+int[] styleable SearchView { 0x10100da, 0x1010264, 0x1010220, 0x101011f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable SearchView_android_focusable 0 -+int styleable SearchView_android_imeOptions 1 -+int styleable SearchView_android_inputType 2 -+int styleable SearchView_android_maxWidth 3 -+int styleable SearchView_closeIcon 4 -+int styleable SearchView_commitIcon 5 -+int styleable SearchView_defaultQueryHint 6 -+int styleable SearchView_goIcon 7 -+int styleable SearchView_iconifiedByDefault 8 -+int styleable SearchView_layout 9 -+int styleable SearchView_queryBackground 10 -+int styleable SearchView_queryHint 11 -+int styleable SearchView_searchHintIcon 12 -+int styleable SearchView_searchIcon 13 -+int styleable SearchView_submitBackground 14 -+int styleable SearchView_suggestionRowLayout 15 -+int styleable SearchView_voiceIcon 16 -+int[] styleable SimpleDraweeView { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable SimpleDraweeView_actualImageResource 0 -+int styleable SimpleDraweeView_actualImageScaleType 1 -+int styleable SimpleDraweeView_actualImageUri 2 -+int styleable SimpleDraweeView_backgroundImage 3 -+int styleable SimpleDraweeView_fadeDuration 4 -+int styleable SimpleDraweeView_failureImage 5 -+int styleable SimpleDraweeView_failureImageScaleType 6 -+int styleable SimpleDraweeView_overlayImage 7 -+int styleable SimpleDraweeView_placeholderImage 8 -+int styleable SimpleDraweeView_placeholderImageScaleType 9 -+int styleable SimpleDraweeView_pressedStateOverlayImage 10 -+int styleable SimpleDraweeView_progressBarAutoRotateInterval 11 -+int styleable SimpleDraweeView_progressBarImage 12 -+int styleable SimpleDraweeView_progressBarImageScaleType 13 -+int styleable SimpleDraweeView_retryImage 14 -+int styleable SimpleDraweeView_retryImageScaleType 15 -+int styleable SimpleDraweeView_roundAsCircle 16 -+int styleable SimpleDraweeView_roundBottomEnd 17 -+int styleable SimpleDraweeView_roundBottomLeft 18 -+int styleable SimpleDraweeView_roundBottomRight 19 -+int styleable SimpleDraweeView_roundBottomStart 20 -+int styleable SimpleDraweeView_roundTopEnd 21 -+int styleable SimpleDraweeView_roundTopLeft 22 -+int styleable SimpleDraweeView_roundTopRight 23 -+int styleable SimpleDraweeView_roundTopStart 24 -+int styleable SimpleDraweeView_roundWithOverlayColor 25 -+int styleable SimpleDraweeView_roundedCornerRadius 26 -+int styleable SimpleDraweeView_roundingBorderColor 27 -+int styleable SimpleDraweeView_roundingBorderPadding 28 -+int styleable SimpleDraweeView_roundingBorderWidth 29 -+int styleable SimpleDraweeView_viewAspectRatio 30 -+int[] styleable Spinner { 0x1010262, 0x10100b2, 0x1010176, 0x101017b, 0x0 } -+int styleable Spinner_android_dropDownWidth 0 -+int styleable Spinner_android_entries 1 -+int styleable Spinner_android_popupBackground 2 -+int styleable Spinner_android_prompt 3 -+int styleable Spinner_popupTheme 4 -+int[] styleable StateListDrawable { 0x1010196, 0x101011c, 0x101030c, 0x101030d, 0x1010195, 0x1010194 } -+int styleable StateListDrawable_android_constantSize 0 -+int styleable StateListDrawable_android_dither 1 -+int styleable StateListDrawable_android_enterFadeDuration 2 -+int styleable StateListDrawable_android_exitFadeDuration 3 -+int styleable StateListDrawable_android_variablePadding 4 -+int styleable StateListDrawable_android_visible 5 -+int[] styleable StateListDrawableItem { 0x1010199 } -+int styleable StateListDrawableItem_android_drawable 0 -+int[] styleable SwitchCompat { 0x1010125, 0x1010124, 0x1010142, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable SwitchCompat_android_textOff 0 -+int styleable SwitchCompat_android_textOn 1 -+int styleable SwitchCompat_android_thumb 2 -+int styleable SwitchCompat_showText 3 -+int styleable SwitchCompat_splitTrack 4 -+int styleable SwitchCompat_switchMinWidth 5 -+int styleable SwitchCompat_switchPadding 6 -+int styleable SwitchCompat_switchTextAppearance 7 -+int styleable SwitchCompat_thumbTextPadding 8 -+int styleable SwitchCompat_thumbTint 9 -+int styleable SwitchCompat_thumbTintMode 10 -+int styleable SwitchCompat_track 11 -+int styleable SwitchCompat_trackTint 12 -+int styleable SwitchCompat_trackTintMode 13 -+int[] styleable TextAppearance { 0x10103ac, 0x1010161, 0x1010162, 0x1010163, 0x1010164, 0x1010098, 0x101009a, 0x101009b, 0x1010585, 0x1010095, 0x1010097, 0x1010096, 0x0, 0x0, 0x0, 0x0 } -+int styleable TextAppearance_android_fontFamily 0 -+int styleable TextAppearance_android_shadowColor 1 -+int styleable TextAppearance_android_shadowDx 2 -+int styleable TextAppearance_android_shadowDy 3 -+int styleable TextAppearance_android_shadowRadius 4 -+int styleable TextAppearance_android_textColor 5 -+int styleable TextAppearance_android_textColorHint 6 -+int styleable TextAppearance_android_textColorLink 7 -+int styleable TextAppearance_android_textFontWeight 8 -+int styleable TextAppearance_android_textSize 9 -+int styleable TextAppearance_android_textStyle 10 -+int styleable TextAppearance_android_typeface 11 -+int styleable TextAppearance_fontFamily 12 -+int styleable TextAppearance_fontVariationSettings 13 -+int styleable TextAppearance_textAllCaps 14 -+int styleable TextAppearance_textLocale 15 -+int[] styleable Toolbar { 0x10100af, 0x1010140, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -+int styleable Toolbar_android_gravity 0 -+int styleable Toolbar_android_minHeight 1 -+int styleable Toolbar_buttonGravity 2 -+int styleable Toolbar_collapseContentDescription 3 -+int styleable Toolbar_collapseIcon 4 -+int styleable Toolbar_contentInsetEnd 5 -+int styleable Toolbar_contentInsetEndWithActions 6 -+int styleable Toolbar_contentInsetLeft 7 -+int styleable Toolbar_contentInsetRight 8 -+int styleable Toolbar_contentInsetStart 9 -+int styleable Toolbar_contentInsetStartWithNavigation 10 -+int styleable Toolbar_logo 11 -+int styleable Toolbar_logoDescription 12 -+int styleable Toolbar_maxButtonHeight 13 -+int styleable Toolbar_menu 14 -+int styleable Toolbar_navigationContentDescription 15 -+int styleable Toolbar_navigationIcon 16 -+int styleable Toolbar_popupTheme 17 -+int styleable Toolbar_subtitle 18 -+int styleable Toolbar_subtitleTextAppearance 19 -+int styleable Toolbar_subtitleTextColor 20 -+int styleable Toolbar_title 21 -+int styleable Toolbar_titleMargin 22 -+int styleable Toolbar_titleMarginBottom 23 -+int styleable Toolbar_titleMarginEnd 24 -+int styleable Toolbar_titleMarginStart 25 -+int styleable Toolbar_titleMarginTop 26 -+int styleable Toolbar_titleMargins 27 -+int styleable Toolbar_titleTextAppearance 28 -+int styleable Toolbar_titleTextColor 29 -+int[] styleable View { 0x10100da, 0x1010000, 0x0, 0x0, 0x0 } -+int styleable View_android_focusable 0 -+int styleable View_android_theme 1 -+int styleable View_paddingEnd 2 -+int styleable View_paddingStart 3 -+int styleable View_theme 4 -+int[] styleable ViewBackgroundHelper { 0x10100d4, 0x0, 0x0 } -+int styleable ViewBackgroundHelper_android_background 0 -+int styleable ViewBackgroundHelper_backgroundTint 1 -+int styleable ViewBackgroundHelper_backgroundTintMode 2 -+int[] styleable ViewStubCompat { 0x10100d0, 0x10100f3, 0x10100f2 } -+int styleable ViewStubCompat_android_id 0 -+int styleable ViewStubCompat_android_inflatedId 1 -+int styleable ViewStubCompat_android_layout 2 -+int xml rn_dev_preferences 0x0 -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -new file mode 100644 -index 0000000..47e2add ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -@@ -0,0 +1 @@ -+#Sun Apr 02 19:35:28 CDT 2023 -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml -new file mode 100644 -index 0000000..b5f25a5 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/local_only_symbol_list/debug/R-def.txt b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/local_only_symbol_list/debug/R-def.txt -new file mode 100644 -index 0000000..78ac5b8 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/local_only_symbol_list/debug/R-def.txt -@@ -0,0 +1,2 @@ -+R_DEF: Internal format may change without notice -+local -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt -new file mode 100644 -index 0000000..127829f ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt -@@ -0,0 +1,11 @@ -+1 -+2 -+4 -+5 /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+7 android:targetSdkVersion="33" /> -+7-->/Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+8 -+9 -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml -new file mode 100644 -index 0000000..0249d77 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml -@@ -0,0 +1,9 @@ -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/navigation_json/debug/navigation.json b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/navigation_json/debug/navigation.json -new file mode 100644 -index 0000000..0637a08 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/navigation_json/debug/navigation.json -@@ -0,0 +1 @@ -+[] -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/packaged_manifests/debug/output-metadata.json b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/packaged_manifests/debug/output-metadata.json -new file mode 100644 -index 0000000..3640409 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/packaged_manifests/debug/output-metadata.json -@@ -0,0 +1,18 @@ -+{ -+ "version": 3, -+ "artifactType": { -+ "type": "PACKAGED_MANIFESTS", -+ "kind": "Directory" -+ }, -+ "applicationId": "com.mattermost.pasteinput", -+ "variantName": "debug", -+ "elements": [ -+ { -+ "type": "SINGLE", -+ "filters": [], -+ "attributes": [], -+ "outputFile": "../../merged_manifest/debug/AndroidManifest.xml" -+ } -+ ], -+ "elementType": "File" -+} -\ No newline at end of file -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt -new file mode 100644 -index 0000000..7009825 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt -@@ -0,0 +1,1446 @@ -+com.mattermost.pasteinput -+anim abc_fade_in -+anim abc_fade_out -+anim abc_grow_fade_in_from_bottom -+anim abc_popup_enter -+anim abc_popup_exit -+anim abc_shrink_fade_out_from_bottom -+anim abc_slide_in_bottom -+anim abc_slide_in_top -+anim abc_slide_out_bottom -+anim abc_slide_out_top -+anim abc_tooltip_enter -+anim abc_tooltip_exit -+anim btn_checkbox_to_checked_box_inner_merged_animation -+anim btn_checkbox_to_checked_box_outer_merged_animation -+anim btn_checkbox_to_checked_icon_null_animation -+anim btn_checkbox_to_unchecked_box_inner_merged_animation -+anim btn_checkbox_to_unchecked_check_path_merged_animation -+anim btn_checkbox_to_unchecked_icon_null_animation -+anim btn_radio_to_off_mtrl_dot_group_animation -+anim btn_radio_to_off_mtrl_ring_outer_animation -+anim btn_radio_to_off_mtrl_ring_outer_path_animation -+anim btn_radio_to_on_mtrl_dot_group_animation -+anim btn_radio_to_on_mtrl_ring_outer_animation -+anim btn_radio_to_on_mtrl_ring_outer_path_animation -+anim catalyst_fade_in -+anim catalyst_fade_out -+anim catalyst_push_up_in -+anim catalyst_push_up_out -+anim catalyst_slide_down -+anim catalyst_slide_up -+anim fragment_fast_out_extra_slow_in -+animator fragment_close_enter -+animator fragment_close_exit -+animator fragment_fade_enter -+animator fragment_fade_exit -+animator fragment_open_enter -+animator fragment_open_exit -+attr actionBarDivider -+attr actionBarItemBackground -+attr actionBarPopupTheme -+attr actionBarSize -+attr actionBarSplitStyle -+attr actionBarStyle -+attr actionBarTabBarStyle -+attr actionBarTabStyle -+attr actionBarTabTextStyle -+attr actionBarTheme -+attr actionBarWidgetTheme -+attr actionButtonStyle -+attr actionDropDownStyle -+attr actionLayout -+attr actionMenuTextAppearance -+attr actionMenuTextColor -+attr actionModeBackground -+attr actionModeCloseButtonStyle -+attr actionModeCloseContentDescription -+attr actionModeCloseDrawable -+attr actionModeCopyDrawable -+attr actionModeCutDrawable -+attr actionModeFindDrawable -+attr actionModePasteDrawable -+attr actionModePopupWindowStyle -+attr actionModeSelectAllDrawable -+attr actionModeShareDrawable -+attr actionModeSplitBackground -+attr actionModeStyle -+attr actionModeTheme -+attr actionModeWebSearchDrawable -+attr actionOverflowButtonStyle -+attr actionOverflowMenuStyle -+attr actionProviderClass -+attr actionViewClass -+attr activityChooserViewStyle -+attr actualImageResource -+attr actualImageScaleType -+attr actualImageUri -+attr alertDialogButtonGroupStyle -+attr alertDialogCenterButtons -+attr alertDialogStyle -+attr alertDialogTheme -+attr allowStacking -+attr alpha -+attr alphabeticModifiers -+attr arrowHeadLength -+attr arrowShaftLength -+attr autoCompleteTextViewStyle -+attr autoSizeMaxTextSize -+attr autoSizeMinTextSize -+attr autoSizePresetSizes -+attr autoSizeStepGranularity -+attr autoSizeTextType -+attr autofillInlineSuggestionChip -+attr autofillInlineSuggestionEndIconStyle -+attr autofillInlineSuggestionStartIconStyle -+attr autofillInlineSuggestionSubtitle -+attr autofillInlineSuggestionTitle -+attr background -+attr backgroundImage -+attr backgroundSplit -+attr backgroundStacked -+attr backgroundTint -+attr backgroundTintMode -+attr barLength -+attr borderlessButtonStyle -+attr buttonBarButtonStyle -+attr buttonBarNegativeButtonStyle -+attr buttonBarNeutralButtonStyle -+attr buttonBarPositiveButtonStyle -+attr buttonBarStyle -+attr buttonCompat -+attr buttonGravity -+attr buttonIconDimen -+attr buttonPanelSideLayout -+attr buttonStyle -+attr buttonStyleSmall -+attr buttonTint -+attr buttonTintMode -+attr checkMarkCompat -+attr checkMarkTint -+attr checkMarkTintMode -+attr checkboxStyle -+attr checkedTextViewStyle -+attr closeIcon -+attr closeItemLayout -+attr collapseContentDescription -+attr collapseIcon -+attr color -+attr colorAccent -+attr colorBackgroundFloating -+attr colorButtonNormal -+attr colorControlActivated -+attr colorControlHighlight -+attr colorControlNormal -+attr colorError -+attr colorPrimary -+attr colorPrimaryDark -+attr colorSwitchThumbNormal -+attr commitIcon -+attr contentDescription -+attr contentInsetEnd -+attr contentInsetEndWithActions -+attr contentInsetLeft -+attr contentInsetRight -+attr contentInsetStart -+attr contentInsetStartWithNavigation -+attr controlBackground -+attr customNavigationLayout -+attr defaultQueryHint -+attr dialogCornerRadius -+attr dialogPreferredPadding -+attr dialogTheme -+attr displayOptions -+attr divider -+attr dividerHorizontal -+attr dividerPadding -+attr dividerVertical -+attr drawableBottomCompat -+attr drawableEndCompat -+attr drawableLeftCompat -+attr drawableRightCompat -+attr drawableSize -+attr drawableStartCompat -+attr drawableTint -+attr drawableTintMode -+attr drawableTopCompat -+attr drawerArrowStyle -+attr dropDownListViewStyle -+attr dropdownListPreferredItemHeight -+attr editTextBackground -+attr editTextColor -+attr editTextStyle -+attr elevation -+attr emojiCompatEnabled -+attr expandActivityOverflowButtonDrawable -+attr fadeDuration -+attr failureImage -+attr failureImageScaleType -+attr firstBaselineToTopHeight -+attr font -+attr fontFamily -+attr fontProviderAuthority -+attr fontProviderCerts -+attr fontProviderFetchStrategy -+attr fontProviderFetchTimeout -+attr fontProviderPackage -+attr fontProviderQuery -+attr fontProviderSystemFontFamily -+attr fontStyle -+attr fontVariationSettings -+attr fontWeight -+attr gapBetweenBars -+attr goIcon -+attr height -+attr hideOnContentScroll -+attr homeAsUpIndicator -+attr homeLayout -+attr icon -+attr iconTint -+attr iconTintMode -+attr iconifiedByDefault -+attr imageButtonStyle -+attr indeterminateProgressStyle -+attr initialActivityCount -+attr isAutofillInlineSuggestionTheme -+attr isLightTheme -+attr itemPadding -+attr lStar -+attr lastBaselineToBottomHeight -+attr layout -+attr lineHeight -+attr listChoiceBackgroundIndicator -+attr listChoiceIndicatorMultipleAnimated -+attr listChoiceIndicatorSingleAnimated -+attr listDividerAlertDialog -+attr listItemLayout -+attr listLayout -+attr listMenuViewStyle -+attr listPopupWindowStyle -+attr listPreferredItemHeight -+attr listPreferredItemHeightLarge -+attr listPreferredItemHeightSmall -+attr listPreferredItemPaddingEnd -+attr listPreferredItemPaddingLeft -+attr listPreferredItemPaddingRight -+attr listPreferredItemPaddingStart -+attr logo -+attr logoDescription -+attr maxButtonHeight -+attr measureWithLargestChild -+attr menu -+attr multiChoiceItemLayout -+attr navigationContentDescription -+attr navigationIcon -+attr navigationMode -+attr nestedScrollViewStyle -+attr numericModifiers -+attr overlapAnchor -+attr overlayImage -+attr paddingBottomNoButtons -+attr paddingEnd -+attr paddingStart -+attr paddingTopNoTitle -+attr panelBackground -+attr panelMenuListTheme -+attr panelMenuListWidth -+attr placeholderImage -+attr placeholderImageScaleType -+attr popupMenuStyle -+attr popupTheme -+attr popupWindowStyle -+attr preserveIconSpacing -+attr pressedStateOverlayImage -+attr progressBarAutoRotateInterval -+attr progressBarImage -+attr progressBarImageScaleType -+attr progressBarPadding -+attr progressBarStyle -+attr queryBackground -+attr queryHint -+attr queryPatterns -+attr radioButtonStyle -+attr ratingBarStyle -+attr ratingBarStyleIndicator -+attr ratingBarStyleSmall -+attr retryImage -+attr retryImageScaleType -+attr roundAsCircle -+attr roundBottomEnd -+attr roundBottomLeft -+attr roundBottomRight -+attr roundBottomStart -+attr roundTopEnd -+attr roundTopLeft -+attr roundTopRight -+attr roundTopStart -+attr roundWithOverlayColor -+attr roundedCornerRadius -+attr roundingBorderColor -+attr roundingBorderPadding -+attr roundingBorderWidth -+attr searchHintIcon -+attr searchIcon -+attr searchViewStyle -+attr seekBarStyle -+attr selectableItemBackground -+attr selectableItemBackgroundBorderless -+attr shortcutMatchRequired -+attr showAsAction -+attr showDividers -+attr showText -+attr showTitle -+attr singleChoiceItemLayout -+attr spinBars -+attr spinnerDropDownItemStyle -+attr spinnerStyle -+attr splitTrack -+attr srcCompat -+attr state_above_anchor -+attr subMenuArrow -+attr submitBackground -+attr subtitle -+attr subtitleTextAppearance -+attr subtitleTextColor -+attr subtitleTextStyle -+attr suggestionRowLayout -+attr switchMinWidth -+attr switchPadding -+attr switchStyle -+attr switchTextAppearance -+attr textAllCaps -+attr textAppearanceLargePopupMenu -+attr textAppearanceListItem -+attr textAppearanceListItemSecondary -+attr textAppearanceListItemSmall -+attr textAppearancePopupMenuHeader -+attr textAppearanceSearchResultSubtitle -+attr textAppearanceSearchResultTitle -+attr textAppearanceSmallPopupMenu -+attr textColorAlertDialogListItem -+attr textColorSearchUrl -+attr textLocale -+attr theme -+attr thickness -+attr thumbTextPadding -+attr thumbTint -+attr thumbTintMode -+attr tickMark -+attr tickMarkTint -+attr tickMarkTintMode -+attr tint -+attr tintMode -+attr title -+attr titleMargin -+attr titleMarginBottom -+attr titleMarginEnd -+attr titleMarginStart -+attr titleMarginTop -+attr titleMargins -+attr titleTextAppearance -+attr titleTextColor -+attr titleTextStyle -+attr toolbarNavigationButtonStyle -+attr toolbarStyle -+attr tooltipForegroundColor -+attr tooltipFrameBackground -+attr tooltipText -+attr track -+attr trackTint -+attr trackTintMode -+attr ttcIndex -+attr viewAspectRatio -+attr viewInflaterClass -+attr voiceIcon -+attr windowActionBar -+attr windowActionBarOverlay -+attr windowActionModeOverlay -+attr windowFixedHeightMajor -+attr windowFixedHeightMinor -+attr windowFixedWidthMajor -+attr windowFixedWidthMinor -+attr windowMinWidthMajor -+attr windowMinWidthMinor -+attr windowNoTitle -+bool abc_action_bar_embed_tabs -+bool abc_config_actionMenuItemAllCaps -+color abc_background_cache_hint_selector_material_dark -+color abc_background_cache_hint_selector_material_light -+color abc_btn_colored_borderless_text_material -+color abc_btn_colored_text_material -+color abc_color_highlight_material -+color abc_decor_view_status_guard -+color abc_decor_view_status_guard_light -+color abc_hint_foreground_material_dark -+color abc_hint_foreground_material_light -+color abc_primary_text_disable_only_material_dark -+color abc_primary_text_disable_only_material_light -+color abc_primary_text_material_dark -+color abc_primary_text_material_light -+color abc_search_url_text -+color abc_search_url_text_normal -+color abc_search_url_text_pressed -+color abc_search_url_text_selected -+color abc_secondary_text_material_dark -+color abc_secondary_text_material_light -+color abc_tint_btn_checkable -+color abc_tint_default -+color abc_tint_edittext -+color abc_tint_seek_thumb -+color abc_tint_spinner -+color abc_tint_switch_track -+color accent_material_dark -+color accent_material_light -+color androidx_core_ripple_material_light -+color androidx_core_secondary_text_default_material_light -+color background_floating_material_dark -+color background_floating_material_light -+color background_material_dark -+color background_material_light -+color bright_foreground_disabled_material_dark -+color bright_foreground_disabled_material_light -+color bright_foreground_inverse_material_dark -+color bright_foreground_inverse_material_light -+color bright_foreground_material_dark -+color bright_foreground_material_light -+color button_material_dark -+color button_material_light -+color catalyst_logbox_background -+color catalyst_redbox_background -+color dim_foreground_disabled_material_dark -+color dim_foreground_disabled_material_light -+color dim_foreground_material_dark -+color dim_foreground_material_light -+color error_color_material_dark -+color error_color_material_light -+color foreground_material_dark -+color foreground_material_light -+color highlighted_text_material_dark -+color highlighted_text_material_light -+color material_blue_grey_800 -+color material_blue_grey_900 -+color material_blue_grey_950 -+color material_deep_teal_200 -+color material_deep_teal_500 -+color material_grey_100 -+color material_grey_300 -+color material_grey_50 -+color material_grey_600 -+color material_grey_800 -+color material_grey_850 -+color material_grey_900 -+color notification_action_color_filter -+color notification_icon_bg_color -+color primary_dark_material_dark -+color primary_dark_material_light -+color primary_material_dark -+color primary_material_light -+color primary_text_default_material_dark -+color primary_text_default_material_light -+color primary_text_disabled_material_dark -+color primary_text_disabled_material_light -+color ripple_material_dark -+color ripple_material_light -+color secondary_text_default_material_dark -+color secondary_text_default_material_light -+color secondary_text_disabled_material_dark -+color secondary_text_disabled_material_light -+color switch_thumb_disabled_material_dark -+color switch_thumb_disabled_material_light -+color switch_thumb_material_dark -+color switch_thumb_material_light -+color switch_thumb_normal_material_dark -+color switch_thumb_normal_material_light -+color tooltip_background_dark -+color tooltip_background_light -+dimen abc_action_bar_content_inset_material -+dimen abc_action_bar_content_inset_with_nav -+dimen abc_action_bar_default_height_material -+dimen abc_action_bar_default_padding_end_material -+dimen abc_action_bar_default_padding_start_material -+dimen abc_action_bar_elevation_material -+dimen abc_action_bar_icon_vertical_padding_material -+dimen abc_action_bar_overflow_padding_end_material -+dimen abc_action_bar_overflow_padding_start_material -+dimen abc_action_bar_stacked_max_height -+dimen abc_action_bar_stacked_tab_max_width -+dimen abc_action_bar_subtitle_bottom_margin_material -+dimen abc_action_bar_subtitle_top_margin_material -+dimen abc_action_button_min_height_material -+dimen abc_action_button_min_width_material -+dimen abc_action_button_min_width_overflow_material -+dimen abc_alert_dialog_button_bar_height -+dimen abc_alert_dialog_button_dimen -+dimen abc_button_inset_horizontal_material -+dimen abc_button_inset_vertical_material -+dimen abc_button_padding_horizontal_material -+dimen abc_button_padding_vertical_material -+dimen abc_cascading_menus_min_smallest_width -+dimen abc_config_prefDialogWidth -+dimen abc_control_corner_material -+dimen abc_control_inset_material -+dimen abc_control_padding_material -+dimen abc_dialog_corner_radius_material -+dimen abc_dialog_fixed_height_major -+dimen abc_dialog_fixed_height_minor -+dimen abc_dialog_fixed_width_major -+dimen abc_dialog_fixed_width_minor -+dimen abc_dialog_list_padding_bottom_no_buttons -+dimen abc_dialog_list_padding_top_no_title -+dimen abc_dialog_min_width_major -+dimen abc_dialog_min_width_minor -+dimen abc_dialog_padding_material -+dimen abc_dialog_padding_top_material -+dimen abc_dialog_title_divider_material -+dimen abc_disabled_alpha_material_dark -+dimen abc_disabled_alpha_material_light -+dimen abc_dropdownitem_icon_width -+dimen abc_dropdownitem_text_padding_left -+dimen abc_dropdownitem_text_padding_right -+dimen abc_edit_text_inset_bottom_material -+dimen abc_edit_text_inset_horizontal_material -+dimen abc_edit_text_inset_top_material -+dimen abc_floating_window_z -+dimen abc_list_item_height_large_material -+dimen abc_list_item_height_material -+dimen abc_list_item_height_small_material -+dimen abc_list_item_padding_horizontal_material -+dimen abc_panel_menu_list_width -+dimen abc_progress_bar_height_material -+dimen abc_search_view_preferred_height -+dimen abc_search_view_preferred_width -+dimen abc_seekbar_track_background_height_material -+dimen abc_seekbar_track_progress_height_material -+dimen abc_select_dialog_padding_start_material -+dimen abc_star_big -+dimen abc_star_medium -+dimen abc_star_small -+dimen abc_switch_padding -+dimen abc_text_size_body_1_material -+dimen abc_text_size_body_2_material -+dimen abc_text_size_button_material -+dimen abc_text_size_caption_material -+dimen abc_text_size_display_1_material -+dimen abc_text_size_display_2_material -+dimen abc_text_size_display_3_material -+dimen abc_text_size_display_4_material -+dimen abc_text_size_headline_material -+dimen abc_text_size_large_material -+dimen abc_text_size_medium_material -+dimen abc_text_size_menu_header_material -+dimen abc_text_size_menu_material -+dimen abc_text_size_small_material -+dimen abc_text_size_subhead_material -+dimen abc_text_size_subtitle_material_toolbar -+dimen abc_text_size_title_material -+dimen abc_text_size_title_material_toolbar -+dimen autofill_inline_suggestion_icon_size -+dimen compat_button_inset_horizontal_material -+dimen compat_button_inset_vertical_material -+dimen compat_button_padding_horizontal_material -+dimen compat_button_padding_vertical_material -+dimen compat_control_corner_material -+dimen compat_notification_large_icon_max_height -+dimen compat_notification_large_icon_max_width -+dimen disabled_alpha_material_dark -+dimen disabled_alpha_material_light -+dimen highlight_alpha_material_colored -+dimen highlight_alpha_material_dark -+dimen highlight_alpha_material_light -+dimen hint_alpha_material_dark -+dimen hint_alpha_material_light -+dimen hint_pressed_alpha_material_dark -+dimen hint_pressed_alpha_material_light -+dimen notification_action_icon_size -+dimen notification_action_text_size -+dimen notification_big_circle_margin -+dimen notification_content_margin_start -+dimen notification_large_icon_height -+dimen notification_large_icon_width -+dimen notification_main_column_padding_top -+dimen notification_media_narrow_margin -+dimen notification_right_icon_size -+dimen notification_right_side_padding_top -+dimen notification_small_icon_background_padding -+dimen notification_small_icon_size_as_large -+dimen notification_subtext_size -+dimen notification_top_pad -+dimen notification_top_pad_large_text -+dimen tooltip_corner_radius -+dimen tooltip_horizontal_padding -+dimen tooltip_margin -+dimen tooltip_precise_anchor_extra_offset -+dimen tooltip_precise_anchor_threshold -+dimen tooltip_vertical_padding -+dimen tooltip_y_offset_non_touch -+dimen tooltip_y_offset_touch -+drawable abc_ab_share_pack_mtrl_alpha -+drawable abc_action_bar_item_background_material -+drawable abc_btn_borderless_material -+drawable abc_btn_check_material -+drawable abc_btn_check_material_anim -+drawable abc_btn_check_to_on_mtrl_000 -+drawable abc_btn_check_to_on_mtrl_015 -+drawable abc_btn_colored_material -+drawable abc_btn_default_mtrl_shape -+drawable abc_btn_radio_material -+drawable abc_btn_radio_material_anim -+drawable abc_btn_radio_to_on_mtrl_000 -+drawable abc_btn_radio_to_on_mtrl_015 -+drawable abc_btn_switch_to_on_mtrl_00001 -+drawable abc_btn_switch_to_on_mtrl_00012 -+drawable abc_cab_background_internal_bg -+drawable abc_cab_background_top_material -+drawable abc_cab_background_top_mtrl_alpha -+drawable abc_control_background_material -+drawable abc_dialog_material_background -+drawable abc_edit_text_material -+drawable abc_ic_ab_back_material -+drawable abc_ic_arrow_drop_right_black_24dp -+drawable abc_ic_clear_material -+drawable abc_ic_commit_search_api_mtrl_alpha -+drawable abc_ic_go_search_api_material -+drawable abc_ic_menu_copy_mtrl_am_alpha -+drawable abc_ic_menu_cut_mtrl_alpha -+drawable abc_ic_menu_overflow_material -+drawable abc_ic_menu_paste_mtrl_am_alpha -+drawable abc_ic_menu_selectall_mtrl_alpha -+drawable abc_ic_menu_share_mtrl_alpha -+drawable abc_ic_search_api_material -+drawable abc_ic_voice_search_api_material -+drawable abc_item_background_holo_dark -+drawable abc_item_background_holo_light -+drawable abc_list_divider_material -+drawable abc_list_divider_mtrl_alpha -+drawable abc_list_focused_holo -+drawable abc_list_longpressed_holo -+drawable abc_list_pressed_holo_dark -+drawable abc_list_pressed_holo_light -+drawable abc_list_selector_background_transition_holo_dark -+drawable abc_list_selector_background_transition_holo_light -+drawable abc_list_selector_disabled_holo_dark -+drawable abc_list_selector_disabled_holo_light -+drawable abc_list_selector_holo_dark -+drawable abc_list_selector_holo_light -+drawable abc_menu_hardkey_panel_mtrl_mult -+drawable abc_popup_background_mtrl_mult -+drawable abc_ratingbar_indicator_material -+drawable abc_ratingbar_material -+drawable abc_ratingbar_small_material -+drawable abc_scrubber_control_off_mtrl_alpha -+drawable abc_scrubber_control_to_pressed_mtrl_000 -+drawable abc_scrubber_control_to_pressed_mtrl_005 -+drawable abc_scrubber_primary_mtrl_alpha -+drawable abc_scrubber_track_mtrl_alpha -+drawable abc_seekbar_thumb_material -+drawable abc_seekbar_tick_mark_material -+drawable abc_seekbar_track_material -+drawable abc_spinner_mtrl_am_alpha -+drawable abc_spinner_textfield_background_material -+drawable abc_star_black_48dp -+drawable abc_star_half_black_48dp -+drawable abc_switch_thumb_material -+drawable abc_switch_track_mtrl_alpha -+drawable abc_tab_indicator_material -+drawable abc_tab_indicator_mtrl_alpha -+drawable abc_text_cursor_material -+drawable abc_text_select_handle_left_mtrl -+drawable abc_text_select_handle_middle_mtrl -+drawable abc_text_select_handle_right_mtrl -+drawable abc_textfield_activated_mtrl_alpha -+drawable abc_textfield_default_mtrl_alpha -+drawable abc_textfield_search_activated_mtrl_alpha -+drawable abc_textfield_search_default_mtrl_alpha -+drawable abc_textfield_search_material -+drawable abc_vector_test -+drawable autofill_inline_suggestion_chip_background -+drawable btn_checkbox_checked_mtrl -+drawable btn_checkbox_checked_to_unchecked_mtrl_animation -+drawable btn_checkbox_unchecked_mtrl -+drawable btn_checkbox_unchecked_to_checked_mtrl_animation -+drawable btn_radio_off_mtrl -+drawable btn_radio_off_to_on_mtrl_animation -+drawable btn_radio_on_mtrl -+drawable btn_radio_on_to_off_mtrl_animation -+drawable notification_action_background -+drawable notification_bg -+drawable notification_bg_low -+drawable notification_bg_low_normal -+drawable notification_bg_low_pressed -+drawable notification_bg_normal -+drawable notification_bg_normal_pressed -+drawable notification_icon_background -+drawable notification_template_icon_bg -+drawable notification_template_icon_low_bg -+drawable notification_tile_bg -+drawable notify_panel_notification_icon_bg -+drawable redbox_top_border_background -+drawable test_level_drawable -+drawable tooltip_frame_dark -+drawable tooltip_frame_light -+id accessibility_action_clickable_span -+id accessibility_actions -+id accessibility_collection -+id accessibility_collection_item -+id accessibility_custom_action_0 -+id accessibility_custom_action_1 -+id accessibility_custom_action_10 -+id accessibility_custom_action_11 -+id accessibility_custom_action_12 -+id accessibility_custom_action_13 -+id accessibility_custom_action_14 -+id accessibility_custom_action_15 -+id accessibility_custom_action_16 -+id accessibility_custom_action_17 -+id accessibility_custom_action_18 -+id accessibility_custom_action_19 -+id accessibility_custom_action_2 -+id accessibility_custom_action_20 -+id accessibility_custom_action_21 -+id accessibility_custom_action_22 -+id accessibility_custom_action_23 -+id accessibility_custom_action_24 -+id accessibility_custom_action_25 -+id accessibility_custom_action_26 -+id accessibility_custom_action_27 -+id accessibility_custom_action_28 -+id accessibility_custom_action_29 -+id accessibility_custom_action_3 -+id accessibility_custom_action_30 -+id accessibility_custom_action_31 -+id accessibility_custom_action_4 -+id accessibility_custom_action_5 -+id accessibility_custom_action_6 -+id accessibility_custom_action_7 -+id accessibility_custom_action_8 -+id accessibility_custom_action_9 -+id accessibility_hint -+id accessibility_label -+id accessibility_links -+id accessibility_role -+id accessibility_state -+id accessibility_value -+id action_bar -+id action_bar_activity_content -+id action_bar_container -+id action_bar_root -+id action_bar_spinner -+id action_bar_subtitle -+id action_bar_title -+id action_container -+id action_context_bar -+id action_divider -+id action_image -+id action_menu_divider -+id action_menu_presenter -+id action_mode_bar -+id action_mode_bar_stub -+id action_mode_close_button -+id action_text -+id actions -+id activity_chooser_view_content -+id add -+id alertTitle -+id async -+id autofill_inline_suggestion_end_icon -+id autofill_inline_suggestion_start_icon -+id autofill_inline_suggestion_subtitle -+id autofill_inline_suggestion_title -+id blocking -+id buttonPanel -+id catalyst_redbox_title -+id center -+id centerCrop -+id centerInside -+id checkbox -+id checked -+id chronometer -+id content -+id contentPanel -+id custom -+id customPanel -+id decor_content_parent -+id default_activity_button -+id dialog_button -+id edit_query -+id expand_activities_button -+id expanded_menu -+id fitBottomStart -+id fitCenter -+id fitEnd -+id fitStart -+id fitXY -+id focusCrop -+id forever -+id fps_text -+id fragment_container_view_tag -+id group_divider -+id home -+id icon -+id icon_group -+id image -+id info -+id italic -+id item1 -+id item2 -+id item3 -+id item4 -+id labelled_by -+id line1 -+id line3 -+id listMode -+id list_item -+id message -+id multiply -+id none -+id normal -+id notification_background -+id notification_main_column -+id notification_main_column_container -+id off -+id on -+id parentPanel -+id pointer_events -+id progress_circular -+id progress_horizontal -+id radio -+id react_test_id -+id right_icon -+id right_side -+id rn_frame_file -+id rn_frame_method -+id rn_redbox_dismiss_button -+id rn_redbox_line_separator -+id rn_redbox_loading_indicator -+id rn_redbox_reload_button -+id rn_redbox_report_button -+id rn_redbox_report_label -+id rn_redbox_stack -+id screen -+id scrollIndicatorDown -+id scrollIndicatorUp -+id scrollView -+id search_badge -+id search_bar -+id search_button -+id search_close_btn -+id search_edit_frame -+id search_go_btn -+id search_mag_icon -+id search_plate -+id search_src_text -+id search_voice_btn -+id select_dialog_listview -+id shortcut -+id spacer -+id special_effects_controller_view_tag -+id split_action_bar -+id src_atop -+id src_in -+id src_over -+id submenuarrow -+id submit_area -+id tabMode -+id tag_accessibility_actions -+id tag_accessibility_clickable_spans -+id tag_accessibility_heading -+id tag_accessibility_pane_title -+id tag_on_apply_window_listener -+id tag_on_receive_content_listener -+id tag_on_receive_content_mime_types -+id tag_screen_reader_focusable -+id tag_state_description -+id tag_transition_group -+id tag_unhandled_key_event_manager -+id tag_unhandled_key_listeners -+id tag_window_insets_animation_callback -+id text -+id text2 -+id textSpacerNoButtons -+id textSpacerNoTitle -+id time -+id title -+id titleDividerNoCustom -+id title_template -+id topPanel -+id unchecked -+id uniform -+id up -+id view_tag_instance_handle -+id view_tag_native_id -+id view_tree_lifecycle_owner -+id view_tree_saved_state_registry_owner -+id view_tree_view_model_store_owner -+id visible_removing_fragment_view_tag -+id wrap_content -+integer abc_config_activityDefaultDur -+integer abc_config_activityShortDur -+integer cancel_button_image_alpha -+integer config_tooltipAnimTime -+integer react_native_dev_server_port -+integer react_native_inspector_proxy_port -+integer status_bar_notification_info_maxnum -+interpolator btn_checkbox_checked_mtrl_animation_interpolator_0 -+interpolator btn_checkbox_checked_mtrl_animation_interpolator_1 -+interpolator btn_checkbox_unchecked_mtrl_animation_interpolator_0 -+interpolator btn_checkbox_unchecked_mtrl_animation_interpolator_1 -+interpolator btn_radio_to_off_mtrl_animation_interpolator_0 -+interpolator btn_radio_to_on_mtrl_animation_interpolator_0 -+interpolator fast_out_slow_in -+layout abc_action_bar_title_item -+layout abc_action_bar_up_container -+layout abc_action_menu_item_layout -+layout abc_action_menu_layout -+layout abc_action_mode_bar -+layout abc_action_mode_close_item_material -+layout abc_activity_chooser_view -+layout abc_activity_chooser_view_list_item -+layout abc_alert_dialog_button_bar_material -+layout abc_alert_dialog_material -+layout abc_alert_dialog_title_material -+layout abc_cascading_menu_item_layout -+layout abc_dialog_title_material -+layout abc_expanded_menu_layout -+layout abc_list_menu_item_checkbox -+layout abc_list_menu_item_icon -+layout abc_list_menu_item_layout -+layout abc_list_menu_item_radio -+layout abc_popup_menu_header_item_layout -+layout abc_popup_menu_item_layout -+layout abc_screen_content_include -+layout abc_screen_simple -+layout abc_screen_simple_overlay_action_mode -+layout abc_screen_toolbar -+layout abc_search_dropdown_item_icons_2line -+layout abc_search_view -+layout abc_select_dialog_material -+layout abc_tooltip -+layout autofill_inline_suggestion -+layout custom_dialog -+layout dev_loading_view -+layout fps_view -+layout notification_action -+layout notification_action_tombstone -+layout notification_template_custom_big -+layout notification_template_icon_group -+layout notification_template_part_chronometer -+layout notification_template_part_time -+layout redbox_item_frame -+layout redbox_item_title -+layout redbox_view -+layout select_dialog_item_material -+layout select_dialog_multichoice_material -+layout select_dialog_singlechoice_material -+layout support_simple_spinner_dropdown_item -+menu example_menu -+menu example_menu2 -+string abc_action_bar_home_description -+string abc_action_bar_up_description -+string abc_action_menu_overflow_description -+string abc_action_mode_done -+string abc_activity_chooser_view_see_all -+string abc_activitychooserview_choose_application -+string abc_capital_off -+string abc_capital_on -+string abc_menu_alt_shortcut_label -+string abc_menu_ctrl_shortcut_label -+string abc_menu_delete_shortcut_label -+string abc_menu_enter_shortcut_label -+string abc_menu_function_shortcut_label -+string abc_menu_meta_shortcut_label -+string abc_menu_shift_shortcut_label -+string abc_menu_space_shortcut_label -+string abc_menu_sym_shortcut_label -+string abc_prepend_shortcut_label -+string abc_search_hint -+string abc_searchview_description_clear -+string abc_searchview_description_query -+string abc_searchview_description_search -+string abc_searchview_description_submit -+string abc_searchview_description_voice -+string abc_shareactionprovider_share_with -+string abc_shareactionprovider_share_with_application -+string abc_toolbar_collapse_description -+string alert_description -+string catalyst_change_bundle_location -+string catalyst_copy_button -+string catalyst_debug -+string catalyst_debug_chrome -+string catalyst_debug_chrome_stop -+string catalyst_debug_connecting -+string catalyst_debug_error -+string catalyst_debug_open -+string catalyst_debug_stop -+string catalyst_devtools_open -+string catalyst_dismiss_button -+string catalyst_heap_capture -+string catalyst_hot_reloading -+string catalyst_hot_reloading_auto_disable -+string catalyst_hot_reloading_auto_enable -+string catalyst_hot_reloading_stop -+string catalyst_inspector -+string catalyst_inspector_stop -+string catalyst_loading_from_url -+string catalyst_open_flipper_error -+string catalyst_perf_monitor -+string catalyst_perf_monitor_stop -+string catalyst_reload -+string catalyst_reload_button -+string catalyst_reload_error -+string catalyst_report_button -+string catalyst_sample_profiler_disable -+string catalyst_sample_profiler_enable -+string catalyst_settings -+string catalyst_settings_title -+string combobox_description -+string header_description -+string image_description -+string imagebutton_description -+string link_description -+string menu_description -+string menubar_description -+string menuitem_description -+string progressbar_description -+string radiogroup_description -+string rn_tab_description -+string scrollbar_description -+string search_menu_title -+string spinbutton_description -+string state_busy_description -+string state_collapsed_description -+string state_expanded_description -+string state_mixed_description -+string state_off_description -+string state_on_description -+string state_unselected_description -+string status_bar_notification_info_overflow -+string summary_description -+string tablist_description -+string timer_description -+string toolbar_description -+style AlertDialog_AppCompat -+style AlertDialog_AppCompat_Light -+style Animation_AppCompat_Dialog -+style Animation_AppCompat_DropDownUp -+style Animation_AppCompat_Tooltip -+style Animation_Catalyst_LogBox -+style Animation_Catalyst_RedBox -+style Base_AlertDialog_AppCompat -+style Base_AlertDialog_AppCompat_Light -+style Base_Animation_AppCompat_Dialog -+style Base_Animation_AppCompat_DropDownUp -+style Base_Animation_AppCompat_Tooltip -+style Base_DialogWindowTitleBackground_AppCompat -+style Base_DialogWindowTitle_AppCompat -+style Base_TextAppearance_AppCompat -+style Base_TextAppearance_AppCompat_Body1 -+style Base_TextAppearance_AppCompat_Body2 -+style Base_TextAppearance_AppCompat_Button -+style Base_TextAppearance_AppCompat_Caption -+style Base_TextAppearance_AppCompat_Display1 -+style Base_TextAppearance_AppCompat_Display2 -+style Base_TextAppearance_AppCompat_Display3 -+style Base_TextAppearance_AppCompat_Display4 -+style Base_TextAppearance_AppCompat_Headline -+style Base_TextAppearance_AppCompat_Inverse -+style Base_TextAppearance_AppCompat_Large -+style Base_TextAppearance_AppCompat_Large_Inverse -+style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large -+style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small -+style Base_TextAppearance_AppCompat_Medium -+style Base_TextAppearance_AppCompat_Medium_Inverse -+style Base_TextAppearance_AppCompat_Menu -+style Base_TextAppearance_AppCompat_SearchResult -+style Base_TextAppearance_AppCompat_SearchResult_Subtitle -+style Base_TextAppearance_AppCompat_SearchResult_Title -+style Base_TextAppearance_AppCompat_Small -+style Base_TextAppearance_AppCompat_Small_Inverse -+style Base_TextAppearance_AppCompat_Subhead -+style Base_TextAppearance_AppCompat_Subhead_Inverse -+style Base_TextAppearance_AppCompat_Title -+style Base_TextAppearance_AppCompat_Title_Inverse -+style Base_TextAppearance_AppCompat_Tooltip -+style Base_TextAppearance_AppCompat_Widget_ActionBar_Menu -+style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle -+style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse -+style Base_TextAppearance_AppCompat_Widget_ActionBar_Title -+style Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse -+style Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle -+style Base_TextAppearance_AppCompat_Widget_ActionMode_Title -+style Base_TextAppearance_AppCompat_Widget_Button -+style Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored -+style Base_TextAppearance_AppCompat_Widget_Button_Colored -+style Base_TextAppearance_AppCompat_Widget_Button_Inverse -+style Base_TextAppearance_AppCompat_Widget_DropDownItem -+style Base_TextAppearance_AppCompat_Widget_PopupMenu_Header -+style Base_TextAppearance_AppCompat_Widget_PopupMenu_Large -+style Base_TextAppearance_AppCompat_Widget_PopupMenu_Small -+style Base_TextAppearance_AppCompat_Widget_Switch -+style Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem -+style Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item -+style Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle -+style Base_TextAppearance_Widget_AppCompat_Toolbar_Title -+style Base_ThemeOverlay_AppCompat -+style Base_ThemeOverlay_AppCompat_ActionBar -+style Base_ThemeOverlay_AppCompat_Dark -+style Base_ThemeOverlay_AppCompat_Dark_ActionBar -+style Base_ThemeOverlay_AppCompat_Dialog -+style Base_ThemeOverlay_AppCompat_Dialog_Alert -+style Base_ThemeOverlay_AppCompat_Light -+style Base_Theme_AppCompat -+style Base_Theme_AppCompat_CompactMenu -+style Base_Theme_AppCompat_Dialog -+style Base_Theme_AppCompat_DialogWhenLarge -+style Base_Theme_AppCompat_Dialog_Alert -+style Base_Theme_AppCompat_Dialog_FixedSize -+style Base_Theme_AppCompat_Dialog_MinWidth -+style Base_Theme_AppCompat_Light -+style Base_Theme_AppCompat_Light_DarkActionBar -+style Base_Theme_AppCompat_Light_Dialog -+style Base_Theme_AppCompat_Light_DialogWhenLarge -+style Base_Theme_AppCompat_Light_Dialog_Alert -+style Base_Theme_AppCompat_Light_Dialog_FixedSize -+style Base_Theme_AppCompat_Light_Dialog_MinWidth -+style Base_V21_ThemeOverlay_AppCompat_Dialog -+style Base_V21_Theme_AppCompat -+style Base_V21_Theme_AppCompat_Dialog -+style Base_V21_Theme_AppCompat_Light -+style Base_V21_Theme_AppCompat_Light_Dialog -+style Base_V22_Theme_AppCompat -+style Base_V22_Theme_AppCompat_Light -+style Base_V23_Theme_AppCompat -+style Base_V23_Theme_AppCompat_Light -+style Base_V26_Theme_AppCompat -+style Base_V26_Theme_AppCompat_Light -+style Base_V26_Widget_AppCompat_Toolbar -+style Base_V28_Theme_AppCompat -+style Base_V28_Theme_AppCompat_Light -+style Base_V7_ThemeOverlay_AppCompat_Dialog -+style Base_V7_Theme_AppCompat -+style Base_V7_Theme_AppCompat_Dialog -+style Base_V7_Theme_AppCompat_Light -+style Base_V7_Theme_AppCompat_Light_Dialog -+style Base_V7_Widget_AppCompat_AutoCompleteTextView -+style Base_V7_Widget_AppCompat_EditText -+style Base_V7_Widget_AppCompat_Toolbar -+style Base_Widget_AppCompat_ActionBar -+style Base_Widget_AppCompat_ActionBar_Solid -+style Base_Widget_AppCompat_ActionBar_TabBar -+style Base_Widget_AppCompat_ActionBar_TabText -+style Base_Widget_AppCompat_ActionBar_TabView -+style Base_Widget_AppCompat_ActionButton -+style Base_Widget_AppCompat_ActionButton_CloseMode -+style Base_Widget_AppCompat_ActionButton_Overflow -+style Base_Widget_AppCompat_ActionMode -+style Base_Widget_AppCompat_ActivityChooserView -+style Base_Widget_AppCompat_AutoCompleteTextView -+style Base_Widget_AppCompat_Button -+style Base_Widget_AppCompat_ButtonBar -+style Base_Widget_AppCompat_ButtonBar_AlertDialog -+style Base_Widget_AppCompat_Button_Borderless -+style Base_Widget_AppCompat_Button_Borderless_Colored -+style Base_Widget_AppCompat_Button_ButtonBar_AlertDialog -+style Base_Widget_AppCompat_Button_Colored -+style Base_Widget_AppCompat_Button_Small -+style Base_Widget_AppCompat_CompoundButton_CheckBox -+style Base_Widget_AppCompat_CompoundButton_RadioButton -+style Base_Widget_AppCompat_CompoundButton_Switch -+style Base_Widget_AppCompat_DrawerArrowToggle -+style Base_Widget_AppCompat_DrawerArrowToggle_Common -+style Base_Widget_AppCompat_DropDownItem_Spinner -+style Base_Widget_AppCompat_EditText -+style Base_Widget_AppCompat_ImageButton -+style Base_Widget_AppCompat_Light_ActionBar -+style Base_Widget_AppCompat_Light_ActionBar_Solid -+style Base_Widget_AppCompat_Light_ActionBar_TabBar -+style Base_Widget_AppCompat_Light_ActionBar_TabText -+style Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse -+style Base_Widget_AppCompat_Light_ActionBar_TabView -+style Base_Widget_AppCompat_Light_PopupMenu -+style Base_Widget_AppCompat_Light_PopupMenu_Overflow -+style Base_Widget_AppCompat_ListMenuView -+style Base_Widget_AppCompat_ListPopupWindow -+style Base_Widget_AppCompat_ListView -+style Base_Widget_AppCompat_ListView_DropDown -+style Base_Widget_AppCompat_ListView_Menu -+style Base_Widget_AppCompat_PopupMenu -+style Base_Widget_AppCompat_PopupMenu_Overflow -+style Base_Widget_AppCompat_PopupWindow -+style Base_Widget_AppCompat_ProgressBar -+style Base_Widget_AppCompat_ProgressBar_Horizontal -+style Base_Widget_AppCompat_RatingBar -+style Base_Widget_AppCompat_RatingBar_Indicator -+style Base_Widget_AppCompat_RatingBar_Small -+style Base_Widget_AppCompat_SearchView -+style Base_Widget_AppCompat_SearchView_ActionBar -+style Base_Widget_AppCompat_SeekBar -+style Base_Widget_AppCompat_SeekBar_Discrete -+style Base_Widget_AppCompat_Spinner -+style Base_Widget_AppCompat_Spinner_Underlined -+style Base_Widget_AppCompat_TextView -+style Base_Widget_AppCompat_TextView_SpinnerItem -+style Base_Widget_AppCompat_Toolbar -+style Base_Widget_AppCompat_Toolbar_Button_Navigation -+style CalendarDatePickerDialog -+style CalendarDatePickerStyle -+style DialogAnimationFade -+style DialogAnimationSlide -+style Platform_AppCompat -+style Platform_AppCompat_Light -+style Platform_ThemeOverlay_AppCompat -+style Platform_ThemeOverlay_AppCompat_Dark -+style Platform_ThemeOverlay_AppCompat_Light -+style Platform_V21_AppCompat -+style Platform_V21_AppCompat_Light -+style Platform_V25_AppCompat -+style Platform_V25_AppCompat_Light -+style Platform_Widget_AppCompat_Spinner -+style RtlOverlay_DialogWindowTitle_AppCompat -+style RtlOverlay_Widget_AppCompat_ActionBar_TitleItem -+style RtlOverlay_Widget_AppCompat_DialogTitle_Icon -+style RtlOverlay_Widget_AppCompat_PopupMenuItem -+style RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup -+style RtlOverlay_Widget_AppCompat_PopupMenuItem_Shortcut -+style RtlOverlay_Widget_AppCompat_PopupMenuItem_SubmenuArrow -+style RtlOverlay_Widget_AppCompat_PopupMenuItem_Text -+style RtlOverlay_Widget_AppCompat_PopupMenuItem_Title -+style RtlOverlay_Widget_AppCompat_SearchView_MagIcon -+style RtlOverlay_Widget_AppCompat_Search_DropDown -+style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 -+style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 -+style RtlOverlay_Widget_AppCompat_Search_DropDown_Query -+style RtlOverlay_Widget_AppCompat_Search_DropDown_Text -+style RtlUnderlay_Widget_AppCompat_ActionButton -+style RtlUnderlay_Widget_AppCompat_ActionButton_Overflow -+style SpinnerDatePickerDialog -+style SpinnerDatePickerStyle -+style TextAppearance_AppCompat -+style TextAppearance_AppCompat_Body1 -+style TextAppearance_AppCompat_Body2 -+style TextAppearance_AppCompat_Button -+style TextAppearance_AppCompat_Caption -+style TextAppearance_AppCompat_Display1 -+style TextAppearance_AppCompat_Display2 -+style TextAppearance_AppCompat_Display3 -+style TextAppearance_AppCompat_Display4 -+style TextAppearance_AppCompat_Headline -+style TextAppearance_AppCompat_Inverse -+style TextAppearance_AppCompat_Large -+style TextAppearance_AppCompat_Large_Inverse -+style TextAppearance_AppCompat_Light_SearchResult_Subtitle -+style TextAppearance_AppCompat_Light_SearchResult_Title -+style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large -+style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small -+style TextAppearance_AppCompat_Medium -+style TextAppearance_AppCompat_Medium_Inverse -+style TextAppearance_AppCompat_Menu -+style TextAppearance_AppCompat_SearchResult_Subtitle -+style TextAppearance_AppCompat_SearchResult_Title -+style TextAppearance_AppCompat_Small -+style TextAppearance_AppCompat_Small_Inverse -+style TextAppearance_AppCompat_Subhead -+style TextAppearance_AppCompat_Subhead_Inverse -+style TextAppearance_AppCompat_Title -+style TextAppearance_AppCompat_Title_Inverse -+style TextAppearance_AppCompat_Tooltip -+style TextAppearance_AppCompat_Widget_ActionBar_Menu -+style TextAppearance_AppCompat_Widget_ActionBar_Subtitle -+style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse -+style TextAppearance_AppCompat_Widget_ActionBar_Title -+style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse -+style TextAppearance_AppCompat_Widget_ActionMode_Subtitle -+style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse -+style TextAppearance_AppCompat_Widget_ActionMode_Title -+style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse -+style TextAppearance_AppCompat_Widget_Button -+style TextAppearance_AppCompat_Widget_Button_Borderless_Colored -+style TextAppearance_AppCompat_Widget_Button_Colored -+style TextAppearance_AppCompat_Widget_Button_Inverse -+style TextAppearance_AppCompat_Widget_DropDownItem -+style TextAppearance_AppCompat_Widget_PopupMenu_Header -+style TextAppearance_AppCompat_Widget_PopupMenu_Large -+style TextAppearance_AppCompat_Widget_PopupMenu_Small -+style TextAppearance_AppCompat_Widget_Switch -+style TextAppearance_AppCompat_Widget_TextView_SpinnerItem -+style TextAppearance_Compat_Notification -+style TextAppearance_Compat_Notification_Info -+style TextAppearance_Compat_Notification_Line2 -+style TextAppearance_Compat_Notification_Time -+style TextAppearance_Compat_Notification_Title -+style TextAppearance_Widget_AppCompat_ExpandedMenu_Item -+style TextAppearance_Widget_AppCompat_Toolbar_Subtitle -+style TextAppearance_Widget_AppCompat_Toolbar_Title -+style Theme -+style ThemeOverlay_AppCompat -+style ThemeOverlay_AppCompat_ActionBar -+style ThemeOverlay_AppCompat_Dark -+style ThemeOverlay_AppCompat_Dark_ActionBar -+style ThemeOverlay_AppCompat_DayNight -+style ThemeOverlay_AppCompat_DayNight_ActionBar -+style ThemeOverlay_AppCompat_Dialog -+style ThemeOverlay_AppCompat_Dialog_Alert -+style ThemeOverlay_AppCompat_Light -+style Theme_AppCompat -+style Theme_AppCompat_CompactMenu -+style Theme_AppCompat_DayNight -+style Theme_AppCompat_DayNight_DarkActionBar -+style Theme_AppCompat_DayNight_Dialog -+style Theme_AppCompat_DayNight_DialogWhenLarge -+style Theme_AppCompat_DayNight_Dialog_Alert -+style Theme_AppCompat_DayNight_Dialog_MinWidth -+style Theme_AppCompat_DayNight_NoActionBar -+style Theme_AppCompat_Dialog -+style Theme_AppCompat_DialogWhenLarge -+style Theme_AppCompat_Dialog_Alert -+style Theme_AppCompat_Dialog_MinWidth -+style Theme_AppCompat_Empty -+style Theme_AppCompat_Light -+style Theme_AppCompat_Light_DarkActionBar -+style Theme_AppCompat_Light_Dialog -+style Theme_AppCompat_Light_DialogWhenLarge -+style Theme_AppCompat_Light_Dialog_Alert -+style Theme_AppCompat_Light_Dialog_MinWidth -+style Theme_AppCompat_Light_NoActionBar -+style Theme_AppCompat_NoActionBar -+style Theme_AutofillInlineSuggestion -+style Theme_Catalyst -+style Theme_Catalyst_LogBox -+style Theme_Catalyst_RedBox -+style Theme_FullScreenDialog -+style Theme_FullScreenDialogAnimatedFade -+style Theme_FullScreenDialogAnimatedSlide -+style Theme_ReactNative_AppCompat_Light -+style Theme_ReactNative_AppCompat_Light_NoActionBar_FullScreen -+style Widget_AppCompat_ActionBar -+style Widget_AppCompat_ActionBar_Solid -+style Widget_AppCompat_ActionBar_TabBar -+style Widget_AppCompat_ActionBar_TabText -+style Widget_AppCompat_ActionBar_TabView -+style Widget_AppCompat_ActionButton -+style Widget_AppCompat_ActionButton_CloseMode -+style Widget_AppCompat_ActionButton_Overflow -+style Widget_AppCompat_ActionMode -+style Widget_AppCompat_ActivityChooserView -+style Widget_AppCompat_AutoCompleteTextView -+style Widget_AppCompat_Button -+style Widget_AppCompat_ButtonBar -+style Widget_AppCompat_ButtonBar_AlertDialog -+style Widget_AppCompat_Button_Borderless -+style Widget_AppCompat_Button_Borderless_Colored -+style Widget_AppCompat_Button_ButtonBar_AlertDialog -+style Widget_AppCompat_Button_Colored -+style Widget_AppCompat_Button_Small -+style Widget_AppCompat_CompoundButton_CheckBox -+style Widget_AppCompat_CompoundButton_RadioButton -+style Widget_AppCompat_CompoundButton_Switch -+style Widget_AppCompat_DrawerArrowToggle -+style Widget_AppCompat_DropDownItem_Spinner -+style Widget_AppCompat_EditText -+style Widget_AppCompat_ImageButton -+style Widget_AppCompat_Light_ActionBar -+style Widget_AppCompat_Light_ActionBar_Solid -+style Widget_AppCompat_Light_ActionBar_Solid_Inverse -+style Widget_AppCompat_Light_ActionBar_TabBar -+style Widget_AppCompat_Light_ActionBar_TabBar_Inverse -+style Widget_AppCompat_Light_ActionBar_TabText -+style Widget_AppCompat_Light_ActionBar_TabText_Inverse -+style Widget_AppCompat_Light_ActionBar_TabView -+style Widget_AppCompat_Light_ActionBar_TabView_Inverse -+style Widget_AppCompat_Light_ActionButton -+style Widget_AppCompat_Light_ActionButton_CloseMode -+style Widget_AppCompat_Light_ActionButton_Overflow -+style Widget_AppCompat_Light_ActionMode_Inverse -+style Widget_AppCompat_Light_ActivityChooserView -+style Widget_AppCompat_Light_AutoCompleteTextView -+style Widget_AppCompat_Light_DropDownItem_Spinner -+style Widget_AppCompat_Light_ListPopupWindow -+style Widget_AppCompat_Light_ListView_DropDown -+style Widget_AppCompat_Light_PopupMenu -+style Widget_AppCompat_Light_PopupMenu_Overflow -+style Widget_AppCompat_Light_SearchView -+style Widget_AppCompat_Light_Spinner_DropDown_ActionBar -+style Widget_AppCompat_ListMenuView -+style Widget_AppCompat_ListPopupWindow -+style Widget_AppCompat_ListView -+style Widget_AppCompat_ListView_DropDown -+style Widget_AppCompat_ListView_Menu -+style Widget_AppCompat_PopupMenu -+style Widget_AppCompat_PopupMenu_Overflow -+style Widget_AppCompat_PopupWindow -+style Widget_AppCompat_ProgressBar -+style Widget_AppCompat_ProgressBar_Horizontal -+style Widget_AppCompat_RatingBar -+style Widget_AppCompat_RatingBar_Indicator -+style Widget_AppCompat_RatingBar_Small -+style Widget_AppCompat_SearchView -+style Widget_AppCompat_SearchView_ActionBar -+style Widget_AppCompat_SeekBar -+style Widget_AppCompat_SeekBar_Discrete -+style Widget_AppCompat_Spinner -+style Widget_AppCompat_Spinner_DropDown -+style Widget_AppCompat_Spinner_DropDown_ActionBar -+style Widget_AppCompat_Spinner_Underlined -+style Widget_AppCompat_TextView -+style Widget_AppCompat_TextView_SpinnerItem -+style Widget_AppCompat_Toolbar -+style Widget_AppCompat_Toolbar_Button_Navigation -+style Widget_Autofill -+style Widget_Autofill_InlineSuggestionChip -+style Widget_Autofill_InlineSuggestionEndIconStyle -+style Widget_Autofill_InlineSuggestionStartIconStyle -+style Widget_Autofill_InlineSuggestionSubtitle -+style Widget_Autofill_InlineSuggestionTitle -+style Widget_Compat_NotificationActionContainer -+style Widget_Compat_NotificationActionText -+style redboxButton -+styleable ActionBar background backgroundSplit backgroundStacked contentInsetEnd contentInsetEndWithActions contentInsetLeft contentInsetRight contentInsetStart contentInsetStartWithNavigation customNavigationLayout displayOptions divider elevation height hideOnContentScroll homeAsUpIndicator homeLayout icon indeterminateProgressStyle itemPadding logo navigationMode popupTheme progressBarPadding progressBarStyle subtitle subtitleTextStyle title titleTextStyle -+styleable ActionBarLayout android_layout_gravity -+styleable ActionMenuItemView android_minWidth -+styleable ActionMenuView -+styleable ActionMode background backgroundSplit closeItemLayout height subtitleTextStyle titleTextStyle -+styleable ActivityChooserView expandActivityOverflowButtonDrawable initialActivityCount -+styleable AlertDialog android_layout buttonIconDimen buttonPanelSideLayout listItemLayout listLayout multiChoiceItemLayout showTitle singleChoiceItemLayout -+styleable AnimatedStateListDrawableCompat android_constantSize android_dither android_enterFadeDuration android_exitFadeDuration android_variablePadding android_visible -+styleable AnimatedStateListDrawableItem android_drawable android_id -+styleable AnimatedStateListDrawableTransition android_drawable android_fromId android_reversible android_toId -+styleable AppCompatEmojiHelper -+styleable AppCompatImageView android_src srcCompat tint tintMode -+styleable AppCompatSeekBar android_thumb tickMark tickMarkTint tickMarkTintMode -+styleable AppCompatTextHelper android_drawableBottom android_drawableEnd android_drawableLeft android_drawableRight android_drawableStart android_drawableTop android_textAppearance -+styleable AppCompatTextView android_textAppearance autoSizeMaxTextSize autoSizeMinTextSize autoSizePresetSizes autoSizeStepGranularity autoSizeTextType drawableBottomCompat drawableEndCompat drawableLeftCompat drawableRightCompat drawableStartCompat drawableTint drawableTintMode drawableTopCompat emojiCompatEnabled firstBaselineToTopHeight fontFamily fontVariationSettings lastBaselineToBottomHeight lineHeight textAllCaps textLocale -+styleable AppCompatTheme actionBarDivider actionBarItemBackground actionBarPopupTheme actionBarSize actionBarSplitStyle actionBarStyle actionBarTabBarStyle actionBarTabStyle actionBarTabTextStyle actionBarTheme actionBarWidgetTheme actionButtonStyle actionDropDownStyle actionMenuTextAppearance actionMenuTextColor actionModeBackground actionModeCloseButtonStyle actionModeCloseContentDescription actionModeCloseDrawable actionModeCopyDrawable actionModeCutDrawable actionModeFindDrawable actionModePasteDrawable actionModePopupWindowStyle actionModeSelectAllDrawable actionModeShareDrawable actionModeSplitBackground actionModeStyle actionModeTheme actionModeWebSearchDrawable actionOverflowButtonStyle actionOverflowMenuStyle activityChooserViewStyle alertDialogButtonGroupStyle alertDialogCenterButtons alertDialogStyle alertDialogTheme android_windowAnimationStyle android_windowIsFloating autoCompleteTextViewStyle borderlessButtonStyle buttonBarButtonStyle buttonBarNegativeButtonStyle buttonBarNeutralButtonStyle buttonBarPositiveButtonStyle buttonBarStyle buttonStyle buttonStyleSmall checkboxStyle checkedTextViewStyle colorAccent colorBackgroundFloating colorButtonNormal colorControlActivated colorControlHighlight colorControlNormal colorError colorPrimary colorPrimaryDark colorSwitchThumbNormal controlBackground dialogCornerRadius dialogPreferredPadding dialogTheme dividerHorizontal dividerVertical dropDownListViewStyle dropdownListPreferredItemHeight editTextBackground editTextColor editTextStyle homeAsUpIndicator imageButtonStyle listChoiceBackgroundIndicator listChoiceIndicatorMultipleAnimated listChoiceIndicatorSingleAnimated listDividerAlertDialog listMenuViewStyle listPopupWindowStyle listPreferredItemHeight listPreferredItemHeightLarge listPreferredItemHeightSmall listPreferredItemPaddingEnd listPreferredItemPaddingLeft listPreferredItemPaddingRight listPreferredItemPaddingStart panelBackground panelMenuListTheme panelMenuListWidth popupMenuStyle popupWindowStyle radioButtonStyle ratingBarStyle ratingBarStyleIndicator ratingBarStyleSmall searchViewStyle seekBarStyle selectableItemBackground selectableItemBackgroundBorderless spinnerDropDownItemStyle spinnerStyle switchStyle textAppearanceLargePopupMenu textAppearanceListItem textAppearanceListItemSecondary textAppearanceListItemSmall textAppearancePopupMenuHeader textAppearanceSearchResultSubtitle textAppearanceSearchResultTitle textAppearanceSmallPopupMenu textColorAlertDialogListItem textColorSearchUrl toolbarNavigationButtonStyle toolbarStyle tooltipForegroundColor tooltipFrameBackground viewInflaterClass windowActionBar windowActionBarOverlay windowActionModeOverlay windowFixedHeightMajor windowFixedHeightMinor windowFixedWidthMajor windowFixedWidthMinor windowMinWidthMajor windowMinWidthMinor windowNoTitle -+styleable Autofill_InlineSuggestion autofillInlineSuggestionChip autofillInlineSuggestionEndIconStyle autofillInlineSuggestionStartIconStyle autofillInlineSuggestionSubtitle autofillInlineSuggestionTitle isAutofillInlineSuggestionTheme -+styleable ButtonBarLayout allowStacking -+styleable Capability queryPatterns shortcutMatchRequired -+styleable CheckedTextView android_checkMark checkMarkCompat checkMarkTint checkMarkTintMode -+styleable ColorStateListItem alpha android_alpha android_color android_lStar lStar -+styleable CompoundButton android_button buttonCompat buttonTint buttonTintMode -+styleable DrawerArrowToggle arrowHeadLength arrowShaftLength barLength color drawableSize gapBetweenBars spinBars thickness -+styleable FontFamily fontProviderAuthority fontProviderCerts fontProviderFetchStrategy fontProviderFetchTimeout fontProviderPackage fontProviderQuery fontProviderSystemFontFamily -+styleable FontFamilyFont android_font android_fontStyle android_fontVariationSettings android_fontWeight android_ttcIndex font fontStyle fontVariationSettings fontWeight ttcIndex -+styleable Fragment android_id android_name android_tag -+styleable FragmentContainerView android_name android_tag -+styleable GenericDraweeHierarchy actualImageScaleType backgroundImage fadeDuration failureImage failureImageScaleType overlayImage placeholderImage placeholderImageScaleType pressedStateOverlayImage progressBarAutoRotateInterval progressBarImage progressBarImageScaleType retryImage retryImageScaleType roundAsCircle roundBottomEnd roundBottomLeft roundBottomRight roundBottomStart roundTopEnd roundTopLeft roundTopRight roundTopStart roundWithOverlayColor roundedCornerRadius roundingBorderColor roundingBorderPadding roundingBorderWidth viewAspectRatio -+styleable GradientColor android_centerColor android_centerX android_centerY android_endColor android_endX android_endY android_gradientRadius android_startColor android_startX android_startY android_tileMode android_type -+styleable GradientColorItem android_color android_offset -+styleable LinearLayoutCompat android_baselineAligned android_baselineAlignedChildIndex android_gravity android_orientation android_weightSum divider dividerPadding measureWithLargestChild showDividers -+styleable LinearLayoutCompat_Layout android_layout_gravity android_layout_height android_layout_weight android_layout_width -+styleable ListPopupWindow android_dropDownHorizontalOffset android_dropDownVerticalOffset -+styleable MenuGroup android_checkableBehavior android_enabled android_id android_menuCategory android_orderInCategory android_visible -+styleable MenuItem actionLayout actionProviderClass actionViewClass alphabeticModifiers android_alphabeticShortcut android_checkable android_checked android_enabled android_icon android_id android_menuCategory android_numericShortcut android_onClick android_orderInCategory android_title android_titleCondensed android_visible contentDescription iconTint iconTintMode numericModifiers showAsAction tooltipText -+styleable MenuView android_headerBackground android_horizontalDivider android_itemBackground android_itemIconDisabledAlpha android_itemTextAppearance android_verticalDivider android_windowAnimationStyle preserveIconSpacing subMenuArrow -+styleable PopupWindow android_popupAnimationStyle android_popupBackground overlapAnchor -+styleable PopupWindowBackgroundState state_above_anchor -+styleable RecycleListView paddingBottomNoButtons paddingTopNoTitle -+styleable SearchView android_focusable android_imeOptions android_inputType android_maxWidth closeIcon commitIcon defaultQueryHint goIcon iconifiedByDefault layout queryBackground queryHint searchHintIcon searchIcon submitBackground suggestionRowLayout voiceIcon -+styleable SimpleDraweeView actualImageResource actualImageScaleType actualImageUri backgroundImage fadeDuration failureImage failureImageScaleType overlayImage placeholderImage placeholderImageScaleType pressedStateOverlayImage progressBarAutoRotateInterval progressBarImage progressBarImageScaleType retryImage retryImageScaleType roundAsCircle roundBottomEnd roundBottomLeft roundBottomRight roundBottomStart roundTopEnd roundTopLeft roundTopRight roundTopStart roundWithOverlayColor roundedCornerRadius roundingBorderColor roundingBorderPadding roundingBorderWidth viewAspectRatio -+styleable Spinner android_dropDownWidth android_entries android_popupBackground android_prompt popupTheme -+styleable StateListDrawable android_constantSize android_dither android_enterFadeDuration android_exitFadeDuration android_variablePadding android_visible -+styleable StateListDrawableItem android_drawable -+styleable SwitchCompat android_textOff android_textOn android_thumb showText splitTrack switchMinWidth switchPadding switchTextAppearance thumbTextPadding thumbTint thumbTintMode track trackTint trackTintMode -+styleable TextAppearance android_fontFamily android_shadowColor android_shadowDx android_shadowDy android_shadowRadius android_textColor android_textColorHint android_textColorLink android_textFontWeight android_textSize android_textStyle android_typeface fontFamily fontVariationSettings textAllCaps textLocale -+styleable Toolbar android_gravity android_minHeight buttonGravity collapseContentDescription collapseIcon contentInsetEnd contentInsetEndWithActions contentInsetLeft contentInsetRight contentInsetStart contentInsetStartWithNavigation logo logoDescription maxButtonHeight menu navigationContentDescription navigationIcon popupTheme subtitle subtitleTextAppearance subtitleTextColor title titleMargin titleMarginBottom titleMarginEnd titleMarginStart titleMarginTop titleMargins titleTextAppearance titleTextColor -+styleable View android_focusable android_theme paddingEnd paddingStart theme -+styleable ViewBackgroundHelper android_background backgroundTint backgroundTintMode -+styleable ViewStubCompat android_id android_inflatedId android_layout -+xml rn_dev_preferences -diff --git a/node_modules/@mattermost/react-native-paste-input/android/build/outputs/logs/manifest-merger-debug-report.txt b/node_modules/@mattermost/react-native-paste-input/android/build/outputs/logs/manifest-merger-debug-report.txt -new file mode 100644 -index 0000000..f153aa0 ---- /dev/null -+++ b/node_modules/@mattermost/react-native-paste-input/android/build/outputs/logs/manifest-merger-debug-report.txt -@@ -0,0 +1,25 @@ -+-- Merging decision tree log --- -+manifest -+ADDED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml:1:1-4:12 -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml:1:1-4:12 -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml:1:1-4:12 -+ package -+ ADDED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml:2:11-46 -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ xmlns:android -+ ADDED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml:1:11-69 -+uses-sdk -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml reason: use-sdk injection requested -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ android:targetSdkVersion -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ ADDED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ android:minSdkVersion -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ ADDED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -+ INJECTED from /Users/john/projects/professional/bluesky/social-app/node_modules/@mattermost/react-native-paste-input/android/src/main/AndroidManifest.xml -diff --git a/node_modules/@mattermost/react-native-paste-input/android/gradle.properties b/node_modules/@mattermost/react-native-paste-input/android/gradle.properties -index 19b61ff..04a9951 100644 ---- a/node_modules/@mattermost/react-native-paste-input/android/gradle.properties -+++ b/node_modules/@mattermost/react-native-paste-input/android/gradle.properties -@@ -1,4 +1,4 @@ --PasteInput_kotlinVersion=1.3.50 -+PasteInput_kotlinVersion=1.5.20 - PasteInput_compileSdkVersion=30 - PasteInput_buildToolsVersion=30.0.2 - PasteInput_targetSdkVersion=30 -diff --git a/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m b/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m -index e916023..0564d97 100644 ---- a/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m -+++ b/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m -@@ -22,6 +22,11 @@ - (instancetype)initWithBridge:(RCTBridge *)bridge - _backedTextInputView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - _backedTextInputView.textInputDelegate = self; - -+ // Disable inline predictions to prevent jank in the composer -+ if (@available(iOS 17.0, *)) { -+ _backedTextInputView.inlinePredictionType = UITextInlinePredictionTypeNo; -+ } -+ - [self addSubview:_backedTextInputView]; - } - diff --git a/patches/@mattermost+react-native-paste-input+0.7.1.patch b/patches/@mattermost+react-native-paste-input+0.7.1.patch new file mode 100644 index 0000000000..dbf55b0959 --- /dev/null +++ b/patches/@mattermost+react-native-paste-input+0.7.1.patch @@ -0,0 +1,16 @@ +diff --git a/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m b/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m +index e916023..0564d97 100644 +--- a/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m ++++ b/node_modules/@mattermost/react-native-paste-input/ios/PasteInputView.m +@@ -22,6 +22,11 @@ - (instancetype)initWithBridge:(RCTBridge *)bridge + _backedTextInputView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + _backedTextInputView.textInputDelegate = self; + ++ // Disable inline predictions to prevent jank in the composer ++ if (@available(iOS 17.0, *)) { ++ _backedTextInputView.inlinePredictionType = UITextInlinePredictionTypeNo; ++ } ++ + [self addSubview:_backedTextInputView]; + } + diff --git a/patches/expo-image-picker+14.7.1.patch b/patches/expo-image-picker+14.7.1.patch deleted file mode 100644 index 046eb4f4f3..0000000000 --- a/patches/expo-image-picker+14.7.1.patch +++ /dev/null @@ -1,112 +0,0 @@ -diff --git a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/ImagePickerModule.kt b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/ImagePickerModule.kt -index 3f50f8c..ee47fa1 100644 ---- a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/ImagePickerModule.kt -+++ b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/ImagePickerModule.kt -@@ -33,7 +33,9 @@ import kotlin.coroutines.resumeWithException - // TODO(@bbarthec): rename to ExpoImagePicker - private const val moduleName = "ExponentImagePicker" - -+ - class ImagePickerModule : Module() { -+ private var isPickerOpen = false - - override fun definition() = ModuleDefinition { - Name(moduleName) -@@ -129,6 +131,11 @@ class ImagePickerModule : Module() { - options: ImagePickerOptions - ): Any { - return try { -+ if(isPickerOpen) { -+ return ImagePickerResponse(canceled = true) -+ } -+ -+ isPickerOpen = true - var result = launchPicker(pickerLauncher) - if ( - !options.allowsMultipleSelection && -@@ -143,6 +150,8 @@ class ImagePickerModule : Module() { - mediaHandler.readExtras(result.data, options) - } catch (cause: OperationCanceledException) { - return ImagePickerResponse(canceled = true) -+ } finally { -+ isPickerOpen = false - } - } - -diff --git a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt -index ff15c91..9763012 100644 ---- a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt -+++ b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt -@@ -5,12 +5,7 @@ import android.content.ContentResolver - import android.content.Context - import android.content.Intent - import android.net.Uri --import androidx.activity.result.PickVisualMediaRequest --import androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia --import androidx.activity.result.contract.ActivityResultContracts.PickMultipleVisualMedia - import expo.modules.imagepicker.ImagePickerOptions --import expo.modules.imagepicker.MediaTypes --import expo.modules.imagepicker.UNLIMITED_SELECTION - import expo.modules.imagepicker.getAllDataUris - import expo.modules.imagepicker.toMediaType - import expo.modules.kotlin.activityresult.AppContextActivityResultContract -@@ -26,51 +21,26 @@ import java.io.Serializable - * @see [androidx.activity.result.contract.ActivityResultContracts.GetMultipleContents] - */ - internal class ImageLibraryContract( -- private val appContextProvider: AppContextProvider -+ private val appContextProvider: AppContextProvider, - ) : AppContextActivityResultContract { - private val contentResolver: ContentResolver - get() = appContextProvider.appContext.reactContext?.contentResolver - ?: throw Exceptions.ReactContextLost() - - override fun createIntent(context: Context, input: ImageLibraryContractOptions): Intent { -- val request = PickVisualMediaRequest.Builder() -- .setMediaType( -- when (input.options.mediaTypes) { -- MediaTypes.VIDEOS -> { -- PickVisualMedia.VideoOnly -- } -- -- MediaTypes.IMAGES -> { -- PickVisualMedia.ImageOnly -- } -- -- else -> { -- PickVisualMedia.ImageAndVideo -- } -- } -- ) -- .build() -+ val intent = Intent(Intent.ACTION_GET_CONTENT) -+ .addCategory(Intent.CATEGORY_OPENABLE) -+ .setType("image/*") - - if (input.options.allowsMultipleSelection) { -- val selectionLimit = input.options.selectionLimit -- -- if (selectionLimit == 1) { -- // If multiple selection is allowed but the limit is 1, we should ignore -- // the multiple selection flag and just treat it as a single selection. -- return PickVisualMedia().createIntent(context, request) -+ if(input.options.selectionLimit == 1) { -+ return intent - } - -- if (selectionLimit > 1) { -- return PickMultipleVisualMedia(selectionLimit).createIntent(context, request) -- } -- -- // If the selection limit is 0, it is the same as unlimited selection. -- if (selectionLimit == UNLIMITED_SELECTION) { -- return PickMultipleVisualMedia().createIntent(context, request) -- } -+ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) - } - -- return PickVisualMedia().createIntent(context, request) -+ return intent - } - - override fun parseResult(input: ImageLibraryContractOptions, resultCode: Int, intent: Intent?) = diff --git a/patches/expo-image-picker+14.7.1.patch.md b/patches/expo-image-picker+14.7.1.patch.md deleted file mode 100644 index 47c0daed5d..0000000000 --- a/patches/expo-image-picker+14.7.1.patch.md +++ /dev/null @@ -1,3 +0,0 @@ -added by https://github.com/bluesky-social/social-app/pull/2384#pullrequestreview-1800985521 - -hackfixes the image picker on android so that the user can select from their typical image sources \ No newline at end of file diff --git a/patches/expo-notifications+0.27.6.patch b/patches/expo-notifications+0.28.1.patch similarity index 88% rename from patches/expo-notifications+0.27.6.patch rename to patches/expo-notifications+0.28.1.patch index ba196eca05..41e91446e6 100644 --- a/patches/expo-notifications+0.27.6.patch +++ b/patches/expo-notifications+0.28.1.patch @@ -1,13 +1,13 @@ diff --git a/node_modules/expo-notifications/android/build.gradle b/node_modules/expo-notifications/android/build.gradle -index 97bf4f4..6e9d427 100644 +index d233e1f..cc2f856 100644 --- a/node_modules/expo-notifications/android/build.gradle +++ b/node_modules/expo-notifications/android/build.gradle -@@ -118,6 +118,7 @@ dependencies { +@@ -32,6 +32,7 @@ dependencies { api 'com.google.firebase:firebase-messaging:22.0.0' - + api 'me.leolin:ShortcutBadger:1.1.22@aar' + implementation project(':expo-background-notification-handler') - + if (project.findProject(':expo-modules-test-core')) { testImplementation project(':expo-modules-test-core') diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java @@ -16,14 +16,14 @@ index 0af7fe0..8f2c8d8 100644 +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java @@ -14,6 +14,7 @@ import expo.modules.notifications.notifications.enums.NotificationPriority; import expo.modules.notifications.notifications.model.NotificationContent; - + public class JSONNotificationContentBuilder extends NotificationContent.Builder { + private static final String CHANNEL_ID_KEY = "channelId"; private static final String TITLE_KEY = "title"; private static final String TEXT_KEY = "message"; private static final String SUBTITLE_KEY = "subtitle"; @@ -36,6 +37,7 @@ public class JSONNotificationContentBuilder extends NotificationContent.Builder - + public NotificationContent.Builder setPayload(JSONObject payload) { this.setTitle(getTitle(payload)) + .setChannelId(getChannelId(payload)) @@ -33,7 +33,7 @@ index 0af7fe0..8f2c8d8 100644 @@ -60,6 +62,14 @@ public class JSONNotificationContentBuilder extends NotificationContent.Builder return this; } - + + protected String getChannelId(JSONObject payload) { + try { + return payload.getString(CHANNEL_ID_KEY); @@ -46,71 +46,73 @@ index 0af7fe0..8f2c8d8 100644 try { return payload.getString(TITLE_KEY); diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java -index f1fed19..1619f59 100644 +index f1fed19..166b34f 100644 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java @@ -20,6 +20,7 @@ import expo.modules.notifications.notifications.enums.NotificationPriority; * should be created using {@link NotificationContent.Builder}. */ public class NotificationContent implements Parcelable, Serializable { -+ private String mChannelId; ++ private string mChannelId; private String mTitle; private String mText; private String mSubtitle; -@@ -50,6 +51,9 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -50,6 +51,11 @@ public class NotificationContent implements Parcelable, Serializable { } }; - + + @Nullable -+ public String getChannelId() { return mChannelId; } ++ public String getChannelId() { ++ return mTitle; ++ } + @Nullable public String getTitle() { return mTitle; -@@ -121,6 +125,7 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -121,6 +127,7 @@ public class NotificationContent implements Parcelable, Serializable { } - + protected NotificationContent(Parcel in) { + mChannelId = in.readString(); mTitle = in.readString(); mText = in.readString(); mSubtitle = in.readString(); -@@ -146,6 +151,7 @@ public class NotificationContent implements Parcelable, Serializable { - +@@ -146,6 +153,7 @@ public class NotificationContent implements Parcelable, Serializable { + @Override public void writeToParcel(Parcel dest, int flags) { + dest.writeString(mChannelId); dest.writeString(mTitle); dest.writeString(mText); dest.writeString(mSubtitle); -@@ -166,6 +172,7 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -166,6 +174,7 @@ public class NotificationContent implements Parcelable, Serializable { private static final long serialVersionUID = 397666843266836802L; - + private void writeObject(java.io.ObjectOutputStream out) throws IOException { + out.writeObject(mChannelId); out.writeObject(mTitle); out.writeObject(mText); out.writeObject(mSubtitle); -@@ -190,6 +197,7 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -190,6 +199,7 @@ public class NotificationContent implements Parcelable, Serializable { } - + private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { + mChannelId = (String) in.readObject(); mTitle = (String) in.readObject(); mText = (String) in.readObject(); mSubtitle = (String) in.readObject(); -@@ -240,6 +248,7 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -240,6 +250,7 @@ public class NotificationContent implements Parcelable, Serializable { } - + public static class Builder { -+ private String mChannelId; ++ private string mChannelId; private String mTitle; private String mText; private String mSubtitle; -@@ -260,6 +269,11 @@ public class NotificationContent implements Parcelable, Serializable { +@@ -260,6 +271,11 @@ public class NotificationContent implements Parcelable, Serializable { useDefaultVibrationPattern(); } - + + public Builder setChannelId(String channelId) { + mChannelId = channelId; + return this; @@ -119,8 +121,8 @@ index f1fed19..1619f59 100644 public Builder setTitle(String title) { mTitle = title; return this; -@@ -336,6 +350,7 @@ public class NotificationContent implements Parcelable, Serializable { - +@@ -336,6 +352,7 @@ public class NotificationContent implements Parcelable, Serializable { + public NotificationContent build() { NotificationContent content = new NotificationContent(); + content.mChannelId = mChannelId; @@ -128,28 +130,20 @@ index f1fed19..1619f59 100644 content.mSubtitle = mSubtitle; content.mText = mText; diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java -index 6bd9928..aab71ea 100644 +index 6bd9928..ee93d70 100644 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java -@@ -7,7 +7,6 @@ import android.content.pm.PackageManager; - import android.content.res.Resources; - import android.graphics.Bitmap; - import android.graphics.BitmapFactory; --import android.os.Build; - import android.os.Bundle; - import android.os.Parcel; - import android.provider.Settings; -@@ -48,6 +47,10 @@ public class ExpoNotificationBuilder extends ChannelAwareNotificationBuilder { - +@@ -48,6 +48,10 @@ public class ExpoNotificationBuilder extends ChannelAwareNotificationBuilder { + NotificationContent content = getNotificationContent(); - + + if (content.getChannelId() != null) { + builder.setChannelId(content.getChannelId()); + } + builder.setAutoCancel(content.isAutoDismiss()); builder.setOngoing(content.isSticky()); - + diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt index 55b3a8d..1b99d5b 100644 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt @@ -164,7 +158,7 @@ index 55b3a8d..1b99d5b 100644 import org.json.JSONObject import java.lang.ref.WeakReference import java.util.* - + -open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate { +open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate, BackgroundNotificationHandlerInterface { companion object { @@ -172,7 +166,7 @@ index 55b3a8d..1b99d5b 100644 // than by static properties. Fortunately, using weak references we can @@ -89,12 +92,21 @@ open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseM fun getBackgroundTasks() = sBackgroundTaskConsumerReferences.values.mapNotNull { it.get() } - + override fun onMessageReceived(remoteMessage: RemoteMessage) { - NotificationsService.receive(context, createNotification(remoteMessage)) - getBackgroundTasks().forEach { @@ -187,7 +181,7 @@ index 55b3a8d..1b99d5b 100644 + } } } - + + override fun showMessage(remoteMessage: RemoteMessage) { + NotificationsService.receive(context, createNotification(remoteMessage)) + } diff --git a/patches/expo-updates+0.24.7.patch b/patches/expo-updates+0.25.11.patch similarity index 60% rename from patches/expo-updates+0.24.7.patch rename to patches/expo-updates+0.25.11.patch index 603ae32ef8..5f9eceef48 100644 --- a/patches/expo-updates+0.24.7.patch +++ b/patches/expo-updates+0.25.11.patch @@ -1,11 +1,11 @@ -diff --git a/node_modules/expo-updates/ios/EXUpdates/Update/NewUpdate.swift b/node_modules/expo-updates/ios/EXUpdates/Update/NewUpdate.swift -index 189a5f5..8d5b8e6 100644 ---- a/node_modules/expo-updates/ios/EXUpdates/Update/NewUpdate.swift -+++ b/node_modules/expo-updates/ios/EXUpdates/Update/NewUpdate.swift -@@ -68,13 +68,20 @@ public final class NewUpdate: Update { - processedAssets.append(asset) +diff --git a/node_modules/expo-updates/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift b/node_modules/expo-updates/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift +index b85291e..07a5d3c 100644 +--- a/node_modules/expo-updates/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift ++++ b/node_modules/expo-updates/ios/EXUpdates/Update/ExpoUpdatesUpdate.swift +@@ -78,13 +78,20 @@ public final class ExpoUpdatesUpdate: Update { + status = UpdateStatus.StatusPending } - + + // Instead of relying on various hacks to get the correct format for the specific + // platform on the backend, we can just add this little patch.. + let dateFormatter = DateFormatter() @@ -23,4 +23,4 @@ index 189a5f5..8d5b8e6 100644 + commitTime: date, runtimeVersion: runtimeVersion, keep: true, - status: UpdateStatus.StatusPending, + status: status, diff --git a/patches/expo-updates+0.24.7.patch.md b/patches/expo-updates+0.25.11.patch.md similarity index 96% rename from patches/expo-updates+0.24.7.patch.md rename to patches/expo-updates+0.25.11.patch.md index 8a8848127e..6d5d7093df 100644 --- a/patches/expo-updates+0.24.7.patch.md +++ b/patches/expo-updates+0.25.11.patch.md @@ -4,4 +4,4 @@ This is a small patch to convert timestamp formats that are returned from the ba backend to return the correct format for a specific format (the format required on Android is not the same as on iOS) we can just add this conversion in. -Don't remove unless we make changes on the backend to support both platforms. \ No newline at end of file +Don't remove unless we make changes on the backend to support both platforms. diff --git a/patches/react-native+0.73.2.patch b/patches/react-native+0.74.1.patch similarity index 100% rename from patches/react-native+0.73.2.patch rename to patches/react-native+0.74.1.patch diff --git a/patches/react-native+0.73.2.patch.md b/patches/react-native+0.74.1.patch.md similarity index 100% rename from patches/react-native+0.73.2.patch.md rename to patches/react-native+0.74.1.patch.md diff --git a/patches/react-native-reanimated+3.6.0.patch b/patches/react-native-reanimated+3.11.0.patch similarity index 57% rename from patches/react-native-reanimated+3.6.0.patch rename to patches/react-native-reanimated+3.11.0.patch index 093d83e411..f189853859 100644 --- a/patches/react-native-reanimated+3.6.0.patch +++ b/patches/react-native-reanimated+3.11.0.patch @@ -1,30 +1,28 @@ diff --git a/node_modules/react-native-reanimated/lib/module/reanimated2/index.js b/node_modules/react-native-reanimated/lib/module/reanimated2/index.js -index 91e49f4..c10d3fc 100644 +index ac9be5d..86d4605 100644 --- a/node_modules/react-native-reanimated/lib/module/reanimated2/index.js +++ b/node_modules/react-native-reanimated/lib/module/reanimated2/index.js -@@ -45,4 +45,5 @@ export { getUseOfValueInStyleWarning } from './pluginUtils'; - export { withReanimatedTimer, advanceAnimationByTime, advanceAnimationByFrame, setUpTests, getAnimatedStyle } from './jestUtils'; - export { LayoutAnimationConfig } from './component/LayoutAnimationConfig'; +@@ -47,4 +47,5 @@ export { LayoutAnimationConfig } from './component/LayoutAnimationConfig'; + export { PerformanceMonitor } from './component/PerformanceMonitor'; export { startMapper, stopMapper } from './mappers'; + export { startScreenTransition, finishScreenTransition, ScreenTransition } from './screenTransition'; +export { isReducedMotion } from './PlatformChecker'; //# sourceMappingURL=index.js.map -\ No newline at end of file diff --git a/node_modules/react-native-reanimated/lib/typescript/reanimated2/index.d.ts b/node_modules/react-native-reanimated/lib/typescript/reanimated2/index.d.ts -index 96bd913..ad63a09 100644 +index f01dc57..161ef22 100644 --- a/node_modules/react-native-reanimated/lib/typescript/reanimated2/index.d.ts +++ b/node_modules/react-native-reanimated/lib/typescript/reanimated2/index.d.ts -@@ -33,3 +33,4 @@ export type { Adaptable, AdaptTransforms, AnimateProps, AnimatedProps, AnimatedT - export type { AnimatedScrollViewProps } from './component/ScrollView'; - export type { FlatListPropsWithLayout } from './component/FlatList'; +@@ -36,3 +36,4 @@ export type { FlatListPropsWithLayout } from './component/FlatList'; export { startMapper, stopMapper } from './mappers'; + export { startScreenTransition, finishScreenTransition, ScreenTransition, } from './screenTransition'; + export type { AnimatedScreenTransition, GoBackGesture, ScreenTransitionConfig, } from './screenTransition'; +export { isReducedMotion } from './PlatformChecker'; diff --git a/node_modules/react-native-reanimated/src/reanimated2/index.ts b/node_modules/react-native-reanimated/src/reanimated2/index.ts -index 096dc05..38fc01d 100644 +index 5885fa1..a3c693f 100644 --- a/node_modules/react-native-reanimated/src/reanimated2/index.ts +++ b/node_modules/react-native-reanimated/src/reanimated2/index.ts -@@ -271,3 +271,4 @@ export type { - export type { AnimatedScrollViewProps } from './component/ScrollView'; - export type { FlatListPropsWithLayout } from './component/FlatList'; - export { startMapper, stopMapper } from './mappers'; +@@ -284,3 +284,4 @@ export type { + GoBackGesture, + ScreenTransitionConfig, + } from './screenTransition'; +export { isReducedMotion } from './PlatformChecker'; -\ No newline at end of file diff --git a/src/lib/hooks/useOTAUpdate.ts b/src/lib/hooks/useOTAUpdate.ts deleted file mode 100644 index d35179256d..0000000000 --- a/src/lib/hooks/useOTAUpdate.ts +++ /dev/null @@ -1,56 +0,0 @@ -import * as Updates from 'expo-updates' -import {useCallback, useEffect} from 'react' -import {AppState} from 'react-native' -import {logger} from '#/logger' - -export function useOTAUpdate() { - // HELPER FUNCTIONS - const checkForUpdate = useCallback(async () => { - logger.debug('useOTAUpdate: Checking for update...') - try { - // Check if new OTA update is available - const update = await Updates.checkForUpdateAsync() - // If updates aren't available stop the function execution - if (!update.isAvailable) { - return - } - // Otherwise fetch the update in the background, so even if the user rejects switching to latest version it will be done automatically on next relaunch. - await Updates.fetchUpdateAsync() - } catch (e) { - logger.error('useOTAUpdate: Error while checking for update', { - message: e, - }) - } - }, []) - const updateEventListener = useCallback((event: Updates.UpdateEvent) => { - logger.debug('useOTAUpdate: Listening for update...') - if (event.type === Updates.UpdateEventType.ERROR) { - logger.error('useOTAUpdate: Error while listening for update', { - message: event.message, - }) - } else if (event.type === Updates.UpdateEventType.NO_UPDATE_AVAILABLE) { - // Handle no update available - // do nothing - } else if (event.type === Updates.UpdateEventType.UPDATE_AVAILABLE) { - // Handle update available - // open modal, ask for user confirmation, and reload the app - } - }, []) - - useEffect(() => { - // ADD EVENT LISTENERS - const updateEventSubscription = Updates.addListener(updateEventListener) - const appStateSubscription = AppState.addEventListener('change', state => { - if (state === 'active' && !__DEV__) { - checkForUpdate() - } - }) - - // REMOVE EVENT LISTENERS (CLEANUP) - return () => { - updateEventSubscription.remove() - appStateSubscription.remove() - } - }, []) // eslint-disable-line react-hooks/exhaustive-deps - // disable exhaustive deps because we don't want to run this effect again -} diff --git a/src/view/com/pager/PagerWithHeader.tsx b/src/view/com/pager/PagerWithHeader.tsx index 2d604d104e..61e2a4096d 100644 --- a/src/view/com/pager/PagerWithHeader.tsx +++ b/src/view/com/pager/PagerWithHeader.tsx @@ -109,7 +109,7 @@ export const PagerWithHeader = React.forwardRef( ], ) - const scrollRefs = useSharedValue[]>([]) + const scrollRefs = useSharedValue | null>>([]) const registerRef = React.useCallback( (scrollRef: AnimatedRef | null, atIndex: number) => { scrollRefs.modify(refs => { @@ -130,8 +130,9 @@ export const PagerWithHeader = React.forwardRef( lastForcedScrollY.value = forcedScrollY const refs = scrollRefs.value for (let i = 0; i < refs.length; i++) { - if (i !== currentPage && refs[i] != null) { - scrollTo(refs[i], 0, forcedScrollY, false) + const scollRef = refs[i] + if (i !== currentPage && scollRef != null) { + scrollTo(scollRef, 0, forcedScrollY, false) } } } diff --git a/src/view/com/util/Views.web.tsx b/src/view/com/util/Views.web.tsx index 04891806c4..792ace140e 100644 --- a/src/view/com/util/Views.web.tsx +++ b/src/view/com/util/Views.web.tsx @@ -14,6 +14,7 @@ import React from 'react' import { + FlatList, FlatListProps, ScrollViewProps, StyleSheet, @@ -67,7 +68,7 @@ export const FlatList_INTERNAL = React.forwardRef(function FlatListImpl( desktopFixedHeight, ...props }: React.PropsWithChildren & AddedProps>, - ref: React.Ref>, + ref: React.Ref>, ) { const pal = usePalette('default') const {isMobile} = useWebMediaQueries() diff --git a/src/view/screens/LanguageSettings.tsx b/src/view/screens/LanguageSettings.tsx index b86cd46e1c..390d2807b0 100644 --- a/src/view/screens/LanguageSettings.tsx +++ b/src/view/screens/LanguageSettings.tsx @@ -1,27 +1,28 @@ import React from 'react' import {StyleSheet, View} from 'react-native' -import {Text} from '../com/util/text/Text' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' -import {ViewHeader} from 'view/com/util/ViewHeader' -import {CenteredView} from 'view/com/util/Views' -import {Button} from 'view/com/util/forms/Button' +import RNPickerSelect, {PickerSelectProps} from 'react-native-picker-select' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {useAnalytics} from 'lib/analytics/analytics' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' -import {APP_LANGUAGES, LANGUAGES} from 'lib/../locale/languages' -import RNPickerSelect, {PickerSelectProps} from 'react-native-picker-select' -import {useSetMinimalShellMode} from '#/state/shell' + +import {sanitizeAppLanguageSetting} from '#/locale/helpers' import {useModalControls} from '#/state/modals' import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {sanitizeAppLanguageSetting} from '#/locale/helpers' +import {useSetMinimalShellMode} from '#/state/shell' +import {APP_LANGUAGES, LANGUAGES} from 'lib/../locale/languages' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {s} from 'lib/styles' +import {Button} from 'view/com/util/forms/Button' +import {ViewHeader} from 'view/com/util/ViewHeader' +import {CenteredView} from 'view/com/util/Views' +import {Text} from '../com/util/text/Text' type Props = NativeStackScreenProps @@ -132,9 +133,10 @@ export function LanguageSettingsScreen(_props: Props) { paddingVertical: 8, borderRadius: 24, }, + inputWeb: { - // @ts-ignore web only cursor: 'pointer', + // @ts-ignore web only '-moz-appearance': 'none', '-webkit-appearance': 'none', appearance: 'none', @@ -224,8 +226,8 @@ export function LanguageSettingsScreen(_props: Props) { borderRadius: 24, }, inputWeb: { - // @ts-ignore web only cursor: 'pointer', + // @ts-ignore web only '-moz-appearance': 'none', '-webkit-appearance': 'none', appearance: 'none', diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index 9dd1c397f3..b6680176bf 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -739,8 +739,8 @@ let SearchInputBox = ({ style={[ {backgroundColor: pal.colors.backgroundLight}, styles.headerSearchContainer, + // @ts-expect-error web only isWeb && { - // @ts-ignore web only cursor: 'default', }, ]} diff --git a/yarn.lock b/yarn.lock index 96bd60b7ff..07e2f73c2d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1278,6 +1278,21 @@ "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" +"@babel/helper-create-class-features-plugin@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.5.tgz#7d19da92c7e0cd8d11c09af2ce1b8e7512a6e723" + integrity sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.24.5" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.24.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.24.5" + semver "^6.3.1" + "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz#9d8e61a8d9366fe66198f57c40565663de0825f6" @@ -1308,6 +1323,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== +"@babel/helper-environment-visitor@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz#ac7ad5517821641550f6698dd5468f8cef78620d" + integrity sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g== + "@babel/helper-function-name@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" @@ -1345,6 +1365,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-member-expression-to-functions@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.5.tgz#5981e131d5c7003c7d1fa1ad49e86c9b097ec475" + integrity sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA== + dependencies: + "@babel/types" "^7.24.5" + "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" @@ -1366,6 +1393,13 @@ dependencies: "@babel/types" "^7.24.0" +"@babel/helper-module-imports@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz#65e54ffceed6a268dc4ce11f0433b82cfff57852" + integrity sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g== + dependencies: + "@babel/types" "^7.24.6" + "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" @@ -1388,6 +1422,17 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.20" +"@babel/helper-module-transforms@^7.23.3": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz#22346ed9df44ce84dee850d7433c5b73fab1fe4e" + integrity sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA== + dependencies: + "@babel/helper-environment-visitor" "^7.24.6" + "@babel/helper-module-imports" "^7.24.6" + "@babel/helper-simple-access" "^7.24.6" + "@babel/helper-split-export-declaration" "^7.24.6" + "@babel/helper-validator-identifier" "^7.24.6" + "@babel/helper-module-transforms@^7.24.5": version "7.24.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz#ea6c5e33f7b262a0ae762fd5986355c45f54a545" @@ -1411,6 +1456,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== +"@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.24.5": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz#a924607dd254a65695e5bd209b98b902b3b2f11a" + integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ== + "@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" @@ -1438,6 +1488,15 @@ "@babel/helper-member-expression-to-functions" "^7.22.5" "@babel/helper-optimise-call-expression" "^7.22.5" +"@babel/helper-replace-supers@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz#7085bd19d4a0b7ed8f405c1ed73ccb70f323abc1" + integrity sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-simple-access@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" @@ -1452,6 +1511,13 @@ dependencies: "@babel/types" "^7.24.5" +"@babel/helper-simple-access@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz#1d6e04d468bba4fc963b4906f6dac6286cfedff1" + integrity sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g== + dependencies: + "@babel/types" "^7.24.6" + "@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" @@ -1473,6 +1539,13 @@ dependencies: "@babel/types" "^7.24.5" +"@babel/helper-split-export-declaration@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz#e830068f7ba8861c53b7421c284da30ae656d7a3" + integrity sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw== + dependencies: + "@babel/types" "^7.24.6" + "@babel/helper-string-parser@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" @@ -1488,6 +1561,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e" integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== +"@babel/helper-string-parser@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz#28583c28b15f2a3339cfafafeaad42f9a0e828df" + integrity sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q== + "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" @@ -1503,6 +1581,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz#918b1a7fa23056603506370089bd990d8720db62" integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== +"@babel/helper-validator-identifier@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz#08bb6612b11bdec78f3feed3db196da682454a5e" + integrity sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw== + "@babel/helper-validator-option@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" @@ -1650,6 +1733,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-default-from" "^7.22.5" +"@babel/plugin-proposal-logical-assignment-operators@^7.18.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" @@ -1721,7 +1812,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -1763,7 +1854,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.22.5": +"@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== @@ -1798,7 +1889,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.7.2": +"@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.7.2": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== @@ -1812,6 +1903,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-jsx@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10" + integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -1833,7 +1931,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -1875,6 +1973,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-typescript@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz#b3bcc51f396d15f3591683f90239de143c076844" + integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" @@ -1890,6 +1995,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-arrow-functions@^7.0.0-0": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz#2bf263617060c9cc45bcdbf492b8cc805082bf27" + integrity sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-transform-async-generator-functions@^7.22.10": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz#45946cd17f915b10e65c29b8ed18a0a50fc648c8" @@ -1909,7 +2021,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.22.5": +"@babel/plugin-transform-block-scoped-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== @@ -2025,7 +2137,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-flow" "^7.22.5" -"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.22.5": +"@babel/plugin-transform-for-of@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== @@ -2064,7 +2176,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.22.5": +"@babel/plugin-transform-member-expression-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== @@ -2088,6 +2200,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" +"@babel/plugin-transform-modules-commonjs@^7.24.1": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz#e71ba1d0d69e049a22bf90b3867e263823d3f1b9" + integrity sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-simple-access" "^7.22.5" + "@babel/plugin-transform-modules-systemjs@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" @@ -2121,6 +2242,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-nullish-coalescing-operator@^7.0.0-0": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz#0cd494bb97cb07d428bd651632cb9d4140513988" + integrity sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" @@ -2137,13 +2266,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-assign@^7.16.7": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.22.5.tgz#290c1b9555dcea48bb2c29ad94237777600d04f9" - integrity sha512-iDhx9ARkXq4vhZ2CYOSnQXkmxkDgosLi3J8Z17mKz7LyzthtkdVchLD7WZ3aXeCuvJDOW3+1I5TpJmwIbF9MKQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-transform-object-rest-spread@^7.12.13": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" @@ -2166,7 +2288,7 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.22.5" -"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.22.5": +"@babel/plugin-transform-object-super@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== @@ -2182,6 +2304,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" +"@babel/plugin-transform-optional-chaining@^7.0.0-0": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.5.tgz#a6334bebd7f9dd3df37447880d0bd64b778e600f" + integrity sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-transform-optional-chaining@^7.22.10", "@babel/plugin-transform-optional-chaining@^7.22.5": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz#076d28a7e074392e840d4ae587d83445bac0372a" @@ -2233,7 +2364,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.22.5": +"@babel/plugin-transform-property-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== @@ -2354,6 +2485,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-shorthand-properties@^7.0.0-0": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz#ba9a09144cf55d35ec6b93a32253becad8ee5b55" + integrity sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" @@ -2369,7 +2507,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.22.5": +"@babel/plugin-transform-template-literals@^7.0.0-0": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz#15e2166873a30d8617e3e2ccadb86643d327aab7" + integrity sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-transform-template-literals@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== @@ -2393,6 +2538,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" +"@babel/plugin-transform-typescript@^7.24.1": + version "7.24.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.5.tgz#bcba979e462120dc06a75bd34c473a04781931b8" + integrity sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.24.5" + "@babel/helper-plugin-utils" "^7.24.5" + "@babel/plugin-syntax-typescript" "^7.24.1" + "@babel/plugin-transform-unicode-escapes@^7.22.10": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" @@ -2563,6 +2718,17 @@ "@babel/plugin-transform-modules-commonjs" "^7.22.5" "@babel/plugin-transform-typescript" "^7.22.5" +"@babel/preset-typescript@^7.23.0": + version "7.24.1" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz#89bdf13a3149a17b3b2a2c9c62547f06db8845ec" + integrity sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-syntax-jsx" "^7.24.1" + "@babel/plugin-transform-modules-commonjs" "^7.24.1" + "@babel/plugin-transform-typescript" "^7.24.1" + "@babel/register@^7.13.16": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.5.tgz#e4d8d0f615ea3233a27b5c6ada6750ee59559939" @@ -2704,6 +2870,15 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@babel/types@^7.24.6": + version "7.24.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.6.tgz#ba4e1f59870c10dc2fa95a274ac4feec23b21912" + integrity sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ== + dependencies: + "@babel/helper-string-parser" "^7.24.6" + "@babel/helper-validator-identifier" "^7.24.6" + to-fast-properties "^2.0.0" + "@bam.tech/react-native-image-resizer@^3.0.4": version "3.0.5" resolved "https://registry.yarnpkg.com/@bam.tech/react-native-image-resizer/-/react-native-image-resizer-3.0.5.tgz#6661ba020de156268f73bdc92fbb93ef86f88a13" @@ -2938,7 +3113,7 @@ "@discord/bottom-sheet@bluesky-social/react-native-bottom-sheet": version "4.6.1" - resolved "https://codeload.github.com/bluesky-social/react-native-bottom-sheet/tar.gz/2b3f77e04a25c454e70d893a2692e8c03aced06b" + resolved "https://codeload.github.com/bluesky-social/react-native-bottom-sheet/tar.gz/3232c7cd9b966dd977c849a360fa853f88dcf3ca" dependencies: "@gorhom/portal" "1.0.14" invariant "^2.2.4" @@ -3117,40 +3292,41 @@ mv "~2" safe-json-stringify "~1" -"@expo/cli@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.17.10.tgz#7dd5e2b4a01f5d29698c431729a19878fbd806f5" - integrity sha512-Jw2wY+lsavP9GRqwwLqF/SvB7w2GZ4sWBMcBKTZ8F0lWjwmLGAUt4WYquf20agdmnY/oZUHvWNkrz/t3SflhnA== +"@expo/cli@0.18.13": + version "0.18.13" + resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.18.13.tgz#b3a6aa1d4cfa78720ba86f73ded7c2c93f4805a9" + integrity sha512-ZO1fpDK8z6mLeQGuFP6e3cZyCHV55ohZY7/tEyhpft3bwysS680eyFg5SFe+tWNFesnziFrbtI8JaUyhyjqovA== dependencies: "@babel/runtime" "^7.20.0" "@expo/code-signing-certificates" "0.0.5" - "@expo/config" "~8.5.0" - "@expo/config-plugins" "~7.9.0" - "@expo/devcert" "^1.0.0" - "@expo/env" "~0.2.2" - "@expo/image-utils" "^0.4.0" - "@expo/json-file" "^8.2.37" - "@expo/metro-config" "~0.17.0" + "@expo/config" "~9.0.0" + "@expo/config-plugins" "~8.0.0" + "@expo/devcert" "^1.1.2" + "@expo/env" "~0.3.0" + "@expo/image-utils" "^0.5.0" + "@expo/json-file" "^8.3.0" + "@expo/metro-config" "~0.18.0" "@expo/osascript" "^2.0.31" - "@expo/package-manager" "^1.1.1" + "@expo/package-manager" "^1.5.0" "@expo/plist" "^0.1.0" - "@expo/prebuild-config" "6.8.1" + "@expo/prebuild-config" "7.0.4" "@expo/rudder-sdk-node" "1.1.1" - "@expo/spawn-async" "1.5.0" + "@expo/spawn-async" "^1.7.2" "@expo/xcpretty" "^4.3.0" - "@react-native/dev-middleware" "^0.73.6" + "@react-native/dev-middleware" "~0.74.75" "@urql/core" "2.3.6" "@urql/exchange-retry" "0.3.0" accepts "^1.3.8" arg "5.0.2" better-opn "~3.0.2" bplist-parser "^0.3.1" - cacache "^15.3.0" + cacache "^18.0.2" chalk "^4.0.0" ci-info "^3.3.0" connect "^3.7.0" debug "^4.3.4" env-editor "^0.4.1" + fast-glob "^3.3.2" find-yarn-workspace-root "~2.0.0" form-data "^3.0.1" freeport-async "2.0.0" @@ -3168,7 +3344,6 @@ lodash.debounce "^4.0.8" md5hex "^1.0.0" minimatch "^3.0.4" - minipass "3.3.6" node-fetch "^2.6.7" node-forge "^1.3.1" npm-package-arg "^7.0.0" @@ -3184,7 +3359,7 @@ resolve "^1.22.2" resolve-from "^5.0.0" resolve.exports "^2.0.2" - semver "^7.5.3" + semver "^7.6.0" send "^0.18.0" slugify "^1.3.4" source-map-support "~0.5.21" @@ -3229,24 +3404,22 @@ xcode "^3.0.1" xml2js "0.6.0" -"@expo/config-plugins@7.9.1", "@expo/config-plugins@~7.9.0": - version "7.9.1" - resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.9.1.tgz#fe4f7e4f9d4e87f2dcf2344ffdc59eb466dd5d2e" - integrity sha512-ICt6Jed1J0tPYMQrJ8K5Qusgih2I6pZ2PU4VSvxsN3T4n97L13XpYV1vyq1Uc/HMl3UhOwldipmgpEbCfeDqsQ== +"@expo/config-plugins@8.0.4", "@expo/config-plugins@~8.0.0", "@expo/config-plugins@~8.0.0-beta.0": + version "8.0.4" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-8.0.4.tgz#1e781cd971fab27409ed2f8d621db6d29cce3036" + integrity sha512-Hi+xuyNWE2LT4LVbGttHJgl9brnsdWAhEB42gWKb5+8ae86Nr/KwUBQJsJppirBYTeLjj5ZlY0glYnAkDa2jqw== dependencies: - "@expo/config-types" "^50.0.0-alpha.1" - "@expo/fingerprint" "^0.6.0" + "@expo/config-types" "^51.0.0-unreleased" "@expo/json-file" "~8.3.0" "@expo/plist" "^0.1.0" "@expo/sdk-runtime-versions" "^1.0.0" - "@react-native/normalize-color" "^2.0.0" chalk "^4.1.2" debug "^4.3.1" find-up "~5.0.0" getenv "^1.0.0" glob "7.1.6" resolve-from "^5.0.0" - semver "^7.5.3" + semver "^7.5.4" slash "^3.0.0" slugify "^1.6.6" xcode "^3.0.1" @@ -3278,25 +3451,30 @@ resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-47.0.0.tgz#99eeabe0bba7a776e0f252b78beb0c574692c38d" integrity sha512-r0pWfuhkv7KIcXMUiNACJmJKKwlTBGMw9VZHNdppS8/0Nve8HZMTkNRFQzTHW1uH3pBj8jEXpyw/2vSWDHex9g== -"@expo/config-types@^50.0.0", "@expo/config-types@^50.0.0-alpha.1": +"@expo/config-types@^50.0.0-alpha.1": version "50.0.0" resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-50.0.0.tgz#b534d3ec997ec60f8af24f6ad56244c8afc71a0b" integrity sha512-0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw== -"@expo/config@8.5.6": - version "8.5.6" - resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.5.6.tgz#e37ba437a1718ed4629e1dd130a7aace25312b89" - integrity sha512-wF5awSg6MNn1cb1lIgjnhOn5ov2TEUTnkAVCsOl0QqDwcP+YIerteSFwjn9V52UZvg58L+LKxpCuGbw5IHavbg== +"@expo/config-types@^51.0.0-unreleased": + version "51.0.0" + resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-51.0.0.tgz#f5df238cd1237d7e4d9cc8217cdef3383c2a00cf" + integrity sha512-acn03/u8mQvBhdTQtA7CNhevMltUhbSrpI01FYBJwpVntufkU++ncQujWKlgY/OwIajcfygk1AY4xcNZ5ImkRA== + +"@expo/config@9.0.2", "@expo/config@~9.0.0": + version "9.0.2" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-9.0.2.tgz#112b93436dbca8aa3da73a46329e5b58fdd435d2" + integrity sha512-BKQ4/qBf3OLT8hHp5kjObk2vxwoRQ1yYQBbG/OM9Jdz32yYtrU8opTbKRAxfZEWH5i3ZHdLrPdC1rO0I6WxtTw== dependencies: "@babel/code-frame" "~7.10.4" - "@expo/config-plugins" "~7.9.0" - "@expo/config-types" "^50.0.0" - "@expo/json-file" "^8.2.37" + "@expo/config-plugins" "~8.0.0" + "@expo/config-types" "^51.0.0-unreleased" + "@expo/json-file" "^8.3.0" getenv "^1.0.0" glob "7.1.6" require-from-string "^2.0.2" resolve-from "^5.0.0" - semver "7.5.3" + semver "^7.6.0" slugify "^1.3.4" sucrase "3.34.0" @@ -3334,10 +3512,27 @@ slugify "^1.3.4" sucrase "^3.20.0" -"@expo/devcert@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@expo/devcert/-/devcert-1.1.0.tgz#d148eb9180db6753c438192e73a123fb13b662ac" - integrity sha512-ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA== +"@expo/config@~9.0.0-beta.0": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-9.0.1.tgz#e7b79de5af29d5ab2a98a62c3cda31f03bd75827" + integrity sha512-0tjaXBstTbXmD4z+UMFBkh2SZFwilizSQhW6DlaTMnPG5ezuw93zSFEWAuEC3YzkpVtNQTmYzxAYjxwh6seOGg== + dependencies: + "@babel/code-frame" "~7.10.4" + "@expo/config-plugins" "~8.0.0-beta.0" + "@expo/config-types" "^51.0.0-unreleased" + "@expo/json-file" "^8.3.0" + getenv "^1.0.0" + glob "7.1.6" + require-from-string "^2.0.2" + resolve-from "^5.0.0" + semver "^7.6.0" + slugify "^1.3.4" + sucrase "3.34.0" + +"@expo/devcert@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@expo/devcert/-/devcert-1.1.2.tgz#a4923b8ea5b34fde31d6e006a40d0f594096a0ed" + integrity sha512-FyWghLu7rUaZEZSTLt/XNRukm0c9GFfwP0iFaswoDWpV6alvVg+zRAfCLdIVQEz1SVcQ3zo1hMZFDrnKGvkCuQ== dependencies: application-config-path "^0.1.0" command-exists "^1.2.4" @@ -3345,7 +3540,7 @@ eol "^0.9.1" get-port "^3.2.0" glob "^7.1.2" - lodash "^4.17.4" + lodash "^4.17.21" mkdirp "^0.5.1" password-prompt "^1.0.4" rimraf "^2.6.2" @@ -3353,26 +3548,15 @@ tmp "^0.0.33" tslib "^2.4.0" -"@expo/env@~0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@expo/env/-/env-0.2.0.tgz#59964a52b92e0582cc8dd0e87bcd8967d019c809" - integrity sha512-NgcU8oxWCL0xEoOmFc6bHmKq0/sYma7AUARgas8X9wbXz4tfH9SmKrRntDdez33Yw2tarBsQ14MjZD2iJLj7xA== +"@expo/env@~0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@expo/env/-/env-0.3.0.tgz#a66064e5656e0e48197525f47f3398034fdf579e" + integrity sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q== dependencies: chalk "^4.0.0" debug "^4.3.4" - dotenv "~16.0.3" - dotenv-expand "~10.0.0" - getenv "^1.0.0" - -"@expo/env@~0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@expo/env/-/env-0.2.2.tgz#49f589f32e9bae279a6509d7a02218c0f4e32a60" - integrity sha512-m9nGuaSpzdvMzevQ1H60FWgf4PG5s4J0dfKUzdAGnDu7sMUerY/yUeDaA4+OBo3vBwGVQ+UHcQS9vPSMBNaPcg== - dependencies: - chalk "^4.0.0" - debug "^4.3.4" - dotenv "~16.0.3" - dotenv-expand "~10.0.0" + dotenv "~16.4.5" + dotenv-expand "~11.0.6" getenv "^1.0.0" "@expo/fingerprint@^0.6.0": @@ -3388,6 +3572,20 @@ p-limit "^3.1.0" resolve-from "^5.0.0" +"@expo/fingerprint@^0.7.0": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.7.1.tgz#5778c79f6be2471b4c703381e26e9ee0691fa8c6" + integrity sha512-lbTwFiIk0lOm9zzPRvnC45GfPqXqPB3w4hDDKVma+8FDAbPCWhNN42ltLhx/ekwcHFQxURmg0fHm59k0Vy+jtw== + dependencies: + "@expo/spawn-async" "^1.7.2" + chalk "^4.1.2" + debug "^4.3.4" + find-up "^5.0.0" + minimatch "^3.0.4" + p-limit "^3.1.0" + resolve-from "^5.0.0" + semver "^7.6.0" + "@expo/html-elements@^0.4.2": version "0.4.3" resolved "https://registry.yarnpkg.com/@expo/html-elements/-/html-elements-0.4.3.tgz#32b4ca05dd13582164ed1be34ae87e22adfd1d5b" @@ -3427,6 +3625,22 @@ semver "7.3.2" tempy "0.3.0" +"@expo/image-utils@^0.5.0": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.5.1.tgz#06fade141facebcd8431355923d30f3839309942" + integrity sha512-U/GsFfFox88lXULmFJ9Shfl2aQGcwoKPF7fawSCLixIKtMCpsI+1r0h+5i0nQnmt9tHuzXZDL8+Dg1z6OhkI9A== + dependencies: + "@expo/spawn-async" "^1.7.2" + chalk "^4.0.0" + fs-extra "9.0.0" + getenv "^1.0.0" + jimp-compact "0.16.1" + node-fetch "^2.6.0" + parse-png "^2.1.0" + resolve-from "^5.0.0" + semver "^7.6.0" + tempy "0.3.0" + "@expo/json-file@8.2.36": version "8.2.36" resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.36.tgz#62a505cb7f30a34d097386476794680a3f7385ff" @@ -3445,6 +3659,15 @@ json5 "^2.2.2" write-file-atomic "^2.3.0" +"@expo/json-file@^8.3.0": + version "8.3.3" + resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.3.3.tgz#7926e3592f76030ce63d6b1308ac8f5d4d9341f4" + integrity sha512-eZ5dld9AD0PrVRiIWpRkm5aIoWBw3kAyd8VkuWEy92sEthBKDDDHAnK2a0dw0Eil6j7rK7lS/Qaq/Zzngv2h5A== + dependencies: + "@babel/code-frame" "~7.10.4" + json5 "^2.2.2" + write-file-atomic "^2.3.0" + "@expo/json-file@~8.3.0": version "8.3.0" resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.3.0.tgz#fc84af77b532a4e9bfb5beafd0e3b7f692b6bd7e" @@ -3454,20 +3677,19 @@ json5 "^2.2.2" write-file-atomic "^2.3.0" -"@expo/metro-config@0.17.7": - version "0.17.7" - resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.17.7.tgz#c877a9558f3b97447cc9cf382971403834d84b46" - integrity sha512-3vAdinAjMeRwdhGWWLX6PziZdAPvnyJ6KVYqnJErHHqH0cA6dgAENT3Vq6PEM1H2HgczKr2d5yG9AMgwy848ow== +"@expo/metro-config@0.18.4": + version "0.18.4" + resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.18.4.tgz#bc298e21637a3007f3c31c238525d3bef17e823b" + integrity sha512-vh9WDf/SzE+NYCn6gqbzLKiXtENFlFZdAqyj9nI38RvQ4jw6TJIQ8+ExcdLDT3MOG36Ytg44XX9Zb3OWF6LVxw== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.5" "@babel/parser" "^7.20.0" "@babel/types" "^7.20.0" - "@expo/config" "~8.5.0" - "@expo/env" "~0.2.2" + "@expo/config" "~9.0.0" + "@expo/env" "~0.3.0" "@expo/json-file" "~8.3.0" "@expo/spawn-async" "^1.7.2" - babel-preset-fbjs "^3.4.0" chalk "^4.1.0" debug "^4.3.2" find-yarn-workspace-root "~2.0.0" @@ -3478,22 +3700,20 @@ lightningcss "~1.19.0" postcss "~8.4.32" resolve-from "^5.0.0" - sucrase "3.34.0" -"@expo/metro-config@~0.17.0": - version "0.17.1" - resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.17.1.tgz#8e1cd7b9f63ea84cc18696807cf23560d010e5d8" - integrity sha512-ZOE0Jx0YTZyPpsGiiE09orGEFgZ5sMrOOFSgOe8zrns925g/uCuEbowyNq38IfQt//3xSl5mW3z0l4rxgi7hHQ== +"@expo/metro-config@~0.18.0": + version "0.18.3" + resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.18.3.tgz#fa198b9bf806df44fd7684f1df9af2535c107aa8" + integrity sha512-E4iW+VT/xHPPv+t68dViOsW7egtGIr+sRElcym0iGpC4goLz9WBux/xGzWgxvgvvHEWa21uSZQPM0jWla0OZXg== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.5" "@babel/parser" "^7.20.0" "@babel/types" "^7.20.0" - "@expo/config" "~8.5.0" - "@expo/env" "~0.2.0" + "@expo/config" "~9.0.0-beta.0" + "@expo/env" "~0.3.0" "@expo/json-file" "~8.3.0" "@expo/spawn-async" "^1.7.2" - babel-preset-fbjs "^3.4.0" chalk "^4.1.0" debug "^4.3.2" find-yarn-workspace-root "~2.0.0" @@ -3502,9 +3722,8 @@ glob "^7.2.3" jsc-safe-url "^0.2.4" lightningcss "~1.19.0" - postcss "~8.4.21" + postcss "~8.4.32" resolve-from "^5.0.0" - sucrase "^3.20.0" "@expo/osascript@^2.0.31": version "2.0.33" @@ -3514,13 +3733,13 @@ "@expo/spawn-async" "^1.5.0" exec-async "^2.2.0" -"@expo/package-manager@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.1.2.tgz#e58c9bed4cbb829ebf2cbb80b8542600a6609bd1" - integrity sha512-JI9XzrxB0QVXysyuJ996FPCJGDCYRkbUvgG4QmMTTMFA1T+mv8YzazC3T9C1pHQUAAveVCre1+Pqv0nZXN24Xg== +"@expo/package-manager@^1.5.0": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.5.2.tgz#6015963669977a188bbbac930aa0dc103162ee73" + integrity sha512-IuA9XtGBilce0q8cyxtWINqbzMB1Fia0Yrug/O53HNuRSwQguV/iqjV68bsa4z8mYerePhcFgtvISWLAlNEbUA== dependencies: - "@expo/json-file" "^8.2.37" - "@expo/spawn-async" "^1.5.0" + "@expo/json-file" "^8.3.0" + "@expo/spawn-async" "^1.7.2" ansi-regex "^5.0.0" chalk "^4.0.0" find-up "^5.0.0" @@ -3528,6 +3747,7 @@ js-yaml "^3.13.1" micromatch "^4.0.2" npm-package-arg "^7.0.0" + ora "^3.4.0" split "^1.0.1" sudo-prompt "9.1.1" @@ -3565,36 +3785,38 @@ semver "7.5.3" xml2js "0.6.0" -"@expo/prebuild-config@6.7.4": - version "6.7.4" - resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.7.4.tgz#b3e4c8545d7a101bf1fc263c5b7290abc4635e69" - integrity sha512-x8EUdCa8DTMZ/dtEXjHAdlP+ljf6oSeSKNzhycXiHhpMSMG9jEhV28ocCwc6cKsjK5GziweEiHwvrj6+vsBlhA== +"@expo/prebuild-config@7.0.3": + version "7.0.3" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-7.0.3.tgz#d7f66745de6f0b17b15ed2f1417f91c6ba0b591b" + integrity sha512-Kvxy/oQzkxwXLvAmwb+ygxuRn4xUUN2+mVJj3KDe4bRVCNyDPs7wlgdokF3twnWjzRZssUzseMkhp+yHPjAEhA== dependencies: - "@expo/config" "~8.5.0" - "@expo/config-plugins" "~7.8.0" - "@expo/config-types" "^50.0.0-alpha.1" - "@expo/image-utils" "^0.4.0" - "@expo/json-file" "^8.2.37" + "@expo/config" "~9.0.0-beta.0" + "@expo/config-plugins" "~8.0.0-beta.0" + "@expo/config-types" "^51.0.0-unreleased" + "@expo/image-utils" "^0.5.0" + "@expo/json-file" "^8.3.0" + "@react-native/normalize-colors" "~0.74.83" debug "^4.3.1" fs-extra "^9.0.0" resolve-from "^5.0.0" - semver "7.5.3" + semver "^7.6.0" xml2js "0.6.0" -"@expo/prebuild-config@6.8.1": - version "6.8.1" - resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.8.1.tgz#5d562b1d6b2e5e4727a3c61acf1a4ed6117b94d8" - integrity sha512-ptK9e0dcj1eYlAWV+fG+QkuAWcLAT1AmtEbj++tn7ZjEj8+LkXRM73LCOEGaF0Er8i8ZWNnaVsgGW4vjgP5ZsA== +"@expo/prebuild-config@7.0.4": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-7.0.4.tgz#cf2d001792d69e652ad4cec9830c8bd4905f0e7a" + integrity sha512-E2n3QbwgV8Qa0CBw7BHrWBDWD7l8yw+N/yjvXpSPFFtoZLMSKyegdkJFACh2u+UIRKUSZm8zQwHeZR0rqAxV9g== dependencies: - "@expo/config" "~8.5.0" - "@expo/config-plugins" "~7.9.0" - "@expo/config-types" "^50.0.0-alpha.1" - "@expo/image-utils" "^0.4.0" - "@expo/json-file" "^8.2.37" + "@expo/config" "~9.0.0" + "@expo/config-plugins" "~8.0.0" + "@expo/config-types" "^51.0.0-unreleased" + "@expo/image-utils" "^0.5.0" + "@expo/json-file" "^8.3.0" + "@react-native/normalize-colors" "~0.74.83" debug "^4.3.1" fs-extra "^9.0.0" resolve-from "^5.0.0" - semver "7.5.3" + semver "^7.6.0" xml2js "0.6.0" "@expo/rudder-sdk-node@1.1.1": @@ -3818,11 +4040,6 @@ humps "^2.0.1" prop-types "^15.7.2" -"@gar/promisify@^1.0.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== - "@gorhom/portal@1.0.14": version "1.0.14" resolved "https://registry.yarnpkg.com/@gorhom/portal/-/portal-1.0.14.tgz#1953edb76aaba80fb24021dc774550194a18e111" @@ -4618,12 +4835,12 @@ dependencies: "@lukeed/csprng" "^1.1.0" -"@mattermost/react-native-paste-input@^0.6.4": - version "0.6.4" - resolved "https://registry.yarnpkg.com/@mattermost/react-native-paste-input/-/react-native-paste-input-0.6.4.tgz#0b51dacc525849c3f8350d43bf7057d17724b9b5" - integrity sha512-EJ/CTm97pe7u1GnrUFaVaP5j6i57GHPFpnUDdc+r7tLYa2T4LN0oR09KYbr1INcTMz//MqVMz4GYUVFMMN0Xmw== +"@mattermost/react-native-paste-input@^0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@mattermost/react-native-paste-input/-/react-native-paste-input-0.7.1.tgz#f14585030b992cf7c9bbd0921225eefa501756ba" + integrity sha512-kY8LKtqRX2T/rtn/HNrzTitijuATvyzd6yl5WNWOsszmyzNcssKStjjCTBup04CyMxfwutUU1CWrYUb3hQO7oA== dependencies: - semver "7.5.4" + semver "7.6.0" "@messageformat/parser@^5.0.0": version "5.1.0" @@ -4682,22 +4899,13 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== +"@npmcli/fs@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.1.tgz#59cdaa5adca95d135fc00f2bb53f5771575ce726" + integrity sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg== dependencies: - "@gar/promisify" "^1.0.1" semver "^7.3.5" -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" @@ -5090,50 +5298,51 @@ dependencies: merge-options "^3.0.4" -"@react-native-community/cli-clean@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.0.tgz#667b32daa58b4d11d5b5ab9eb0a2e216d500c90b" - integrity sha512-iAgLCOWYRGh9ukr+eVQnhkV/OqN3V2EGd/in33Ggn/Mj4uO6+oUncXFwB+yjlyaUNz6FfjudhIz09yYGSF+9sg== +"@react-native-community/cli-clean@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-13.6.6.tgz#87c7ad8746c38dab0fe7b3c6ff89d44351d5d943" + integrity sha512-cBwJTwl0NyeA4nyMxbhkWZhxtILYkbU3TW3k8AXLg+iGphe0zikYMGB3T+haTvTc6alTyEFwPbimk9bGIqkjAQ== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" execa "^5.0.0" + fast-glob "^3.3.2" -"@react-native-community/cli-config@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-12.3.0.tgz#255b4e5391878937a25888f452f50a968d053e3e" - integrity sha512-BrTn5ndFD9uOxO8kxBQ32EpbtOvAsQExGPI7SokdI4Zlve70FziLtTq91LTlTUgMq1InVZn/jJb3VIDk6BTInQ== +"@react-native-community/cli-config@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-13.6.6.tgz#69f590694b3a079c74f781baab3b762db74f5dbd" + integrity sha512-mbG425zCKr8JZhv/j11382arezwS/70juWMsn8j2lmrGTrP1cUdW0MF15CCIFtJsqyK3Qs+FTmqttRpq81QfSg== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" - glob "^7.1.3" + fast-glob "^3.3.2" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.0.tgz#75bbb2082a369b3559e0dffa8bfeebf2a9107e3e" - integrity sha512-w3b0iwjQlk47GhZWHaeTG8kKH09NCMUJO729xSdMBXE8rlbm4kHpKbxQY9qKb6NlfWSJN4noGY+FkNZS2rRwnQ== +"@react-native-community/cli-debugger-ui@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.6.tgz#ac021ebd795b0fd66fb52a8987d1d41c5a4b8cb3" + integrity sha512-Vv9u6eS4vKSDAvdhA0OiQHoA7y39fiPIgJ6biT32tN4avHDtxlc6TWZGiqv7g98SBvDWvoVAmdPLcRf3kU+c8g== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-12.3.0.tgz#420eb4e80d482f16d431c4df33fbc203862508af" - integrity sha512-BPCwNNesoQMkKsxB08Ayy6URgGQ8Kndv6mMhIvJSNdST3J1+x3ehBHXzG9B9Vfi+DrTKRb8lmEl/b/7VkDlPkA== +"@react-native-community/cli-doctor@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-13.6.6.tgz#ac0febff05601d9b86af3e03460e1a6b0a1d33a5" + integrity sha512-TWZb5g6EmQe2Ua2TEWNmyaEayvlWH4GmdD9ZC+p8EpKFpB1NpDGMK6sXbpb42TDvwZg5s4TDRplK0PBEA/SVDg== dependencies: - "@react-native-community/cli-config" "12.3.0" - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-platform-ios" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-config" "13.6.6" + "@react-native-community/cli-platform-android" "13.6.6" + "@react-native-community/cli-platform-apple" "13.6.6" + "@react-native-community/cli-platform-ios" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" envinfo "^7.10.0" execa "^5.0.0" hermes-profile-transformer "^0.0.6" - ip "^1.1.5" node-stream-zip "^1.9.1" ora "^5.4.1" semver "^7.5.2" @@ -5141,68 +5350,70 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-hermes@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-12.3.0.tgz#c302acbfb07e1f4e73e76e3150c32f0e4f54e9ed" - integrity sha512-G6FxpeZBO4AimKZwtWR3dpXRqTvsmEqlIkkxgwthdzn3LbVjDVIXKpVYU9PkR5cnT+KuAUxO0WwthrJ6Nmrrlg== +"@react-native-community/cli-hermes@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-13.6.6.tgz#590f55f151fec23b55498228f92d100a0e71d474" + integrity sha512-La5Ie+NGaRl3klei6WxKoOxmCUSGGxpOk6vU5pEGf0/O7ky+Ay0io+zXYUZqlNMi/cGpO7ZUijakBYOB/uyuFg== dependencies: - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-platform-android" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" - ip "^1.1.5" -"@react-native-community/cli-platform-android@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.0.tgz#eafa5fb12ebc25f716aea18cd55039c19fbedca6" - integrity sha512-VU1NZw63+GLU2TnyQ919bEMThpHQ/oMFju9MCfrd3pyPJz4Sn+vc3NfnTDUVA5Z5yfLijFOkHIHr4vo/C9bjnw== +"@react-native-community/cli-platform-android@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.6.tgz#9e3863cb092709021f11848890bff0fc16fc1609" + integrity sha512-/tMwkBeNxh84syiSwNlYtmUz/Ppc+HfKtdopL/5RB+fd3SV1/5/NPNjMlyLNgFKnpxvKCInQ7dnl6jGHJjeHjg== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" execa "^5.0.0" + fast-glob "^3.3.2" fast-xml-parser "^4.2.4" - glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-ios@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.0.tgz#42a9185bb51f35a7eb9c5818b2f0072846945ef5" - integrity sha512-H95Sgt3wT7L8V75V0syFJDtv4YgqK5zbu69ko4yrXGv8dv2EBi6qZP0VMmkqXDamoPm9/U7tDTdbcf26ctnLfg== +"@react-native-community/cli-platform-apple@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.6.tgz#d445fd6ed02c5ae2f43f9c45501e04fee53a2790" + integrity sha512-bOmSSwoqNNT3AmCRZXEMYKz1Jf1l2F86Nhs7qBcXdY/sGiJ+Flng564LOqvdAlVLTbkgz47KjNKCS2pP4Jg0Mg== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "13.6.6" chalk "^4.1.2" execa "^5.0.0" + fast-glob "^3.3.2" fast-xml-parser "^4.0.12" - glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.0.tgz#b4ea8da691d294aee98ccfcd1162bcd958cae834" - integrity sha512-tYNHIYnNmxrBcsqbE2dAnLMzlKI3Cp1p1xUgTrNaOMsGPDN1epzNfa34n6Nps3iwKElSL7Js91CzYNqgTalucA== - -"@react-native-community/cli-server-api@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-12.3.0.tgz#0460472d44c121d1db8a98ad1df811200c074fb3" - integrity sha512-Rode8NrdyByC+lBKHHn+/W8Zu0c+DajJvLmOWbe2WY/ECvnwcd9MHHbu92hlT2EQaJ9LbLhGrSbQE3cQy9EOCw== +"@react-native-community/cli-platform-ios@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.6.tgz#0cd700f36483ca37dda7ec044377f8a926b1df1f" + integrity sha512-vjDnRwhlSN5ryqKTas6/DPkxuouuyFBAqAROH4FR1cspTbn6v78JTZKDmtQy9JMMo7N5vZj1kASU5vbFep9IOQ== dependencies: - "@react-native-community/cli-debugger-ui" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-platform-apple" "13.6.6" + +"@react-native-community/cli-server-api@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-13.6.6.tgz#467993006ef82361cdf7a9817999d5a09e85ca6a" + integrity sha512-ZtCXxoFlM7oDv3iZ3wsrT3SamhtUJuIkX2WePLPlN5bcbq7zimbPm2lHyicNJtpcGQ5ymsgpUWPCNZsWQhXBqQ== + dependencies: + "@react-native-community/cli-debugger-ui" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" nocache "^3.0.1" pretty-format "^26.6.2" serve-static "^1.13.1" - ws "^7.5.1" + ws "^6.2.2" -"@react-native-community/cli-tools@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-12.3.0.tgz#d459a116e1a95034d3c9a6385069c9e2049fb2a6" - integrity sha512-2GafnCr8D88VdClwnm9KZfkEb+lzVoFdr/7ybqhdeYM0Vnt/tr2N+fM1EQzwI1DpzXiBzTYemw8GjRq+Utcz2Q== +"@react-native-community/cli-tools@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-13.6.6.tgz#55c40cbabafbfc56cfb95a4d5fbf73ef60ec3cbc" + integrity sha512-ptOnn4AJczY5njvbdK91k4hcYazDnGtEPrqIwEI+k/CTBHNdb27Rsm2OZ7ye6f7otLBqF8gj/hK6QzJs8CEMgw== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" + execa "^5.0.0" find-up "^5.0.0" mime "^2.4.1" node-fetch "^2.6.0" @@ -5212,27 +5423,26 @@ shell-quote "^1.7.3" sudo-prompt "^9.0.0" -"@react-native-community/cli-types@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-12.3.0.tgz#2d21a1f93aefbdb34a04311d68097aef0388704f" - integrity sha512-MgOkmrXH4zsGxhte4YqKL7d+N8ZNEd3w1wo56MZlhu5WabwCJh87wYpU5T8vyfujFLYOFuFK5jjlcbs8F4/WDw== +"@react-native-community/cli-types@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-13.6.6.tgz#b45af119d61888fea1074a7c32ddb093e3f119a9" + integrity sha512-733iaYzlmvNK7XYbnWlMjdE+2k0hlTBJW071af/xb6Bs+hbJqBP9c03FZuYH2hFFwDDntwj05bkri/P7VgSxug== dependencies: joi "^17.2.1" -"@react-native-community/cli@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-12.3.0.tgz#c89aacc3973943bf24002255d7d0859b511d88a1" - integrity sha512-XeQohi2E+S2+MMSz97QcEZ/bWpi8sfKiQg35XuYeJkc32Til2g0b97jRpn0/+fV0BInHoG1CQYWwHA7opMsrHg== +"@react-native-community/cli@13.6.6": + version "13.6.6" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-13.6.6.tgz#b929c8668e88344c03a46a3e635cb382dba16773" + integrity sha512-IqclB7VQ84ye8Fcs89HOpOscY4284VZg2pojHNl8H0Lzd4DadXJWQoxC7zWm8v2f8eyeX2kdhxp2ETD5tceIgA== dependencies: - "@react-native-community/cli-clean" "12.3.0" - "@react-native-community/cli-config" "12.3.0" - "@react-native-community/cli-debugger-ui" "12.3.0" - "@react-native-community/cli-doctor" "12.3.0" - "@react-native-community/cli-hermes" "12.3.0" - "@react-native-community/cli-plugin-metro" "12.3.0" - "@react-native-community/cli-server-api" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" - "@react-native-community/cli-types" "12.3.0" + "@react-native-community/cli-clean" "13.6.6" + "@react-native-community/cli-config" "13.6.6" + "@react-native-community/cli-debugger-ui" "13.6.6" + "@react-native-community/cli-doctor" "13.6.6" + "@react-native-community/cli-hermes" "13.6.6" + "@react-native-community/cli-server-api" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" + "@react-native-community/cli-types" "13.6.6" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" @@ -5282,39 +5492,28 @@ resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.6.1.tgz#3b20ddd1385fab0487db103dc6519570f8892e6d" integrity sha512-oJftvmLOj6Y6/bF4kPcK6L83yNBALGmqNYugf94BzP0FQGpHBwimVN2ygqkQ2Sn2ZU3pGUZMs0jV6+Gku2GyYg== -"@react-native-picker/picker@^1.8.3": - version "1.16.8" - resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-1.16.8.tgz#2126ca54d4a5a3e9ea5e3f39ad1e6643f8e4b3d4" - integrity sha512-pacdQDX6V6EmjF+HoiIh6u++qx4mTK0WnhgUHRc01B+Qt5eoeUwseBqmqfTSXTx/aHDEd6PiIw7UGvKgFoqgFQ== +"@react-native/assets-registry@0.74.83", "@react-native/assets-registry@~0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.74.83.tgz#c1815dc10f9e1075e0d03b4c8a9619145969522e" + integrity sha512-2vkLMVnp+YTZYTNSDIBZojSsjz8sl5PscP3j4GcV6idD8V978SZfwFlk8K0ti0BzRs11mzL0Pj17km597S/eTQ== -"@react-native/assets-registry@0.73.1", "@react-native/assets-registry@~0.73.1": - version "0.73.1" - resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.73.1.tgz#e2a6b73b16c183a270f338dc69c36039b3946e85" - integrity sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg== - -"@react-native/babel-plugin-codegen@*": - version "0.74.0" - resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.0.tgz#01ba90840e23c6d1fbf739f75cce1d0f5be97bfa" - integrity sha512-xAM/eVSb5LBkKue3bDZgt76bdsGGzKeF/iEzUNbDTwRQrB3Q5GoceGNM/zVlF+z1xGAkr3jhL+ZyITZGSoIlgw== +"@react-native/babel-plugin-codegen@0.74.1": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.1.tgz#b8dfd2aac48241a2bb1db4a4fb6921eaabb2d2f8" + integrity sha512-v8T79fEn49cuDVCyUNXsgXZ/ydN8s6ydAruasVCh0VyMzaPVJvuOQhaLW6JL+ysDTN/CnjraTv0oqYnaKoZgvQ== dependencies: - "@react-native/codegen" "*" + "@react-native/codegen" "0.74.1" -"@react-native/babel-plugin-codegen@0.73.2": - version "0.73.2" - resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.2.tgz#447656cde437b71dc3ef0af3f8a5b215653d5d07" - integrity sha512-PadyFZWVaWXIBP7Q5dgEL7eAd7tnsgsLjoHJB1hIRZZuVUg1Zqe3nULwC7RFAqOtr5Qx7KXChkFFcKQ3WnZzGw== - dependencies: - "@react-native/codegen" "0.73.2" - -"@react-native/babel-preset@0.73.19": - version "0.73.19" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.19.tgz#a6c0587651804f8f01d6f3b7729f1d4a2d469691" - integrity sha512-ujon01uMOREZecIltQxPDmJ6xlVqAUFGI/JCSpeVYdxyXBoBH5dBb0ihj7h6LKH1q1jsnO9z4MxfddtypKkIbg== +"@react-native/babel-preset@0.74.1", "@react-native/babel-preset@0.74.83", "@react-native/babel-preset@^0.73.18", "@react-native/babel-preset@~0.74.83": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.74.1.tgz#96813549cac768b5ff59c9b74f51acf80909e707" + integrity sha512-c7xbLs0/fjDmORYs86xz3syTFiJhtRb6JzXpGes04ZNdY7NWdz7aqEfeleyBJbmCfDOr16WZJRy4JcPLvNKjZg== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" "@babel/plugin-proposal-class-properties" "^7.18.0" "@babel/plugin-proposal-export-default-from" "^7.0.0" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.0" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" "@babel/plugin-proposal-numeric-separator" "^7.0.0" "@babel/plugin-proposal-object-rest-spread" "^7.20.0" @@ -5350,164 +5549,122 @@ "@babel/plugin-transform-typescript" "^7.5.0" "@babel/plugin-transform-unicode-regex" "^7.0.0" "@babel/template" "^7.0.0" - "@react-native/babel-plugin-codegen" "0.73.2" + "@react-native/babel-plugin-codegen" "0.74.1" babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" -"@react-native/babel-preset@^0.73.18": - version "0.73.18" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.18.tgz#0ff24ba35102d9ac071de8ab10706ccaee5e3e6f" - integrity sha512-FzPasmazoX9WZnmwotk6SK9ydiExdqS4Xt5VaukPoY9u8u3AUUODzqjTsWSOxjFD9eRF3Knyg5H8JMDe6pj5wQ== - dependencies: - "@babel/core" "^7.20.0" - "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.18.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" - "@babel/plugin-proposal-numeric-separator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.20.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.18.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.20.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.20.0" - "@babel/plugin-transform-flow-strip-types" "^7.20.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.11" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - "@react-native/babel-plugin-codegen" "*" - babel-plugin-transform-flow-enums "^0.0.2" - react-refresh "^0.14.0" - -"@react-native/codegen@*", "@react-native/codegen@0.73.2": - version "0.73.2" - resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.73.2.tgz#58af4e4c3098f0e6338e88ec64412c014dd51519" - integrity sha512-lfy8S7umhE3QLQG5ViC4wg5N1Z+E6RnaeIw8w1voroQsXXGPB72IBozh8dAHR3+ceTxIU0KX3A8OpJI8e1+HpQ== +"@react-native/codegen@0.74.1": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.74.1.tgz#d20d0a8cd612fd927604fd1bfc8d18f2a231c270" + integrity sha512-Wup76wd01GnHvnyW8DGTOQDbbw6W4xBkqfzdTyCSue6cGpCasqNQAf4okuDJKwcSbgpVkNcJdbGuGtz4RTA65Q== dependencies: "@babel/parser" "^7.20.0" - flow-parser "^0.206.0" glob "^7.1.1" + hermes-parser "0.19.1" invariant "^2.2.4" jscodeshift "^0.14.0" mkdirp "^0.5.1" nullthrows "^1.1.1" -"@react-native/community-cli-plugin@0.73.12": - version "0.73.12" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.12.tgz#3a72a8cbae839a0382d1a194a7067d4ffa0da04c" - integrity sha512-xWU06OkC1cX++Duh/cD/Wv+oZ0oSY3yqbtxAqQA2H3Q+MQltNNJM6MqIHt1VOZSabRf/LVlR1JL6U9TXJirkaw== +"@react-native/codegen@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.74.83.tgz#7c56a82fe7603f0867f0d80ff29db3757b71be55" + integrity sha512-GgvgHS3Aa2J8/mp1uC/zU8HuTh8ZT5jz7a4mVMWPw7+rGyv70Ba8uOVBq6UH2Q08o617IATYc+0HfyzAfm4n0w== dependencies: - "@react-native-community/cli-server-api" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" - "@react-native/dev-middleware" "0.73.7" - "@react-native/metro-babel-transformer" "0.73.13" + "@babel/parser" "^7.20.0" + glob "^7.1.1" + hermes-parser "0.19.1" + invariant "^2.2.4" + jscodeshift "^0.14.0" + mkdirp "^0.5.1" + nullthrows "^1.1.1" + +"@react-native/community-cli-plugin@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.83.tgz#58808a58a5288895627548338731e72ebb5b507c" + integrity sha512-7GAFjFOg1mFSj8bnFNQS4u8u7+QtrEeflUIDVZGEfBZQ3wMNI5ycBzbBGycsZYiq00Xvoc6eKFC7kvIaqeJpUQ== + dependencies: + "@react-native-community/cli-server-api" "13.6.6" + "@react-native-community/cli-tools" "13.6.6" + "@react-native/dev-middleware" "0.74.83" + "@react-native/metro-babel-transformer" "0.74.83" chalk "^4.0.0" execa "^5.1.1" metro "^0.80.3" metro-config "^0.80.3" metro-core "^0.80.3" node-fetch "^2.2.0" + querystring "^0.2.1" readline "^1.3.0" -"@react-native/debugger-frontend@0.73.3", "@react-native/debugger-frontend@^0.73.3": - version "0.73.3" - resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz#033757614d2ada994c68a1deae78c1dd2ad33c2b" - integrity sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw== +"@react-native/debugger-frontend@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.74.83.tgz#48050afa4e086438073b95f041c0cc84fe3f20de" + integrity sha512-RGQlVUegBRxAUF9c1ss1ssaHZh6CO+7awgtI9sDeU0PzDZY/40ImoPD5m0o0SI6nXoVzbPtcMGzU+VO590pRfA== -"@react-native/dev-middleware@0.73.7": - version "0.73.7" - resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.73.7.tgz#61d2bf08973d9a537fa3f2a42deeb13530d721ae" - integrity sha512-BZXpn+qKp/dNdr4+TkZxXDttfx8YobDh8MFHsMk9usouLm22pKgFIPkGBV0X8Do4LBkFNPGtrnsKkWk/yuUXKg== +"@react-native/dev-middleware@0.74.83", "@react-native/dev-middleware@~0.74.75": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.74.83.tgz#9d09cfdb763e8ef81c003b0f99ae4ed1a3539639" + integrity sha512-UH8iriqnf7N4Hpi20D7M2FdvSANwTVStwFCSD7VMU9agJX88Yk0D1T6Meh2RMhUu4kY2bv8sTkNRm7LmxvZqgA== dependencies: "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "0.73.3" + "@react-native/debugger-frontend" "0.74.83" + "@rnx-kit/chromium-edge-launcher" "^1.0.0" chrome-launcher "^0.15.2" - chromium-edge-launcher "^1.0.0" connect "^3.6.5" debug "^2.2.0" node-fetch "^2.2.0" + nullthrows "^1.1.1" open "^7.0.3" + selfsigned "^2.4.1" serve-static "^1.13.1" temp-dir "^2.0.0" + ws "^6.2.2" -"@react-native/dev-middleware@^0.73.6": - version "0.73.6" - resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.73.6.tgz#19ee210fddc3abb8eeb3da5f98711719ad032323" - integrity sha512-9SD7gIso+hO1Jy1Y/Glbd+JWQwyH7Xjnwebtkxdm5TMB51LQPjaGtMcwEigbIZyAtvoaDGmhWmudwbKpDlS+gA== - dependencies: - "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "^0.73.3" - chrome-launcher "^0.15.2" - chromium-edge-launcher "^1.0.0" - connect "^3.6.5" - debug "^2.2.0" - node-fetch "^2.2.0" - open "^7.0.3" - serve-static "^1.13.1" - temp-dir "^2.0.0" +"@react-native/gradle-plugin@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.74.83.tgz#4ac60a6d6295d5b920173cbf184ee32e53690810" + integrity sha512-Pw2BWVyOHoBuJVKxGVYF6/GSZRf6+v1Ygc+ULGz5t20N8qzRWPa2fRZWqoxsN7TkNLPsECYY8gooOl7okOcPAQ== -"@react-native/gradle-plugin@0.73.4": - version "0.73.4" - resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz#aa55784a8c2b471aa89934db38c090d331baf23b" - integrity sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg== +"@react-native/js-polyfills@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.74.83.tgz#0e189ce3ab0efecd00223f3bfc53663ce08ba013" + integrity sha512-/t74n8r6wFhw4JEoOj3bN71N1NDLqaawB75uKAsSjeCwIR9AfCxlzZG0etsXtOexkY9KMeZIQ7YwRPqUdNXuqw== -"@react-native/js-polyfills@0.73.1": - version "0.73.1" - resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz#730b0a7aaab947ae6f8e5aa9d995e788977191ed" - integrity sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g== - -"@react-native/metro-babel-transformer@0.73.13": - version "0.73.13" - resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.13.tgz#81cb6dd8d5140c57f5595183fd6857feb8b7f5d7" - integrity sha512-k9AQifogQfgUXPlqQSoMtX2KUhniw4XvJl+nZ4hphCH7qiMDAwuP8OmkJbz5E/N+Ro9OFuLE7ax4GlwxaTsAWg== +"@react-native/metro-babel-transformer@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.83.tgz#ba87c3cf041f4c0d2b991231af1a6b4a216e9b5d" + integrity sha512-hGdx5N8diu8y+GW/ED39vTZa9Jx1di2ZZ0aapbhH4egN1agIAusj5jXTccfNBwwWF93aJ5oVbRzfteZgjbutKg== dependencies: "@babel/core" "^7.20.0" - "@react-native/babel-preset" "0.73.19" - hermes-parser "0.15.0" + "@react-native/babel-preset" "0.74.83" + hermes-parser "0.19.1" nullthrows "^1.1.1" -"@react-native/normalize-color@^2.0.0", "@react-native/normalize-color@^2.1.0": +"@react-native/normalize-color@^2.0.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== -"@react-native/normalize-colors@0.73.2", "@react-native/normalize-colors@^0.73.0": +"@react-native/normalize-colors@0.74.83", "@react-native/normalize-colors@^0.74.1", "@react-native/normalize-colors@~0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.74.83.tgz#86ef925bacf219d74df115bcfb615f62d8142e85" + integrity sha512-jhCY95gRDE44qYawWVvhTjTplW1g+JtKTKM3f8xYT1dJtJ8QWv+gqEtKcfmOHfDkSDaMKG0AGBaDTSK8GXLH8Q== + +"@react-native/normalize-colors@^0.73.0": version "0.73.2" resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz#cc8e48fbae2bbfff53e12f209369e8d2e4cf34ec" integrity sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w== -"@react-native/typescript-config@^0.74.0": - version "0.74.0" - resolved "https://registry.yarnpkg.com/@react-native/typescript-config/-/typescript-config-0.74.0.tgz#cb2cb58e4e424593c4ff5859e50d24dd54b14a63" - integrity sha512-Nt7AkbuLXIfoWmUrlTp06UTUj6LrMhwJhf/ReEHVpiaVJRjuqfjmwelvW/6dGSJjPFtYvziC+iaLLeyv2oBV7w== +"@react-native/typescript-config@^0.74.1": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/typescript-config/-/typescript-config-0.74.83.tgz#7a25567f565cf582419df7d2c038c8d2bd321b33" + integrity sha512-UTcZZYkSD+vv2O67bL/wu0GCGJP3BCbIxXd9ZewNkJmiWl5BbfoNl23+EjmDwM2V66gu24VB/RsSMn0TdmFs8Q== -"@react-native/virtualized-lists@0.73.4": - version "0.73.4" - resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.73.4.tgz#640e594775806f63685435b5d9c3d05c378ccd8c" - integrity sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog== +"@react-native/virtualized-lists@0.74.83": + version "0.74.83" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.74.83.tgz#5595d6aefd9679d1295c56a1d1653b1fb261bd62" + integrity sha512-rmaLeE34rj7py4FxTod7iMTC7BAsm+HrGA8WxYmEJeyTV7WSaxAkosKoYBz8038mOiwnG9VwA/7FrB6bEQvn1A== dependencies: invariant "^2.2.4" nullthrows "^1.1.1" @@ -5603,6 +5760,18 @@ dependencies: type-fest "^2.19.0" +"@rnx-kit/chromium-edge-launcher@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz#c0df8ea00a902c7a417cd9655aab06de398b939c" + integrity sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg== + dependencies: + "@types/node" "^18.0.0" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + mkdirp "^1.0.4" + rimraf "^3.0.2" + "@rollup/plugin-babel@^5.2.0": version "5.3.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" @@ -7949,11 +8118,25 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + "@types/node@*": version "20.5.1" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.1.tgz#178d58ee7e4834152b0e8b4d30cbfab578b9bb30" integrity sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg== +"@types/node@^18.0.0": + version "18.19.33" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.33.tgz#98cd286a1b8a5e11aa06623210240bcc28e95c48" + integrity sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A== + dependencies: + undici-types "~5.26.4" + "@types/node@^18.16.2": version "18.17.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.6.tgz#0296e9a30b22d2a8fcaa48d3c45afe51474ca55b" @@ -9171,10 +9354,10 @@ babel-plugin-react-native-web@^0.18.12, babel-plugin-react-native-web@~0.18.10: resolved "https://registry.yarnpkg.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.12.tgz#3e9764484492ea612a16b40135b07c2d05b7969d" integrity sha512-4djr9G6fMdwQoD6LQ7hOKAm39+y12flWgovAqS1k5O8f42YQ3A1FFMyV5kKfetZuGhZO5BmNmOdRRZQ1TixtDw== -babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: - version "7.0.0-beta.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" - integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== +babel-plugin-react-native-web@~0.19.10: + version "0.19.11" + resolved "https://registry.yarnpkg.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.11.tgz#32316f51de0053bba6815f6522bf7b17c483bf17" + integrity sha512-0sHf8GgDhsRZxGwlwHHdfL3U8wImFaLw4haEa60U9M3EiO3bg6u3BJ+1vXhwgrevqSq76rMb5j1HJs+dNvMj5g== babel-plugin-transform-flow-enums@^0.0.2: version "0.0.2" @@ -9226,53 +9409,20 @@ babel-preset-expo@^10.0.0: babel-plugin-react-native-web "~0.18.10" react-refresh "0.14.0" -babel-preset-expo@~10.0.2: - version "10.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-10.0.2.tgz#5aae992b8c85dce6cf98334c9991d3052c567950" - integrity sha512-hg06qdSTK7MjKmFXSiq6cFoIbI3n3uT8a3NI2EZoISWhu+tedCj4DQduwi+3adFuRuYvAwECI0IYn/5iGh5zWQ== +babel-preset-expo@~11.0.6: + version "11.0.6" + resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-11.0.6.tgz#b1ea2bd9f13338a9f7ca8d7089b5d6d6c7c03f79" + integrity sha512-jRi9I5/jT+dnIiNJDjDg+I/pV+AlxrIW/DNbdqYoRWPZA/LHDqD6IJnJXLxbuTcQ+llp+0LWcU7f/kC/PgGpkw== dependencies: "@babel/plugin-proposal-decorators" "^7.12.9" "@babel/plugin-transform-export-namespace-from" "^7.22.11" "@babel/plugin-transform-object-rest-spread" "^7.12.13" "@babel/plugin-transform-parameters" "^7.22.15" - "@babel/preset-env" "^7.20.0" "@babel/preset-react" "^7.22.15" - "@react-native/babel-preset" "^0.73.18" - babel-plugin-react-native-web "~0.18.10" - react-refresh "0.14.0" - -babel-preset-fbjs@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" - integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-member-expression-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-property-literals" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" + "@babel/preset-typescript" "^7.23.0" + "@react-native/babel-preset" "~0.74.83" + babel-plugin-react-native-web "~0.19.10" + react-refresh "^0.14.2" babel-preset-jest@^27.5.1: version "27.5.1" @@ -9408,11 +9558,6 @@ bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -blueimp-md5@^2.10.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz#b53feea5498dcb53dc6ec4b823adb84b729c4af0" - integrity sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w== - bn.js@^4.0.0, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" @@ -9613,29 +9758,23 @@ bytes@3.1.2, bytes@^3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacache@^15.3.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== +cacache@^18.0.2: + version "18.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.3.tgz#864e2c18414e1e141ae8763f31e46c2cb96d1b21" + integrity sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg== dependencies: - "@npmcli/fs" "^1.0.0" - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^2.0.1" minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" + minipass-pipeline "^1.2.4" p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" + ssri "^10.0.0" + tar "^6.1.11" + unique-filename "^3.0.0" call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" @@ -9858,18 +9997,6 @@ chrome-trace-event@^1.0.2: resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -chromium-edge-launcher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz#0443083074715a13c669530b35df7bfea33b1509" - integrity sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA== - dependencies: - "@types/node" "*" - escape-string-regexp "^4.0.0" - is-wsl "^2.2.0" - lighthouse-logger "^1.0.0" - mkdirp "^1.0.4" - rimraf "^3.0.2" - ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -10147,13 +10274,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== -compare-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-urls/-/compare-urls-2.0.0.tgz#9b378c4abd43980a8700fffec9afb85de4df9075" - integrity sha512-eCJcWn2OYFEIqbm70ta7LQowJOOZZqq1a2YbbFCFI1uwSvj+TWMwXVn7vPR1ceFNcAIt5RSTDbwdlX82gYLTkA== - dependencies: - normalize-url "^2.0.1" - component-type@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-type/-/component-type-1.2.1.tgz#8a47901700238e4fc32269771230226f24b415a9" @@ -10691,7 +10811,7 @@ decimal.js@^10.2.1, decimal.js@^10.4.2: resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== -decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: +decode-uri-component@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== @@ -11054,10 +11174,12 @@ dotenv-expand@^5.1.0: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== -dotenv-expand@~10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-10.0.0.tgz#12605d00fb0af6d0a592e6558585784032e4ef37" - integrity sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A== +dotenv-expand@~11.0.6: + version "11.0.6" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-11.0.6.tgz#f2c840fd924d7c77a94eff98f153331d876882d3" + integrity sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g== + dependencies: + dotenv "^16.4.4" dotenv@^10.0.0: version "10.0.0" @@ -11069,10 +11191,10 @@ dotenv@^16.0.3, dotenv@^16.3.1: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== -dotenv@~16.0.3: - version "16.0.3" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" - integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== +dotenv@^16.4.4, dotenv@~16.4.5: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== dset@^3.1.1, dset@^3.1.2: version "3.1.2" @@ -11918,40 +12040,33 @@ expect@^29.7.0: jest-message-util "^29.7.0" jest-util "^29.7.0" -expo-application@^5.8.3: - version "5.8.3" - resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.8.3.tgz#43991bd81d05c987b07b2f430c036cda1572bc62" - integrity sha512-IISxzpPX+Xe4ynnwX8yY52T6dm1g9sME1GCj4lvUlrdc5xeTPM6U35x7Wj82V7lLWBaVGe+/Tg9EeKqfylCEwA== +expo-application@^5.9.1, expo-application@~5.9.0: + version "5.9.1" + resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.9.1.tgz#a12e0cf2741b6f084cc49cd0121ad0a70c770459" + integrity sha512-uAfLBNZNahnDZLRU41ZFmNSKtetHUT9Ua557/q189ua0AWV7pQjoVAx49E4953feuvqc9swtU3ScZ/hN1XO/FQ== -expo-application@~5.8.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.8.0.tgz#b82cb98a08f91d61f047f6578e883e0deb9661f2" - integrity sha512-nNQ/ayC4P1ue0ZQSmUlG/K2ZHTPwHyYGsb0QtEmCFUCitsjPKIx4coNvAreZMuELvY7pD1zKr+pdtN/ULnljBA== - -expo-asset@~9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-9.0.2.tgz#e8a6b6da356d5fc97955599d2fa49af78c7f0bfd" - integrity sha512-PzYKME1MgUOoUvwtdzhAyXkjXOXGiSYqGKG/MsXwWr0Ef5wlBaBm2DCO9V6KYbng5tBPFu6hTjoRNil1tBOSow== +expo-asset@~10.0.6: + version "10.0.6" + resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-10.0.6.tgz#0894c4e824ce90e130852e6eecaba386e9f2e5aa" + integrity sha512-waP73/ccn/HZNNcGM4/s3X3icKjSSbEQ9mwc6tX34oYNg+XE5WdwOuZ9wgVVFrU7wZMitq22lQXd2/O0db8bxg== dependencies: - "@react-native/assets-registry" "~0.73.1" - blueimp-md5 "^2.10.0" - expo-constants "~15.4.0" - expo-file-system "~16.0.0" + "@react-native/assets-registry" "~0.74.83" + expo-constants "~16.0.0" invariant "^2.2.4" md5-file "^3.2.3" -expo-build-properties@^0.11.1: - version "0.11.1" - resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.11.1.tgz#dc9ab9fb1ac989b97da500b3ec75139c961d8b26" - integrity sha512-m4j4aEjFaDuBE6KWYMxDhWgLzzSmpE7uHKAwtvXyNmRK+6JKF0gjiXi0sXgI5ngNppDQpsyPFMvqG7uQpRuCuw== +expo-build-properties@^0.12.1: + version "0.12.1" + resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.12.1.tgz#8d11759b8f382e4654e2482ddcec4f9ad4530aad" + integrity sha512-gn8sngNmOHkbJ5Kt3mKcKg+Wl6+d0m70gg9OllRIVeDkvZqCObKfnSM4tAQWiJhm62sHnL8udfYnuArnKhQd/g== dependencies: ajv "^8.11.0" - semver "^7.5.3" + semver "^7.6.0" -expo-camera@~14.0.4: - version "14.0.6" - resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-14.0.6.tgz#4d02ae2c7d734b2256111fa17a3b2c46fa712c78" - integrity sha512-PBkbAR0g/rFO9A01CmOoPHknXBBfJ1rXFm75XQY6kmMNH9BHJ89yAtlOaYJy/fw5xVxJkyVG+6uVGgbBeu7dyw== +expo-camera@~14.1.3: + version "14.1.3" + resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-14.1.3.tgz#c3b36c7ed28613e7423b6c4df192549f4f9ee0dd" + integrity sha512-JodpVjOY8JDuSp/RkphS8Bxqaj/gwg0h0UbQB9MLr1LoxbL9brvJt7IZnmTf7+ON8jRKUx9E5o/F02pRNbmSbQ== dependencies: invariant "^2.2.4" @@ -11968,61 +12083,54 @@ expo-constants@^13.0.2: "@expo/config" "~7.0.0" uuid "^3.3.2" -expo-constants@~15.4.0: - version "15.4.1" - resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.1.tgz#f76f347cf687b6630e1e3b9a385a4e42771671a4" - integrity sha512-aLAN7HOMRFQ5dVduDLPxSlAhsA5OubDxFeM1uo3CHQoaXZfxyJv6g64zjLsOBzVSEIRmNQZl7+1mc5rujZDU2w== +expo-constants@~15.4.6: + version "15.4.6" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.6.tgz#d4e9b21b70c5602457962700f2e90a75356b487b" + integrity sha512-vizE69dww2Vl0PTWWvDmK0Jo2/J+WzdcMZlA05YEnEYofQuhKxTVsiuipf79mSOmFavt4UQYC1UnzptzKyfmiQ== dependencies: "@expo/config" "~8.5.0" -expo-constants@~15.4.3: - version "15.4.3" - resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.3.tgz#e6080323e3651e98c1433ba0d06d1352cfbd2203" - integrity sha512-iOLIB0ckJFSzsH68FoYp9f8FB0CjKViuLnRID+OhiF3IGL1ja9IZdfvtZgkGJ27Az79yThX/9ktlw77+5ejGbA== +expo-constants@~16.0.0: + version "16.0.1" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-16.0.1.tgz#1285e29c85513c6e88e118289e2baab72596d3f7" + integrity sha512-s6aTHtglp926EsugWtxN7KnpSsE9FCEjb7CgEjQQ78Gpu4btj4wB+IXot2tlqNwqv+x7xFe5veoPGfJDGF/kVg== dependencies: - "@expo/config" "~8.5.0" + "@expo/config" "~9.0.0-beta.0" -expo-constants@~15.4.5: - version "15.4.5" - resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.5.tgz#81756a4c4e1c020f840a419cd86a124a6d1fb35b" - integrity sha512-1pVVjwk733hbbIjtQcvUFCme540v4gFemdNlaxM2UXKbfRCOh2hzgKN5joHMOysoXQe736TTUrRj7UaZI5Yyhg== +expo-dev-client@^4.0.14: + version "4.0.14" + resolved "https://registry.yarnpkg.com/expo-dev-client/-/expo-dev-client-4.0.14.tgz#73d2f8b6f173d01f07af3e01cf8d5acdc6e05c01" + integrity sha512-s5/FZZdgvoxBGA35QgNet61Dc1jh+8u375uaYkH9pUvfKFXURd9PDDAWvtAnOo+QYg9WwgiHPo7dKeCdN6pOPA== dependencies: - "@expo/config" "~8.5.0" + expo-dev-launcher "4.0.15" + expo-dev-menu "5.0.14" + expo-dev-menu-interface "1.8.3" + expo-manifests "~0.14.0" + expo-updates-interface "~0.16.2" -expo-dev-client@~3.3.8: - version "3.3.11" - resolved "https://registry.yarnpkg.com/expo-dev-client/-/expo-dev-client-3.3.11.tgz#f2541ccbcfc2ba32bcea47293bc9beae4e10db60" - integrity sha512-9nhhbfbskfmjp/tlRS5KvDpCoW0BREJBxpu2GyjKu7nDB33W8fJLL0wXgNhP+QEb93r37o3uezKmUm2kibOvTw== - dependencies: - expo-dev-launcher "3.6.9" - expo-dev-menu "4.5.8" - expo-dev-menu-interface "1.7.2" - expo-manifests "~0.13.0" - expo-updates-interface "~0.15.1" - -expo-dev-launcher@3.6.9: - version "3.6.9" - resolved "https://registry.yarnpkg.com/expo-dev-launcher/-/expo-dev-launcher-3.6.9.tgz#5e104e0533a46f3614c1691673da3351092e8d1d" - integrity sha512-MBDMAqjCMVYt1Zv47u2dJTp4d8gCZMfM4GWAFhfQy3G6XzkUlFtewaQefAqy93FcYOv6BYdC9yZOLOb06tqTfA== +expo-dev-launcher@4.0.15: + version "4.0.15" + resolved "https://registry.yarnpkg.com/expo-dev-launcher/-/expo-dev-launcher-4.0.15.tgz#cd36f10b7e534e5caa176a5718381ccfa73b0b8c" + integrity sha512-avl4NTwFwalZjojFAXvINPgxAlcAxfdwy9PSsAq5KAkl9Vv+Vr8O2gI3nfrPwtqAA0iOIES/EKN0YFCiQuuvvg== dependencies: ajv "8.11.0" - expo-dev-menu "4.5.8" - expo-manifests "~0.13.0" + expo-dev-menu "5.0.14" + expo-manifests "~0.14.0" resolve-from "^5.0.0" - semver "^7.5.3" + semver "^7.6.0" -expo-dev-menu-interface@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/expo-dev-menu-interface/-/expo-dev-menu-interface-1.7.2.tgz#772fb97c6b0a44c27965cdfcfa078f316b0930ca" - integrity sha512-V/geSB9rW0IPTR+d7E5CcvkV0uVUCE7SMHZqE/J0/dH06Wo8AahB16fimXeh5/hTL2Qztq8CQ41xpFUBoA9TEw== +expo-dev-menu-interface@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/expo-dev-menu-interface/-/expo-dev-menu-interface-1.8.3.tgz#8c1262e29e0124fc5932a129c95b36de56656b20" + integrity sha512-QM0LRozeFT5Ek0N7XpV93M+HMdEKRLEOXn0aW5M3uoUlnqC1+PLtF3HMy3k3hMKTTE/kJ1y1Z7akH07T0lunCQ== -expo-dev-menu@4.5.8: - version "4.5.8" - resolved "https://registry.yarnpkg.com/expo-dev-menu/-/expo-dev-menu-4.5.8.tgz#21940385124c7d2745066bbcb42185ebd35f66bc" - integrity sha512-GXfI0CmYlqjOqyFjtplXO9PSoJQoy89+50lbUSNZykDsGyvzCPzl4txdQcdHHSglKYr7lWV7aeMVeehuSct60w== +expo-dev-menu@5.0.14: + version "5.0.14" + resolved "https://registry.yarnpkg.com/expo-dev-menu/-/expo-dev-menu-5.0.14.tgz#7d54fc51b42217588cb9c5f2049bcf857d6e0b3d" + integrity sha512-zPXBMCyjptn4Aw7D2Z8FEqndED33g1ryChN0nyTA1zHzckDNwnGuLdTWTsNFrqmFqyqjRJgG5xFVJmnsDO8WyQ== dependencies: - expo-dev-menu-interface "1.7.2" - semver "^7.5.3" + expo-dev-menu-interface "1.8.3" + semver "^7.5.4" expo-device@~4.1.1: version "4.1.1" @@ -12032,31 +12140,31 @@ expo-device@~4.1.1: ua-parser-js "^0.7.19" expo-device@~5.9.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-5.9.3.tgz#0ad61da681424aa682fa03001d0344394c01f8a1" - integrity sha512-azH5rz8krDZUJb/arqkcA6oZGaX2T5s4aaXIMFsDDzvq8TW0CttZZy2HFp6itmFdiKGdRpFX3/Gj0n6ZmPoJ/w== + version "5.9.4" + resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-5.9.4.tgz#7dc8ba3695e1c0891bbc840a255faac479310c08" + integrity sha512-nleq3GghLWWJrj4YH8HiCumnTF/gy4zRd3jedCkO8lMKQg6R1yn3v0ch8NtgPDci749FkNzOtXx/vmFImQalwg== dependencies: ua-parser-js "^0.7.33" -expo-eas-client@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.11.0.tgz#0f25aa497849cade7ebef55c0631093a87e58b07" - integrity sha512-99W0MUGe3U4/MY1E9UeJ4uKNI39mN8/sOGA0Le8XC47MTbwbLoVegHR3C5y2fXLwLn7EpfNxAn5nlxYjY3gD2A== +expo-eas-client@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.12.0.tgz#e8b6f7d33873e6f630f37f7bfc41646ae7b0b2a9" + integrity sha512-Jkww9Cwpv0z7DdLYiRX0r4fqBEcI9cKqTn7cHx63S09JaZ2rcwEE4zYHgrXwjahO+tU2VW8zqH+AJl6RhhW4zA== -expo-file-system@^16.0.9, expo-file-system@~16.0.9: +expo-file-system@^16.0.9: version "16.0.9" resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.9.tgz#cbd6c4b228b60a6b6c71fd1b91fe57299fb24da7" integrity sha512-3gRPvKVv7/Y7AdD9eHMIdfg5YbUn2zbwKofjsloTI5sEC57SLUFJtbLvUCz9Pk63DaSQ7WIE1JM0EASyvuPbuw== -expo-file-system@~16.0.0: - version "16.0.1" - resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.1.tgz#326b7c2f6e53e1a0eaafc9769578aafb3f9c9f43" - integrity sha512-/U6ufN2wRPgg4m2a9sqbL3dThqQsysT022qulEXWnUTmNaqnzYSk9ihjDWqoqjXLi9slQLsyok5t6CNzhM7HPw== +expo-file-system@~17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-17.0.1.tgz#b9f8af8c1c06ec71d96fd7a0d2567fa9e1c88f15" + integrity sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw== -expo-font@~11.10.3: - version "11.10.3" - resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-11.10.3.tgz#a3115ebda8e09bd7cb8052619a4bbe606f0c17f4" - integrity sha512-q1Td2zUvmLbCA9GV4OG4nLPw5gJuNY1VrPycsnemN1m8XWTzzs8nyECQQqrcBhgulCgcKZZJJ6U0kC2iuSoQHQ== +expo-font@~12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-12.0.5.tgz#3451c2bd3f98859b127a6484d3474a292889b93f" + integrity sha512-h/VkN4jlHYDJ6T6pPgOYTVoDEfBY0CTKQe4pxnPDGQiE6H+DFdDgk+qWVABGpRMH0+zXoHB+AEi3OoQjXIynFA== dependencies: fontfaceobserver "^2.1.0" @@ -12065,114 +12173,113 @@ expo-haptics@^12.8.1: resolved "https://registry.yarnpkg.com/expo-haptics/-/expo-haptics-12.8.1.tgz#42b996763be33d661bd33bbc3b3958c3f2734b9d" integrity sha512-ntLsHkfle8K8w9MW8pZEw92ZN3sguaGUSSIxv30fPKNeQFu7Cq/h47Qv3tONv2MO3wU48N9FbKnant6XlfptpA== -expo-image-loader@~4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/expo-image-loader/-/expo-image-loader-4.6.0.tgz#ca7d4fdf53125bff2091d3a2c34a3155f10df147" - integrity sha512-RHQTDak7/KyhWUxikn2yNzXL7i2cs16cMp6gEAgkHOjVhoCJQoOJ0Ljrt4cKQ3IowxgCuOrAgSUzGkqs7omj8Q== +expo-image-loader@~4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/expo-image-loader/-/expo-image-loader-4.7.0.tgz#d403106822de80bda12d644c82b7a3b7983c0f0b" + integrity sha512-cx+MxxsAMGl9AiWnQUzrkJMJH4eNOGlu7XkLGnAXSJrRoIiciGaKqzeaD326IyCTV+Z1fXvIliSgNW+DscvD8g== -expo-image-manipulator@^11.8.0: - version "11.8.0" - resolved "https://registry.yarnpkg.com/expo-image-manipulator/-/expo-image-manipulator-11.8.0.tgz#e52351728619e534c949ae4b394af2c7c5d16702" - integrity sha512-ZWVrHnYmwJq6h7auk+ropsxcNi+LyZcPFKQc8oy+JA0SaJosfShvkCm7RADWAunHmfPCmjHrhwPGEu/rs7WG/A== +expo-image-manipulator@^12.0.3: + version "12.0.3" + resolved "https://registry.yarnpkg.com/expo-image-manipulator/-/expo-image-manipulator-12.0.3.tgz#797fda98f606a65c6be9d2c0f53256f3fb3f798c" + integrity sha512-gosW32roHbXRKPiBVbQDFpxaZf8sjOJ9aaqbe085Qfcenvvr1lNFMx9M9BFYhAoKd23oEWlyvNHDnAayV4gAFA== dependencies: - expo-image-loader "~4.6.0" + expo-image-loader "~4.7.0" -expo-image-picker@~14.7.1: - version "14.7.1" - resolved "https://registry.yarnpkg.com/expo-image-picker/-/expo-image-picker-14.7.1.tgz#c51faff3a3fbffc6ae93d7155370beb1a2d2baea" - integrity sha512-ILQVOJgI3aEzrDmCFGDPtpAepYkn8mot8G7vfQ51BfFdQbzL6N3Wm1fS/ofdWlAZJl/qT2DwaIh5xYmf3SyGZA== +expo-image-picker@~15.0.4: + version "15.0.4" + resolved "https://registry.yarnpkg.com/expo-image-picker/-/expo-image-picker-15.0.4.tgz#b01121b26c88ee14bf49133160e408c1e7972b4d" + integrity sha512-Jo78o3DQfqpYC4fsnayxTEVGDFSbaNMwx5gQ2PPlEYMK5AmD5qexQjxhlxM1mZ0e1xkJKJfN7XEdcf53jW9vIg== dependencies: - expo-image-loader "~4.6.0" + expo-image-loader "~4.7.0" -expo-image@~1.10.6: - version "1.10.6" - resolved "https://registry.yarnpkg.com/expo-image/-/expo-image-1.10.6.tgz#b0e54d31d97742505296c076a5f18d094ba9a8cc" - integrity sha512-vcnAIym1eU8vQgV1re1E7rVQZStJimBa4aPDhjFfzMzbddAF7heJuagyewiUkTzbZUwYzPaZAie6VJPyWx9Ueg== +expo-image@~1.12.9: + version "1.12.9" + resolved "https://registry.yarnpkg.com/expo-image/-/expo-image-1.12.9.tgz#b6354ab1dcff65df596399a538e6985c44aacc0b" + integrity sha512-WnC3Z3vsOTJLWE9FGB0a0GANmkpfBCqTf9bSLXXl50hEYiRcfwrAYZ/87oswAhggMGbJqOuLKZxt5rtuij1xcQ== dependencies: - "@react-native/assets-registry" "~0.73.1" + "@react-native/assets-registry" "~0.74.83" -expo-json-utils@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.12.0.tgz#15ad797e9518a6a47eae9b95599e6373e641f8f2" - integrity sha512-xsUsPUZcXZWoT4RY3FhEPYGYvr2iThMNNU5drdmkC/vmkePvqy5kK4aIqlIKzQboXxj7k1dXoNSSLg5mKy8uKg== +expo-json-utils@~0.13.0: + version "0.13.1" + resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.13.1.tgz#e49b697198e11c573d346f08ab91c467095934a9" + integrity sha512-mlfaSArGVb+oJmUcR22jEONlgPp0wj4iNIHfQ2je9Q8WTOqMc0Ws9tUciz3JdJnhffdHqo/k8fpvf0IRmN5HPA== -expo-keep-awake@~12.8.2: - version "12.8.2" - resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-12.8.2.tgz#6cfdf8ad02b5fa130f99d4a1eb98e459d5b4332e" - integrity sha512-uiQdGbSX24Pt8nGbnmBtrKq6xL/Tm3+DuDRGBk/3ZE/HlizzNosGRIufIMJ/4B4FRw4dw8KU81h2RLuTjbay6g== +expo-keep-awake@~13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-13.0.2.tgz#5ef31311a339671eec9921b934fdd90ab9652b0e" + integrity sha512-kKiwkVg/bY0AJ5q1Pxnm/GvpeB6hbNJhcFsoOWDh2NlpibhCLaHL826KHUM+WsnJRbVRxJ+K9vbPRHEMvFpVyw== -expo-linear-gradient@^12.7.2: - version "12.7.2" - resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-12.7.2.tgz#2ff9593eae8448ac5630be1a36ce6133c4a6f074" - integrity sha512-Wwb2EF18ywgrlTodcXJ6Yt/UEcKitRMdXPNyP/IokmeKh4emoq9DxZJpZdkXm3HUTLlbRpi6/t32jrFVqXB9AQ== +expo-linear-gradient@^13.0.2: + version "13.0.2" + resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-13.0.2.tgz#21bd7bc7c71ef4f7c089521daa16db729d2aec5f" + integrity sha512-EDcILUjRKu4P1rtWcwciN6CSyGtH7Bq4ll3oTRV7h3h8oSzSilH1g6z7kTAMlacPBKvMnkkWOGzW6KtgMKEiTg== -expo-linking@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/expo-linking/-/expo-linking-6.2.2.tgz#b7e148068ae49fd9ad814428c16fdf7a236e8aca" - integrity sha512-FEe6lP4f7xFT/vjoHRG+tt6EPVtkEGaWNK1smpaUevmNdyCJKqW0PDB8o8sfG6y7fly8ULe8qg3HhKh5J7aqUQ== +expo-linking@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/expo-linking/-/expo-linking-6.3.1.tgz#05aef8a42bd310391d0b00644be40d80ece038d9" + integrity sha512-xuZCntSBGWCD/95iZ+mTUGTwHdy8Sx+immCqbUBxdvZ2TN61P02kKg7SaLS8A4a/hLrSCwrg5tMMwu5wfKr35g== dependencies: - expo-constants "~15.4.3" + expo-constants "~16.0.0" invariant "^2.2.4" -expo-localization@~14.8.3: - version "14.8.3" - resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-14.8.3.tgz#c1efa8a314b6bfe38425bbc6bcce9cf9b84a802d" - integrity sha512-leg1e+7ocUgfNWa7Men/g16waXtdSpBMR9tCdv3CG4wztmFU8C+87VAnnVkvHi4CCUkTLzhP3y0FcE6KIWTwdw== +expo-localization@~15.0.3: + version "15.0.3" + resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-15.0.3.tgz#772c89b3ab9c925b7eca6911a11ca33980c2b674" + integrity sha512-IfcmlKuKRlowR9qIzL0e+nGHBeNoF7l2GQaOJstc7HZiPjNJ4J1R4D53ZNf483dt7JSkTRJBihdTadOtOEjRdg== dependencies: rtl-detect "^1.0.2" -expo-manifests@~0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-0.13.0.tgz#20f163f84a414c6c50b8079e5fd0685d7c5b8ce2" - integrity sha512-N3adl3edSga3jdatLXjXiltdSwQkB1rOI5uyGEE5OwR/bpxc/5OUgHdRZjJgY6jJmVY4BCAiw0RXFoVRBbgE0Q== +expo-manifests@~0.14.0: + version "0.14.2" + resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-0.14.2.tgz#431a235f21ca667ea8f8642819fbc414a8473174" + integrity sha512-hFrwIGr76/zGVhZ+vcjDZpOePd7uYNB6yCaiJcm7/bcrt2ne7cHyKQ8l+3n26/v1OuXfBfjxNH+PHIpkClszoQ== dependencies: - "@expo/config" "~8.5.0" - expo-json-utils "~0.12.0" + "@expo/config" "~9.0.0-beta.0" + expo-json-utils "~0.13.0" -expo-media-library@~15.9.1: - version "15.9.1" - resolved "https://registry.yarnpkg.com/expo-media-library/-/expo-media-library-15.9.1.tgz#1eaf5a0c8f51669f6f86d385a8fa411226042216" - integrity sha512-Y29uKFJ3qWwNejIrjoCppXp3OgIFs/RYHWXkF9xey6evpNrUlHoP1WHG2jYAMSrss6aIRVt3tO7EtYUCZxz50Q== +expo-media-library@~16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/expo-media-library/-/expo-media-library-16.0.3.tgz#789277a827b9c04e59eef84aa11f4edcf5f1cfce" + integrity sha512-E++h+ZyVOXhGOKddeg/wjoEFH+JAGazcAsMpjAOT+/F69nrIEl27Fymi9XVAzooazp38dKrDBNeOJuWoXUdUAw== -expo-modules-autolinking@1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.10.3.tgz#19f349884a90f3f27ec9d64e8f2fa6be609558c5" - integrity sha512-pn4n2Dl4iRh/zUeiChjRIe1C7EqOw1qhccr85viQV7W6l5vgRpY0osE51ij5LKg/kJmGRcJfs12+PwbdTplbKw== +expo-modules-autolinking@1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.11.1.tgz#4a867f727d9dfde07de8dde14b333a3cbf82ce3c" + integrity sha512-2dy3lTz76adOl7QUvbreMCrXyzUiF8lygI7iFJLjgIQIVH+43KnFWE5zBumpPbkiaq0f0uaFpN9U0RGQbnKiMw== dependencies: - "@expo/config" "~8.5.0" chalk "^4.1.0" commander "^7.2.0" fast-glob "^3.2.5" find-up "^5.0.0" fs-extra "^9.1.0" -expo-modules-core@1.11.13: - version "1.11.13" - resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.11.13.tgz#a8e63ad844e966dce78dea40b50839af6c3bc518" - integrity sha512-2H5qrGUvmLzmJNPDOnovH1Pfk5H/S/V0BifBmOQyDc9aUh9LaDwkqnChZGIXv8ZHDW8JRlUW0QqyWxTggkbw1A== +expo-modules-core@1.12.11: + version "1.12.11" + resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.12.11.tgz#71d7efb2f6a2a4d3b96defad52fc799b9804f829" + integrity sha512-CF5G6hZo/6uIUz6tj4dNRlvE5L4lakYukXPqz5ZHQ+6fLk1NQVZbRdpHjMkxO/QSBQcKUzG/ngeytpoJus7poQ== dependencies: invariant "^2.2.4" -expo-navigation-bar@~2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/expo-navigation-bar/-/expo-navigation-bar-2.8.1.tgz#c4152f878d9fb6ca74c90b80e934af76c29b5377" - integrity sha512-aT5G+7SUsXDVPsRwp8fF940ycka1ABb4g3QKvTZN3YP6kMWvsiYEmRqMIJVy0zUr/i6bxBG1ZergkXimWrFt3w== +expo-navigation-bar@~3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/expo-navigation-bar/-/expo-navigation-bar-3.0.4.tgz#c122194f720f0fb03430fa8a34c15980fc0a169f" + integrity sha512-hlnYnoFX3L1hHZxcnTVwAQW3AM5xf3clWYjqB2UMSIfTxCaE2PU8aHtAztLBQANrQhEvnbiwNcrkzfnWU2WWCQ== dependencies: - "@react-native/normalize-color" "^2.0.0" + "@react-native/normalize-colors" "~0.74.83" debug "^4.3.2" -expo-notifications@~0.27.6: - version "0.27.6" - resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.27.6.tgz#ef7c95504034ac8b5fa360e13f5b037c5bf7e80d" - integrity sha512-F2iu/lzsrvfMyHA5BfnbZfE8fVLV8aQmNLk3NPztZ0g7911QEriZzH7BK/NKOZ5UHhJYI+hhYvcZCq2nFm1NLA== +expo-notifications@~0.28.1: + version "0.28.1" + resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.28.1.tgz#9152cb17100ce72b66f2bf642fb097c3ae2d2019" + integrity sha512-qBVcq3lc+FIvcYt/8M+JB1c60g0hVuyGY4MVGTY56ciU6nMOCiBiz4XPc3DeiZA16jVtfriooWA26wqBkQfkHg== dependencies: - "@expo/image-utils" "^0.4.0" + "@expo/image-utils" "^0.5.0" "@ide/backoff" "^1.0.0" abort-controller "^3.0.0" assert "^2.0.0" badgin "^1.1.5" - expo-application "~5.8.0" - expo-constants "~15.4.0" + expo-application "~5.9.0" + expo-constants "~16.0.0" fs-extra "^9.1.0" expo-pwa@0.0.127: @@ -12185,91 +12292,92 @@ expo-pwa@0.0.127: commander "2.20.0" update-check "1.5.3" -expo-sharing@^11.10.0: - version "11.10.0" - resolved "https://registry.yarnpkg.com/expo-sharing/-/expo-sharing-11.10.0.tgz#0e85197ee4d2634b00fe201e571fbdc64cf83eef" - integrity sha512-/64RyyKlZ25WfnMXa87HbPXhIIqWwNbIku/RaIYAq4SE0XTRC+KTH3v0XFkfDa+SCG/jKsAr1pJ3vQvsNo1sCQ== +expo-sharing@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/expo-sharing/-/expo-sharing-12.0.1.tgz#6c4d951beda47dac47112e679d60fc06c233b7aa" + integrity sha512-wBT+WeXwapj/9NWuLJO01vi9bdlchYu/Q/xD8slL/Ls4vVYku8CPqzkTtDFcjLrjtlJqyeHsdQXwKLvORmBIew== -expo-splash-screen@~0.26.4: - version "0.26.4" - resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.26.4.tgz#bc1fb226c6eae03ee351a3ebe5521a37f868cbc7" - integrity sha512-2DwofTQ0FFQCsvDysm/msENsbyNsJiAJwK3qK/oXeizECAPqD7bK19J4z9kuEbr7ORPX9MLnTQYKl6kmX3keUg== +expo-splash-screen@~0.27.4: + version "0.27.4" + resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.27.4.tgz#d7a86a2a1a87824ed47388aa8836e91b61268c62" + integrity sha512-JwepK1FjbwiOK2nwIFanfzj9s7UXYnpTwLX8A9v7Ec3K4V28yu8HooSc9X60cftBw9UZrs8Gwj4PgTpQabBS9A== dependencies: - "@expo/prebuild-config" "6.7.4" + "@expo/prebuild-config" "7.0.3" -expo-status-bar@~1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.11.1.tgz#a11318741d361048c11db2b16c4364a79a74af30" - integrity sha512-ddQEtCOgYHTLlFUe/yH67dDBIoct5VIULthyT3LRJbEwdpzAgueKsX2FYK02ldh440V87PWKCamh7R9evk1rrg== +expo-status-bar@~1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.12.1.tgz#52ce594aab5064a0511d14375364d718ab78aa66" + integrity sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA== -expo-structured-headers@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/expo-structured-headers/-/expo-structured-headers-3.7.0.tgz#69b752cf43515535eccd30513da428688634a7ec" - integrity sha512-uGcU65gzP4trfmVtntAg3rU/pytTGpCUXN+hQmCwCCvQb9qK1aoCXvVlqlW5zP8SZ04tzF1WXKR+P8RSEn5rSw== +expo-structured-headers@~3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/expo-structured-headers/-/expo-structured-headers-3.8.0.tgz#11797a4c3a7a6770b21126cecffcda148030e361" + integrity sha512-R+gFGn0x5CWl4OVlk2j1bJTJIz4KO8mPoCHpRHmfqMjmrMvrOM0qQSY3V5NHXwp1yT/L2v8aUmFQsBRIdvi1XA== -expo-system-ui@~2.9.3: - version "2.9.3" - resolved "https://registry.yarnpkg.com/expo-system-ui/-/expo-system-ui-2.9.3.tgz#845c7615a6ede9d959dff1719df3d9392a43c080" - integrity sha512-RNFNBLJ9lhnjOGrHhtfDc15Ry/lF+SA4kwulmHzYGqaTeYvsL9q0K0+m9qmxuDdrbKJkuurvzvjVylDNnKNFVg== +expo-system-ui@~3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/expo-system-ui/-/expo-system-ui-3.0.4.tgz#5ace49d38eb03c09a8041b3b82c581a6b974741a" + integrity sha512-v1n6hBO30k9qw6RE8/au4yNoovs71ExGuXizJUlR5KSo4Ruogpb+0/2q3uRZMDIYWWCANvms8L0UOh6fQJ5TXg== dependencies: - "@react-native/normalize-color" "^2.0.0" + "@react-native/normalize-colors" "~0.74.83" debug "^4.3.2" -expo-task-manager@~11.7.2: - version "11.7.2" - resolved "https://registry.yarnpkg.com/expo-task-manager/-/expo-task-manager-11.7.2.tgz#db09ee5ed4adf1ea586c131a60196cb387a7eb4a" - integrity sha512-cmn7xg8+mGP7gX6deYZhvrCkKMkoBRJ+E4o5aL17Z/4ihXMfo/PFcQsrpuSYRLXzgidEw0kpppxhmYm21Jswwg== +expo-task-manager@~11.8.1: + version "11.8.1" + resolved "https://registry.yarnpkg.com/expo-task-manager/-/expo-task-manager-11.8.1.tgz#33089e78ee3fbd83327fb403bce12d69baf7d21b" + integrity sha512-oGOUI8Cz9us1xFvWFftbMEvFGOIFYLa2xVguSGL7G+6ys0f+ozlkgT42KgG5qSwtDoqQ6+LMh9TJLLJUg1sVZw== dependencies: - unimodules-app-loader "~4.5.0" + unimodules-app-loader "~4.6.0" -expo-updates-interface@~0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.15.1.tgz#b0242fa7ba05768ada2f0faf83b90aa8b8fa65d7" - integrity sha512-B42oOB0pw4TaPoOGE/yzt9ggwNNxo3PEJRU0kIOurQ8hW5UEUC8cAbGQDYWGbTyNGp8gLBG+T2MCg+YYaCYJUw== +expo-updates-interface@~0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.16.2.tgz#ad1ac2ca8ee5a8cc84052ea3c18a11da64da569b" + integrity sha512-929XBU70q5ELxkKADj1xL0UIm3HvhYhNAOZv5DSk7rrKvLo7QDdPyl+JVnwZm9LrkNbH4wuE2rLoKu1KMgZ+9A== -expo-updates@~0.24.10: - version "0.24.12" - resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.24.12.tgz#17a708f52f999d0a7dcbf3d4401b5a481ab12730" - integrity sha512-35ZpAMSqHIyVGT5mEptaZJBxytu0mv4PIG28i3BQe+GG4ifQtY94aCOCrUwZe8Myzaf4dNVGEUXWTPo+JPCgcw== +expo-updates@~0.25.11: + version "0.25.11" + resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.25.11.tgz#a477139cfd5f67c7b5fdf41eba3f6dad471eeb14" + integrity sha512-ZO+e6bLsEBMz+JdEOlJXGf+3w606si7zKKEEzkwDQWJWP20W0WQAG+MDYgTEgxQboc+jTC+T0MvvOvkVb8cFIQ== dependencies: "@expo/code-signing-certificates" "0.0.5" - "@expo/config" "~8.5.0" - "@expo/config-plugins" "~7.8.0" + "@expo/config" "~9.0.0-beta.0" + "@expo/config-plugins" "~8.0.0-beta.0" + "@expo/fingerprint" "^0.7.0" + "@expo/spawn-async" "^1.7.2" arg "4.1.0" chalk "^4.1.2" - expo-eas-client "~0.11.0" - expo-manifests "~0.13.0" - expo-structured-headers "~3.7.0" - expo-updates-interface "~0.15.1" + expo-eas-client "~0.12.0" + expo-manifests "~0.14.0" + expo-structured-headers "~3.8.0" + expo-updates-interface "~0.16.2" + fast-glob "^3.3.2" fbemitter "^3.0.0" + ignore "^5.3.1" resolve-from "^5.0.0" -expo-web-browser@~12.8.2: - version "12.8.2" - resolved "https://registry.yarnpkg.com/expo-web-browser/-/expo-web-browser-12.8.2.tgz#f34fb85c80031e0dddd4f9b9efd03cb60333b089" - integrity sha512-Mw8WoFMSADecNjtC4PZVsVj1/lYdxIAH1jOVV+F8v8SEWYxORWofoShfXg7oUxRLu0iUG8JETfO5y4m8+fOgdg== - dependencies: - compare-urls "^2.0.0" - url "^0.11.0" +expo-web-browser@~13.0.3: + version "13.0.3" + resolved "https://registry.yarnpkg.com/expo-web-browser/-/expo-web-browser-13.0.3.tgz#dceb05dbc187b498ca937b02adf385b0232a4e92" + integrity sha512-HXb7y82ApVJtqk8tManyudtTrCtx8xcUnVzmJECeHCB0SsWSQ+penVLZxJkcyATWoJOsFMnfVSVdrTcpKKGszQ== -expo@^50.0.17: - version "50.0.17" - resolved "https://registry.yarnpkg.com/expo/-/expo-50.0.17.tgz#ab0998d7e7c18e8d12efd9091f9688978b0e89ed" - integrity sha512-eD8Nh10BgVwecU7EVyogx7X314ajxVpJdFwkXhi341AD61S2WPX31NMHW82XGXas6dbDjdbgtaOMo5H/vylB7Q== +expo@^51.0.8: + version "51.0.8" + resolved "https://registry.yarnpkg.com/expo/-/expo-51.0.8.tgz#a7981e86ee20eac4b847c7c8cc5799d9c6b1508d" + integrity sha512-bdTOiMb1f3PChtuqEZ9czUm2gMTmS0r1+H+Pkm2O3PsuLnOgxfIBzL6S37+J4cUocLBaENrmx9SOGKpzhBqXpg== dependencies: "@babel/runtime" "^7.20.0" - "@expo/cli" "0.17.10" - "@expo/config" "8.5.6" - "@expo/config-plugins" "7.9.1" - "@expo/metro-config" "0.17.7" + "@expo/cli" "0.18.13" + "@expo/config" "9.0.2" + "@expo/config-plugins" "8.0.4" + "@expo/metro-config" "0.18.4" "@expo/vector-icons" "^14.0.0" - babel-preset-expo "~10.0.2" - expo-asset "~9.0.2" - expo-file-system "~16.0.9" - expo-font "~11.10.3" - expo-keep-awake "~12.8.2" - expo-modules-autolinking "1.10.3" - expo-modules-core "1.11.13" + babel-preset-expo "~11.0.6" + expo-asset "~10.0.6" + expo-file-system "~17.0.1" + expo-font "~12.0.5" + expo-keep-awake "~13.0.2" + expo-modules-autolinking "1.11.1" + expo-modules-core "1.12.11" fbemitter "^3.0.0" whatwg-url-without-unicode "8.0.0-3" @@ -12355,6 +12463,17 @@ fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -12662,11 +12781,6 @@ flow-parser@0.*: resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.215.0.tgz#9b153fa27ab238bcc0bb1ff73b63bdb15d3f277d" integrity sha512-8bjwzy8vi+fNDy8YoTBNtQUSZa53i7UWJJTunJojOtjab9cMNhOCwohionuMgDQUU0y21QTTtPOX6OQEOQT72A== -flow-parser@^0.206.0: - version "0.206.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.206.0.tgz#f4f794f8026535278393308e01ea72f31000bfef" - integrity sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w== - follow-redirects@^1.0.0, follow-redirects@^1.14.9, follow-redirects@^1.15.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" @@ -12804,6 +12918,13 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + fs-monkey@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.4.tgz#ee8c1b53d3fe8bb7e5d2c5c5dfc0168afdd2f747" @@ -12967,6 +13088,17 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^10.2.2: + version "10.4.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2" + integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + path-scurry "^1.11.1" + glob@^10.3.10: version "10.3.12" resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b" @@ -13199,28 +13331,21 @@ he@1.2.0, he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hermes-estree@0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.15.0.tgz#e32f6210ab18c7b705bdcb375f7700f2db15d6ba" - integrity sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ== - hermes-estree@0.18.2: version "0.18.2" resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.18.2.tgz#fd450fa1659cf074ceaa2ddeeb21674f3b2342f3" integrity sha512-KoLsoWXJ5o81nit1wSyEZnWUGy9cBna9iYMZBR7skKh7okYAYKqQ9/OczwpMHn/cH0hKDyblulGsJ7FknlfVxQ== +hermes-estree@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.19.1.tgz#d5924f5fac2bf0532547ae9f506d6db8f3c96392" + integrity sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g== + hermes-estree@0.20.1: version "0.20.1" resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.20.1.tgz#0b9a544cf883a779a8e1444b915fa365bef7f72d" integrity sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg== -hermes-parser@0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.15.0.tgz#f611a297c2a2dbbfbce8af8543242254f604c382" - integrity sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q== - dependencies: - hermes-estree "0.15.0" - hermes-parser@0.18.2: version "0.18.2" resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.18.2.tgz#50f15e2fcd559a48c68cd7af259d4292298bd14d" @@ -13228,6 +13353,13 @@ hermes-parser@0.18.2: dependencies: hermes-estree "0.18.2" +hermes-parser@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.19.1.tgz#1044348097165b7c93dc198a80b04ed5130d6b1a" + integrity sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A== + dependencies: + hermes-estree "0.19.1" + hermes-parser@^0.20.1: version "0.20.1" resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.20.1.tgz#ad10597b99f718b91e283f81cbe636c50c3cff92" @@ -13516,6 +13648,11 @@ ignore@^5.0.5, ignore@^5.1.9, ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== +ignore@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + image-size@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" @@ -13567,11 +13704,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -13671,11 +13803,6 @@ ip-regex@^2.1.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== -ip@^1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== - ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -13931,11 +14058,6 @@ is-path-inside@^3.0.2, is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" @@ -14176,6 +14298,15 @@ jackspeak@^2.3.6: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" +jackspeak@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.1.2.tgz#eada67ea949c6b71de50f1b09c92a961897b90ab" + integrity sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jake@^10.8.5: version "10.8.7" resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" @@ -15769,6 +15900,11 @@ lodash.isequal@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== +lodash.isobject@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" + integrity sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA== + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -15824,7 +15960,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.10, lodash@^4.17.13, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: +lodash@^4.17.10, lodash@^4.17.13, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -15878,6 +16014,11 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" +lru-cache@^10.0.1: + version "10.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== + lru-cache@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" @@ -16128,16 +16269,17 @@ metro-minify-terser@0.80.4: dependencies: terser "^5.15.0" -metro-react-native-babel-preset@^0.73.7: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.10.tgz#304b24bb391537d2c987732cc0a9774be227d3f6" - integrity sha512-1/dnH4EHwFb2RKEKx34vVDpUS3urt2WEeR8FYim+ogqALg4sTpG7yeQPxWpbgKATezt4rNfqAANpIyH19MS4BQ== +metro-react-native-babel-preset@^0.74.1: + version "0.74.1" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.74.1.tgz#81c1c30f13f543c5848049e46e1afbc81df87de6" + integrity sha512-DjsG9nqm5C7cjB2SlgbcNJOn9y5MBUd3bRlCfnoj8CxAeGTGkS+yXd183lHR3C1bhmQNjuUE0abzzpE1CFh6JQ== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" "@babel/plugin-proposal-class-properties" "^7.0.0" "@babel/plugin-proposal-export-default-from" "^7.0.0" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" + "@babel/plugin-proposal-numeric-separator" "^7.0.0" "@babel/plugin-proposal-object-rest-spread" "^7.0.0" "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" "@babel/plugin-proposal-optional-chaining" "^7.0.0" @@ -16166,7 +16308,6 @@ metro-react-native-babel-preset@^0.73.7: "@babel/plugin-transform-shorthand-properties" "^7.0.0" "@babel/plugin-transform-spread" "^7.0.0" "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" "@babel/plugin-transform-typescript" "^7.5.0" "@babel/plugin-transform-unicode-regex" "^7.0.0" "@babel/template" "^7.0.0" @@ -16382,7 +16523,7 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1: +minimatch@^9.0.1, minimatch@^9.0.4: version "9.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== @@ -16394,12 +16535,12 @@ minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== +minipass-collect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" + integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== dependencies: - minipass "^3.0.0" + minipass "^7.0.3" minipass-flush@^1.0.5: version "1.0.5" @@ -16408,14 +16549,14 @@ minipass-flush@^1.0.5: dependencies: minipass "^3.0.0" -minipass-pipeline@^1.2.2: +minipass-pipeline@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" -minipass@3.3.6, minipass@^3.0.0, minipass@^3.1.1: +minipass@^3.0.0: version "3.3.6" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== @@ -16432,6 +16573,11 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +minipass@^7.0.3, minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + minizlib@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -16699,15 +16845,6 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== -normalize-url@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" @@ -16994,7 +17131,7 @@ optionator@^0.9.3: prelude-ls "^1.2.1" type-check "^0.4.0" -ora@3.4.0: +ora@3.4.0, ora@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== @@ -17296,6 +17433,14 @@ path-scurry@^1.10.2: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -18100,15 +18245,6 @@ postcss@^8.3.5, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.4: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@~8.4.21: - version "8.4.29" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd" - integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - postcss@~8.4.32: version "8.4.38" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" @@ -18168,11 +18304,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -18275,11 +18406,6 @@ progress@2.0.3, progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" @@ -18498,11 +18624,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - punycode@^2.1.0, punycode@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" @@ -18530,22 +18651,13 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.11.2, qs@^6.5.1: +qs@^6.5.1: version "6.11.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== dependencies: side-channel "^1.0.4" -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - query-string@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328" @@ -18556,6 +18668,11 @@ query-string@^7.1.3: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +querystring@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -18686,10 +18803,10 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" -react-devtools-core@^4.27.7: - version "4.28.5" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.28.5.tgz#c8442b91f068cdf0c899c543907f7f27d79c2508" - integrity sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA== +react-devtools-core@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-5.2.0.tgz#072ecd2d84d3653817cc11e4b16f60a3c2b705f9" + integrity sha512-vZK+/gvxxsieAoAyYaiRIVFxlajb7KXhgBDV7OsoMzaAE+IqGpoxusBjIgq5ibqA2IloKu0p9n7tE68z1xs18A== dependencies: shell-quote "^1.6.1" ws "^7" @@ -18734,10 +18851,10 @@ react-keyed-flatten-children@^3.0.0: dependencies: react-is "^18.2.0" -react-native-date-picker@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/react-native-date-picker/-/react-native-date-picker-4.4.0.tgz#fe5b6eb8d85a4a30b2991ada5169a30ce5023ead" - integrity sha512-Axx3byihwwhKRLRVjPAr/UaEysapkRcKmjjM8/05UaVm4Q0xDn2RFUcRdy1QAahhRcjLjlVYhepxvU5bdgy7ZQ== +react-native-date-picker@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/react-native-date-picker/-/react-native-date-picker-4.4.2.tgz#f7bb9daa8559237e08bd30f907ee8487a6e2a6ec" + integrity sha512-wYKN8nYWhETVHJV/+Im30JOdzkFRwYRrDlEOyyYesOjt+1JTFJh9M7K5CqePLOIB4Nxlf2f2lRSI0VoUyFIovA== react-native-dotenv@^3.3.1: version "3.4.9" @@ -18761,10 +18878,10 @@ react-native-fs@^2.20.0: base-64 "^0.1.0" utf8 "^3.0.0" -react-native-gesture-handler@~2.14.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.14.0.tgz#d6aec0d8b2e55c67557fd6107e828c0a1a248be8" - integrity sha512-cOmdaqbpzjWrOLUpX3hdSjsMby5wq3PIEdMq7okJeg9DmCzanysHSrktw1cXWNc/B5MAgxAn9J7Km0/4UIqKAQ== +react-native-gesture-handler@~2.16.2: + version "2.16.2" + resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.16.2.tgz#032bd2a07334292d7f6cff1dc9d1ec928f72e26d" + integrity sha512-vGFlrDKlmyI+BT+FemqVxmvO7nqxU33cgXVsn6IKAFishvlG3oV2Ds67D5nPkHMea8T+s1IcuMm0bF8ntZtAyg== dependencies: "@egjs/hammerjs" "^2.0.17" hoist-non-react-statics "^3.3.0" @@ -18786,10 +18903,10 @@ react-native-get-random-values@~1.11.0: dependencies: fast-base64-decode "^1.0.0" -react-native-image-crop-picker@^0.38.1: - version "0.38.1" - resolved "https://registry.yarnpkg.com/react-native-image-crop-picker/-/react-native-image-crop-picker-0.38.1.tgz#5973b4a8b55835b987e6be2064de411e849ac005" - integrity sha512-cF5UQnWplzHCeiCO+aiGS/0VomWaLmFf3nSsgTMPfY+8+99h8N/eHQvVdSF7RsGw50B8394wGeGyqHjjp8YRWw== +react-native-image-crop-picker@0.40.3: + version "0.40.3" + resolved "https://registry.yarnpkg.com/react-native-image-crop-picker/-/react-native-image-crop-picker-0.40.3.tgz#a6b135cd1218a33ad126c1a148ec5a1bd01737ff" + integrity sha512-45PKcTnsnLS+E36YwoXutllQdRSOuOsMN0IRcAcwsFXOuAQIOtugXlAuGGL28JHKb/ATaSSPvqCSrdG65Jv3GA== react-native-ios-context-menu@^1.15.3: version "1.15.3" @@ -18808,13 +18925,13 @@ react-native-pager-view@6.2.3: resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.2.3.tgz#698f6387fdf06cecc3d8d4792604419cb89cb775" integrity sha512-dqVpXWFtPNfD3D2QQQr8BP+ullS5MhjRJuF8Z/qml4QTILcrWaW8F5iAxKkQR3Jl0ikcEryG/+SQlNcwlo0Ggg== -react-native-picker-select@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/react-native-picker-select/-/react-native-picker-select-8.1.0.tgz#667a5442f783f4bcfd3f65880c6926155fd2c39c" - integrity sha512-iLsLv2OEWpXnQMDYJS6du5Cl1HTHy887n60Yp5OOiMny0TDB9w5CfxTUYWtpsvJJrUa/Yrv+1NMQiJy7IA4ETw== +react-native-picker-select@^9.1.3: + version "9.1.3" + resolved "https://registry.yarnpkg.com/react-native-picker-select/-/react-native-picker-select-9.1.3.tgz#eaa052c483a7935def8fb28e5ffdf1537b37ded2" + integrity sha512-O2EmlY4Mg5fZWxECTQJBDhO61as6RDbPYYiNoryaa0gmIkWxhANLsZI+ElEVru1h0Fp9UlCFtBDI5MwhHR9AxA== dependencies: - "@react-native-picker/picker" "^1.8.3" lodash.isequal "^4.5.0" + lodash.isobject "^3.0.2" react-native-progress@bluesky-social/react-native-progress: version "5.0.0" @@ -18822,12 +18939,16 @@ react-native-progress@bluesky-social/react-native-progress: dependencies: prop-types "^15.7.2" -react-native-reanimated@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-3.6.0.tgz#d2ca5f4c234f592af3d63bc749806e36d6e0a755" - integrity sha512-eDdhZTRYofrIqFB/Z5xLTWxcB7wDj4ifrNm+gZ2xHSZPjAQ747ukDdH9rglPyPmi+GcmDH7Wff411Xsw5fm45Q== +react-native-reanimated@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-3.11.0.tgz#d4265d4e0232623f5958ed60e1686ca884fc3452" + integrity sha512-BNw/XDgUfs8UhfY1X6IniU8kWpnotWGyt8qmQviaHisTi5lvwnaOdXQKfN1KGONx6ekdFRHRP5EFwLi0UajwKA== dependencies: - "@babel/plugin-transform-object-assign" "^7.16.7" + "@babel/plugin-transform-arrow-functions" "^7.0.0-0" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.0.0-0" + "@babel/plugin-transform-optional-chaining" "^7.0.0-0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0-0" + "@babel/plugin-transform-template-literals" "^7.0.0-0" "@babel/preset-typescript" "^7.16.7" convert-source-map "^2.0.0" invariant "^2.2.4" @@ -18837,31 +18958,31 @@ react-native-root-siblings@^4.1.1: resolved "https://registry.yarnpkg.com/react-native-root-siblings/-/react-native-root-siblings-4.1.1.tgz#b7742db7634a87f507eb99a5fd699c4f10c46ab0" integrity sha512-sdmLElNs5PDWqmZmj4/aNH4anyxreaPm61c4ZkRiR8SO/GzLg6KjAbb0e17RmMdnBdD0AIQbS38h/l55YKN4ZA== -react-native-safe-area-context@4.8.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.8.2.tgz#e6b3d8acf3c6afcb4b5db03a97f9c37df7668f65" - integrity sha512-ffUOv8BJQ6RqO3nLml5gxJ6ab3EestPiyWekxdzO/1MQ7NF8fW1Mzh1C5QE9yq573Xefnc7FuzGXjtesZGv7cQ== +react-native-safe-area-context@4.10.1: + version "4.10.1" + resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.10.1.tgz#29fb27395ff7dfa2fa38788a27226330d73a81cc" + integrity sha512-w8tCuowDorUkPoWPXmhqosovBr33YsukkwYCDERZFHAxIkx6qBadYxfeoaJ91nCQKjkNzGrK5qhoNOeSIcYSpA== -react-native-screens@~3.29.0: - version "3.29.0" - resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.29.0.tgz#1dee0326defbc1d4ef4e68287abb32a8e6b76b29" - integrity sha512-yB1GoAMamFAcYf4ku94uBPn0/ani9QG7NdI98beJ5cet2YFESYYzuEIuU+kt+CNRcO8qqKeugxlfgAa3HyTqlg== +react-native-screens@~3.31.1: + version "3.31.1" + resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.31.1.tgz#909a890f669e32b0fb1b1410278b71ad2f8238f6" + integrity sha512-8fRW362pfZ9y4rS8KY5P3DFScrmwo/vu1RrRMMx0PNHbeC9TLq0Kw1ubD83591yz64gLNHFLTVkTJmWeWCXKtQ== dependencies: react-freeze "^1.0.0" warn-once "^0.1.0" -react-native-svg@14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-14.1.0.tgz#7903bddd3c71bf3a8a503918253c839e6edaa724" - integrity sha512-HeseElmEk+AXGwFZl3h56s0LtYD9HyGdrpg8yd9QM26X+d7kjETrRQ9vCjtxuT5dCZEIQ5uggU1dQhzasnsCWA== +react-native-svg@^15.2.0: + version "15.2.0" + resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-15.2.0.tgz#9561a6b3bd6b44689f437ba13182afee33bd5557" + integrity sha512-R0E6IhcJfVLsL0lRmnUSm72QO+mTqcAOM5Jb8FVGxJqX3NfJMlMP0YyvcajZiaRR8CqQUpEoqrY25eyZb006kw== dependencies: css-select "^5.1.0" css-tree "^1.1.3" -react-native-uitextview@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/react-native-uitextview/-/react-native-uitextview-1.1.6.tgz#a70d039f415158445c90de8e8e546a7c3b251d6d" - integrity sha512-OTGTw4Y2DDn4dHTwN7aKOndXP6NoS/AS35Rj/Rsss+KRsGHToiv2g3ZdzQ0ZhZabhwl1u+Oht+wSU/FU+SoJ+Q== +react-native-uitextview@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/react-native-uitextview/-/react-native-uitextview-1.1.7.tgz#ee60ca279b0f4d081451f0df707b0ceac4580de1" + integrity sha512-7NaeizflafRvdsuomR6F4UxGV3XY8ilgntX0npLkE3YyH0YJTikBAHunrRWEPtj1vjybYN2DuThMYRELcVqyuA== react-native-url-polyfill@^1.3.0: version "1.3.0" @@ -18870,10 +18991,10 @@ react-native-url-polyfill@^1.3.0: dependencies: whatwg-url-without-unicode "8.0.0-3" -react-native-uuid@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/react-native-uuid/-/react-native-uuid-2.0.1.tgz#ed4e2dfb1683eddb66967eb5dca140dfe1abddb9" - integrity sha512-cptnoIbL53GTCrWlb/+jrDC6tvb7ypIyzbXNJcpR3Vab0mkeaaVd5qnB3f0whXYzS+SMoSQLcUUB0gEWqkPC0g== +react-native-uuid@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/react-native-uuid/-/react-native-uuid-2.0.2.tgz#3da192e342ef35ee95a7def676ab41c1256dfd66" + integrity sha512-5ypj/hV58P+6VREdjkW0EudSibsH3WdqDERoHKnD9syFWjF+NfRWWrJb2sa3LIwI5zpzMvUiabs+DX40WHpEMw== react-native-view-shot@^3.8.0: version "3.8.0" @@ -18889,13 +19010,13 @@ react-native-web-webview@^1.0.2: dependencies: qs "^6.5.1" -react-native-web@~0.19.6: - version "0.19.8" - resolved "https://registry.yarnpkg.com/react-native-web/-/react-native-web-0.19.8.tgz#46127f8b310148fde11e4fef67fe625603599d47" - integrity sha512-anqGGHowJdfkYqRxzoQj6DeetJf5hyBlahN6rwksw54gXxgjbsUOe4/PyxqvjwxYafgbVo0oow23BwpsRFdrpw== +react-native-web@~0.19.11: + version "0.19.11" + resolved "https://registry.yarnpkg.com/react-native-web/-/react-native-web-0.19.11.tgz#1b96ac3cea9af4e1280fd5fa3b606b471f66edc3" + integrity sha512-51Qcjr0AtIgskwLqLsBByUMPs2nAWZ+6QF7x/siC72svNPcJ1/daXoPTNuHR2fX4oOrDATC4Vmc/SXOYPH19rw== dependencies: "@babel/runtime" "^7.18.6" - "@react-native/normalize-color" "^2.1.0" + "@react-native/normalize-colors" "^0.74.1" fbjs "^3.0.4" inline-style-prefixer "^6.0.1" memoize-one "^6.0.0" @@ -18903,35 +19024,35 @@ react-native-web@~0.19.6: postcss-value-parser "^4.2.0" styleq "^0.1.3" -react-native-webview@13.6.4: - version "13.6.4" - resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.6.4.tgz#6ef66db9dd78b2a2ae1b4fe79e1e3597aa29186e" - integrity sha512-AdgmaMBHPcyERTvng9eSGgHX6AleyUlSusWAxngSOSdiYGgHW81T6C5A8j/ImJAF9oZg0bQDxp43Hu56tzENZQ== +react-native-webview@13.10.2: + version "13.10.2" + resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.10.2.tgz#0f9b84ab38cca022d5b1c4e77c100f4d9591e7af" + integrity sha512-rjrTuPBtpHbI3owoyvSR+bRJqHfsdo5V3nVfU+G65CotkSLewEcGfA9cq7Qv3nzm5t0KEDIt0G/n7hQFjsXihQ== dependencies: escape-string-regexp "2.0.0" invariant "2.2.4" -react-native@0.73.2: - version "0.73.2" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.2.tgz#74ee163c8189660d41d1da6560411da7ce41a608" - integrity sha512-7zj9tcUYpJUBdOdXY6cM8RcXYWkyql4kMyGZflW99E5EuFPoC7Ti+ZQSl7LP9ZPzGD0vMfslwyDW0I4tPWUCFw== +react-native@0.74.1: + version "0.74.1" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.74.1.tgz#8f5f59636242eb1b90ff675d9fcc7f5b8b1c9913" + integrity sha512-0H2XpmghwOtfPpM2LKqHIN7gxy+7G/r1hwJHKLV6uoyXGC/gCojRtoo5NqyKrWpFC8cqyT6wTYCLuG7CxEKilg== dependencies: "@jest/create-cache-key-function" "^29.6.3" - "@react-native-community/cli" "12.3.0" - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-platform-ios" "12.3.0" - "@react-native/assets-registry" "0.73.1" - "@react-native/codegen" "0.73.2" - "@react-native/community-cli-plugin" "0.73.12" - "@react-native/gradle-plugin" "0.73.4" - "@react-native/js-polyfills" "0.73.1" - "@react-native/normalize-colors" "0.73.2" - "@react-native/virtualized-lists" "0.73.4" + "@react-native-community/cli" "13.6.6" + "@react-native-community/cli-platform-android" "13.6.6" + "@react-native-community/cli-platform-ios" "13.6.6" + "@react-native/assets-registry" "0.74.83" + "@react-native/codegen" "0.74.83" + "@react-native/community-cli-plugin" "0.74.83" + "@react-native/gradle-plugin" "0.74.83" + "@react-native/js-polyfills" "0.74.83" + "@react-native/normalize-colors" "0.74.83" + "@react-native/virtualized-lists" "0.74.83" abort-controller "^3.0.0" anser "^1.4.9" ansi-regex "^5.0.0" base64-js "^1.5.1" - deprecated-react-native-prop-types "^5.0.0" + chalk "^4.0.0" event-target-shim "^5.0.1" flow-enums-runtime "^0.0.6" invariant "^2.2.4" @@ -18944,7 +19065,7 @@ react-native@0.73.2: nullthrows "^1.1.1" pretty-format "^26.5.2" promise "^8.3.0" - react-devtools-core "^4.27.7" + react-devtools-core "^5.0.0" react-refresh "^0.14.0" react-shallow-renderer "^16.15.0" regenerator-runtime "^0.13.2" @@ -18964,6 +19085,11 @@ react-refresh@^0.11.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== +react-refresh@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" + integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== + react-refresh@^0.4.0: version "0.4.3" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.3.tgz#966f1750c191672e76e16c2efa569150cc73ab53" @@ -19720,6 +19846,14 @@ selfsigned@^2.1.1: dependencies: node-forge "^1" +selfsigned@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" + integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== + dependencies: + "@types/node-forge" "^1.3.0" + node-forge "^1" + semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" @@ -19737,10 +19871,10 @@ semver@7.5.3: dependencies: lru-cache "^6.0.0" -semver@7.5.4, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== +semver@7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" @@ -19754,6 +19888,18 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +semver@^7.6.0: + version "7.6.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + semver@~7.3.2: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" @@ -20055,13 +20201,6 @@ sonic-boom@^3.1.0: dependencies: atomic-sleep "^1.0.0" -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== - dependencies: - is-plain-obj "^1.0.0" - source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -20184,12 +20323,12 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== +ssri@^10.0.0: + version "10.0.6" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" + integrity sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ== dependencies: - minipass "^3.1.1" + minipass "^7.0.3" stable@^0.1.8: version "0.1.8" @@ -20303,11 +20442,6 @@ streamx@^2.15.0: fast-fifo "^1.1.0" queue-tick "^1.0.1" -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== - strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -20738,7 +20872,7 @@ tar-stream@^3.1.5: fast-fifo "^1.2.0" streamx "^2.15.0" -tar@^6.0.2, tar@^6.0.5: +tar@^6.0.5: version "6.1.15" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== @@ -20750,6 +20884,18 @@ tar@^6.0.2, tar@^6.0.5: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^6.1.11: + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -21234,6 +21380,11 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + undici@^5.28.2: version "5.28.2" resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91" @@ -21274,22 +21425,22 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== -unimodules-app-loader@~4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/unimodules-app-loader/-/unimodules-app-loader-4.5.0.tgz#5ec66088d740bd17dc5c94b88c91f21249d9f0ba" - integrity sha512-q/Xug4K6/20876Xac+tjOLOOAeHEu2zF66LNN/5c8EV4WPEe/+RYZEljN/woQt17KPIB2eyel9dc+d6qUMjUOg== +unimodules-app-loader@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/unimodules-app-loader/-/unimodules-app-loader-4.6.0.tgz#8836040b3acbf605fc4c2c6f6feb6dd9084ea0d4" + integrity sha512-FRNIlx7sLBDVPG117JnEBhnzZkTIgZTEwYW2rzrY9HdvLBTpRN+k0dxY50U/CAhFHW3zMD0OP5JAlnSQRhx5HA== -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== dependencies: - unique-slug "^2.0.0" + unique-slug "^4.0.0" -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== dependencies: imurmurhash "^0.1.4" @@ -21400,14 +21551,6 @@ url-parse@^1.5.3: querystringify "^2.1.1" requires-port "^1.0.0" -url@^0.11.0: - version "0.11.3" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad" - integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== - dependencies: - punycode "^1.4.1" - qs "^6.11.2" - use-callback-ref@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5" From 8f8af476cca54ad26b214e56af022b392d8f9389 Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 28 May 2024 18:38:52 -0700 Subject: [PATCH 218/277] Bump `react-navigation` (#4216) * bump and rm patch * fix types * use `Home` default --------- Co-authored-by: Dan Abramov --- package.json | 8 +-- patches/@react-navigation+native+6.1.7.patch | 56 ----------------- .../@react-navigation+native+6.1.7.patch.md | 5 -- src/lib/routes/helpers.ts | 9 ++- src/view/com/feeds/FeedPage.tsx | 5 +- yarn.lock | 63 +++++++++---------- 6 files changed, 43 insertions(+), 103 deletions(-) delete mode 100644 patches/@react-navigation+native+6.1.7.patch delete mode 100644 patches/@react-navigation+native+6.1.7.patch.md diff --git a/package.json b/package.json index 5a936e3c1c..af3cb99997 100644 --- a/package.json +++ b/package.json @@ -72,10 +72,10 @@ "@react-native-masked-view/masked-view": "0.3.0", "@react-native-menu/menu": "^0.8.0", "@react-native-picker/picker": "2.6.1", - "@react-navigation/bottom-tabs": "^6.5.7", - "@react-navigation/drawer": "^6.6.2", - "@react-navigation/native": "^6.1.6", - "@react-navigation/native-stack": "^6.9.12", + "@react-navigation/bottom-tabs": "^6.5.20", + "@react-navigation/drawer": "^6.6.15", + "@react-navigation/native": "^6.1.17", + "@react-navigation/native-stack": "^6.9.26", "@segment/analytics-next": "^1.51.3", "@segment/analytics-react": "^1.0.0-rc1", "@segment/analytics-react-native": "^2.10.1", diff --git a/patches/@react-navigation+native+6.1.7.patch b/patches/@react-navigation+native+6.1.7.patch deleted file mode 100644 index b604e2c1aa..0000000000 --- a/patches/@react-navigation+native+6.1.7.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/node_modules/@react-navigation/native/lib/commonjs/useLinking.js b/node_modules/@react-navigation/native/lib/commonjs/useLinking.js -index ef4f368..2b0da35 100644 ---- a/node_modules/@react-navigation/native/lib/commonjs/useLinking.js -+++ b/node_modules/@react-navigation/native/lib/commonjs/useLinking.js -@@ -273,8 +273,12 @@ function useLinking(ref, _ref) { - }); - const currentIndex = history.index; - try { -- if (nextIndex !== -1 && nextIndex < currentIndex) { -- // An existing entry for this path exists and it's less than current index, go back to that -+ if ( -+ nextIndex !== -1 && -+ nextIndex < currentIndex && -+ // We should only go back if the entry exists and it's less than current index -+ history.get(nextIndex - currentIndex) -+ ) { // An existing entry for this path exists and it's less than current index, go back to that - await history.go(nextIndex - currentIndex); - } else { - // We couldn't find an existing entry to go back to, so we'll go back by the delta -diff --git a/node_modules/@react-navigation/native/lib/module/useLinking.js b/node_modules/@react-navigation/native/lib/module/useLinking.js -index 62a3b43..11a5a28 100644 ---- a/node_modules/@react-navigation/native/lib/module/useLinking.js -+++ b/node_modules/@react-navigation/native/lib/module/useLinking.js -@@ -264,8 +264,12 @@ export default function useLinking(ref, _ref) { - }); - const currentIndex = history.index; - try { -- if (nextIndex !== -1 && nextIndex < currentIndex) { -- // An existing entry for this path exists and it's less than current index, go back to that -+ if ( -+ nextIndex !== -1 && -+ nextIndex < currentIndex && -+ // We should only go back if the entry exists and it's less than current index -+ history.get(nextIndex - currentIndex) -+ ) { // An existing entry for this path exists and it's less than current index, go back to that - await history.go(nextIndex - currentIndex); - } else { - // We couldn't find an existing entry to go back to, so we'll go back by the delta -diff --git a/node_modules/@react-navigation/native/src/useLinking.tsx b/node_modules/@react-navigation/native/src/useLinking.tsx -index 3db40b7..9ba4ecd 100644 ---- a/node_modules/@react-navigation/native/src/useLinking.tsx -+++ b/node_modules/@react-navigation/native/src/useLinking.tsx -@@ -381,7 +381,12 @@ export default function useLinking( - const currentIndex = history.index; - - try { -- if (nextIndex !== -1 && nextIndex < currentIndex) { -+ if ( -+ nextIndex !== -1 && -+ nextIndex < currentIndex && -+ // We should only go back if the entry exists and it's less than current index -+ history.get(nextIndex - currentIndex) -+ ) { - // An existing entry for this path exists and it's less than current index, go back to that - await history.go(nextIndex - currentIndex); - } else { diff --git a/patches/@react-navigation+native+6.1.7.patch.md b/patches/@react-navigation+native+6.1.7.patch.md deleted file mode 100644 index 60b0d4e140..0000000000 --- a/patches/@react-navigation+native+6.1.7.patch.md +++ /dev/null @@ -1,5 +0,0 @@ -# React Navigation history bug patch - -This patches react-navigation to fix the issues in https://github.com/bluesky-social/social-app/issues/710. - -This is based on the PR found at https://github.com/react-navigation/react-navigation/pull/11833 diff --git a/src/lib/routes/helpers.ts b/src/lib/routes/helpers.ts index 0da8850433..603b6f71b6 100644 --- a/src/lib/routes/helpers.ts +++ b/src/lib/routes/helpers.ts @@ -1,5 +1,6 @@ import {NavigationProp} from '@react-navigation/native' -import {State, RouteParams} from './types' + +import {RouteParams, State} from './types' export function getRootNavigation( nav: NavigationProp, @@ -10,7 +11,11 @@ export function getRootNavigation( return nav } -export function getCurrentRoute(state: State) { +export function getCurrentRoute(state?: State) { + if (!state) { + return {name: 'Home'} + } + let node = state.routes[state.index || 0] while (node.state?.routes && typeof node.state?.index === 'number') { node = node.state?.routes[node.state?.index] diff --git a/src/view/com/feeds/FeedPage.tsx b/src/view/com/feeds/FeedPage.tsx index f0a7c62381..c80740b769 100644 --- a/src/view/com/feeds/FeedPage.tsx +++ b/src/view/com/feeds/FeedPage.tsx @@ -3,7 +3,7 @@ import {View} from 'react-native' import {AppBskyActorDefs} from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useNavigation} from '@react-navigation/native' +import {NavigationProp, useNavigation} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' import {getRootNavigation, getTabState, TabState} from '#/lib/routes/helpers' @@ -19,6 +19,7 @@ import {useSetMinimalShellMode} from '#/state/shell' import {useComposerControls} from '#/state/shell/composer' import {useAnalytics} from 'lib/analytics/analytics' import {ComposeIcon2} from 'lib/icons' +import {AllNavigatorParams} from 'lib/routes/types' import {s} from 'lib/styles' import {useHeaderOffset} from '#/components/hooks/useHeaderOffset' import {Feed} from '../posts/Feed' @@ -48,7 +49,7 @@ export function FeedPage({ }) { const {hasSession} = useSession() const {_} = useLingui() - const navigation = useNavigation() + const navigation = useNavigation>() const queryClient = useQueryClient() const {openComposer} = useComposerControls() const [isScrolledDown, setIsScrolledDown] = React.useState(false) diff --git a/yarn.lock b/yarn.lock index 07e2f73c2d..75a15a8ee7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5669,55 +5669,55 @@ invariant "^2.2.4" nullthrows "^1.1.1" -"@react-navigation/bottom-tabs@^6.5.7": - version "6.5.8" - resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.8.tgz#9536c6e45154abc183c363d07c94991e10b14856" - integrity sha512-0aa/jXea+LyBgR5NoRNWGKw0aFhjHwCkusigMRXIrCA4kINauDcAO0w0iFbZeKfaTCVAix5kK5UxDJJ2aJpevg== +"@react-navigation/bottom-tabs@^6.5.20": + version "6.5.20" + resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.20.tgz#5335e75b02c527ef0569bd97d4f9185d65616e49" + integrity sha512-ow6Z06iS4VqBO8d7FP+HsGjJLWt2xTWIvuWjpoCvsM/uQXzCRDIjBv9HaKcXbF0yTW7IMir0oDAbU5PFzEDdgA== dependencies: - "@react-navigation/elements" "^1.3.18" + "@react-navigation/elements" "^1.3.30" color "^4.2.3" warn-once "^0.1.0" -"@react-navigation/core@^6.4.9": - version "6.4.9" - resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-6.4.9.tgz#aa09ce534f5393427cb993cf242abdbd848fb2c7" - integrity sha512-G9GH7bP9x0qqupxZnkSftnkn4JoXancElTvFc8FVGfEvxnxP+gBo3wqcknyBi7M5Vad4qecsYjCOa9wqsftv9g== +"@react-navigation/core@^6.4.16": + version "6.4.16" + resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-6.4.16.tgz#f9369a134805174536b9aa0f0f483b930511caf9" + integrity sha512-UDTJBsHxnzgFETR3ZxhctP+RWr4SkyeZpbhpkQoIGOuwSCkt1SE0qjU48/u6r6w6XlX8OqVudn1Ab0QFXTHxuQ== dependencies: "@react-navigation/routers" "^6.1.9" escape-string-regexp "^4.0.0" nanoid "^3.1.23" query-string "^7.1.3" react-is "^16.13.0" - use-latest-callback "^0.1.5" + use-latest-callback "^0.1.9" -"@react-navigation/drawer@^6.6.2": - version "6.6.3" - resolved "https://registry.yarnpkg.com/@react-navigation/drawer/-/drawer-6.6.3.tgz#ad48b3e0a2d2771e7fc8bc46a8b269ef2ae11e54" - integrity sha512-oQzHqH6svtSIun6+rikQtku6ye2CyyxT4xf3RQLVsBvK7+g4tDdKKLcjgoJmuT1zBZC3SSu3wNeqp8cg4cr2PQ== +"@react-navigation/drawer@^6.6.15": + version "6.6.15" + resolved "https://registry.yarnpkg.com/@react-navigation/drawer/-/drawer-6.6.15.tgz#fcedba68f735103dbc035911f5959ce926081d62" + integrity sha512-GLkFQNxjtmxB/qXSHmu1DfoB89jCzW64tmX68iPndth+9U+0IP27GcCCaMZxQfwj+nI8Kn2zlTlXAZDIIHE+DQ== dependencies: - "@react-navigation/elements" "^1.3.18" + "@react-navigation/elements" "^1.3.30" color "^4.2.3" warn-once "^0.1.0" -"@react-navigation/elements@^1.3.18": - version "1.3.18" - resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.3.18.tgz#d8364b40276f3efb9c229c39da3b8b465f18f0a2" - integrity sha512-/0hwnJkrr415yP0Hf4PjUKgGyfshrvNUKFXN85Mrt1gY49hy9IwxZgrrxlh0THXkPeq8q4VWw44eHDfAcQf20Q== +"@react-navigation/elements@^1.3.30": + version "1.3.30" + resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.3.30.tgz#a81371f599af1070b12014f05d6c09b1a611fd9a" + integrity sha512-plhc8UvCZs0UkV+sI+3bisIyn78wz9O/BiWZXpounu72k/R/Sj5PuZYFJ1fi6psvriUveMCGh4LeZckAZu2qiQ== -"@react-navigation/native-stack@^6.9.12": - version "6.9.13" - resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-6.9.13.tgz#f308c398ee18fcd45de8ec7c04fe0641735feb31" - integrity sha512-ejlepMrvFneewL+XlXHHhn+6y3lwvavM4/R7XwBV0XJxCymujexK+7Vkg7UcvJ1lx4CRhOcyBSNfGmdNIHREyQ== +"@react-navigation/native-stack@^6.9.26": + version "6.9.26" + resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-6.9.26.tgz#90facf7783c9927f094bc9f01c613af75b6c241e" + integrity sha512-++dueQ+FDj2XkZ902DVrK79ub1vp19nSdAZWxKRgd6+Bc0Niiesua6rMCqymYOVaYh+dagwkA9r00bpt/U5WLw== dependencies: - "@react-navigation/elements" "^1.3.18" + "@react-navigation/elements" "^1.3.30" warn-once "^0.1.0" -"@react-navigation/native@^6.1.6": - version "6.1.7" - resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-6.1.7.tgz#968ef85b76d35f63111890668836fe2f125bbf90" - integrity sha512-W6E3+AtTombMucCRo6q7vPmluq8hSjS+IxfazJ/SokOe7ChJX7eLvvralIsJkjFj3iWV1KgOSnHxa6hdiFasBw== +"@react-navigation/native@^6.1.17": + version "6.1.17" + resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-6.1.17.tgz#439f15a99809d26ea4682d2a3766081cf2ca31cf" + integrity sha512-mer3OvfwWOHoUSMJyLa4vnBH3zpFmCwuzrBPlw7feXklurr/ZDiLjLxUScOot6jLRMz/67GyilEYMmP99LL0RQ== dependencies: - "@react-navigation/core" "^6.4.9" + "@react-navigation/core" "^6.4.16" escape-string-regexp "^4.0.0" fast-deep-equal "^3.1.3" nanoid "^3.1.23" @@ -21568,11 +21568,6 @@ use-isomorphic-layout-effect@^1.1.1: resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== -use-latest-callback@^0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.1.6.tgz#3fa6e7babbb5f9bfa24b5094b22939e1e92ebcf6" - integrity sha512-VO/P91A/PmKH9bcN9a7O3duSuxe6M14ZoYXgA6a8dab8doWNdhiIHzEkX/jFeTTRBsX0Ubk6nG4q2NIjNsj+bg== - use-latest-callback@^0.1.9: version "0.1.9" resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.1.9.tgz#10191dc54257e65a8e52322127643a8940271e2a" From eb0859bffb419dd14d41522d1dcd427ce9e0bc8d Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 28 May 2024 19:12:56 -0700 Subject: [PATCH 219/277] Fix `hitSlop` type (#4248) --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 75a15a8ee7..e363cc0a4a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3113,7 +3113,7 @@ "@discord/bottom-sheet@bluesky-social/react-native-bottom-sheet": version "4.6.1" - resolved "https://codeload.github.com/bluesky-social/react-native-bottom-sheet/tar.gz/3232c7cd9b966dd977c849a360fa853f88dcf3ca" + resolved "https://codeload.github.com/bluesky-social/react-native-bottom-sheet/tar.gz/28a87d1bb55e10fc355fa1455545a30734995908" dependencies: "@gorhom/portal" "1.0.14" invariant "^2.2.4" From 19ee89caf363c2b1c7f9ea35325501304619e879 Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 28 May 2024 19:55:10 -0700 Subject: [PATCH 220/277] upgrade `react-native-svg` to `15.3.0` (#4249) --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index af3cb99997..5ba1856327 100644 --- a/package.json +++ b/package.json @@ -181,7 +181,7 @@ "react-native-root-siblings": "^4.1.1", "react-native-safe-area-context": "4.10.1", "react-native-screens": "~3.31.1", - "react-native-svg": "^15.2.0", + "react-native-svg": "^15.3.0", "react-native-uitextview": "^1.1.7", "react-native-url-polyfill": "^1.3.0", "react-native-uuid": "^2.0.2", diff --git a/yarn.lock b/yarn.lock index e363cc0a4a..f8a3824a04 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18971,10 +18971,10 @@ react-native-screens@~3.31.1: react-freeze "^1.0.0" warn-once "^0.1.0" -react-native-svg@^15.2.0: - version "15.2.0" - resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-15.2.0.tgz#9561a6b3bd6b44689f437ba13182afee33bd5557" - integrity sha512-R0E6IhcJfVLsL0lRmnUSm72QO+mTqcAOM5Jb8FVGxJqX3NfJMlMP0YyvcajZiaRR8CqQUpEoqrY25eyZb006kw== +react-native-svg@^15.3.0: + version "15.3.0" + resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-15.3.0.tgz#e24b833fe330714c99f1dd894bb0da52ad859a4c" + integrity sha512-mBHu/fdlzUbpGX8SZFxgbKvK/sgqLfDLP8uh8G7Us+zJgdjO8OSEeqHQs+kPRdQmdLJQiqPJX2WXgCl7ToTWqw== dependencies: css-select "^5.1.0" css-tree "^1.1.3" From efdfb7f57a6de487330cd1a24c3bc4955bb8c74d Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 28 May 2024 20:58:40 -0700 Subject: [PATCH 221/277] Alt text followups -- SLIGHTLY larger, and update gifs (#4252) * Bump up the alt text indicator's text size just a smidge * Update the GIF alt indicator to match images (right side, visually smaller on mobile) --- src/view/com/util/images/Gallery.tsx | 2 +- src/view/com/util/post-embeds/GifEmbed.tsx | 12 ++++++------ src/view/com/util/post-embeds/index.tsx | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/view/com/util/images/Gallery.tsx b/src/view/com/util/images/Gallery.tsx index f0b7ac15e7..8d23d258f5 100644 --- a/src/view/com/util/images/Gallery.tsx +++ b/src/view/com/util/images/Gallery.tsx @@ -79,7 +79,7 @@ const styles = StyleSheet.create({ }, alt: { color: 'white', - fontSize: 6, + fontSize: 7, fontWeight: 'bold', }, }) diff --git a/src/view/com/util/post-embeds/GifEmbed.tsx b/src/view/com/util/post-embeds/GifEmbed.tsx index deb82655b5..1c0cf3d39d 100644 --- a/src/view/com/util/post-embeds/GifEmbed.tsx +++ b/src/view/com/util/post-embeds/GifEmbed.tsx @@ -5,7 +5,7 @@ import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {HITSLOP_10} from '#/lib/constants' +import {HITSLOP_20} from '#/lib/constants' import {parseAltFromGIFDescription} from '#/lib/gif-alt-text' import {isWeb} from '#/platform/detection' import {EmbedPlayerParams} from 'lib/strings/embed-player' @@ -166,7 +166,7 @@ function AltText({text}: {text: string}) { accessibilityRole="button" accessibilityLabel={_(msg`Show alt text`)} accessibilityHint="" - hitSlop={HITSLOP_10} + hitSlop={HITSLOP_20} onPress={control.open} style={styles.altContainer}> @@ -195,18 +195,18 @@ const styles = StyleSheet.create({ altContainer: { backgroundColor: 'rgba(0, 0, 0, 0.75)', borderRadius: 6, - paddingHorizontal: 6, - paddingVertical: 3, + paddingHorizontal: isWeb ? 8 : 6, + paddingVertical: isWeb ? 6 : 3, position: 'absolute', // Related to margin/gap hack. This keeps the alt label in the same position // on all platforms - left: isWeb ? 8 : 5, + right: isWeb ? 8 : 5, bottom: isWeb ? 8 : 5, zIndex: 2, }, alt: { color: 'white', - fontSize: 10, + fontSize: isWeb ? 10 : 7, fontWeight: 'bold', }, }) diff --git a/src/view/com/util/post-embeds/index.tsx b/src/view/com/util/post-embeds/index.tsx index 8aa9919ca8..0fc8296252 100644 --- a/src/view/com/util/post-embeds/index.tsx +++ b/src/view/com/util/post-embeds/index.tsx @@ -183,7 +183,7 @@ const styles = StyleSheet.create({ }, alt: { color: 'white', - fontSize: 6, + fontSize: 7, fontWeight: 'bold', }, customFeedOuter: { From ff6a044f66e0babeaf559880735362fa69590f7e Mon Sep 17 00:00:00 2001 From: dan Date: Wed, 29 May 2024 05:02:49 +0100 Subject: [PATCH 222/277] Bump more Expo libs (#4251) * Bump more Expo libs * Use legacy camera API * fix `expo-notifications` patch * bump `menu` * change patch name * patch reanimated * Revert "patch reanimated" This reverts commit dad822d8ea04c71a609784114d60f2e67b78290b. * Use nightly reanimated * Revert "Use nightly reanimated" This reverts commit 6687c7182883feb889cbf2c67dd14890e06bc501. * Revert "Revert "patch reanimated"" This reverts commit c30abd6732f559ca04dc59698411e1058800d63e. --------- Co-authored-by: Hailey --- package.json | 22 +- ....patch => expo-notifications+0.28.3.patch} | 44 ++-- ....md => expo-notifications-0.28.3.patch.md} | 0 patches/react-native-reanimated+3.11.0.patch | 209 ++++++++++++++++++ src/lib/hooks/usePermissions.ts | 5 +- yarn.lock | 102 ++++----- 6 files changed, 290 insertions(+), 92 deletions(-) rename patches/{expo-notifications+0.28.1.patch => expo-notifications+0.28.3.patch} (98%) rename patches/{expo-notifications-0.27.6.patch.md => expo-notifications-0.28.3.patch.md} (100%) diff --git a/package.json b/package.json index 5ba1856327..38c450c348 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "@radix-ui/react-dropdown-menu": "^2.0.6", "@react-native-async-storage/async-storage": "1.23.1", "@react-native-masked-view/masked-view": "0.3.0", - "@react-native-menu/menu": "^0.8.0", + "@react-native-menu/menu": "^1.1.0", "@react-native-picker/picker": "2.6.1", "@react-navigation/bottom-tabs": "^6.5.20", "@react-navigation/drawer": "^6.6.15", @@ -114,28 +114,28 @@ "expo": "^51.0.8", "expo-application": "^5.9.1", "expo-build-properties": "^0.12.1", - "expo-camera": "~14.1.3", - "expo-clipboard": "^5.0.1", - "expo-constants": "~15.4.6", + "expo-camera": "~15.0.9", + "expo-clipboard": "^6.0.3", + "expo-constants": "~16.0.1", "expo-dev-client": "^4.0.14", - "expo-device": "~5.9.3", - "expo-file-system": "^16.0.9", - "expo-haptics": "^12.8.1", + "expo-device": "~6.0.2", + "expo-file-system": "^17.0.1", + "expo-haptics": "^13.0.1", "expo-image": "~1.12.9", - "expo-image-manipulator": "^12.0.3", - "expo-image-picker": "~15.0.4", + "expo-image-manipulator": "^12.0.5", + "expo-image-picker": "~15.0.5", "expo-linear-gradient": "^13.0.2", "expo-linking": "^6.3.1", "expo-localization": "~15.0.3", "expo-media-library": "~16.0.3", "expo-navigation-bar": "~3.0.4", - "expo-notifications": "~0.28.1", + "expo-notifications": "~0.28.3", "expo-sharing": "^12.0.1", "expo-splash-screen": "~0.27.4", "expo-status-bar": "~1.12.1", "expo-system-ui": "~3.0.4", "expo-task-manager": "~11.8.1", - "expo-updates": "~0.25.11", + "expo-updates": "~0.25.14", "expo-web-browser": "~13.0.3", "fast-text-encoding": "^1.0.6", "history": "^5.3.0", diff --git a/patches/expo-notifications+0.28.1.patch b/patches/expo-notifications+0.28.3.patch similarity index 98% rename from patches/expo-notifications+0.28.1.patch rename to patches/expo-notifications+0.28.3.patch index 41e91446e6..3a9985c7b0 100644 --- a/patches/expo-notifications+0.28.1.patch +++ b/patches/expo-notifications+0.28.3.patch @@ -4,10 +4,10 @@ index d233e1f..cc2f856 100644 +++ b/node_modules/expo-notifications/android/build.gradle @@ -32,6 +32,7 @@ dependencies { api 'com.google.firebase:firebase-messaging:22.0.0' - + api 'me.leolin:ShortcutBadger:1.1.22@aar' + implementation project(':expo-background-notification-handler') - + if (project.findProject(':expo-modules-test-core')) { testImplementation project(':expo-modules-test-core') diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java @@ -16,14 +16,14 @@ index 0af7fe0..8f2c8d8 100644 +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/JSONNotificationContentBuilder.java @@ -14,6 +14,7 @@ import expo.modules.notifications.notifications.enums.NotificationPriority; import expo.modules.notifications.notifications.model.NotificationContent; - + public class JSONNotificationContentBuilder extends NotificationContent.Builder { + private static final String CHANNEL_ID_KEY = "channelId"; private static final String TITLE_KEY = "title"; private static final String TEXT_KEY = "message"; private static final String SUBTITLE_KEY = "subtitle"; @@ -36,6 +37,7 @@ public class JSONNotificationContentBuilder extends NotificationContent.Builder - + public NotificationContent.Builder setPayload(JSONObject payload) { this.setTitle(getTitle(payload)) + .setChannelId(getChannelId(payload)) @@ -33,7 +33,7 @@ index 0af7fe0..8f2c8d8 100644 @@ -60,6 +62,14 @@ public class JSONNotificationContentBuilder extends NotificationContent.Builder return this; } - + + protected String getChannelId(JSONObject payload) { + try { + return payload.getString(CHANNEL_ID_KEY); @@ -46,21 +46,21 @@ index 0af7fe0..8f2c8d8 100644 try { return payload.getString(TITLE_KEY); diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java -index f1fed19..166b34f 100644 +index f1fed19..80afe9e 100644 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/model/NotificationContent.java @@ -20,6 +20,7 @@ import expo.modules.notifications.notifications.enums.NotificationPriority; * should be created using {@link NotificationContent.Builder}. */ public class NotificationContent implements Parcelable, Serializable { -+ private string mChannelId; ++ private String mChannelId; private String mTitle; private String mText; private String mSubtitle; @@ -50,6 +51,11 @@ public class NotificationContent implements Parcelable, Serializable { } }; - + + @Nullable + public String getChannelId() { + return mTitle; @@ -71,14 +71,14 @@ index f1fed19..166b34f 100644 return mTitle; @@ -121,6 +127,7 @@ public class NotificationContent implements Parcelable, Serializable { } - + protected NotificationContent(Parcel in) { + mChannelId = in.readString(); mTitle = in.readString(); mText = in.readString(); mSubtitle = in.readString(); @@ -146,6 +153,7 @@ public class NotificationContent implements Parcelable, Serializable { - + @Override public void writeToParcel(Parcel dest, int flags) { + dest.writeString(mChannelId); @@ -87,7 +87,7 @@ index f1fed19..166b34f 100644 dest.writeString(mSubtitle); @@ -166,6 +174,7 @@ public class NotificationContent implements Parcelable, Serializable { private static final long serialVersionUID = 397666843266836802L; - + private void writeObject(java.io.ObjectOutputStream out) throws IOException { + out.writeObject(mChannelId); out.writeObject(mTitle); @@ -95,7 +95,7 @@ index f1fed19..166b34f 100644 out.writeObject(mSubtitle); @@ -190,6 +199,7 @@ public class NotificationContent implements Parcelable, Serializable { } - + private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { + mChannelId = (String) in.readObject(); mTitle = (String) in.readObject(); @@ -103,16 +103,16 @@ index f1fed19..166b34f 100644 mSubtitle = (String) in.readObject(); @@ -240,6 +250,7 @@ public class NotificationContent implements Parcelable, Serializable { } - + public static class Builder { -+ private string mChannelId; ++ private String mChannelId; private String mTitle; private String mText; private String mSubtitle; @@ -260,6 +271,11 @@ public class NotificationContent implements Parcelable, Serializable { useDefaultVibrationPattern(); } - + + public Builder setChannelId(String channelId) { + mChannelId = channelId; + return this; @@ -122,7 +122,7 @@ index f1fed19..166b34f 100644 mTitle = title; return this; @@ -336,6 +352,7 @@ public class NotificationContent implements Parcelable, Serializable { - + public NotificationContent build() { NotificationContent content = new NotificationContent(); + content.mChannelId = mChannelId; @@ -134,16 +134,16 @@ index 6bd9928..ee93d70 100644 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java +++ b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/notifications/presentation/builders/ExpoNotificationBuilder.java @@ -48,6 +48,10 @@ public class ExpoNotificationBuilder extends ChannelAwareNotificationBuilder { - + NotificationContent content = getNotificationContent(); - + + if (content.getChannelId() != null) { + builder.setChannelId(content.getChannelId()); + } + builder.setAutoCancel(content.isAutoDismiss()); builder.setOngoing(content.isSticky()); - + diff --git a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt b/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt index 55b3a8d..1b99d5b 100644 --- a/node_modules/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/FirebaseMessagingDelegate.kt @@ -158,7 +158,7 @@ index 55b3a8d..1b99d5b 100644 import org.json.JSONObject import java.lang.ref.WeakReference import java.util.* - + -open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate { +open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseMessagingDelegate, BackgroundNotificationHandlerInterface { companion object { @@ -166,7 +166,7 @@ index 55b3a8d..1b99d5b 100644 // than by static properties. Fortunately, using weak references we can @@ -89,12 +92,21 @@ open class FirebaseMessagingDelegate(protected val context: Context) : FirebaseM fun getBackgroundTasks() = sBackgroundTaskConsumerReferences.values.mapNotNull { it.get() } - + override fun onMessageReceived(remoteMessage: RemoteMessage) { - NotificationsService.receive(context, createNotification(remoteMessage)) - getBackgroundTasks().forEach { @@ -181,7 +181,7 @@ index 55b3a8d..1b99d5b 100644 + } } } - + + override fun showMessage(remoteMessage: RemoteMessage) { + NotificationsService.receive(context, createNotification(remoteMessage)) + } diff --git a/patches/expo-notifications-0.27.6.patch.md b/patches/expo-notifications-0.28.3.patch.md similarity index 100% rename from patches/expo-notifications-0.27.6.patch.md rename to patches/expo-notifications-0.28.3.patch.md diff --git a/patches/react-native-reanimated+3.11.0.patch b/patches/react-native-reanimated+3.11.0.patch index f189853859..9147cf08ef 100644 --- a/patches/react-native-reanimated+3.11.0.patch +++ b/patches/react-native-reanimated+3.11.0.patch @@ -1,3 +1,212 @@ +diff --git a/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts b/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts +index 92ebe62..5f8207e 100644 +--- a/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts ++++ b/node_modules/react-native-reanimated/src/createAnimatedComponent/commonTypes.ts +@@ -96,7 +96,8 @@ export interface AnimatedComponentRef extends Component { + export interface IAnimatedComponentInternal { + _styles: StyleProps[] | null; + _animatedProps?: Partial>; +- _viewTag: number; ++ _componentViewTag: number; ++ _eventViewTag: number; + _isFirstRender: boolean; + jestAnimatedStyle: { value: StyleProps }; + _component: AnimatedComponentRef | HTMLElement | null; +diff --git a/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx b/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx +index 88b3fdf..2488ebc 100644 +--- a/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx ++++ b/node_modules/react-native-reanimated/src/createAnimatedComponent/createAnimatedComponent.tsx +@@ -122,7 +122,8 @@ export function createAnimatedComponent( + { + _styles: StyleProps[] | null = null; + _animatedProps?: Partial>; +- _viewTag = -1; ++ _componentViewTag = -1; ++ _eventViewTag = -1; + _isFirstRender = true; + jestAnimatedStyle: { value: StyleProps } = { value: {} }; + _component: AnimatedComponentRef | HTMLElement | null = null; +@@ -143,7 +144,8 @@ export function createAnimatedComponent( + } + + componentDidMount() { +- this._viewTag = this._getViewInfo().viewTag as number; ++ this._setComponentViewTag(); ++ this._setEventViewTag(); + this._attachNativeEvents(); + this._jsPropsUpdater.addOnJSPropsChangeListener(this); + this._attachAnimatedStyles(); +@@ -185,7 +187,10 @@ export function createAnimatedComponent( + if (this.props.sharedTransitionTag) { + this._configureSharedTransition(true); + } +- this._sharedElementTransition?.unregisterTransition(this._viewTag, true); ++ this._sharedElementTransition?.unregisterTransition( ++ this._componentViewTag, ++ true ++ ); + + const exiting = this.props.exiting; + if ( +@@ -209,7 +214,7 @@ export function createAnimatedComponent( + : getReduceMotionFromConfig(); + if (!reduceMotionInExiting) { + updateLayoutAnimations( +- this._viewTag, ++ this._componentViewTag, + LayoutAnimationType.EXITING, + maybeBuild( + exiting, +@@ -221,12 +226,22 @@ export function createAnimatedComponent( + } + } + +- _getEventViewRef() { +- // Make sure to get the scrollable node for components that implement +- // `ScrollResponder.Mixin`. +- return (this._component as AnimatedComponentRef)?.getScrollableNode +- ? (this._component as AnimatedComponentRef).getScrollableNode?.() +- : this._component; ++ _setComponentViewTag() { ++ this._componentViewTag = this._getViewInfo().viewTag as number; ++ } ++ ++ _setEventViewTag() { ++ // Setting the tag for registering events - since the event emitting view can be nested inside the main component ++ const componentAnimatedRef = this._component as AnimatedComponentRef; ++ if (componentAnimatedRef.getScrollableNode) { ++ const scrollableNode = componentAnimatedRef.getScrollableNode(); ++ this._eventViewTag = findNodeHandle(scrollableNode) ?? -1; ++ } else { ++ this._eventViewTag = ++ findNodeHandle( ++ options?.setNativeProps ? this : componentAnimatedRef ++ ) ?? -1; ++ } + } + + _attachNativeEvents() { +@@ -236,7 +251,7 @@ export function createAnimatedComponent( + has('workletEventHandler', prop) && + prop.workletEventHandler instanceof WorkletEventHandler + ) { +- prop.workletEventHandler.registerForEvents(this._viewTag, key); ++ prop.workletEventHandler.registerForEvents(this._eventViewTag, key); + } + } + } +@@ -248,7 +263,7 @@ export function createAnimatedComponent( + has('workletEventHandler', prop) && + prop.workletEventHandler instanceof WorkletEventHandler + ) { +- prop.workletEventHandler.unregisterFromEvents(this._viewTag); ++ prop.workletEventHandler.unregisterFromEvents(this._eventViewTag); + } + } + } +@@ -258,15 +273,17 @@ export function createAnimatedComponent( + for (const style of this._styles) { + style.viewsRef.remove(this); + } +- } else if (this._viewTag !== -1 && this._styles !== null) { ++ } else if (this._componentViewTag !== -1 && this._styles !== null) { + for (const style of this._styles) { +- style.viewDescriptors.remove(this._viewTag); ++ style.viewDescriptors.remove(this._componentViewTag); + } + if (this.props.animatedProps?.viewDescriptors) { +- this.props.animatedProps.viewDescriptors.remove(this._viewTag); ++ this.props.animatedProps.viewDescriptors.remove( ++ this._componentViewTag ++ ); + } + if (isFabric()) { +- removeFromPropsRegistry(this._viewTag); ++ removeFromPropsRegistry(this._componentViewTag); + } + } + } +@@ -283,15 +300,19 @@ export function createAnimatedComponent( + const newProp = this.props[key]; + if (!newProp) { + // Prop got deleted +- prevProp.workletEventHandler.unregisterFromEvents(this._viewTag); ++ prevProp.workletEventHandler.unregisterFromEvents( ++ this._eventViewTag ++ ); + } else if ( + has('workletEventHandler', newProp) && + newProp.workletEventHandler instanceof WorkletEventHandler && + newProp.workletEventHandler !== prevProp.workletEventHandler + ) { + // Prop got changed +- prevProp.workletEventHandler.unregisterFromEvents(this._viewTag); +- newProp.workletEventHandler.registerForEvents(this._viewTag); ++ prevProp.workletEventHandler.unregisterFromEvents( ++ this._eventViewTag ++ ); ++ newProp.workletEventHandler.registerForEvents(this._eventViewTag); + } + } + } +@@ -304,7 +325,7 @@ export function createAnimatedComponent( + !prevProps[key] + ) { + // Prop got added +- newProp.workletEventHandler.registerForEvents(this._viewTag); ++ newProp.workletEventHandler.registerForEvents(this._eventViewTag); + } + } + } +@@ -381,7 +402,7 @@ export function createAnimatedComponent( + adaptViewConfig(viewConfig); + } + +- this._viewTag = viewTag as number; ++ this._componentViewTag = viewTag as number; + + // remove old styles + if (prevStyles) { +@@ -487,7 +508,11 @@ export function createAnimatedComponent( + AnimatedComponent.displayName + ) + : undefined; +- updateLayoutAnimations(this._viewTag, LayoutAnimationType.LAYOUT, layout); ++ updateLayoutAnimations( ++ this._componentViewTag, ++ LayoutAnimationType.LAYOUT, ++ layout ++ ); + } + + _configureSharedTransition(isUnmounting = false) { +@@ -497,7 +522,7 @@ export function createAnimatedComponent( + const { sharedTransitionTag } = this.props; + if (!sharedTransitionTag) { + this._sharedElementTransition?.unregisterTransition( +- this._viewTag, ++ this._componentViewTag, + isUnmounting + ); + this._sharedElementTransition = null; +@@ -508,7 +533,7 @@ export function createAnimatedComponent( + this._sharedElementTransition ?? + new SharedTransition(); + sharedElementTransition.registerTransition( +- this._viewTag, ++ this._componentViewTag, + sharedTransitionTag, + isUnmounting + ); +@@ -527,7 +552,7 @@ export function createAnimatedComponent( + ? (ref as HTMLElement) + : findNodeHandle(ref as Component); + +- this._viewTag = tag as number; ++ this._componentViewTag = tag as number; + + const { layout, entering, exiting, sharedTransitionTag } = this.props; + if ( diff --git a/node_modules/react-native-reanimated/lib/module/reanimated2/index.js b/node_modules/react-native-reanimated/lib/module/reanimated2/index.js index ac9be5d..86d4605 100644 --- a/node_modules/react-native-reanimated/lib/module/reanimated2/index.js diff --git a/src/lib/hooks/usePermissions.ts b/src/lib/hooks/usePermissions.ts index 138f3eacab..baf9f7b8af 100644 --- a/src/lib/hooks/usePermissions.ts +++ b/src/lib/hooks/usePermissions.ts @@ -1,6 +1,7 @@ -import {Camera} from 'expo-camera' -import * as MediaLibrary from 'expo-media-library' import {Linking} from 'react-native' +import {Camera} from 'expo-camera/legacy' // TODO: Migrate to the new one. +import * as MediaLibrary from 'expo-media-library' + import {isWeb} from 'platform/detection' import {Alert} from 'view/com/util/Alert' diff --git a/yarn.lock b/yarn.lock index f8a3824a04..2b105f00ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3572,10 +3572,10 @@ p-limit "^3.1.0" resolve-from "^5.0.0" -"@expo/fingerprint@^0.7.0": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.7.1.tgz#5778c79f6be2471b4c703381e26e9ee0691fa8c6" - integrity sha512-lbTwFiIk0lOm9zzPRvnC45GfPqXqPB3w4hDDKVma+8FDAbPCWhNN42ltLhx/ekwcHFQxURmg0fHm59k0Vy+jtw== +"@expo/fingerprint@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.8.0.tgz#631a64c5db23e121228546502ae6a0eeab19aaf7" + integrity sha512-LBNweJnpG16p7SbvFGINF5Q44bDErIcm1li9SuvYQgrrSey3ErIPmZsiMsNBxlvVie6eTp4wmFO6IFmeaqEhbg== dependencies: "@expo/spawn-async" "^1.7.2" chalk "^4.1.2" @@ -5482,10 +5482,10 @@ resolved "https://registry.yarnpkg.com/@react-native-masked-view/masked-view/-/masked-view-0.3.0.tgz#bd29fae18d148a685331910a3c7b766ce87eafcc" integrity sha512-qLyoObcjzrkpNcoJjXquUePXfL1dXjHtuv+yX0zZ0Q4kG5yvVqd620+tSh7WbRoHkjpXhFBfLwvGhcWB2I0Lpw== -"@react-native-menu/menu@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@react-native-menu/menu/-/menu-0.8.0.tgz#dbf227c2081e5ffd3d2073ee68ecc84cf8639727" - integrity sha512-kxiT6ySZsDbBvNWovrKVAfs4AQvAytKIf0f8KQLkVO6eNYMUmONBQPzi6onTTbVujXtZHambo7qr/PcedaR8Tg== +"@react-native-menu/menu@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@react-native-menu/menu/-/menu-1.1.0.tgz#e89c0850f7e5aa4c671c44a9c10edafadb23c35a" + integrity sha512-vf9zp0M4nbAFnSKz5NJYKUPM5UzXWmLyGcjtuPaKWYxxloz9C0Pp6XdZRJnoOSlfRShE8NksX3bVY8W4wGnlCQ== "@react-native-picker/picker@2.6.1": version "2.6.1" @@ -12063,17 +12063,17 @@ expo-build-properties@^0.12.1: ajv "^8.11.0" semver "^7.6.0" -expo-camera@~14.1.3: - version "14.1.3" - resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-14.1.3.tgz#c3b36c7ed28613e7423b6c4df192549f4f9ee0dd" - integrity sha512-JodpVjOY8JDuSp/RkphS8Bxqaj/gwg0h0UbQB9MLr1LoxbL9brvJt7IZnmTf7+ON8jRKUx9E5o/F02pRNbmSbQ== +expo-camera@~15.0.9: + version "15.0.9" + resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-15.0.9.tgz#a6a175638bdd9914aca061c6090001452329fcea" + integrity sha512-xH+y8gA/3rNLostIw+z4kDGA+AYzsI9+QYb7G1uCFyxr3SxUGhapz+oMBFDU++vmyo9G7Ax0n52nghqIrNBJxQ== dependencies: invariant "^2.2.4" -expo-clipboard@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/expo-clipboard/-/expo-clipboard-5.0.1.tgz#a62a021a9444740d180d60f915cca8242a323716" - integrity sha512-JH853QJPr5W3h87If3aDTnMK+ESSIrwzU2TdfZrqZttVDY2pMIf/w37mVHHNYodXM4ATHXadtOkjKbAa0DWwUg== +expo-clipboard@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/expo-clipboard/-/expo-clipboard-6.0.3.tgz#dfea74d4a004dce59ecefd063d6fb9f1c356a03f" + integrity sha512-RIKDsuHkYfaspifbFpVC8sBVFKR05L7Pj7mU2/XkbrW9m01OBNvdpGraXEMsTFCx97xMGsZpEw9pPquL4j4xVg== expo-constants@^13.0.2: version "13.2.4" @@ -12083,14 +12083,7 @@ expo-constants@^13.0.2: "@expo/config" "~7.0.0" uuid "^3.3.2" -expo-constants@~15.4.6: - version "15.4.6" - resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.6.tgz#d4e9b21b70c5602457962700f2e90a75356b487b" - integrity sha512-vizE69dww2Vl0PTWWvDmK0Jo2/J+WzdcMZlA05YEnEYofQuhKxTVsiuipf79mSOmFavt4UQYC1UnzptzKyfmiQ== - dependencies: - "@expo/config" "~8.5.0" - -expo-constants@~16.0.0: +expo-constants@~16.0.0, expo-constants@~16.0.1: version "16.0.1" resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-16.0.1.tgz#1285e29c85513c6e88e118289e2baab72596d3f7" integrity sha512-s6aTHtglp926EsugWtxN7KnpSsE9FCEjb7CgEjQQ78Gpu4btj4wB+IXot2tlqNwqv+x7xFe5veoPGfJDGF/kVg== @@ -12139,10 +12132,10 @@ expo-device@~4.1.1: dependencies: ua-parser-js "^0.7.19" -expo-device@~5.9.3: - version "5.9.4" - resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-5.9.4.tgz#7dc8ba3695e1c0891bbc840a255faac479310c08" - integrity sha512-nleq3GghLWWJrj4YH8HiCumnTF/gy4zRd3jedCkO8lMKQg6R1yn3v0ch8NtgPDci749FkNzOtXx/vmFImQalwg== +expo-device@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-6.0.2.tgz#9bc3eccd16509c2819c225cc2ca8f7c3e3bdd11e" + integrity sha512-sCt91CuTmAuMXX4SlFOn4lIos2UIr8vb0jDstDDZXys6kErcj0uynC7bQAMreU5uRUTKMAl4MAMpKt9ufCXPBw== dependencies: ua-parser-js "^0.7.33" @@ -12151,12 +12144,7 @@ expo-eas-client@~0.12.0: resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.12.0.tgz#e8b6f7d33873e6f630f37f7bfc41646ae7b0b2a9" integrity sha512-Jkww9Cwpv0z7DdLYiRX0r4fqBEcI9cKqTn7cHx63S09JaZ2rcwEE4zYHgrXwjahO+tU2VW8zqH+AJl6RhhW4zA== -expo-file-system@^16.0.9: - version "16.0.9" - resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.9.tgz#cbd6c4b228b60a6b6c71fd1b91fe57299fb24da7" - integrity sha512-3gRPvKVv7/Y7AdD9eHMIdfg5YbUn2zbwKofjsloTI5sEC57SLUFJtbLvUCz9Pk63DaSQ7WIE1JM0EASyvuPbuw== - -expo-file-system@~17.0.1: +expo-file-system@^17.0.1, expo-file-system@~17.0.1: version "17.0.1" resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-17.0.1.tgz#b9f8af8c1c06ec71d96fd7a0d2567fa9e1c88f15" integrity sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw== @@ -12168,27 +12156,27 @@ expo-font@~12.0.5: dependencies: fontfaceobserver "^2.1.0" -expo-haptics@^12.8.1: - version "12.8.1" - resolved "https://registry.yarnpkg.com/expo-haptics/-/expo-haptics-12.8.1.tgz#42b996763be33d661bd33bbc3b3958c3f2734b9d" - integrity sha512-ntLsHkfle8K8w9MW8pZEw92ZN3sguaGUSSIxv30fPKNeQFu7Cq/h47Qv3tONv2MO3wU48N9FbKnant6XlfptpA== +expo-haptics@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/expo-haptics/-/expo-haptics-13.0.1.tgz#35679c7fde4ae1c21ae3bc2d2cb34c266049dc2c" + integrity sha512-qG0EOLDE4bROVT3DtUSyV9g3iB3YFu9j3711X7SNNEnBDXc+2/p3wGDPTnJvPW0ao6HG3/McAOrBQA5hVSdWng== expo-image-loader@~4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/expo-image-loader/-/expo-image-loader-4.7.0.tgz#d403106822de80bda12d644c82b7a3b7983c0f0b" integrity sha512-cx+MxxsAMGl9AiWnQUzrkJMJH4eNOGlu7XkLGnAXSJrRoIiciGaKqzeaD326IyCTV+Z1fXvIliSgNW+DscvD8g== -expo-image-manipulator@^12.0.3: - version "12.0.3" - resolved "https://registry.yarnpkg.com/expo-image-manipulator/-/expo-image-manipulator-12.0.3.tgz#797fda98f606a65c6be9d2c0f53256f3fb3f798c" - integrity sha512-gosW32roHbXRKPiBVbQDFpxaZf8sjOJ9aaqbe085Qfcenvvr1lNFMx9M9BFYhAoKd23oEWlyvNHDnAayV4gAFA== +expo-image-manipulator@^12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/expo-image-manipulator/-/expo-image-manipulator-12.0.5.tgz#e3dd2810d27025705f73523cd4ba47b0d091a662" + integrity sha512-zJ8yINjckYw/yfoSuICt4yJ9xr112+W9e5QVXwK3nCAHr7sv45RQ5sxte0qppf594TPl+UoV6Tjim7WpoKipRQ== dependencies: expo-image-loader "~4.7.0" -expo-image-picker@~15.0.4: - version "15.0.4" - resolved "https://registry.yarnpkg.com/expo-image-picker/-/expo-image-picker-15.0.4.tgz#b01121b26c88ee14bf49133160e408c1e7972b4d" - integrity sha512-Jo78o3DQfqpYC4fsnayxTEVGDFSbaNMwx5gQ2PPlEYMK5AmD5qexQjxhlxM1mZ0e1xkJKJfN7XEdcf53jW9vIg== +expo-image-picker@~15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/expo-image-picker/-/expo-image-picker-15.0.5.tgz#8a3d4c3ecdb5bcf58f09e024597dd69edf7baa9c" + integrity sha512-Qqp16udsadx/YpNcNaWzfbmO0tbMxyX9bS1aFiDVC+Zffh8LY8S4HJJcnWqSC2TeuAl+9SxUwTloJagvPeMBBw== dependencies: expo-image-loader "~4.7.0" @@ -12268,10 +12256,10 @@ expo-navigation-bar@~3.0.4: "@react-native/normalize-colors" "~0.74.83" debug "^4.3.2" -expo-notifications@~0.28.1: - version "0.28.1" - resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.28.1.tgz#9152cb17100ce72b66f2bf642fb097c3ae2d2019" - integrity sha512-qBVcq3lc+FIvcYt/8M+JB1c60g0hVuyGY4MVGTY56ciU6nMOCiBiz4XPc3DeiZA16jVtfriooWA26wqBkQfkHg== +expo-notifications@~0.28.3: + version "0.28.3" + resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.28.3.tgz#9076c2bd69c3de3338a2e2161c8bd5f18cb440cb" + integrity sha512-Xaj82eQUJzJXa8+giZr708ih86GGtkGS8N01epoiDkTKC8Z9783UJ8Pf8+PSFSfHsY3Sd8TJpQrD9n7QnGHwGQ== dependencies: "@expo/image-utils" "^0.5.0" "@ide/backoff" "^1.0.0" @@ -12334,15 +12322,15 @@ expo-updates-interface@~0.16.2: resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.16.2.tgz#ad1ac2ca8ee5a8cc84052ea3c18a11da64da569b" integrity sha512-929XBU70q5ELxkKADj1xL0UIm3HvhYhNAOZv5DSk7rrKvLo7QDdPyl+JVnwZm9LrkNbH4wuE2rLoKu1KMgZ+9A== -expo-updates@~0.25.11: - version "0.25.11" - resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.25.11.tgz#a477139cfd5f67c7b5fdf41eba3f6dad471eeb14" - integrity sha512-ZO+e6bLsEBMz+JdEOlJXGf+3w606si7zKKEEzkwDQWJWP20W0WQAG+MDYgTEgxQboc+jTC+T0MvvOvkVb8cFIQ== +expo-updates@~0.25.14: + version "0.25.14" + resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.25.14.tgz#d0838780d0fa91558df72ca0f8b25b02466da11c" + integrity sha512-taYa6Q/882MxPaMZEoU0Tr4Ivtq0B0XUmCgj7GcKv0pDDhB7vuQ4uxXhWYn5udX+nJM0KH+dtEVFNVyeucVArg== dependencies: "@expo/code-signing-certificates" "0.0.5" - "@expo/config" "~9.0.0-beta.0" - "@expo/config-plugins" "~8.0.0-beta.0" - "@expo/fingerprint" "^0.7.0" + "@expo/config" "~9.0.0" + "@expo/config-plugins" "~8.0.0" + "@expo/fingerprint" "^0.8.0" "@expo/spawn-async" "^1.7.2" arg "4.1.0" chalk "^4.1.2" From a60f9933d8c5734391b9f5b14c1bdb0d17ac0468 Mon Sep 17 00:00:00 2001 From: Hailey Date: Tue, 28 May 2024 21:04:56 -0700 Subject: [PATCH 223/277] Enable navigation animations on Android, decrease animation speed (#4207) * bump and rm patch * use the better settings * fix types * remove animation duration * try it with full screen * thanks mozz - use `ios` only on android * maybe a little duration * slightly faster duration * Revert "fix types" This reverts commit d15d4b7a9b59da6d45211bfc4b526c5701db83c6. * Revert "bump and rm patch" This reverts commit 571f85f9e5b7e1381ac9477db6e551dff65e80ce. --------- Co-authored-by: Dan Abramov --- src/Navigation.tsx | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/Navigation.tsx b/src/Navigation.tsx index 23cf5f59dd..18801bf645 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -353,11 +353,11 @@ function HomeTabNavigator() { return ( HomeScreen} /> @@ -371,11 +371,11 @@ function SearchTabNavigator() { return ( SearchScreen} /> @@ -389,11 +389,11 @@ function FeedsTabNavigator() { return ( FeedsScreen} /> @@ -407,11 +407,11 @@ function NotificationsTabNavigator() { return ( { Date: Wed, 29 May 2024 07:08:46 +0300 Subject: [PATCH 224/277] Native translation expo module (#4098) * translation expo module * add `onClose` and `onReplacementAction` * rm onReplacementAction * make all props published * make translation api available globally w/o wrapper (#4110) * conditionally import the translation module * only use native translation if language is probably supported * open native translation via dropdown menu --------- Co-authored-by: Hailey Co-authored-by: Dan Abramov --- .../expo-module.config.json | 6 +++ modules/expo-bluesky-translate/index.ts | 6 +++ .../Common/UIHostingControllerCompat.swift | 20 ++++++++ .../ios/ExpoBlueskyTranslate.podspec | 21 ++++++++ .../ios/ExpoBlueskyTranslateModule.swift | 18 +++++++ .../ios/ExpoBlueskyTranslateView.swift | 22 +++++++++ .../ios/TranslateView.swift | 31 ++++++++++++ .../src/ExpoBlueskyTranslate.types.ts | 3 ++ .../src/ExpoBlueskyTranslateView.ios.tsx | 48 +++++++++++++++++++ .../src/ExpoBlueskyTranslateView.tsx | 13 +++++ .../src/ExpoScrollForwarderView.tsx | 2 + src/view/com/post-thread/PostThreadItem.tsx | 27 +++++++++-- src/view/com/util/forms/PostDropdownBtn.tsx | 21 ++++++-- src/view/shell/index.tsx | 2 + 14 files changed, 232 insertions(+), 8 deletions(-) create mode 100644 modules/expo-bluesky-translate/expo-module.config.json create mode 100644 modules/expo-bluesky-translate/index.ts create mode 100644 modules/expo-bluesky-translate/ios/Common/UIHostingControllerCompat.swift create mode 100644 modules/expo-bluesky-translate/ios/ExpoBlueskyTranslate.podspec create mode 100644 modules/expo-bluesky-translate/ios/ExpoBlueskyTranslateModule.swift create mode 100644 modules/expo-bluesky-translate/ios/ExpoBlueskyTranslateView.swift create mode 100644 modules/expo-bluesky-translate/ios/TranslateView.swift create mode 100644 modules/expo-bluesky-translate/src/ExpoBlueskyTranslate.types.ts create mode 100644 modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.ios.tsx create mode 100644 modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.tsx diff --git a/modules/expo-bluesky-translate/expo-module.config.json b/modules/expo-bluesky-translate/expo-module.config.json new file mode 100644 index 0000000000..28c5dd878d --- /dev/null +++ b/modules/expo-bluesky-translate/expo-module.config.json @@ -0,0 +1,6 @@ +{ + "platforms": ["ios"], + "ios": { + "modules": ["ExpoBlueskyTranslateModule"] + } +} diff --git a/modules/expo-bluesky-translate/index.ts b/modules/expo-bluesky-translate/index.ts new file mode 100644 index 0000000000..f3e1d3b113 --- /dev/null +++ b/modules/expo-bluesky-translate/index.ts @@ -0,0 +1,6 @@ +export { + isAvailable, + isLanguageSupported, + NativeTranslationModule, + NativeTranslationView, +} from './src/ExpoBlueskyTranslateView' diff --git a/modules/expo-bluesky-translate/ios/Common/UIHostingControllerCompat.swift b/modules/expo-bluesky-translate/ios/Common/UIHostingControllerCompat.swift new file mode 100644 index 0000000000..c8ca3e0273 --- /dev/null +++ b/modules/expo-bluesky-translate/ios/Common/UIHostingControllerCompat.swift @@ -0,0 +1,20 @@ +import ExpoModulesCore +import SwiftUI + +// Thanks to Andrew Levy for this code snippet +// https://github.com/andrew-levy/swiftui-react-native/blob/d3fbb2abf07601ff0d4b83055e7717bb980910d6/ios/Common/ExpoView%2BUIHostingController.swift + +extension ExpoView { + func setupHostingController(_ hostingController: UIHostingController) { + hostingController.view.translatesAutoresizingMaskIntoConstraints = false + hostingController.view.backgroundColor = .clear + + addSubview(hostingController.view) + NSLayoutConstraint.activate([ + hostingController.view.topAnchor.constraint(equalTo: self.topAnchor), + hostingController.view.bottomAnchor.constraint(equalTo: self.bottomAnchor), + hostingController.view.leftAnchor.constraint(equalTo: self.leftAnchor), + hostingController.view.rightAnchor.constraint(equalTo: self.rightAnchor), + ]) + } +} diff --git a/modules/expo-bluesky-translate/ios/ExpoBlueskyTranslate.podspec b/modules/expo-bluesky-translate/ios/ExpoBlueskyTranslate.podspec new file mode 100644 index 0000000000..45f86a6056 --- /dev/null +++ b/modules/expo-bluesky-translate/ios/ExpoBlueskyTranslate.podspec @@ -0,0 +1,21 @@ +Pod::Spec.new do |s| + s.name = 'ExpoBlueskyTranslate' + s.version = '1.0.0' + s.summary = 'Uses SwiftUI translation to translate text.' + s.description = 'Uses SwiftUI translation to translate text.' + s.author = '' + s.homepage = 'https://docs.expo.dev/modules/' + s.platforms = { :ios => '13.4' } + s.source = { git: '' } + s.static_framework = true + + s.dependency 'ExpoModulesCore' + + # Swift/Objective-C compatibility + s.pod_target_xcconfig = { + 'DEFINES_MODULE' => 'YES', + 'SWIFT_COMPILATION_MODE' => 'wholemodule' + } + + s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}" +end diff --git a/modules/expo-bluesky-translate/ios/ExpoBlueskyTranslateModule.swift b/modules/expo-bluesky-translate/ios/ExpoBlueskyTranslateModule.swift new file mode 100644 index 0000000000..afa8137229 --- /dev/null +++ b/modules/expo-bluesky-translate/ios/ExpoBlueskyTranslateModule.swift @@ -0,0 +1,18 @@ +import ExpoModulesCore +import Foundation +import SwiftUI + +public class ExpoBlueskyTranslateModule: Module { + public func definition() -> ModuleDefinition { + Name("ExpoBlueskyTranslate") + + AsyncFunction("presentAsync") { (text: String) in + DispatchQueue.main.async { [weak state = TranslateViewState.shared] in + state?.isPresented = true + state?.text = text + } + } + + View(ExpoBlueskyTranslateView.self) {} + } +} diff --git a/modules/expo-bluesky-translate/ios/ExpoBlueskyTranslateView.swift b/modules/expo-bluesky-translate/ios/ExpoBlueskyTranslateView.swift new file mode 100644 index 0000000000..ca6e3be69c --- /dev/null +++ b/modules/expo-bluesky-translate/ios/ExpoBlueskyTranslateView.swift @@ -0,0 +1,22 @@ +import ExpoModulesCore +import Foundation +import SwiftUI + +class TranslateViewState: ObservableObject { + static var shared = TranslateViewState() + + @Published var isPresented = false + @Published var text = "" +} + +class ExpoBlueskyTranslateView: ExpoView { + required init(appContext: AppContext? = nil) { + if #available(iOS 14.0, *) { + let hostingController = UIHostingController(rootView: TranslateView()) + super.init(appContext: appContext) + setupHostingController(hostingController) + } else { + super.init(appContext: appContext) + } + } +} diff --git a/modules/expo-bluesky-translate/ios/TranslateView.swift b/modules/expo-bluesky-translate/ios/TranslateView.swift new file mode 100644 index 0000000000..e2886dc844 --- /dev/null +++ b/modules/expo-bluesky-translate/ios/TranslateView.swift @@ -0,0 +1,31 @@ +import SwiftUI +// conditionally import the Translation module +#if canImport(Translation) +import Translation +#endif + +struct TranslateView: View { + @ObservedObject var state = TranslateViewState.shared + + var body: some View { + if #available(iOS 17.4, *) { + VStack { + UIViewRepresentableWrapper(view: UIView(frame: .zero)) + } + .translationPresentation( + isPresented: $state.isPresented, + text: state.text + ) + } + } +} + +struct UIViewRepresentableWrapper: UIViewRepresentable { + let view: UIView + + func makeUIView(context: Context) -> UIView { + return view + } + + func updateUIView(_ uiView: UIView, context: Context) {} +} diff --git a/modules/expo-bluesky-translate/src/ExpoBlueskyTranslate.types.ts b/modules/expo-bluesky-translate/src/ExpoBlueskyTranslate.types.ts new file mode 100644 index 0000000000..a01d4d479d --- /dev/null +++ b/modules/expo-bluesky-translate/src/ExpoBlueskyTranslate.types.ts @@ -0,0 +1,3 @@ +export type ExpoBlueskyTranslateModule = { + presentAsync: (text: string) => Promise +} diff --git a/modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.ios.tsx b/modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.ios.tsx new file mode 100644 index 0000000000..daddfa0286 --- /dev/null +++ b/modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.ios.tsx @@ -0,0 +1,48 @@ +import React from 'react' +import {Platform} from 'react-native' +import {requireNativeModule, requireNativeViewManager} from 'expo-modules-core' + +import {ExpoBlueskyTranslateModule} from './ExpoBlueskyTranslate.types' + +export const NativeTranslationModule = + requireNativeModule('ExpoBlueskyTranslate') + +const NativeView: React.ComponentType = requireNativeViewManager( + 'ExpoBlueskyTranslate', +) + +export function NativeTranslationView() { + return +} + +export const isAvailable = Number(Platform.Version) >= 17.4 + +// https://en.wikipedia.org/wiki/Translate_(Apple)#Languages +const SUPPORTED_LANGUAGES = [ + 'ar', + 'zh', + 'zh', + 'nl', + 'en', + 'en', + 'fr', + 'de', + 'id', + 'it', + 'ja', + 'ko', + 'pl', + 'pt', + 'ru', + 'es', + 'th', + 'tr', + 'uk', + 'vi', +] + +export function isLanguageSupported(lang?: string) { + // If the language is not provided, we assume it is supported + if (!lang) return true + return SUPPORTED_LANGUAGES.includes(lang) +} diff --git a/modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.tsx b/modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.tsx new file mode 100644 index 0000000000..16ff9d6004 --- /dev/null +++ b/modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.tsx @@ -0,0 +1,13 @@ +export const NativeTranslationModule = { + presentAsync: async (_: string) => {}, +} + +export function NativeTranslationView() { + return null +} + +export const isAvailable = false + +export function isLanguageSupported(_lang?: string) { + return false +} diff --git a/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.tsx b/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.tsx index 93e69333fd..0f5d01c130 100644 --- a/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.tsx +++ b/modules/expo-scroll-forwarder/src/ExpoScrollForwarderView.tsx @@ -1,5 +1,7 @@ import React from 'react' + import {ExpoScrollForwarderViewProps} from './ExpoScrollForwarder.types' + export function ExpoScrollForwarderView({ children, }: React.PropsWithChildren) { diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index c44875b376..548b73af6c 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -30,6 +30,11 @@ import {useSession} from 'state/session' import {PostThreadFollowBtn} from 'view/com/post-thread/PostThreadFollowBtn' import {atoms as a} from '#/alf' import {RichText} from '#/components/RichText' +import { + isAvailable as isNativeTranslationAvailable, + isLanguageSupported, + NativeTranslationModule, +} from '../../../../modules/expo-bluesky-translate' import {ContentHider} from '../../../components/moderation/ContentHider' import {LabelsOnMyPost} from '../../../components/moderation/LabelsOnMe' import {PostAlerts} from '../../../components/moderation/PostAlerts' @@ -317,6 +322,7 @@ let PostThreadItemLoaded = ({ @@ -620,26 +626,39 @@ function PostOuterWrapper({ function ExpandedPostDetails({ post, + record, needsTranslation, translatorUrl, }: { post: AppBskyFeedDefs.PostView + record?: AppBskyFeedPost.Record needsTranslation: boolean translatorUrl: string }) { const pal = usePalette('default') const {_} = useLingui() const openLink = useOpenLink() - const onTranslatePress = React.useCallback( - () => openLink(translatorUrl), - [openLink, translatorUrl], - ) + + const text = record?.text || '' + + const onTranslatePress = React.useCallback(() => { + if ( + isNativeTranslationAvailable && + isLanguageSupported(record?.langs?.at(0)) + ) { + NativeTranslationModule.presentAsync(text) + } else { + openLink(translatorUrl) + } + }, [openLink, text, translatorUrl, record]) + return ( {niceDate(post.indexedAt)} {needsTranslation && ( <> · + { - openLink(translatorUrl) - }, [openLink, translatorUrl]) + const onPressTranslate = React.useCallback(() => { + if ( + isNativeTranslationAvailable && + isLanguageSupported(record?.langs?.at(0)) + ) { + const text = richTextToString(richText, true) + NativeTranslationModule.presentAsync(text) + } else { + openLink(translatorUrl) + } + }, [openLink, record?.langs, richText, translatorUrl]) const onHidePost = React.useCallback(() => { hidePost({uri: postUri}) @@ -246,7 +259,7 @@ let PostDropdownBtn = ({ + onPress={onPressTranslate}> {_(msg`Translate`)} diff --git a/src/view/shell/index.tsx b/src/view/shell/index.tsx index 7d080e57b1..317ac0bde4 100644 --- a/src/view/shell/index.tsx +++ b/src/view/shell/index.tsx @@ -33,6 +33,7 @@ import {ErrorBoundary} from 'view/com/util/ErrorBoundary' import {MutedWordsDialog} from '#/components/dialogs/MutedWords' import {SigninDialog} from '#/components/dialogs/Signin' import {Outlet as PortalOutlet} from '#/components/Portal' +import {NativeTranslationView} from '../../../modules/expo-bluesky-translate' import {RoutesContainer, TabsNavigator} from '../../Navigation' import {Composer} from './Composer' import {DrawerContent} from './Drawer' @@ -93,6 +94,7 @@ function ShellInner() { + From 211eff3d32760695faeb986d6c51de5dd5379411 Mon Sep 17 00:00:00 2001 From: Eiichi Yoshikawa Date: Wed, 29 May 2024 13:13:36 +0900 Subject: [PATCH 225/277] Add statusBarTranslucent prop (= true) to KeyboardProvider in App.native.tsx (#4208) --- src/App.native.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/App.native.tsx b/src/App.native.tsx index 7c60d1624b..b359ad911d 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -143,7 +143,7 @@ function App() { * that is set up in the InnerApp component above. */ return ( - + From 613884a3d388b814244fc620c7a06c4742851585 Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 29 May 2024 01:50:06 -0700 Subject: [PATCH 226/277] use xcode 15.3 (#4253) * use xcode 15.3 * tweak cache update --- .github/workflows/build-submit-android.yml | 4 ++-- .github/workflows/build-submit-ios.yml | 8 ++++++-- .github/workflows/bundle-deploy-eas-update.yml | 4 ++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-submit-android.yml b/.github/workflows/build-submit-android.yml index b039512d6e..c487c2ab8a 100644 --- a/.github/workflows/build-submit-android.yml +++ b/.github/workflows/build-submit-android.yml @@ -123,11 +123,11 @@ jobs: - name: ⬇️ Restore Cache id: get-base-commit uses: actions/cache@v4 - if: ${{ inputs.profile == 'testflight' && github.ref == 'refs/heads/main' }} + if: ${{ inputs.profile == 'testflight' }} with: path: most-recent-testflight-commit.txt key: most-recent-testflight-commit - name: ✏️ Write commit hash to cache - if: ${{ inputs.profile == 'testflight' && github.ref == 'refs/heads/main' }} + if: ${{ inputs.profile == 'testflight' }} run: echo ${{ github.sha }} > most-recent-testflight-commit.txt diff --git a/.github/workflows/build-submit-ios.yml b/.github/workflows/build-submit-ios.yml index 0256e96878..c1693b814d 100644 --- a/.github/workflows/build-submit-ios.yml +++ b/.github/workflows/build-submit-ios.yml @@ -47,6 +47,10 @@ jobs: - name: ⚙️ Install dependencies run: yarn install + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '15.3' + - name: ☕️ Setup Cocoapods uses: maxim-lobanov/setup-cocoapods@v1 with: @@ -80,11 +84,11 @@ jobs: - name: ⬇️ Restore Cache id: get-base-commit uses: actions/cache@v4 - if: ${{ inputs.profile == 'testflight' && github.ref == 'refs/heads/main' }} + if: ${{ inputs.profile == 'testflight' }} with: path: most-recent-testflight-commit.txt key: most-recent-testflight-commit - name: ✏️ Write commit hash to cache - if: ${{ inputs.profile == 'testflight' && github.ref == 'refs/heads/main' }} + if: ${{ inputs.profile == 'testflight' }} run: echo ${{ github.sha }} > most-recent-testflight-commit.txt diff --git a/.github/workflows/bundle-deploy-eas-update.yml b/.github/workflows/bundle-deploy-eas-update.yml index 192593b9b2..039b4150a2 100644 --- a/.github/workflows/bundle-deploy-eas-update.yml +++ b/.github/workflows/bundle-deploy-eas-update.yml @@ -170,6 +170,10 @@ jobs: - name: ⚙️ Install dependencies run: yarn install + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '15.3' + - name: ☕️ Setup Cocoapods uses: maxim-lobanov/setup-cocoapods@v1 with: From 33de856c32711b2b5a83d5b27583eec0cc6e1248 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 29 May 2024 12:00:15 +0300 Subject: [PATCH 227/277] match web version exports (#4257) --- src/lib/app-info.web.ts | 2 ++ src/lib/media/manip.web.ts | 4 ++++ src/view/com/util/images/Image.web.tsx | 12 ++---------- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/lib/app-info.web.ts b/src/lib/app-info.web.ts index fe2bc5fff8..7227e28632 100644 --- a/src/lib/app-info.web.ts +++ b/src/lib/app-info.web.ts @@ -1,6 +1,8 @@ import {version} from '../../package.json' +export const BUILD_ENV = process.env.EXPO_PUBLIC_ENV export const IS_DEV = process.env.EXPO_PUBLIC_ENV === 'development' +export const IS_TESTFLIGHT = false // This is the commit hash that the current bundle was made from. The user can see the commit hash in the app's settings // along with the other version info. Useful for debugging/reporting. diff --git a/src/lib/media/manip.web.ts b/src/lib/media/manip.web.ts index 25315ebbd8..4761f2fe0d 100644 --- a/src/lib/media/manip.web.ts +++ b/src/lib/media/manip.web.ts @@ -159,3 +159,7 @@ async function downloadUrl(href: string, filename: string) { a.download = filename a.click() } + +export async function safeDeleteAsync() { + // no-op +} diff --git a/src/view/com/util/images/Image.web.tsx b/src/view/com/util/images/Image.web.tsx index ecd9d730ab..a5200b3ea2 100644 --- a/src/view/com/util/images/Image.web.tsx +++ b/src/view/com/util/images/Image.web.tsx @@ -1,11 +1,3 @@ -import { - Image, - NativeSyntheticEvent, - ImageLoadEventData, - ImageSourcePropType, -} from 'react-native' -export default Image +import {Image} from 'react-native' + export const HighPriorityImage = Image -export type OnLoadEvent = NativeSyntheticEvent -export type Source = ImageSourcePropType -export type {ImageStyle} from 'react-native' From 65ad16e394d0525d68e6fc8cd9508de4675c88d5 Mon Sep 17 00:00:00 2001 From: Nick Manos Date: Wed, 29 May 2024 05:56:36 -0400 Subject: [PATCH 228/277] Change Android's MainActivity launchMode to singleTop (#4255) * Add build config plugin to set .MainActivity launchMode * Change android:launchMode to standard * Revert "Change android:launchMode to standard" This reverts commit fddbc4e1b512ff9a55009e227f1f44e99ddabaf3. * adjust --------- Co-authored-by: Hailey --- .github/workflows/bundle-deploy-eas-update.yml | 4 ++-- app.config.js | 1 + plugins/withAndroidManifestLaunchModePlugin.js | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 plugins/withAndroidManifestLaunchModePlugin.js diff --git a/.github/workflows/bundle-deploy-eas-update.yml b/.github/workflows/bundle-deploy-eas-update.yml index 039b4150a2..a684f525fd 100644 --- a/.github/workflows/bundle-deploy-eas-update.yml +++ b/.github/workflows/bundle-deploy-eas-update.yml @@ -307,11 +307,11 @@ jobs: - name: ⬇️ Restore Cache id: get-base-commit uses: actions/cache@v4 - if: ${{ inputs.channel == 'testflight' }} + if: ${{ inputs.channel != 'testflight' && inputs.channel != 'production' }} with: path: most-recent-testflight-commit.txt key: most-recent-testflight-commit - name: ✏️ Write commit hash to cache - if: ${{ inputs.channel == 'testflight' }} + if: ${{ inputs.channel != 'testflight' && inputs.channel != 'production' }} run: echo ${{ github.sha }} > most-recent-testflight-commit.txt diff --git a/app.config.js b/app.config.js index eafacc6cc1..0c3588c67f 100644 --- a/app.config.js +++ b/app.config.js @@ -204,6 +204,7 @@ module.exports = function (config) { ], './plugins/withAndroidManifestPlugin.js', './plugins/withAndroidManifestFCMIconPlugin.js', + './plugins/withAndroidManifestLaunchModePlugin.js', './plugins/withAndroidStylesWindowBackgroundPlugin.js', './plugins/withAndroidStylesAccentColorPlugin.js', './plugins/withAndroidSplashScreenStatusBarTranslucentPlugin.js', diff --git a/plugins/withAndroidManifestLaunchModePlugin.js b/plugins/withAndroidManifestLaunchModePlugin.js new file mode 100644 index 0000000000..45ab9aeb76 --- /dev/null +++ b/plugins/withAndroidManifestLaunchModePlugin.js @@ -0,0 +1,17 @@ +const {withAndroidManifest} = require('expo/config-plugins') + +module.exports = function withAndroidManifestLaunchModePlugin(appConfig) { + return withAndroidManifest(appConfig, function (decoratedAppConfig) { + try { + const mainApplication = + decoratedAppConfig.modResults.manifest.application[0] + const mainActivity = mainApplication.activity.find( + elem => elem.$['android:name'] === '.MainActivity', + ) + mainActivity.$['android:launchMode'] = 'singleTop' + } catch (e) { + console.error(`withAndroidManifestLaunchModePlugin failed`, e) + } + return decoratedAppConfig + }) +} From 4d39ef2e19632eddc1a31a5b41078f6e40b92fbc Mon Sep 17 00:00:00 2001 From: Mary <148872143+mary-ext@users.noreply.github.com> Date: Thu, 30 May 2024 01:50:13 +0700 Subject: [PATCH 229/277] fix: don't round up count, truncate (#4261) --- src/view/com/util/numeric/format.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/view/com/util/numeric/format.ts b/src/view/com/util/numeric/format.ts index 7aa5a4f4df..71d8d73e04 100644 --- a/src/view/com/util/numeric/format.ts +++ b/src/view/com/util/numeric/format.ts @@ -2,6 +2,10 @@ export const formatCount = (num: number) => Intl.NumberFormat('en-US', { notation: 'compact', maximumFractionDigits: 1, + // `1,953` shouldn't be rounded up to 2k, it should be truncated. + // @ts-expect-error: `roundingMode` doesn't seem to be in the typings yet + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#roundingmode + roundingMode: 'trunc', }).format(num) export function formatCountShortOnly(num: number): string { From 165feedb866034452807eb87b39efe3ba780184f Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 30 May 2024 03:25:11 +0300 Subject: [PATCH 230/277] Use ALF for post controls (#3400) * alf the repost dropdown on web + import icons * alf like icon * convert other post controls * add missing padding to share button * refine buttons and use better icons * revert buttonicon changes * remove ButtonIcon and ButtonText from repost dialog * use 15px font size when not big * reduce size and use contrast_25 * add hover state to logged out view * add `userSelect: 'none'` to buttons * use width rather than height * fix quote close behaviour * prettier * Fix Esc on repost * Use new icons for placeholder * Fix placeholder --------- Co-authored-by: Dan Abramov --- ...seQuote_filled_stroke2_corner0_rounded.svg | 1 + .../closeQuote_stroke2_corner0_rounded.svg | 1 + .../closeQuote_stroke2_corner1_rounded.svg | 1 + ...enQuote_filled_stroke2_corner0_rounded.svg | 1 + .../openQuote_stroke2_corner0_rounded.svg | 1 + .../icons/repost_stroke2_corner0_rounded.svg | 1 + .../icons/repost_stroke2_corner3_rounded.svg | 1 + src/alf/atoms.ts | 11 +- src/components/Button.tsx | 6 +- src/components/icons/Quote.tsx | 21 ++ src/components/icons/Repost.tsx | 13 ++ src/view/com/post-thread/PostThreadItem.tsx | 4 +- src/view/com/util/LoadingPlaceholder.tsx | 64 +++--- src/view/com/util/forms/PostDropdownBtn.tsx | 20 +- src/view/com/util/post-ctrls/PostCtrls.tsx | 147 +++++++------ src/view/com/util/post-ctrls/RepostButton.tsx | 174 +++++++++------- .../com/util/post-ctrls/RepostButton.web.tsx | 194 +++++++++--------- 17 files changed, 376 insertions(+), 285 deletions(-) create mode 100644 assets/icons/closeQuote_filled_stroke2_corner0_rounded.svg create mode 100644 assets/icons/closeQuote_stroke2_corner0_rounded.svg create mode 100644 assets/icons/closeQuote_stroke2_corner1_rounded.svg create mode 100644 assets/icons/openQuote_filled_stroke2_corner0_rounded.svg create mode 100644 assets/icons/openQuote_stroke2_corner0_rounded.svg create mode 100644 assets/icons/repost_stroke2_corner0_rounded.svg create mode 100644 assets/icons/repost_stroke2_corner3_rounded.svg create mode 100644 src/components/icons/Quote.tsx create mode 100644 src/components/icons/Repost.tsx diff --git a/assets/icons/closeQuote_filled_stroke2_corner0_rounded.svg b/assets/icons/closeQuote_filled_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..41e75887c0 --- /dev/null +++ b/assets/icons/closeQuote_filled_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/closeQuote_stroke2_corner0_rounded.svg b/assets/icons/closeQuote_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..3c76c73920 --- /dev/null +++ b/assets/icons/closeQuote_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/closeQuote_stroke2_corner1_rounded.svg b/assets/icons/closeQuote_stroke2_corner1_rounded.svg new file mode 100644 index 0000000000..b27eb94f23 --- /dev/null +++ b/assets/icons/closeQuote_stroke2_corner1_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/openQuote_filled_stroke2_corner0_rounded.svg b/assets/icons/openQuote_filled_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..e8141a1128 --- /dev/null +++ b/assets/icons/openQuote_filled_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/openQuote_stroke2_corner0_rounded.svg b/assets/icons/openQuote_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..eee6344cee --- /dev/null +++ b/assets/icons/openQuote_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/repost_stroke2_corner0_rounded.svg b/assets/icons/repost_stroke2_corner0_rounded.svg new file mode 100644 index 0000000000..a3cff9c62d --- /dev/null +++ b/assets/icons/repost_stroke2_corner0_rounded.svg @@ -0,0 +1 @@ + diff --git a/assets/icons/repost_stroke2_corner3_rounded.svg b/assets/icons/repost_stroke2_corner3_rounded.svg new file mode 100644 index 0000000000..8aa7f727bd --- /dev/null +++ b/assets/icons/repost_stroke2_corner3_rounded.svg @@ -0,0 +1 @@ + diff --git a/src/alf/atoms.ts b/src/alf/atoms.ts index 3e5ddf049b..158bb6ec5b 100644 --- a/src/alf/atoms.ts +++ b/src/alf/atoms.ts @@ -841,7 +841,7 @@ export const atoms = { marginRight: 'auto', }, /* - * Pointer events + * Pointer events & user select */ pointer_events_none: { pointerEvents: 'none', @@ -849,6 +849,15 @@ export const atoms = { pointer_events_auto: { pointerEvents: 'auto', }, + user_select_none: { + userSelect: 'none', + }, + user_select_text: { + userSelect: 'text', + }, + user_select_all: { + userSelect: 'all', + }, /* * Text decoration */ diff --git a/src/components/Button.tsx b/src/components/Button.tsx index a008c8605c..3db8033997 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -71,6 +71,7 @@ export type ButtonProps = Pick< testID?: string label: string style?: StyleProp + hoverStyle?: StyleProp children: NonTextElements | ((context: ButtonContext) => NonTextElements) } @@ -96,6 +97,7 @@ export function Button({ label, disabled = false, style, + hoverStyle: hoverStyleProp, ...rest }: ButtonProps) { const t = useTheme() @@ -374,7 +376,9 @@ export function Button({ a.align_center, a.justify_center, flattenedBaseStyles, - ...(state.hovered || state.pressed ? hoverStyles : []), + ...(state.hovered || state.pressed + ? [hoverStyles, flatten(hoverStyleProp)] + : []), flatten(style), ]} onPressIn={onPressIn} diff --git a/src/components/icons/Quote.tsx b/src/components/icons/Quote.tsx new file mode 100644 index 0000000000..ec53cfc460 --- /dev/null +++ b/src/components/icons/Quote.tsx @@ -0,0 +1,21 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const OpenQuote_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M7.574 4.178a1 1 0 0 1 .43.822v5h2a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-8c0-2.585 1.162-4.335 2.316-5.417a8.163 8.163 0 0 1 1.569-1.15 7.029 7.029 0 0 1 .738-.36l.016-.005.005-.003h.003v-.001c.001 0 .002 0 .353.936l-.351-.936a1 1 0 0 1 .92.114Zm-1.57 2.588a5.99 5.99 0 0 0-.316.276C4.842 7.835 4.004 9.085 4.004 11v7h5v-6h-2a1 1 0 0 1-1-1V6.766Zm12.57-2.588a1 1 0 0 1 .43.822v5h2a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1h-7a1 1 0 0 1-1-1v-8c0-2.585 1.162-4.335 2.316-5.417a8.166 8.166 0 0 1 1.569-1.15 7.038 7.038 0 0 1 .738-.36l.016-.005.005-.003h.003v-.001c.001 0 .002 0 .353.936l-.351-.936a1 1 0 0 1 .92.114Zm-1.57 2.588c-.105.085-.21.177-.316.276-.846.793-1.684 2.043-1.684 3.958v7h5v-6h-2a1 1 0 0 1-1-1V6.766Z', +}) + +export const OpenQuote_Filled_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M8.004 5a1 1 0 0 0-.43-.822c-.57-.395-1.176-.031-1.685.255-.428.24-.998.614-1.569 1.15C3.166 6.665 2.004 8.415 2.004 11v8a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1v-8a1 1 0 0 0-1-1h-2V5ZM19.004 5a1 1 0 0 0-.43-.822c-.57-.395-1.176-.031-1.685.255-.428.24-.998.614-1.569 1.15-1.154 1.082-2.316 2.832-2.316 5.417v8a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1v-8a1 1 0 0 0-1-1h-2V5Z', +}) + +export const CloseQuote_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M2.004 5a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v8c0 2.585-1.162 4.335-2.316 5.417-.571.536-1.14.91-1.569 1.15a7.01 7.01 0 0 1-.738.36l-.016.006-.006.002h-.002l-.001.001L6.004 19l.351.936A1 1 0 0 1 5.004 19v-5h-2a1 1 0 0 1-1-1V5Zm5 12.234c.104-.085.21-.177.316-.276.846-.793 1.684-2.043 1.684-3.958V6h-5v6h2a1 1 0 0 1 1 1v4.234Zm6-12.234a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v8c0 2.585-1.162 4.335-2.316 5.417-.571.536-1.14.91-1.569 1.15a7.018 7.018 0 0 1-.738.36l-.016.006-.006.002h-.002l-.001.001-.352-.936.351.936A1 1 0 0 1 16.004 19v-5h-2a1 1 0 0 1-1-1V5Zm5 12.234V13a1 1 0 0 0-1-1h-2V6h5v7c0 1.915-.838 3.165-1.684 3.958-.106.1-.212.191-.316.276Z', +}) + +export const CloseQuote_Stroke2_Corner1_Rounded = createSinglePathSVG({ + path: 'M2.003 5.999a2 2 0 0 1 2-1.999h5c1.104 0 2 .893 2 1.999V13c0 2.585-1.16 4.335-2.315 5.417-.571.536-1.14.91-1.569 1.15a7.01 7.01 0 0 1-.738.36l-.016.006-.006.002h-.002l-.001.001L6.004 19l.351.936a1 1 0 0 1-1.351-.935L5 14H4a2 2 0 0 1-2-2.001l.002-6Zm5 11.236L7 12.999A1 1 0 0 0 6 12H4l.003-6h5v7c0 1.915-.837 3.165-1.683 3.958-.106.1-.213.192-.317.277Zm6-11.235a2 2 0 0 1 2-2h5c1.104 0 2 .893 2 1.999V13c0 2.585-1.16 4.335-2.315 5.417-.571.536-1.14.91-1.569 1.15a7.018 7.018 0 0 1-.738.36l-.016.006-.006.002h-.002l-.001.001-.352-.936.351.936A1 1 0 0 1 16.004 19v-5h-1a2 2 0 0 1-2-2V6Zm7 0h-5v6h2a1 1 0 0 1 1 1v4.234c.105-.085.211-.177.317-.276.846-.793 1.684-2.043 1.684-3.958V6Z', +}) + +export const CloseQuote_Filled_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M3.004 4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h2v5a1 1 0 0 0 .43.822c.57.395 1.176.031 1.685-.255.428-.24.998-.614 1.569-1.15 1.154-1.082 2.316-2.832 2.316-5.417V5a1 1 0 0 0-1-1h-7ZM14.004 4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h2v5a1 1 0 0 0 .43.822c.57.395 1.176.031 1.685-.255.428-.24.998-.614 1.569-1.15 1.154-1.082 2.316-2.832 2.316-5.417V5a1 1 0 0 0-1-1h-7Z', +}) diff --git a/src/components/icons/Repost.tsx b/src/components/icons/Repost.tsx new file mode 100644 index 0000000000..01214bca71 --- /dev/null +++ b/src/components/icons/Repost.tsx @@ -0,0 +1,13 @@ +import {createSinglePathSVG} from './TEMPLATE' + +export const Repost_Stroke2_Corner0_Rounded = createSinglePathSVG({ + path: 'M16.293 2.293a1 1 0 0 1 1.414 0l3 3a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414-1.414L17.586 7H5v4a1 1 0 1 1-2 0V6a1 1 0 0 1 1-1h13.586l-1.293-1.293a1 1 0 0 1 0-1.414ZM21 13v5a1 1 0 0 1-1 1H6.414l1.293 1.293a1 1 0 1 1-1.414 1.414l-3-3a1 1 0 0 1 0-1.414l3-3a1 1 0 0 1 1.414 1.414L6.414 17H19v-4a1 1 0 1 1 2 0Z', +}) + +export const Repost_Stroke2_Corner2_Rounded = createSinglePathSVG({ + path: 'M17.957 2.293a1 1 0 1 0-1.414 1.414L17.836 5H6a3 3 0 0 0-3 3v3a1 1 0 1 0 2 0V8a1 1 0 0 1 1-1h11.836l-1.293 1.293a1 1 0 0 0 1.414 1.414l2.47-2.47a1.75 1.75 0 0 0 0-2.474l-2.47-2.47ZM20 12a1 1 0 0 1 1 1v3a3 3 0 0 1-3 3H6.164l1.293 1.293a1 1 0 1 1-1.414 1.414l-2.47-2.47a1.75 1.75 0 0 1 0-2.474l2.47-2.47a1 1 0 0 1 1.414 1.414L6.164 17H18a1 1 0 0 0 1-1v-3a1 1 0 0 1 1-1Z', +}) + +export const Repost_Stroke2_Corner3_Rounded = createSinglePathSVG({ + path: 'M16.793 2.293a1 1 0 0 1 1.414 0L20.5 4.586a2 2 0 0 1 0 2.828l-2.293 2.293a1 1 0 0 1-1.414-1.414L18.086 7H7a2 2 0 0 0-2 2v2a1 1 0 1 1-2 0V9a4 4 0 0 1 4-4h11.086l-1.293-1.293a1 1 0 0 1 0-1.414ZM20 12a1 1 0 0 1 1 1v2a4 4 0 0 1-4 4H5.914l1.293 1.293a1 1 0 1 1-1.414 1.414L3.5 19.414a2 2 0 0 1 0-2.828l2.293-2.293a1 1 0 0 1 1.414 1.414L5.914 17H17a2 2 0 0 0 2-2v-2a1 1 0 0 1 1-1Z', +}) diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 548b73af6c..0ff040b9c8 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -367,7 +367,7 @@ let PostThreadItemLoaded = ({ ) : null} ) : null} - + }) { - const theme = useTheme() + const t = useTheme_NEW() const pal = usePalette('default') return ( @@ -67,35 +67,47 @@ export function PostLoadingPlaceholder({ - - - + + - - - + @@ -290,10 +302,10 @@ const styles = StyleSheet.create({ flex: 1, }, postBtn: { - padding: 5, flex: 1, flexDirection: 'row', alignItems: 'center', + padding: 5, }, avatar: { borderRadius: 26, diff --git a/src/view/com/util/forms/PostDropdownBtn.tsx b/src/view/com/util/forms/PostDropdownBtn.tsx index 50677ee8a6..cd82ec98f0 100644 --- a/src/view/com/util/forms/PostDropdownBtn.tsx +++ b/src/view/com/util/forms/PostDropdownBtn.tsx @@ -1,5 +1,10 @@ import React, {memo} from 'react' -import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' +import { + Pressable, + type PressableProps, + type StyleProp, + type ViewStyle, +} from 'react-native' import * as Clipboard from 'expo-clipboard' import { AppBskyActorDefs, @@ -7,7 +12,6 @@ import { AtUri, RichText as RichTextAPI, } from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' @@ -37,6 +41,7 @@ import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons import {BubbleQuestion_Stroke2_Corner0_Rounded as Translate} from '#/components/icons/Bubble' import {Clipboard_Stroke2_Corner2_Rounded as ClipboardIcon} from '#/components/icons/Clipboard' import {CodeBrackets_Stroke2_Corner0_Rounded as CodeBrackets} from '#/components/icons/CodeBrackets' +import {DotGrid_Stroke2_Corner0_Rounded as DotsHorizontal} from '#/components/icons/DotGrid' import { EmojiSad_Stroke2_Corner0_Rounded as EmojiSad, EmojiSmile_Stroke2_Corner0_Rounded as EmojiSmile, @@ -68,6 +73,7 @@ let PostDropdownBtn = ({ richText, style, hitSlop, + size, timestamp, }: { testID: string @@ -79,6 +85,7 @@ let PostDropdownBtn = ({ richText: RichTextAPI style?: StyleProp hitSlop?: PressableProps['hitSlop'] + size?: 'lg' | 'md' | 'sm' timestamp: string }): React.ReactNode => { const {hasSession, currentAccount} = useSession() @@ -238,14 +245,13 @@ let PostDropdownBtn = ({ style, a.rounded_full, (state.hovered || state.pressed) && [ - alf.atoms.bg_contrast_50, + alf.atoms.bg_contrast_25, ], ]}> - ) diff --git a/src/view/com/util/post-ctrls/PostCtrls.tsx b/src/view/com/util/post-ctrls/PostCtrls.tsx index b6c07d5735..2b0220842e 100644 --- a/src/view/com/util/post-ctrls/PostCtrls.tsx +++ b/src/view/com/util/post-ctrls/PostCtrls.tsx @@ -1,10 +1,10 @@ import React, {memo, useCallback} from 'react' import { - StyleProp, - StyleSheet, - TouchableOpacity, + Pressable, + type PressableStateCallbackType, + type StyleProp, View, - ViewStyle, + type ViewStyle, } from 'react-native' import { AppBskyFeedDefs, @@ -16,12 +16,11 @@ import {msg, plural} from '@lingui/macro' import {useLingui} from '@lingui/react' import {HITSLOP_10, HITSLOP_20} from '#/lib/constants' -import {CommentBottomArrow, HeartIcon, HeartIconSolid} from '#/lib/icons' +import {useHaptics} from '#/lib/haptics' import {makeProfileLink} from '#/lib/routes/links' import {shareUrl} from '#/lib/sharing' import {toShareUrl} from '#/lib/strings/url-helpers' import {s} from '#/lib/styles' -import {useTheme} from '#/lib/ThemeContext' import {Shadow} from '#/state/cache/types' import {useFeedFeedbackContext} from '#/state/feed-feedback' import {useModalControls} from '#/state/modals' @@ -31,9 +30,14 @@ import { } from '#/state/queries/post' import {useRequireAuth} from '#/state/session' import {useComposerControls} from '#/state/shell/composer' -import {useHaptics} from 'lib/haptics' +import {atoms as a, useTheme} from '#/alf' import {useDialogControl} from '#/components/Dialog' import {ArrowOutOfBox_Stroke2_Corner0_Rounded as ArrowOutOfBox} from '#/components/icons/ArrowOutOfBox' +import {Bubble_Stroke2_Corner2_Rounded as Bubble} from '#/components/icons/Bubble' +import { + Heart2_Filled_Stroke2_Corner0_Rounded as HeartIconFilled, + Heart2_Stroke2_Corner0_Rounded as HeartIconOutline, +} from '#/components/icons/Heart2' import * as Prompt from '#/components/Prompt' import {PostDropdownBtn} from '../forms/PostDropdownBtn' import {Text} from '../text/Text' @@ -58,7 +62,7 @@ let PostCtrls = ({ onPressReply: () => void logContext: 'FeedItem' | 'PostThreadItem' | 'Post' }): React.ReactNode => { - const theme = useTheme() + const t = useTheme() const {_} = useLingui() const {openComposer} = useComposerControls() const {closeModal} = useModalControls() @@ -80,9 +84,9 @@ let PostCtrls = ({ const defaultCtrlColor = React.useMemo( () => ({ - color: theme.palette.default.postCtrl, + color: t.palette.contrast_500, }), - [theme], + [t], ) as StyleProp const onPressToggleLike = React.useCallback(async () => { @@ -185,57 +189,70 @@ let PostCtrls = ({ }) }, [post.uri, post.author, sendInteraction, feedContext]) + const btnStyle = React.useCallback( + ({pressed, hovered}: PressableStateCallbackType) => [ + a.gap_xs, + a.rounded_full, + a.flex_row, + a.align_center, + a.justify_center, + {padding: 5}, + (pressed || hovered) && t.atoms.bg_contrast_25, + ], + [t.atoms.bg_contrast_25], + ) + return ( - + - { if (!post.viewer?.replyDisabled) { requireAuth(() => onPressReply()) } }} - accessibilityRole="button" accessibilityLabel={plural(post.replyCount || 0, { one: 'Reply (# reply)', other: 'Reply (# replies)', })} accessibilityHint="" hitSlop={big ? HITSLOP_20 : HITSLOP_10}> - {typeof post.replyCount !== 'undefined' && post.replyCount > 0 ? ( - + {post.replyCount} ) : undefined} - + - + - - + { - requireAuth(() => onPressToggleLike()) - }} - accessibilityRole="button" + style={btnStyle} + onPress={() => requireAuth(() => onPressToggleLike())} accessibilityLabel={ post.viewer?.like ? plural(post.likeCount || 0, { @@ -250,33 +267,36 @@ let PostCtrls = ({ accessibilityHint="" hitSlop={big ? HITSLOP_20 : HITSLOP_10}> {post.viewer?.like ? ( - + ) : ( - )} {typeof post.likeCount !== 'undefined' && post.likeCount > 0 ? ( + style={[ + [ + big ? a.text_md : {fontSize: 15}, + a.user_select_none, + post.viewer?.like + ? [a.font_bold, s.likeColor] + : defaultCtrlColor, + ], + ]}> {post.likeCount} ) : undefined} - + {big && ( <> - - + { if (shouldShowLoggedOutWarning) { loggedOutWarningPromptControl.open() @@ -284,15 +304,14 @@ let PostCtrls = ({ onShare() } }} - accessibilityRole="button" - accessibilityLabel={`${_(msg`Share`)}`} + accessibilityLabel={_(msg`Share`)} accessibilityHint="" hitSlop={big ? HITSLOP_20 : HITSLOP_10}> - + )} - + @@ -324,31 +343,3 @@ let PostCtrls = ({ } PostCtrls = memo(PostCtrls) export {PostCtrls} - -const styles = StyleSheet.create({ - ctrls: { - flexDirection: 'row', - justifyContent: 'space-between', - alignItems: 'center', - }, - ctrl: { - flex: 1, - alignItems: 'flex-start', - }, - ctrlBig: { - alignItems: 'center', - }, - btn: { - flexDirection: 'row', - alignItems: 'center', - }, - btnPad: { - paddingTop: 5, - paddingBottom: 5, - paddingLeft: 5, - paddingRight: 5, - }, - mt1: { - marginTop: 1, - }, -}) diff --git a/src/view/com/util/post-ctrls/RepostButton.tsx b/src/view/com/util/post-ctrls/RepostButton.tsx index f584178874..1124cb4059 100644 --- a/src/view/com/util/post-ctrls/RepostButton.tsx +++ b/src/view/com/util/post-ctrls/RepostButton.tsx @@ -1,108 +1,132 @@ import React, {memo, useCallback} from 'react' -import {StyleProp, StyleSheet, TouchableOpacity, ViewStyle} from 'react-native' +import {View} from 'react-native' import {msg, plural} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useModalControls} from '#/state/modals' import {useRequireAuth} from '#/state/session' -import {HITSLOP_10, HITSLOP_20} from 'lib/constants' -import {RepostIcon} from 'lib/icons' -import {colors, s} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import {Text} from '../text/Text' +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonText} from '#/components/Button' +import * as Dialog from '#/components/Dialog' +import {CloseQuote_Stroke2_Corner1_Rounded as Quote} from '#/components/icons/Quote' +import {Repost_Stroke2_Corner2_Rounded as Repost} from '#/components/icons/Repost' +import {Text} from '#/components/Typography' interface Props { isReposted: boolean repostCount?: number - big?: boolean onRepost: () => void onQuote: () => void + big?: boolean } let RepostButton = ({ isReposted, repostCount, - big, onRepost, onQuote, + big, }: Props): React.ReactNode => { - const theme = useTheme() + const t = useTheme() const {_} = useLingui() - const {openModal} = useModalControls() const requireAuth = useRequireAuth() + const dialogControl = Dialog.useDialogControl() - const defaultControlColor = React.useMemo( + const color = React.useMemo( () => ({ - color: theme.palette.default.postCtrl, + color: isReposted ? t.palette.positive_600 : t.palette.contrast_500, }), - [theme], + [t, isReposted], ) - const onPressToggleRepostWrapper = useCallback(() => { - openModal({ - name: 'repost', - onRepost: onRepost, - onQuote: onQuote, - isReposted, - }) - }, [onRepost, onQuote, isReposted, openModal]) + const close = useCallback(() => dialogControl.close(), [dialogControl]) return ( - { - requireAuth(() => onPressToggleRepostWrapper()) - }} - style={[styles.btn, !big && styles.btnPad]} - accessibilityRole="button" - accessibilityLabel={`${ - isReposted - ? _(msg`Undo repost`) - : _(msg({message: 'Repost', context: 'action'})) - } (${plural(repostCount || 0, {one: '# repost', other: '# reposts'})})`} - accessibilityHint="" - hitSlop={big ? HITSLOP_20 : HITSLOP_10}> - + + + + + + + + + + + + + + ) } RepostButton = memo(RepostButton) export {RepostButton} - -const styles = StyleSheet.create({ - btn: { - flexDirection: 'row', - alignItems: 'center', - }, - btnPad: { - paddingTop: 5, - paddingBottom: 5, - paddingLeft: 5, - paddingRight: 5, - }, - reposted: { - color: colors.green3, - }, - repostCount: { - color: 'currentColor', - }, -}) diff --git a/src/view/com/util/post-ctrls/RepostButton.web.tsx b/src/view/com/util/post-ctrls/RepostButton.web.tsx index bbe5869feb..0898981419 100644 --- a/src/view/com/util/post-ctrls/RepostButton.web.tsx +++ b/src/view/com/util/post-ctrls/RepostButton.web.tsx @@ -1,130 +1,134 @@ import React from 'react' -import {StyleProp, StyleSheet, View, ViewStyle, Pressable} from 'react-native' -import {RepostIcon} from 'lib/icons' -import {colors} from 'lib/styles' -import {useTheme} from 'lib/ThemeContext' -import {Text} from '../text/Text' - -import { - NativeDropdown, - DropdownItem as NativeDropdownItem, -} from '../forms/NativeDropdown' -import {EventStopper} from '../EventStopper' -import {useLingui} from '@lingui/react' +import {Pressable, View} from 'react-native' import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + import {useRequireAuth} from '#/state/session' import {useSession} from '#/state/session' +import {atoms as a, useTheme} from '#/alf' +import {Button} from '#/components/Button' +import {CloseQuote_Stroke2_Corner1_Rounded as Quote} from '#/components/icons/Quote' +import {Repost_Stroke2_Corner2_Rounded as Repost} from '#/components/icons/Repost' +import * as Menu from '#/components/Menu' +import {Text} from '#/components/Typography' +import {EventStopper} from '../EventStopper' interface Props { isReposted: boolean repostCount?: number - big?: boolean onRepost: () => void onQuote: () => void - style?: StyleProp + big?: boolean } export const RepostButton = ({ isReposted, repostCount, - big, onRepost, onQuote, + big, }: Props) => { - const theme = useTheme() + const t = useTheme() const {_} = useLingui() const {hasSession} = useSession() const requireAuth = useRequireAuth() - const defaultControlColor = React.useMemo( + const color = React.useMemo( () => ({ - color: theme.palette.default.postCtrl, + color: isReposted ? t.palette.positive_600 : t.palette.contrast_500, }), - [theme], - ) - - const dropdownItems: NativeDropdownItem[] = [ - { - label: isReposted ? _(msg`Undo repost`) : _(msg`Repost`), - testID: 'repostDropdownRepostBtn', - icon: { - ios: {name: 'repeat'}, - android: '', - web: 'retweet', - }, - onPress: onRepost, - }, - { - label: _(msg`Quote post`), - testID: 'repostDropdownQuoteBtn', - icon: { - ios: {name: 'quote.bubble'}, - android: '', - web: 'quote-left', - }, - onPress: onQuote, - }, - ] - - const inner = ( - , - ]}> - - {typeof repostCount !== 'undefined' && repostCount > 0 ? ( - - {repostCount} - - ) : undefined} - + [t, isReposted], ) return hasSession ? ( - - - {inner} - + + + + {({props, state}) => { + return ( + + + + ) + }} + + + + + {isReposted ? _(msg`Undo repost`) : _(msg`Repost`)} + + + + + {_(msg`Quote post`)} + + + + ) : ( - { requireAuth(() => {}) }} - accessibilityLabel={_(msg`Repost or quote post`)} - accessibilityHint=""> - {inner} - + label={_(msg`Repost or quote post`)} + style={{padding: 0}} + hoverStyle={t.atoms.bg_contrast_25} + shape="round" + variant="ghost" + color="secondary"> + + ) } -const styles = StyleSheet.create({ - btn: { - flexDirection: 'row', - alignItems: 'center', - gap: 4, - }, - btnPad: { - paddingTop: 5, - paddingBottom: 5, - paddingLeft: 5, - paddingRight: 5, - }, - reposted: { - color: colors.green3, - }, - repostCount: { - color: 'currentColor', - }, -}) +const RepostInner = ({ + isReposted, + color, + repostCount, + big, +}: { + isReposted: boolean + color: {color: string} + repostCount?: number + big?: boolean +}) => ( + + + {typeof repostCount !== 'undefined' && repostCount > 0 ? ( + + {repostCount} + + ) : undefined} + +) From eb6f44853d91083c7f6015952f1fe6cbe0395631 Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 29 May 2024 18:42:12 -0700 Subject: [PATCH 231/277] adjust notifications experiment by removing `canAskAgain` (#4271) * adjust notifications experiment by removing `canAskAgain` * move to `StepFinished` for after onboarding --- src/lib/notifications/notifications.ts | 67 ++++++++++++------------- src/lib/statsig/gates.ts | 2 +- src/screens/Onboarding/StepFinished.tsx | 13 ++++- src/view/screens/Home.tsx | 7 --- 4 files changed, 44 insertions(+), 45 deletions(-) diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts index f0667b0ccf..705d90c564 100644 --- a/src/lib/notifications/notifications.ts +++ b/src/lib/notifications/notifications.ts @@ -71,46 +71,41 @@ export function useNotificationsRegistration() { export function useRequestNotificationsPermission() { const gate = useGate() - const {currentAccount} = useSession() - return React.useCallback( - async (context: 'StartOnboarding' | 'AfterOnboarding' | 'Login') => { - const permissions = await Notifications.getPermissionsAsync() + return async (context: 'StartOnboarding' | 'AfterOnboarding' | 'Login') => { + const permissions = await Notifications.getPermissionsAsync() - if ( - !currentAccount || - !isNative || - permissions?.status === 'granted' || - (permissions?.status === 'denied' && !permissions?.canAskAgain) - ) { - return - } - if ( - context === 'StartOnboarding' && - gate('request_notifications_permission_after_onboarding') - ) { - return - } - if ( - context === 'AfterOnboarding' && - !gate('request_notifications_permission_after_onboarding') - ) { - return - } + if ( + !isNative || + permissions?.status === 'granted' || + permissions?.status === 'denied' + ) { + return + } + if ( + context === 'StartOnboarding' && + gate('request_notifications_permission_after_onboarding_v2') + ) { + return + } + if ( + context === 'AfterOnboarding' && + !gate('request_notifications_permission_after_onboarding_v2') + ) { + return + } - const res = await Notifications.requestPermissionsAsync() - logEvent('notifications:request', { - context: context, - status: res.status, - }) + const res = await Notifications.requestPermissionsAsync() + logEvent('notifications:request', { + context: context, + status: res.status, + }) - if (res.granted) { - // This will fire a pushTokenEvent, which will handle registration of the token - getPushToken(true) - } - }, - [gate, currentAccount], - ) + if (res.granted) { + // This will fire a pushTokenEvent, which will handle registration of the token + getPushToken(true) + } + } } export async function decrementBadgeCount(by: number | 'reset' = 1) { diff --git a/src/lib/statsig/gates.ts b/src/lib/statsig/gates.ts index c572c07211..2721871f35 100644 --- a/src/lib/statsig/gates.ts +++ b/src/lib/statsig/gates.ts @@ -1,4 +1,4 @@ export type Gate = // Keep this alphabetic please. - | 'request_notifications_permission_after_onboarding' + | 'request_notifications_permission_after_onboarding_v2' | 'show_follow_back_label_v2' diff --git a/src/screens/Onboarding/StepFinished.tsx b/src/screens/Onboarding/StepFinished.tsx index b8a21680bf..c75dd4fa74 100644 --- a/src/screens/Onboarding/StepFinished.tsx +++ b/src/screens/Onboarding/StepFinished.tsx @@ -13,6 +13,7 @@ import {RQKEY as profileRQKey} from '#/state/queries/profile' import {useAgent} from '#/state/session' import {useOnboardingDispatch} from '#/state/shell' import {uploadBlob} from 'lib/api' +import {useRequestNotificationsPermission} from 'lib/notifications/notifications' import { DescriptionText, OnboardingControls, @@ -39,6 +40,7 @@ export function StepFinished() { const [saving, setSaving] = React.useState(false) const queryClient = useQueryClient() const agent = useAgent() + const requestNotificationsPermission = useRequestNotificationsPermission() const finishOnboarding = React.useCallback(async () => { setSaving(true) @@ -72,6 +74,7 @@ export function StepFinished() { : 'default', }) })(), + requestNotificationsPermission('AfterOnboarding'), ]) } catch (e: any) { logger.info(`onboarding: bulk save failed`) @@ -98,7 +101,15 @@ export function StepFinished() { track('OnboardingV2:StepFinished:End') track('OnboardingV2:Complete') logEvent('onboarding:finished:nextPressed', {}) - }, [state, dispatch, onboardDispatch, setSaving, track, agent, queryClient]) + }, [ + state, + queryClient, + agent, + dispatch, + onboardDispatch, + track, + requestNotificationsPermission, + ]) React.useEffect(() => { track('OnboardingV2:StepFinished:Start') diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index 1744c6651c..829cd94e48 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -20,7 +20,6 @@ import { } from '#/state/shell' import {useSelectedFeed, useSetSelectedFeed} from '#/state/shell/selected-feed' import {useOTAUpdates} from 'lib/hooks/useOTAUpdates' -import {useRequestNotificationsPermission} from 'lib/notifications/notifications' import {HomeTabNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {FeedPage} from 'view/com/feeds/FeedPage' import {Pager, PagerRef, RenderTabBarFnProps} from 'view/com/pager/Pager' @@ -59,8 +58,6 @@ function HomeScreenReady({ preferences: UsePreferencesQueryResponse pinnedFeedInfos: SavedFeedSourceInfo[] }) { - const requestNotificationsPermission = useRequestNotificationsPermission() - const allFeeds = React.useMemo( () => pinnedFeedInfos.map(f => f.feedDescriptor), [pinnedFeedInfos], @@ -74,10 +71,6 @@ function HomeScreenReady({ useSetTitle(pinnedFeedInfos[selectedIndex]?.displayName) useOTAUpdates() - React.useEffect(() => { - requestNotificationsPermission('AfterOnboarding') - }, [requestNotificationsPermission]) - const pagerRef = React.useRef(null) const lastPagerReportedIndexRef = React.useRef(selectedIndex) React.useLayoutEffect(() => { From 9628070e52c4f50e2f381a3f4ad1f3932743d011 Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 29 May 2024 20:09:24 -0700 Subject: [PATCH 232/277] add prop to ListImpl for disabling `content-visibility` style (#4236) * add prop to `ListImpl` for `content-visibility` style * change to `disableContentVisibility` * lint * tweaks * Keep the fix more general * Clarify ambiguity --------- Co-authored-by: Dan Abramov --- .../Messages/Conversation/MessagesList.tsx | 3 +++ src/view/com/util/List.tsx | 2 ++ src/view/com/util/List.web.tsx | 20 +++++++++++++++---- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index bee7f6cd8f..583c408526 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -328,6 +328,9 @@ export function MessagesList({ renderItem={renderItem} keyExtractor={keyExtractor} containWeb={true} + // Prevents wrong position in Firefox when sending a message + // as well as scroll getting stuck on Chome when scrolling upwards. + disableContentVisibility={true} disableVirtualization={true} style={animatedListStyle} // The extra two items account for the header and the footer components diff --git a/src/view/com/util/List.tsx b/src/view/com/util/List.tsx index c271481a90..22d0949129 100644 --- a/src/view/com/util/List.tsx +++ b/src/view/com/util/List.tsx @@ -26,6 +26,8 @@ export type ListProps = Omit< onItemSeen?: (item: ItemT) => void containWeb?: boolean sideBorders?: boolean + // Web only prop to disable a perf optimization (which would otherwise be on). + disableContentVisibility?: boolean } export type ListRef = React.MutableRefObject diff --git a/src/view/com/util/List.web.tsx b/src/view/com/util/List.web.tsx index 9d8ddedaa3..d4bd1b0039 100644 --- a/src/view/com/util/List.web.tsx +++ b/src/view/com/util/List.web.tsx @@ -5,7 +5,7 @@ import {ReanimatedScrollEvent} from 'react-native-reanimated/lib/typescript/rean import {batchedUpdates} from '#/lib/batchedUpdates' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {useScrollHandlers} from '#/lib/ScrollContext' -import {isFirefox, isSafari} from 'lib/browser' +import {isSafari} from 'lib/browser' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {addStyle} from 'lib/styles' @@ -25,6 +25,7 @@ export type ListProps = Omit< desktopFixedHeight: any // TODO: Better types. containWeb?: boolean sideBorders?: boolean + disableContentVisibility?: boolean } export type ListRef = React.MutableRefObject // TODO: Better types. @@ -56,6 +57,7 @@ function ListImpl( extraData, style, sideBorders = true, + disableContentVisibility, ...props }: ListProps, ref: React.Ref, @@ -339,6 +341,7 @@ function ListImpl( renderItem={renderItem} extraData={extraData} onItemSeen={onItemSeen} + disableContentVisibility={disableContentVisibility} /> ) })} @@ -387,6 +390,7 @@ let Row = function RowImpl({ renderItem, extraData: _unused, onItemSeen, + disableContentVisibility, }: { item: ItemT index: number @@ -396,6 +400,7 @@ let Row = function RowImpl({ | ((data: {index: number; item: any; separators: any}) => React.ReactNode) extraData: any onItemSeen: ((item: any) => void) | undefined + disableContentVisibility?: boolean }): React.ReactNode { const rowRef = React.useRef(null) const intersectionTimeout = React.useRef(undefined) @@ -444,8 +449,15 @@ let Row = function RowImpl({ return null } + const shouldDisableContentVisibility = disableContentVisibility || isSafari return ( - + {renderItem({item, index, separators: null as any})} ) @@ -516,9 +528,9 @@ const styles = StyleSheet.create({ marginLeft: 'auto', marginRight: 'auto', }, - row: { + contentVisibilityAuto: { // @ts-ignore web only - contentVisibility: isSafari || isFirefox ? '' : 'auto', // Safari support for this is buggy. + contentVisibility: 'auto', }, minHeightViewport: { // @ts-ignore web only From 9edb4879494b348616caca6999ee89658f439c49 Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 29 May 2024 20:28:32 -0700 Subject: [PATCH 233/277] Always show the header on post threads on native (#4254) * always show header on native * ALF ALF ALF * rm offset for top border * wrap in a `CenteredView` * use `CenteredView`'s side borders * account for loading state on web * move `isTabletOrMobile` * hide top border on first post in list * show border if parents are loading * don't show top border for deleted or blocked posts * hide top border for hidden replies * Rm root post top border --------- Co-authored-by: Dan Abramov --- src/view/com/post-thread/PostThread.tsx | 337 ++++++++---------- src/view/com/post-thread/PostThreadItem.tsx | 43 ++- .../PostThreadShowHiddenReplies.tsx | 4 +- 3 files changed, 194 insertions(+), 190 deletions(-) diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx index 4f7d0d3c62..1212f992da 100644 --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -1,5 +1,5 @@ import React, {useEffect, useRef} from 'react' -import {StyleSheet, useWindowDimensions, View} from 'react-native' +import {useWindowDimensions, View} from 'react-native' import {runOnJS} from 'react-native-reanimated' import {AppBskyFeedDefs} from '@atproto/api' import {msg, Trans} from '@lingui/macro' @@ -22,15 +22,16 @@ import { import {usePreferencesQuery} from '#/state/queries/preferences' import {useSession} from '#/state/session' import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' -import {usePalette} from 'lib/hooks/usePalette' import {useSetTitle} from 'lib/hooks/useSetTitle' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {sanitizeDisplayName} from 'lib/strings/display-names' import {cleanError} from 'lib/strings/errors' +import {CenteredView} from 'view/com/util/Views' +import {atoms as a, useTheme} from '#/alf' import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' +import {Text} from '#/components/Typography' import {ComposePrompt} from '../composer/Prompt' import {List, ListMethods} from '../util/List' -import {Text} from '../util/text/Text' import {ViewHeader} from '../util/ViewHeader' import {PostThreadItem} from './PostThreadItem' import {PostThreadShowHiddenReplies} from './PostThreadShowHiddenReplies' @@ -45,7 +46,6 @@ const MAINTAIN_VISIBLE_CONTENT_POSITION = { minIndexForVisible: 0, } -const TOP_COMPONENT = {_reactKey: '__top_component__'} const REPLY_PROMPT = {_reactKey: '__reply__'} const LOAD_MORE = {_reactKey: '__load_more__'} const SHOW_HIDDEN_REPLIES = {_reactKey: '__show_hidden_replies__'} @@ -66,7 +66,6 @@ type YieldedItem = type RowItem = | YieldedItem // TODO: TS doesn't actually enforce it's one of these, it only enforces matching shape. - | typeof TOP_COMPONENT | typeof REPLY_PROMPT | typeof LOAD_MORE @@ -91,7 +90,7 @@ export function PostThread({ }) { const {hasSession} = useSession() const {_} = useLingui() - const pal = usePalette('default') + const t = useTheme() const {isMobile, isTabletOrMobile} = useWebMediaQueries() const initialNumToRender = useInitialNumToRender() const {height: windowHeight} = useWindowDimensions() @@ -224,32 +223,21 @@ export function PostThread({ const {parents, highlightedPost, replies} = skeleton let arr: RowItem[] = [] if (highlightedPost.type === 'post') { - const isRoot = - !highlightedPost.parent && !highlightedPost.ctx.isParentLoading - if (isRoot) { - // No parents to load. - arr.push(TOP_COMPONENT) - } else { - if (highlightedPost.ctx.isParentLoading || deferParents) { - // We're loading parents of the highlighted post. - // In this case, we don't render anything above the post. - // If you add something here, you'll need to update both - // maintainVisibleContentPosition and onContentSizeChange - // to "hold onto" the correct row instead of the first one. - } else { - // Everything is loaded - let startIndex = Math.max(0, parents.length - maxParents) - if (startIndex === 0) { - arr.push(TOP_COMPONENT) - } else { - // When progressively revealing parents, rendering a placeholder - // here will cause scrolling jumps. Don't add it unless you test it. - // QT'ing this thread is a great way to test all the scrolling hacks: - // https://bsky.app/profile/www.mozzius.dev/post/3kjqhblh6qk2o - } - for (let i = startIndex; i < parents.length; i++) { - arr.push(parents[i]) - } + // We want to wait for parents to load before rendering. + // If you add something here, you'll need to update both + // maintainVisibleContentPosition and onContentSizeChange + // to "hold onto" the correct row instead of the first one. + + if (!highlightedPost.ctx.isParentLoading && !deferParents) { + // When progressively revealing parents, rendering a placeholder + // here will cause scrolling jumps. Don't add it unless you test it. + // QT'ing this thread is a great way to test all the scrolling hacks: + // https://bsky.app/profile/www.mozzius.dev/post/3kjqhblh6qk2o + + // Everything is loaded + let startIndex = Math.max(0, parents.length - maxParents) + for (let i = startIndex; i < parents.length; i++) { + arr.push(parents[i]) } } arr.push(highlightedPost) @@ -323,117 +311,100 @@ export function PostThread({ setMaxReplies(prev => prev + 50) }, [isFetching, maxReplies, posts.length]) - const renderItem = React.useCallback( - ({item, index}: {item: RowItem; index: number}) => { - if (item === TOP_COMPONENT) { - return isTabletOrMobile ? ( - - ) : null - } else if (item === REPLY_PROMPT && hasSession) { - return ( - - {!isMobile && } - - ) - } else if (item === SHOW_HIDDEN_REPLIES) { - return ( - - setHiddenRepliesState(HiddenRepliesState.ShowAndOverridePostHider) + const hasParents = + skeleton?.highlightedPost?.type === 'post' && + (skeleton.highlightedPost.ctx.isParentLoading || + Boolean(skeleton?.parents && skeleton.parents.length > 0)) + const showHeader = + isNative || (isTabletOrMobile && (!hasParents || !isFetching)) + + const renderItem = ({item, index}: {item: RowItem; index: number}) => { + if (item === REPLY_PROMPT && hasSession) { + return ( + + {!isMobile && } + + ) + } else if (item === SHOW_HIDDEN_REPLIES || item === SHOW_MUTED_REPLIES) { + return ( + + setHiddenRepliesState(HiddenRepliesState.ShowAndOverridePostHider) + } + hideTopBorder={index === 0} + /> + ) + } else if (isThreadNotFound(item)) { + return ( + + + Deleted post. + + + ) + } else if (isThreadBlocked(item)) { + return ( + + + Blocked post. + + + ) + } else if (isThreadPost(item)) { + const prev = isThreadPost(posts[index - 1]) + ? (posts[index - 1] as ThreadPost) + : undefined + const next = isThreadPost(posts[index + 1]) + ? (posts[index + 1] as ThreadPost) + : undefined + const showChildReplyLine = (next?.ctx.depth || 0) > item.ctx.depth + const showParentReplyLine = + (item.ctx.depth < 0 && !!item.parent) || item.ctx.depth > 1 + const hasUnrevealedParents = + index === 0 && skeleton?.parents && maxParents < skeleton.parents.length + return ( + setDeferParents(false) : undefined}> + 0 } + onPostReply={refetch} + hideTopBorder={index === 0 && !item.ctx.isParentLoading} /> - ) - } else if (item === SHOW_MUTED_REPLIES) { - return ( - - setHiddenRepliesState(HiddenRepliesState.ShowAndOverridePostHider) - } - /> - ) - } else if (isThreadNotFound(item)) { - return ( - - - Deleted post. - - - ) - } else if (isThreadBlocked(item)) { - return ( - - - Blocked post. - - - ) - } else if (isThreadPost(item)) { - const prev = isThreadPost(posts[index - 1]) - ? (posts[index - 1] as ThreadPost) - : undefined - const next = isThreadPost(posts[index + 1]) - ? (posts[index + 1] as ThreadPost) - : undefined - const showChildReplyLine = (next?.ctx.depth || 0) > item.ctx.depth - const showParentReplyLine = - (item.ctx.depth < 0 && !!item.parent) || item.ctx.depth > 1 - const hasUnrevealedParents = - index === 0 && - skeleton?.parents && - maxParents < skeleton.parents.length - return ( - setDeferParents(false) : undefined}> - 0 - } - onPostReply={refetch} - /> - - ) - } - return null - }, - [ - hasSession, - isTabletOrMobile, - _, - isMobile, - onPressReply, - pal.border, - pal.viewLight, - pal.textLight, - posts, - skeleton?.parents, - maxParents, - deferParents, - treeView, - refetch, - threadModerationCache, - hiddenRepliesState, - setHiddenRepliesState, - ], - ) + + ) + } + return null + } if (!thread || !preferences || error) { return ( @@ -449,39 +420,49 @@ export function PostThread({ } return ( - - - } - initialNumToRender={initialNumToRender} - windowSize={11} - /> - + + {showHeader && ( + + )} + + + + } + initialNumToRender={initialNumToRender} + windowSize={11} + sideBorders={false} + /> + + ) } @@ -630,11 +611,3 @@ function hasBranchingReplies(node?: ThreadNode) { } return true } - -const styles = StyleSheet.create({ - itemContainer: { - borderTopWidth: 1, - paddingHorizontal: 18, - paddingVertical: 18, - }, -}) diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 0ff040b9c8..99fbda6d28 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -65,6 +65,7 @@ export function PostThreadItem({ hasPrecedingItem, overrideBlur, onPostReply, + hideTopBorder, }: { post: AppBskyFeedDefs.PostView record: AppBskyFeedPost.Record @@ -80,6 +81,7 @@ export function PostThreadItem({ hasPrecedingItem: boolean overrideBlur: boolean onPostReply: () => void + hideTopBorder?: boolean }) { const postShadowed = usePostShadow(post) const richText = useMemo( @@ -91,7 +93,7 @@ export function PostThreadItem({ [record], ) if (postShadowed === POST_TOMBSTONE) { - return + return } if (richText && moderation) { return ( @@ -113,16 +115,25 @@ export function PostThreadItem({ hasPrecedingItem={hasPrecedingItem} overrideBlur={overrideBlur} onPostReply={onPostReply} + hideTopBorder={hideTopBorder} /> ) } return null } -function PostThreadItemDeleted() { +function PostThreadItemDeleted({hideTopBorder}: {hideTopBorder?: boolean}) { const pal = usePalette('default') return ( - + This post has been deleted. @@ -147,6 +158,7 @@ let PostThreadItemLoaded = ({ hasPrecedingItem, overrideBlur, onPostReply, + hideTopBorder, }: { post: Shadow record: AppBskyFeedPost.Record @@ -163,6 +175,7 @@ let PostThreadItemLoaded = ({ hasPrecedingItem: boolean overrideBlur: boolean onPostReply: () => void + hideTopBorder?: boolean }): React.ReactNode => { const pal = usePalette('default') const {_} = useLingui() @@ -237,7 +250,7 @@ let PostThreadItemLoaded = ({ styles.replyLine, { flexGrow: 1, - backgroundColor: pal.colors.border, + backgroundColor: pal.colors.replyLine, }, ]} /> @@ -247,7 +260,14 @@ let PostThreadItemLoaded = ({ @@ -395,7 +415,8 @@ let PostThreadItemLoaded = ({ depth={depth} showParentReplyLine={!!showParentReplyLine} treeView={treeView} - hasPrecedingItem={hasPrecedingItem}> + hasPrecedingItem={hasPrecedingItem} + hideTopBorder={hideTopBorder}> ) { const {isMobile} = useWebMediaQueries() const pal = usePalette('default') @@ -617,6 +640,7 @@ function PostOuterWrapper({ styles.outer, pal.border, showParentReplyLine && hasPrecedingItem && styles.noTopBorder, + hideTopBorder && styles.noTopBorder, styles.cursor, ]}> {children} @@ -677,10 +701,15 @@ const styles = StyleSheet.create({ paddingLeft: 8, }, outerHighlighted: { - paddingTop: 16, + borderTopWidth: 0, + paddingTop: 4, paddingLeft: 8, paddingRight: 8, }, + outerHighlightedRoot: { + borderTopWidth: 1, + paddingTop: 16, + }, noTopBorder: { borderTopWidth: 0, }, diff --git a/src/view/com/post-thread/PostThreadShowHiddenReplies.tsx b/src/view/com/post-thread/PostThreadShowHiddenReplies.tsx index 998906524a..7c021d88b7 100644 --- a/src/view/com/post-thread/PostThreadShowHiddenReplies.tsx +++ b/src/view/com/post-thread/PostThreadShowHiddenReplies.tsx @@ -11,9 +11,11 @@ import {Text} from '#/components/Typography' export function PostThreadShowHiddenReplies({ type, onPress, + hideTopBorder, }: { type: 'hidden' | 'muted' onPress: () => void + hideTopBorder?: boolean }) { const {_} = useLingui() const t = useTheme() @@ -31,7 +33,7 @@ export function PostThreadShowHiddenReplies({ a.gap_sm, a.py_lg, a.px_xl, - a.border_t, + !hideTopBorder && a.border_t, t.atoms.border_contrast_low, hovered || pressed ? t.atoms.bg_contrast_25 : t.atoms.bg, ]}> From 4cc55f05c2f8dda903733e5a7bb1442a107d116d Mon Sep 17 00:00:00 2001 From: Hailey Date: Wed, 29 May 2024 20:37:45 -0700 Subject: [PATCH 234/277] =?UTF-8?q?Use=20a=20margin=20of=20-6=20instead=20?= =?UTF-8?q?of=20-5=20for=20PostCtrls=20=F0=9F=98=B5=E2=80=8D=F0=9F=92=AB?= =?UTF-8?q?=20(#4272)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * -6 instead of -5 😵‍💫 * same here --- src/view/com/util/LoadingPlaceholder.tsx | 2 +- src/view/com/util/post-ctrls/PostCtrls.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/view/com/util/LoadingPlaceholder.tsx b/src/view/com/util/LoadingPlaceholder.tsx index 882f7216b0..33a59be6dc 100644 --- a/src/view/com/util/LoadingPlaceholder.tsx +++ b/src/view/com/util/LoadingPlaceholder.tsx @@ -67,7 +67,7 @@ export function PostLoadingPlaceholder({ - + Date: Wed, 29 May 2024 21:33:18 -0700 Subject: [PATCH 235/277] Improve the visual clarity of labels on profiles and posts (#4262) * Update PostAlerts rendering to show the avi of the labeler rather than the display name; also add size variations * Update ProfileHeaderAlerts to match PostAlerts behavior --- src/components/moderation/PostAlerts.tsx | 53 ++++++++++++++----- .../moderation/ProfileHeaderAlerts.tsx | 15 ++++-- .../useModerationCauseDescription.ts | 18 ++++--- src/view/com/post-thread/PostThreadItem.tsx | 3 +- src/view/com/posts/FeedItem.tsx | 2 +- 5 files changed, 67 insertions(+), 24 deletions(-) diff --git a/src/components/moderation/PostAlerts.tsx b/src/components/moderation/PostAlerts.tsx index c59aa2655e..5a33bbc80f 100644 --- a/src/components/moderation/PostAlerts.tsx +++ b/src/components/moderation/PostAlerts.tsx @@ -1,9 +1,10 @@ import React from 'react' import {StyleProp, View, ViewStyle} from 'react-native' -import {ModerationCause, ModerationUI} from '@atproto/api' +import {BSKY_LABELER_DID, ModerationCause, ModerationUI} from '@atproto/api' import {getModerationCauseKey} from '#/lib/moderation' import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' +import {UserAvatar} from '#/view/com/util/UserAvatar' import {atoms as a, useTheme} from '#/alf' import {Button} from '#/components/Button' import { @@ -14,9 +15,11 @@ import {Text} from '#/components/Typography' export function PostAlerts({ modui, + size, style, }: { modui: ModerationUI + size?: 'medium' | 'large' includeMute?: boolean style?: StyleProp }) { @@ -28,17 +31,31 @@ export function PostAlerts({ {modui.alerts.map(cause => ( - + ))} {modui.informs.map(cause => ( - + ))} ) } -function PostLabel({cause}: {cause: ModerationCause}) { +function PostLabel({ + cause, + size, +}: { + cause: ModerationCause + size?: 'medium' | 'large' +}) { const control = useModerationDetailsDialogControl() const desc = useModerationCauseDescription(cause) const t = useTheme() @@ -55,24 +72,36 @@ function PostLabel({cause}: {cause: ModerationCause}) { style={[ a.flex_row, a.align_center, - {paddingLeft: 4, paddingRight: 6, paddingVertical: 1}, a.gap_xs, a.rounded_sm, hovered || pressed - ? t.atoms.bg_contrast_50 - : t.atoms.bg_contrast_25, + ? size === 'large' + ? t.atoms.bg_contrast_50 + : t.atoms.bg_contrast_25 + : size === 'large' + ? t.atoms.bg_contrast_25 + : undefined, + size === 'large' + ? {paddingLeft: 4, paddingRight: 6, paddingVertical: 2} + : {paddingRight: 4, paddingVertical: 1}, ]}> - + {desc.sourceType === 'labeler' && + desc.sourceDid !== BSKY_LABELER_DID ? ( + + ) : ( + + )} {desc.name} - {desc.source ? ` – ${desc.source}` : ''} )} diff --git a/src/components/moderation/ProfileHeaderAlerts.tsx b/src/components/moderation/ProfileHeaderAlerts.tsx index 3fa24b9385..287a0bddec 100644 --- a/src/components/moderation/ProfileHeaderAlerts.tsx +++ b/src/components/moderation/ProfileHeaderAlerts.tsx @@ -1,9 +1,14 @@ import React from 'react' import {StyleProp, View, ViewStyle} from 'react-native' -import {ModerationCause, ModerationDecision} from '@atproto/api' +import { + BSKY_LABELER_DID, + ModerationCause, + ModerationDecision, +} from '@atproto/api' import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' import {getModerationCauseKey} from 'lib/moderation' +import {UserAvatar} from '#/view/com/util/UserAvatar' import {atoms as a, useTheme} from '#/alf' import {Button} from '#/components/Button' import { @@ -62,7 +67,12 @@ function ProfileLabel({cause}: {cause: ModerationCause}) { ? t.atoms.bg_contrast_50 : t.atoms.bg_contrast_25, ]}> - + {desc.sourceType === 'labeler' && + desc.sourceDid !== BSKY_LABELER_DID ? ( + + ) : ( + + )} {desc.name} - {desc.source ? ` – ${desc.source}` : ''} )} diff --git a/src/lib/moderation/useModerationCauseDescription.ts b/src/lib/moderation/useModerationCauseDescription.ts index 57b50d7779..be9014029c 100644 --- a/src/lib/moderation/useModerationCauseDescription.ts +++ b/src/lib/moderation/useModerationCauseDescription.ts @@ -6,15 +6,15 @@ import { } from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {getDefinition, getLabelStrings} from './useLabelInfo' -import {useLabelDefinitions} from '#/state/preferences' -import {useGlobalLabelStrings} from './useGlobalLabelStrings' -import {Props as SVGIconProps} from '#/components/icons/common' -import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' -import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' -import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' +import {useLabelDefinitions} from '#/state/preferences' import {CircleBanSign_Stroke2_Corner0_Rounded as CircleBanSign} from '#/components/icons/CircleBanSign' +import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' +import {Props as SVGIconProps} from '#/components/icons/common' +import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' +import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' +import {useGlobalLabelStrings} from './useGlobalLabelStrings' +import {getDefinition, getLabelStrings} from './useLabelInfo' export interface ModerationCauseDescription { icon: React.ComponentType @@ -22,6 +22,8 @@ export interface ModerationCauseDescription { description: string source?: string sourceType?: ModerationCauseSource['type'] + sourceAvi?: string + sourceDid?: string } export function useModerationCauseDescription( @@ -138,6 +140,8 @@ export function useModerationCauseDescription( description: strings.description, source, sourceType: cause.source.type, + sourceAvi: labeler?.creator.avatar, + sourceDid: cause.label.src, } } // should never happen diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 99fbda6d28..5451a67dd8 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -316,6 +316,7 @@ let PostThreadItemLoaded = ({ childContainerStyle={styles.contentHiderChild}> @@ -517,7 +518,7 @@ let PostThreadItemLoaded = ({ {richText?.text ? ( diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 1a5f954e32..70f63427dc 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -368,7 +368,7 @@ let PostContent = ({ modui={moderation.ui('contentList')} ignoreMute childContainerStyle={styles.contentHiderChild}> - + {richText.text ? ( Date: Wed, 29 May 2024 21:34:47 -0700 Subject: [PATCH 236/277] Interpret 'hide' setting as ALWAYS hiding from thread replies (#4263) --- src/components/moderation/PostHider.tsx | 5 ++++- src/view/com/post-thread/PostThread.tsx | 4 ++-- src/view/com/post-thread/PostThreadItem.tsx | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/moderation/PostHider.tsx b/src/components/moderation/PostHider.tsx index 177104f932..8a64742978 100644 --- a/src/components/moderation/PostHider.tsx +++ b/src/components/moderation/PostHider.tsx @@ -23,6 +23,7 @@ interface Props extends ComponentProps { iconStyles: StyleProp modui: ModerationUI profile: AppBskyActorDefs.ProfileViewBasic + interpretFilterAsBlur?: boolean } export function PostHider({ @@ -35,6 +36,7 @@ export function PostHider({ iconSize, iconStyles, profile, + interpretFilterAsBlur, ...props }: Props) { const queryClient = useQueryClient() @@ -42,7 +44,8 @@ export function PostHider({ const {_} = useLingui() const [override, setOverride] = React.useState(false) const control = useModerationDetailsDialogControl() - const blur = modui.blurs[0] + const blur = + modui.blurs[0] || (interpretFilterAsBlur ? modui.filters[0] : undefined) const desc = useModerationCauseDescription(blur) const onBeforePress = React.useCallback(() => { diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx index 1212f992da..64ff9cb0fd 100644 --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -543,9 +543,9 @@ function* flattenThreadReplies( // handle blurred items if (node.ctx.depth > 0) { const modui = modCache.get(node)?.ui('contentList') - if (modui?.blur) { + if (modui?.blur || modui?.filter) { if (!showHiddenReplies || node.ctx.depth > 1) { - if (modui.blurs[0].type === 'muted') { + if ((modui.blurs[0] || modui.filters[0]).type === 'muted') { return HiddenReplyType.Muted } return HiddenReplyType.Hidden diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 5451a67dd8..9d2985f155 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -430,7 +430,8 @@ let PostThreadItemLoaded = ({ ? {marginRight: 4} : {marginLeft: 2, marginRight: 2} } - profile={post.author}> + profile={post.author} + interpretFilterAsBlur> Date: Thu, 30 May 2024 07:36:07 +0300 Subject: [PATCH 237/277] scale down FAB on press (#4259) --- src/view/com/util/fab/FABInner.tsx | 50 ++++++++++++++++++------------ 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/src/view/com/util/fab/FABInner.tsx b/src/view/com/util/fab/FABInner.tsx index a01756da06..ccf2f31dbf 100644 --- a/src/view/com/util/fab/FABInner.tsx +++ b/src/view/com/util/fab/FABInner.tsx @@ -1,6 +1,6 @@ import React, {ComponentProps} from 'react' import {StyleSheet, TouchableWithoutFeedback} from 'react-native' -import Animated from 'react-native-reanimated' +import Animated, {useAnimatedStyle, withTiming} from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' import {LinearGradient} from 'expo-linear-gradient' @@ -9,6 +9,7 @@ import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {clamp} from 'lib/numbers' import {gradients} from 'lib/styles' +import {useInteractionState} from '#/components/hooks/useInteractionState' export interface FABProps extends ComponentProps { @@ -20,21 +21,28 @@ export function FABInner({testID, icon, ...props}: FABProps) { const insets = useSafeAreaInsets() const {isMobile, isTablet} = useWebMediaQueries() const {fabMinimalShellTransform} = useMinimalShellMode() + const { + state: pressed, + onIn: onPressIn, + onOut: onPressOut, + } = useInteractionState() - const size = React.useMemo(() => { - return isTablet ? styles.sizeLarge : styles.sizeRegular - }, [isTablet]) - const tabletSpacing = React.useMemo(() => { - return isTablet - ? {right: 50, bottom: 50} - : { - right: 24, - bottom: clamp(insets.bottom, 15, 60) + 15, - } - }, [insets.bottom, isTablet]) + const size = isTablet ? styles.sizeLarge : styles.sizeRegular + + const tabletSpacing = isTablet + ? {right: 50, bottom: 50} + : {right: 24, bottom: clamp(insets.bottom, 15, 60) + 15} + + const scale = useAnimatedStyle(() => ({ + transform: [{scale: withTiming(pressed ? 0.95 : 1)}], + })) return ( - + - - {icon} - + + + {icon} + + ) From c4abaa1abcde54f15133b2e2b546f0d54a3a1d07 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 30 May 2024 07:44:20 +0300 Subject: [PATCH 238/277] Use `` for Composer (#3588) * use to display composer * trigger `onPressCancel` on modal cancel * remove android top padding * use light statusbar on ios * use KeyboardStickyView from r-n-keyboard-controller * make extra bottom padding ios-only * make cancelRef optional * scope legacy modals * don't change bg color on ios * use fullScreen instead of formSheet * adjust padding on keyboardaccessory to account for new buttons * Revert "use KeyboardStickyView from r-n-keyboard-controller" This reverts commit 426c812904f427bdd08107cffc32e4be1d9b83bc. * fix insets * tweaks and merge * revert 89f51c72 * nit * import keyboard provider --------- Co-authored-by: Hailey Co-authored-by: Dan Abramov --- src/alf/util/useColorModeTheme.ts | 8 +- src/view/com/composer/Composer.tsx | 51 +++++----- src/view/com/composer/KeyboardAccessory.tsx | 34 +++++++ src/view/shell/Composer.tsx | 106 +++++++------------- 4 files changed, 101 insertions(+), 98 deletions(-) create mode 100644 src/view/com/composer/KeyboardAccessory.tsx diff --git a/src/alf/util/useColorModeTheme.ts b/src/alf/util/useColorModeTheme.ts index 4f8921bf9b..301c993dd4 100644 --- a/src/alf/util/useColorModeTheme.ts +++ b/src/alf/util/useColorModeTheme.ts @@ -1,11 +1,11 @@ import React from 'react' import {ColorSchemeName, useColorScheme} from 'react-native' - -import {useThemePrefs} from 'state/shell' -import {isWeb} from 'platform/detection' -import {ThemeName, light, dark, dim} from '#/alf/themes' import * as SystemUI from 'expo-system-ui' +import {isWeb} from 'platform/detection' +import {useThemePrefs} from 'state/shell' +import {dark, dim, light, ThemeName} from '#/alf/themes' + export function useColorModeTheme(): ThemeName { const colorScheme = useColorScheme() const {colorMode, darkTheme} = useThemePrefs() diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 12e57c411d..5746454c28 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -1,7 +1,13 @@ -import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react' +import React, { + useCallback, + useEffect, + useImperativeHandle, + useMemo, + useRef, + useState, +} from 'react' import { ActivityIndicator, - BackHandler, Keyboard, ScrollView, StyleSheet, @@ -79,6 +85,10 @@ import {TextInput, TextInputRef} from './text-input/TextInput' import {ThreadgateBtn} from './threadgate/ThreadgateBtn' import {useExternalLinkFetch} from './useExternalLinkFetch' +type CancelRef = { + onPressCancel: () => void +} + type Props = ComposerOpts export const ComposePost = observer(function ComposePost({ replyTo, @@ -88,7 +98,10 @@ export const ComposePost = observer(function ComposePost({ openPicker, text: initText, imageUris: initImageUris, -}: Props) { + cancelRef, +}: Props & { + cancelRef?: React.RefObject +}) { const {currentAccount} = useSession() const agent = useAgent() const {data: currentProfile} = useProfileQuery({did: currentAccount!.did}) @@ -145,7 +158,7 @@ export const ComposePost = observer(function ComposePost({ () => ({ paddingBottom: isAndroid || (isIOS && !isKeyboardVisible) ? insets.bottom : 0, - paddingTop: isAndroid ? insets.top : isMobile ? 15 : 0, + paddingTop: isMobile && isWeb ? 15 : insets.top, }), [insets, isKeyboardVisible, isMobile], ) @@ -167,23 +180,8 @@ export const ComposePost = observer(function ComposePost({ discardPromptControl, onClose, ]) - // android back button - useEffect(() => { - if (!isAndroid) { - return - } - const backHandler = BackHandler.addEventListener( - 'hardwareBackPress', - () => { - onPressCancel() - return true - }, - ) - return () => { - backHandler.remove() - } - }, [onPressCancel]) + useImperativeHandle(cancelRef, () => ({onPressCancel})) // listen to escape key on desktop web const onEscape = useCallback( @@ -583,19 +581,18 @@ export const ComposePost = observer(function ComposePost({ ) }) +export function useComposerCancelRef() { + return useRef(null) +} + const styles = StyleSheet.create({ - outer: { - flexDirection: 'column', - flex: 1, - height: '100%', - }, topbar: { flexDirection: 'row', alignItems: 'center', - paddingTop: 6, + marginTop: -14, paddingBottom: 4, paddingHorizontal: 20, - height: 55, + height: 50, gap: 4, }, topbarDesktop: { diff --git a/src/view/com/composer/KeyboardAccessory.tsx b/src/view/com/composer/KeyboardAccessory.tsx new file mode 100644 index 0000000000..983a87dae9 --- /dev/null +++ b/src/view/com/composer/KeyboardAccessory.tsx @@ -0,0 +1,34 @@ +import React from 'react' +import {View} from 'react-native' +import {KeyboardStickyView} from 'react-native-keyboard-controller' +import {useSafeAreaInsets} from 'react-native-safe-area-context' + +import {isWeb} from '#/platform/detection' +import {atoms as a, useTheme} from '#/alf' + +export function KeyboardAccessory({children}: {children: React.ReactNode}) { + const t = useTheme() + const {bottom} = useSafeAreaInsets() + + const style = [ + a.flex_row, + a.py_xs, + a.pl_sm, + a.pr_xl, + a.align_center, + a.border_t, + t.atoms.border_contrast_medium, + t.atoms.bg, + ] + + // todo: when iPad support is added, it should also not use the KeyboardStickyView + if (isWeb) { + return {children} + } + + return ( + + {children} + + ) +} diff --git a/src/view/shell/Composer.tsx b/src/view/shell/Composer.tsx index 1937fcb6ea..17348a30ca 100644 --- a/src/view/shell/Composer.tsx +++ b/src/view/shell/Composer.tsx @@ -1,77 +1,49 @@ -import React, {useEffect} from 'react' +import React from 'react' +import {Modal, View} from 'react-native' import {observer} from 'mobx-react-lite' -import {Animated, Easing, Platform, StyleSheet, View} from 'react-native' -import {ComposePost} from '../com/composer/Composer' -import {useComposerState} from 'state/shell/composer' -import {useAnimatedValue} from 'lib/hooks/useAnimatedValue' -import {usePalette} from 'lib/hooks/usePalette' -export const Composer = observer(function ComposerImpl({ - winHeight, -}: { +import {Provider as LegacyModalProvider} from '#/state/modals' +import {useComposerState} from 'state/shell/composer' +import {ModalsContainer as LegacyModalsContainer} from '#/view/com/modals/Modal' +import {useTheme} from '#/alf' +import { + Outlet as PortalOutlet, + Provider as PortalProvider, +} from '#/components/Portal' +import {ComposePost, useComposerCancelRef} from '../com/composer/Composer' + +export const Composer = observer(function ComposerImpl({}: { winHeight: number }) { + const t = useTheme() const state = useComposerState() - const pal = usePalette('default') - const initInterp = useAnimatedValue(0) - - useEffect(() => { - if (state) { - Animated.timing(initInterp, { - toValue: 1, - duration: 300, - easing: Easing.out(Easing.exp), - useNativeDriver: true, - }).start() - } else { - initInterp.setValue(0) - } - }, [initInterp, state]) - const wrapperAnimStyle = { - transform: [ - { - translateY: initInterp.interpolate({ - inputRange: [0, 1], - outputRange: [winHeight, 0], - }), - }, - ], - } - - // rendering - // = - - if (!state) { - return - } + const ref = useComposerCancelRef() return ( - - - + accessibilityViewIsModal + visible={!!state} + presentationStyle="overFullScreen" + animationType="slide" + onRequestClose={() => ref.current?.onPressCancel()}> + + + + + + + + + + ) }) - -const styles = StyleSheet.create({ - wrapper: { - position: 'absolute', - top: 0, - bottom: 0, - width: '100%', - ...Platform.select({ - ios: { - paddingTop: 24, - }, - }), - }, -}) From d92036f2c576d33964b1141ac63888bdc2fb1ca4 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 30 May 2024 09:44:49 +0300 Subject: [PATCH 239/277] Post controls update followup (#4276) * rm legacy repost modal * make repost button transparent * reduce gap between post and ctrls * remove old repost modal on web --- src/alf/atoms.ts | 7 + src/components/Button.tsx | 2 +- src/state/modals/index.tsx | 8 -- src/view/com/modals/Modal.tsx | 4 - src/view/com/modals/Modal.web.tsx | 3 - src/view/com/modals/Repost.tsx | 129 ------------------ src/view/com/posts/FeedItem.tsx | 4 +- src/view/com/util/post-ctrls/RepostButton.tsx | 8 +- 8 files changed, 17 insertions(+), 148 deletions(-) delete mode 100644 src/view/com/modals/Repost.tsx diff --git a/src/alf/atoms.ts b/src/alf/atoms.ts index 158bb6ec5b..eb130f3ae9 100644 --- a/src/alf/atoms.ts +++ b/src/alf/atoms.ts @@ -55,6 +55,13 @@ export const atoms = { height: '100vh', }), + /* + * Theme-independent bg colors + */ + bg_transparent: { + backgroundColor: 'transparent', + }, + /* * Border radius */ diff --git a/src/components/Button.tsx b/src/components/Button.tsx index 3db8033997..c543cbba5f 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -376,10 +376,10 @@ export function Button({ a.align_center, a.justify_center, flattenedBaseStyles, + flatten(style), ...(state.hovered || state.pressed ? [hoverStyles, flatten(hoverStyleProp)] : []), - flatten(style), ]} onPressIn={onPressIn} onPressOut={onPressOut} diff --git a/src/state/modals/index.tsx b/src/state/modals/index.tsx index cf82bcd075..f8a64dc2d3 100644 --- a/src/state/modals/index.tsx +++ b/src/state/modals/index.tsx @@ -60,13 +60,6 @@ export interface DeleteAccountModal { name: 'delete-account' } -export interface RepostModal { - name: 'repost' - onRepost: () => void - onQuote: () => void - isReposted: boolean -} - export interface SelfLabelModal { name: 'self-label' labels: string[] @@ -154,7 +147,6 @@ export type Modal = | AltTextImageModal | CropImageModal | EditImageModal - | RepostModal | SelfLabelModal | ThreadgateModal diff --git a/src/view/com/modals/Modal.tsx b/src/view/com/modals/Modal.tsx index d82975b5e8..3491b94e34 100644 --- a/src/view/com/modals/Modal.tsx +++ b/src/view/com/modals/Modal.tsx @@ -22,7 +22,6 @@ import * as ContentLanguagesSettingsModal from './lang-settings/ContentLanguages import * as PostLanguagesSettingsModal from './lang-settings/PostLanguagesSettings' import * as LinkWarningModal from './LinkWarning' import * as ListAddUserModal from './ListAddRemoveUsers' -import * as RepostModal from './Repost' import * as SelfLabelModal from './SelfLabel' import * as ThreadgateModal from './Threadgate' import * as UserAddRemoveListsModal from './UserAddRemoveLists' @@ -74,9 +73,6 @@ export function ModalsContainer() { } else if (activeModal?.name === 'delete-account') { snapPoints = DeleteAccountModal.snapPoints element = - } else if (activeModal?.name === 'repost') { - snapPoints = RepostModal.snapPoints - element = } else if (activeModal?.name === 'self-label') { snapPoints = SelfLabelModal.snapPoints element = diff --git a/src/view/com/modals/Modal.web.tsx b/src/view/com/modals/Modal.web.tsx index f95c748111..14ee99e576 100644 --- a/src/view/com/modals/Modal.web.tsx +++ b/src/view/com/modals/Modal.web.tsx @@ -22,7 +22,6 @@ import * as ContentLanguagesSettingsModal from './lang-settings/ContentLanguages import * as PostLanguagesSettingsModal from './lang-settings/PostLanguagesSettings' import * as LinkWarningModal from './LinkWarning' import * as ListAddUserModal from './ListAddRemoveUsers' -import * as RepostModal from './Repost' import * as SelfLabelModal from './SelfLabel' import * as ThreadgateModal from './Threadgate' import * as UserAddRemoveLists from './UserAddRemoveLists' @@ -83,8 +82,6 @@ function Modal({modal}: {modal: ModalIface}) { element = } else if (modal.name === 'delete-account') { element = - } else if (modal.name === 'repost') { - element = } else if (modal.name === 'self-label') { element = } else if (modal.name === 'threadgate') { diff --git a/src/view/com/modals/Repost.tsx b/src/view/com/modals/Repost.tsx deleted file mode 100644 index 5dedee832b..0000000000 --- a/src/view/com/modals/Repost.tsx +++ /dev/null @@ -1,129 +0,0 @@ -import React from 'react' -import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {LinearGradient} from 'expo-linear-gradient' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' - -import {useModalControls} from '#/state/modals' -import {usePalette} from 'lib/hooks/usePalette' -import {RepostIcon} from 'lib/icons' -import {colors, gradients, s} from 'lib/styles' -import {Text} from '../util/text/Text' - -export const snapPoints = [250] - -export function Component({ - onRepost, - onQuote, - isReposted, -}: { - onRepost: () => void - onQuote: () => void - isReposted: boolean - // TODO: Add author into component -}) { - const pal = usePalette('default') - const {_} = useLingui() - const {closeModal} = useModalControls() - const onPress = async () => { - closeModal() - } - - return ( - - - - - - {!isReposted ? ( - Repost - ) : ( - Undo repost - )} - - - - - - Quote Post - - - - - - - Cancel - - - - - ) -} - -const styles = StyleSheet.create({ - container: { - paddingHorizontal: 30, - }, - title: { - textAlign: 'center', - fontWeight: 'bold', - fontSize: 24, - marginBottom: 12, - }, - description: { - textAlign: 'center', - fontSize: 17, - paddingHorizontal: 22, - marginBottom: 10, - }, - btn: { - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'center', - width: '100%', - borderRadius: 32, - padding: 14, - backgroundColor: colors.gray1, - }, - actionBtn: { - flexDirection: 'row', - alignItems: 'center', - }, - actionBtnLabel: { - paddingHorizontal: 14, - paddingVertical: 16, - }, -}) diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 70f63427dc..8077c29683 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -390,7 +390,7 @@ let PostContent = ({ /> ) : undefined} {postEmbed ? ( - + { requireAuth(() => dialogControl.open()) }} - style={[a.flex_row, a.align_center, a.gap_xs, {padding: 5}]} + style={[ + a.flex_row, + a.align_center, + a.gap_xs, + a.bg_transparent, + {padding: 5}, + ]} hoverStyle={t.atoms.bg_contrast_25} label={`${ isReposted From cd497a3974ad1ee2266cb5d220c4406614adc2f9 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 30 May 2024 10:45:35 +0300 Subject: [PATCH 240/277] only show divider when scrolled (#4275) --- src/view/com/composer/Composer.tsx | 61 +++++++++++++++++----- src/view/com/composer/labels/LabelsBtn.tsx | 12 +++-- 2 files changed, 54 insertions(+), 19 deletions(-) diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 5746454c28..00dbcb591e 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -9,7 +9,6 @@ import React, { import { ActivityIndicator, Keyboard, - ScrollView, StyleSheet, TouchableOpacity, View, @@ -18,6 +17,12 @@ import { KeyboardAvoidingView, KeyboardStickyView, } from 'react-native-keyboard-controller' +import Animated, { + interpolateColor, + useAnimatedStyle, + useSharedValue, + withTiming, +} from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' import {LinearGradient} from 'expo-linear-gradient' import {RichText} from '@atproto/api' @@ -30,6 +35,7 @@ import { createGIFDescription, parseAltFromGIFDescription, } from '#/lib/gif-alt-text' +import {useAnimatedScrollHandler} from '#/lib/hooks/useAnimatedScrollHandler_FIXED' import {LikelyType} from '#/lib/link-meta/link-meta' import {logEvent} from '#/lib/statsig/statsig' import {logger} from '#/logger' @@ -61,7 +67,7 @@ import {useDialogStateControlContext} from 'state/dialogs' import {GalleryModel} from 'state/models/media/gallery' import {ComposerOpts} from 'state/shell/composer' import {ComposerReplyTo} from 'view/com/composer/ComposerReplyTo' -import {atoms as a} from '#/alf' +import {atoms as a, useTheme} from '#/alf' import {Button} from '#/components/Button' import {EmojiArc_Stroke2_Corner0_Rounded as EmojiSmile} from '#/components/icons/Emoji' import * as Prompt from '#/components/Prompt' @@ -109,7 +115,7 @@ export const ComposePost = observer(function ComposePost({ const {closeComposer} = useComposerControls() const {track} = useAnalytics() const pal = usePalette('default') - const {isDesktop, isMobile} = useWebMediaQueries() + const {isTabletOrDesktop, isMobile} = useWebMediaQueries() const {_} = useLingui() const requireAltTextEnabled = useRequireAltTextEnabled() const langPrefs = useLanguagePrefs() @@ -117,6 +123,7 @@ export const ComposePost = observer(function ComposePost({ const textInput = useRef(null) const discardPromptControl = Prompt.usePromptControl() const {closeAllDialogs} = useDialogStateControlContext() + const t = useTheme() const [isKeyboardVisible] = useIsKeyboardVisible({iosUseWillEvents: true}) const [isProcessing, setIsProcessing] = useState(false) @@ -163,6 +170,25 @@ export const ComposePost = observer(function ComposePost({ [insets, isKeyboardVisible, isMobile], ) + const hasScrolled = useSharedValue(0) + const scrollHandler = useAnimatedScrollHandler({ + onScroll: event => { + hasScrolled.value = withTiming(event.contentOffset.y > 0 ? 1 : 0) + }, + }) + const topBarAnimatedStyle = useAnimatedStyle(() => { + return { + borderColor: interpolateColor( + hasScrolled.value, + [0, 1], + [ + 'transparent', + isWeb ? t.palette.contrast_100 : t.palette.contrast_400, + ], + ), + } + }) + const onPressCancel = useCallback(() => { if (graphemeLength > 0 || !gallery.isEmpty) { closeAllDialogs() @@ -380,7 +406,12 @@ export const ComposePost = observer(function ComposePost({ style={s.flex1} keyboardVerticalOffset={replyTo ? 60 : isAndroid ? 120 : 100}> - + )} - + {isAltTextRequiredAndMissing && ( @@ -471,14 +502,14 @@ export const ComposePost = observer(function ComposePost({ {error} )} - {replyTo ? : undefined} @@ -533,7 +564,7 @@ export const ComposePost = observer(function ComposePost({ )} ) : undefined} - + @@ -589,15 +620,18 @@ const styles = StyleSheet.create({ topbar: { flexDirection: 'row', alignItems: 'center', - marginTop: -14, - paddingBottom: 4, - paddingHorizontal: 20, - height: 50, + marginTop: -10, + paddingHorizontal: 4, + marginHorizontal: 16, + height: 44, gap: 4, + borderBottomWidth: StyleSheet.hairlineWidth, }, topbarDesktop: { paddingTop: 10, paddingBottom: 10, + height: 50, + marginTop: 0, }, postBtn: { borderRadius: 20, @@ -636,11 +670,10 @@ const styles = StyleSheet.create({ }, scrollView: { flex: 1, - paddingHorizontal: 15, + paddingHorizontal: 16, }, textInputLayout: { flexDirection: 'row', - borderTopWidth: 1, paddingTop: 16, }, textInputLayoutMobile: { diff --git a/src/view/com/composer/labels/LabelsBtn.tsx b/src/view/com/composer/labels/LabelsBtn.tsx index b880dd3306..27e3813dc2 100644 --- a/src/view/com/composer/labels/LabelsBtn.tsx +++ b/src/view/com/composer/labels/LabelsBtn.tsx @@ -1,14 +1,15 @@ import React from 'react' import {Keyboard, StyleSheet} from 'react-native' -import {Button} from 'view/com/util/forms/Button' -import {usePalette} from 'lib/hooks/usePalette' -import {ShieldExclamation} from 'lib/icons' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' -import {isNative} from 'platform/detection' -import {useLingui} from '@lingui/react' import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + import {useModalControls} from '#/state/modals' +import {usePalette} from 'lib/hooks/usePalette' +import {ShieldExclamation} from 'lib/icons' +import {isNative} from 'platform/detection' +import {Button} from 'view/com/util/forms/Button' export function LabelsBtn({ labels, @@ -54,6 +55,7 @@ const styles = StyleSheet.create({ button: { flexDirection: 'row', alignItems: 'center', + paddingVertical: 2, paddingHorizontal: 6, }, dimmed: { From a72f55a11fcc45440314d30656c9d563181a0001 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 30 May 2024 14:34:30 +0300 Subject: [PATCH 241/277] Composer - fix divider when replying to someone (#4279) * move replyto border to beneath * use hairline width for consistency * fix border colors --- src/view/com/composer/Composer.tsx | 4 +++- src/view/com/composer/ComposerReplyTo.tsx | 16 ++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 00dbcb591e..4911adf2c4 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -183,7 +183,9 @@ export const ComposePost = observer(function ComposePost({ [0, 1], [ 'transparent', - isWeb ? t.palette.contrast_100 : t.palette.contrast_400, + isWeb + ? t.atoms.border_contrast_low.borderColor + : t.atoms.border_contrast_high.borderColor, ], ), } diff --git a/src/view/com/composer/ComposerReplyTo.tsx b/src/view/com/composer/ComposerReplyTo.tsx index 7dc17fd4a7..1bb4a5c21f 100644 --- a/src/view/com/composer/ComposerReplyTo.tsx +++ b/src/view/com/composer/ComposerReplyTo.tsx @@ -10,16 +10,17 @@ import { import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {usePalette} from 'lib/hooks/usePalette' +import {isWeb} from '#/platform/detection' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' import {ComposerOptsPostRef} from 'state/shell/composer' import {QuoteEmbed} from 'view/com/util/post-embeds/QuoteEmbed' import {Text} from 'view/com/util/text/Text' import {PreviewableUserAvatar} from 'view/com/util/UserAvatar' +import {useTheme} from '#/alf' export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) { - const pal = usePalette('default') + const t = useTheme() const {_} = useLingui() const {embed} = replyTo @@ -75,7 +76,10 @@ export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) { return ( - + {sanitizeDisplayName( replyTo.author.displayName || sanitizeHandle(replyTo.author.handle), )} @@ -100,7 +104,7 @@ export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) { {replyTo.text} @@ -218,7 +222,7 @@ const styles = StyleSheet.create({ replyToLayout: { flexDirection: 'row', alignItems: 'flex-start', - borderTopWidth: 1, + borderBottomWidth: StyleSheet.hairlineWidth, paddingTop: 16, paddingBottom: 16, }, From 13c08f56ba372c5c7f631c9771a215b82979eb20 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 30 May 2024 14:35:38 +0300 Subject: [PATCH 242/277] Fix native translations on iOS 17.5.1 (#4282) * enable translations on iOS 17.5.1 * add comment --- .../src/ExpoBlueskyTranslateView.ios.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.ios.tsx b/modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.ios.tsx index daddfa0286..290fabd30d 100644 --- a/modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.ios.tsx +++ b/modules/expo-bluesky-translate/src/ExpoBlueskyTranslateView.ios.tsx @@ -15,7 +15,10 @@ export function NativeTranslationView() { return } -export const isAvailable = Number(Platform.Version) >= 17.4 +// can be something like "17.5.1", so just take the first two parts +const version = String(Platform.Version).split('.').slice(0, 2).join('.') + +export const isAvailable = Number(version) >= 17.4 // https://en.wikipedia.org/wiki/Translate_(Apple)#Languages const SUPPORTED_LANGUAGES = [ From 76f860dad2c55b17fcbd4caf4d4a9297261b64e3 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 30 May 2024 04:36:40 -0700 Subject: [PATCH 243/277] don't maintain position whenever there are no parents (#4277) --- src/view/com/post-thread/PostThread.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx index 64ff9cb0fd..35028334c6 100644 --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -440,7 +440,9 @@ export function PostThread({ onEndReachedThreshold={2} onScrollToTop={onScrollToTop} maintainVisibleContentPosition={ - isNative ? MAINTAIN_VISIBLE_CONTENT_POSITION : undefined + isNative && hasParents + ? MAINTAIN_VISIBLE_CONTENT_POSITION + : undefined } // @ts-ignore our .web version only -prf desktopFixedHeight From 3bdceac2fb0a835d1709ad4558c9dcc2dfee6f25 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 30 May 2024 14:39:36 +0300 Subject: [PATCH 244/277] Composer - Use sheet presentation on iOS (#4278) * use sheet presentation + tweak spacing * line up elements + add hitslop to cancel * fixing spacing on replies --- src/alf/util/useColorModeTheme.ts | 24 +++++++------- src/view/com/composer/Composer.tsx | 15 ++++----- src/view/com/composer/ComposerReplyTo.tsx | 3 +- src/view/shell/Composer.tsx | 38 +++++++++++++++++++---- 4 files changed, 53 insertions(+), 27 deletions(-) diff --git a/src/alf/util/useColorModeTheme.ts b/src/alf/util/useColorModeTheme.ts index 301c993dd4..ce15587478 100644 --- a/src/alf/util/useColorModeTheme.ts +++ b/src/alf/util/useColorModeTheme.ts @@ -7,19 +7,21 @@ import {useThemePrefs} from 'state/shell' import {dark, dim, light, ThemeName} from '#/alf/themes' export function useColorModeTheme(): ThemeName { + const theme = useThemeName() + + React.useLayoutEffect(() => { + updateDocument(theme) + SystemUI.setBackgroundColorAsync(getBackgroundColor(theme)) + }, [theme]) + + return theme +} + +export function useThemeName(): ThemeName { const colorScheme = useColorScheme() const {colorMode, darkTheme} = useThemePrefs() - React.useLayoutEffect(() => { - const theme = getThemeName(colorScheme, colorMode, darkTheme) - updateDocument(theme) - SystemUI.setBackgroundColorAsync(getBackgroundColor(theme)) - }, [colorMode, colorScheme, darkTheme]) - - return React.useMemo( - () => getThemeName(colorScheme, colorMode, darkTheme), - [colorScheme, colorMode, darkTheme], - ) + return getThemeName(colorScheme, colorMode, darkTheme) } function getThemeName( @@ -53,7 +55,7 @@ function updateDocument(theme: ThemeName) { } } -function getBackgroundColor(theme: ThemeName): string { +export function getBackgroundColor(theme: ThemeName): string { switch (theme) { case 'light': return light.atoms.bg.backgroundColor diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 4911adf2c4..2618c51a3d 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -54,7 +54,7 @@ import {useAgent, useSession} from '#/state/session' import {useComposerControls} from '#/state/shell/composer' import {useAnalytics} from 'lib/analytics/analytics' import * as apilib from 'lib/api/index' -import {MAX_GRAPHEME_LENGTH} from 'lib/constants' +import {HITSLOP_10, MAX_GRAPHEME_LENGTH} from 'lib/constants' import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' @@ -165,9 +165,8 @@ export const ComposePost = observer(function ComposePost({ () => ({ paddingBottom: isAndroid || (isIOS && !isKeyboardVisible) ? insets.bottom : 0, - paddingTop: isMobile && isWeb ? 15 : insets.top, }), - [insets, isKeyboardVisible, isMobile], + [insets, isKeyboardVisible], ) const hasScrolled = useSharedValue(0) @@ -422,7 +421,8 @@ export const ComposePost = observer(function ComposePost({ accessibilityLabel={_(msg`Cancel`)} accessibilityHint={_( msg`Closes post composer and discards post draft`, - )}> + )} + hitSlop={HITSLOP_10}> Cancel @@ -622,10 +622,8 @@ const styles = StyleSheet.create({ topbar: { flexDirection: 'row', alignItems: 'center', - marginTop: -10, - paddingHorizontal: 4, marginHorizontal: 16, - height: 44, + height: 54, gap: 4, borderBottomWidth: StyleSheet.hairlineWidth, }, @@ -633,7 +631,6 @@ const styles = StyleSheet.create({ paddingTop: 10, paddingBottom: 10, height: 50, - marginTop: 0, }, postBtn: { borderRadius: 20, @@ -676,7 +673,7 @@ const styles = StyleSheet.create({ }, textInputLayout: { flexDirection: 'row', - paddingTop: 16, + paddingTop: 4, }, textInputLayoutMobile: { flex: 1, diff --git a/src/view/com/composer/ComposerReplyTo.tsx b/src/view/com/composer/ComposerReplyTo.tsx index 1bb4a5c21f..902d60a460 100644 --- a/src/view/com/composer/ComposerReplyTo.tsx +++ b/src/view/com/composer/ComposerReplyTo.tsx @@ -223,8 +223,9 @@ const styles = StyleSheet.create({ flexDirection: 'row', alignItems: 'flex-start', borderBottomWidth: StyleSheet.hairlineWidth, - paddingTop: 16, + paddingTop: 4, paddingBottom: 16, + marginBottom: 12, }, replyToPost: { flex: 1, diff --git a/src/view/shell/Composer.tsx b/src/view/shell/Composer.tsx index 17348a30ca..ce53ffc01d 100644 --- a/src/view/shell/Composer.tsx +++ b/src/view/shell/Composer.tsx @@ -1,11 +1,15 @@ -import React from 'react' +import React, {useLayoutEffect} from 'react' import {Modal, View} from 'react-native' +import {StatusBar} from 'expo-status-bar' +import * as SystemUI from 'expo-system-ui' import {observer} from 'mobx-react-lite' +import {isIOS} from '#/platform/detection' import {Provider as LegacyModalProvider} from '#/state/modals' -import {useComposerState} from 'state/shell/composer' +import {useComposerState} from '#/state/shell/composer' import {ModalsContainer as LegacyModalsContainer} from '#/view/com/modals/Modal' -import {useTheme} from '#/alf' +import {atoms as a, useTheme} from '#/alf' +import {getBackgroundColor, useThemeName} from '#/alf/util/useColorModeTheme' import { Outlet as PortalOutlet, Provider as PortalProvider, @@ -19,15 +23,17 @@ export const Composer = observer(function ComposerImpl({}: { const state = useComposerState() const ref = useComposerCancelRef() + const open = !!state + return ( ref.current?.onPressCancel()}> - + + {isIOS && } ) }) + +// Generally, the backdrop of the app is the theme color, but when this is open +// we want it to be black due to the modal being a form sheet. +function IOSModalBackground({active}: {active: boolean}) { + const theme = useThemeName() + + useLayoutEffect(() => { + SystemUI.setBackgroundColorAsync('black') + + return () => { + SystemUI.setBackgroundColorAsync(getBackgroundColor(theme)) + } + }, [theme]) + + // Set the status bar to light - however, only if the modal is active + // If we rely on this component being mounted to set this, + // there'll be a delay before it switches back to default. + return active ? : null +} From b077cbe399c32907e40d790e988a94ada47779a7 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 30 May 2024 14:40:22 +0300 Subject: [PATCH 245/277] match loadmore position to fab (#4280) --- src/view/com/util/fab/FABInner.tsx | 8 +++--- .../com/util/load-latest/LoadLatestBtn.tsx | 27 ++++++++++++------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/view/com/util/fab/FABInner.tsx b/src/view/com/util/fab/FABInner.tsx index ccf2f31dbf..c9443127b8 100644 --- a/src/view/com/util/fab/FABInner.tsx +++ b/src/view/com/util/fab/FABInner.tsx @@ -4,11 +4,11 @@ import Animated, {useAnimatedStyle, withTiming} from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' import {LinearGradient} from 'expo-linear-gradient' +import {useMinimalShellMode} from '#/lib/hooks/useMinimalShellMode' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {clamp} from '#/lib/numbers' +import {gradients} from '#/lib/styles' import {isWeb} from '#/platform/detection' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {clamp} from 'lib/numbers' -import {gradients} from 'lib/styles' import {useInteractionState} from '#/components/hooks/useInteractionState' export interface FABProps diff --git a/src/view/com/util/load-latest/LoadLatestBtn.tsx b/src/view/com/util/load-latest/LoadLatestBtn.tsx index f02e4a2bd7..7e85e670f4 100644 --- a/src/view/com/util/load-latest/LoadLatestBtn.tsx +++ b/src/view/com/util/load-latest/LoadLatestBtn.tsx @@ -1,17 +1,21 @@ import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import Animated from 'react-native-reanimated' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {useMediaQuery} from 'react-responsive' -import {usePalette} from 'lib/hooks/usePalette' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {colors} from 'lib/styles' -import {HITSLOP_20} from 'lib/constants' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' + +import {HITSLOP_20} from '#/lib/constants' +import {useMinimalShellMode} from '#/lib/hooks/useMinimalShellMode' +import {usePalette} from '#/lib/hooks/usePalette' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {clamp} from '#/lib/numbers' +import {colors} from '#/lib/styles' +import {isWeb} from '#/platform/detection' +import {useSession} from '#/state/session' + const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity) -import {isWeb} from 'platform/detection' -import {useSession} from 'state/session' export function LoadLatestBtn({ onPress, @@ -26,6 +30,7 @@ export function LoadLatestBtn({ const {hasSession} = useSession() const {isDesktop, isTablet, isMobile, isTabletOrMobile} = useWebMediaQueries() const {fabMinimalShellTransform} = useMinimalShellMode() + const insets = useSafeAreaInsets() // move button inline if it starts overlapping the left nav const isTallViewport = useMediaQuery({minHeight: 700}) @@ -34,6 +39,10 @@ export function LoadLatestBtn({ // it on both tablet and mobile since we are showing the bottom bar (see createNativeStackNavigatorWithAuth) const showBottomBar = hasSession ? isMobile : isTabletOrMobile + const bottomPosition = isTablet + ? {bottom: 50} + : {bottom: clamp(insets.bottom, 15, 60) + 15} + return ( Date: Thu, 30 May 2024 15:46:26 +0300 Subject: [PATCH 246/277] play haptics before closing modal (#4283) --- src/view/com/util/post-ctrls/PostCtrls.tsx | 10 ---------- src/view/com/util/post-ctrls/RepostButton.tsx | 10 ++++++++-- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/view/com/util/post-ctrls/PostCtrls.tsx b/src/view/com/util/post-ctrls/PostCtrls.tsx index c90a723a0b..d42590e905 100644 --- a/src/view/com/util/post-ctrls/PostCtrls.tsx +++ b/src/view/com/util/post-ctrls/PostCtrls.tsx @@ -23,7 +23,6 @@ import {toShareUrl} from '#/lib/strings/url-helpers' import {s} from '#/lib/styles' import {Shadow} from '#/state/cache/types' import {useFeedFeedbackContext} from '#/state/feed-feedback' -import {useModalControls} from '#/state/modals' import { usePostLikeMutationQueue, usePostRepostMutationQueue, @@ -65,7 +64,6 @@ let PostCtrls = ({ const t = useTheme() const {_} = useLingui() const {openComposer} = useComposerControls() - const {closeModal} = useModalControls() const [queueLike, queueUnlike] = usePostLikeMutationQueue(post, logContext) const [queueRepost, queueUnrepost] = usePostRepostMutationQueue( post, @@ -118,10 +116,8 @@ let PostCtrls = ({ ]) const onRepost = useCallback(async () => { - closeModal() try { if (!post.viewer?.repost) { - playHaptic() sendInteraction({ item: post.uri, event: 'app.bsky.feed.defs#interactionRepost', @@ -137,10 +133,8 @@ let PostCtrls = ({ } } }, [ - closeModal, post.uri, post.viewer?.repost, - playHaptic, queueRepost, queueUnrepost, sendInteraction, @@ -148,7 +142,6 @@ let PostCtrls = ({ ]) const onQuote = useCallback(() => { - closeModal() sendInteraction({ item: post.uri, event: 'app.bsky.feed.defs#interactionQuote', @@ -163,16 +156,13 @@ let PostCtrls = ({ indexedAt: post.indexedAt, }, }) - playHaptic() }, [ - closeModal, openComposer, post.uri, post.cid, post.author, post.indexedAt, record.text, - playHaptic, sendInteraction, feedContext, ]) diff --git a/src/view/com/util/post-ctrls/RepostButton.tsx b/src/view/com/util/post-ctrls/RepostButton.tsx index ebf3357f31..b1fe73d5b3 100644 --- a/src/view/com/util/post-ctrls/RepostButton.tsx +++ b/src/view/com/util/post-ctrls/RepostButton.tsx @@ -3,6 +3,7 @@ import {View} from 'react-native' import {msg, plural} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {useHaptics} from '#/lib/haptics' import {useRequireAuth} from '#/state/session' import {atoms as a, useTheme} from '#/alf' import {Button, ButtonText} from '#/components/Button' @@ -30,6 +31,7 @@ let RepostButton = ({ const {_} = useLingui() const requireAuth = useRequireAuth() const dialogControl = Dialog.useDialogControl() + const playHaptic = useHaptics() const color = React.useMemo( () => ({ @@ -89,8 +91,11 @@ let RepostButton = ({ : _(msg({message: `Repost`, context: 'action'})) } onPress={() => { - dialogControl.close() - onRepost() + if (!isReposted) playHaptic() + + dialogControl.close(() => { + onRepost() + }) }} size="large" variant="ghost" @@ -106,6 +111,7 @@ let RepostButton = ({ style={[a.justify_start, a.px_md]} label={_(msg`Quote post`)} onPress={() => { + playHaptic() dialogControl.close(() => { onQuote() }) From 8feb2ab449fb31c1a5a6bd25dea8c01f97fa5231 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Thu, 30 May 2024 16:06:59 +0300 Subject: [PATCH 247/277] put dropdown in fullscreenoverlay on iOS (#4284) --- .../select-language/SelectLangBtn.tsx | 27 +++++++++-------- src/view/com/util/forms/DropdownButton.tsx | 30 ++++++++++++------- src/view/shell/Composer.web.tsx | 7 +++-- 3 files changed, 38 insertions(+), 26 deletions(-) diff --git a/src/view/com/composer/select-language/SelectLangBtn.tsx b/src/view/com/composer/select-language/SelectLangBtn.tsx index 7856222259..7a086789ac 100644 --- a/src/view/com/composer/select-language/SelectLangBtn.tsx +++ b/src/view/com/composer/select-language/SelectLangBtn.tsx @@ -1,27 +1,28 @@ import React, {useCallback, useMemo} from 'react' -import {StyleSheet, Keyboard} from 'react-native' +import {Keyboard, StyleSheet} from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import {Text} from 'view/com/util/text/Text' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useModalControls} from '#/state/modals' +import { + hasPostLanguage, + toPostLanguages, + useLanguagePrefs, + useLanguagePrefsApi, +} from '#/state/preferences/languages' +import {usePalette} from 'lib/hooks/usePalette' +import {isNative} from 'platform/detection' import { DropdownButton, DropdownItem, DropdownItemButton, } from 'view/com/util/forms/DropdownButton' -import {usePalette} from 'lib/hooks/usePalette' -import {isNative} from 'platform/detection' +import {Text} from 'view/com/util/text/Text' import {codeToLanguageName} from '../../../../locale/helpers' -import {useModalControls} from '#/state/modals' -import { - useLanguagePrefs, - useLanguagePrefsApi, - toPostLanguages, - hasPostLanguage, -} from '#/state/preferences/languages' -import {msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' export function SelectLangBtn() { const pal = usePalette('default') diff --git a/src/view/com/util/forms/DropdownButton.tsx b/src/view/com/util/forms/DropdownButton.tsx index 2285b0615a..14b97161da 100644 --- a/src/view/com/util/forms/DropdownButton.tsx +++ b/src/view/com/util/forms/DropdownButton.tsx @@ -2,6 +2,7 @@ import React, {PropsWithChildren, useMemo, useRef} from 'react' import { Dimensions, GestureResponderEvent, + Platform, StyleProp, StyleSheet, TouchableOpacity, @@ -10,18 +11,20 @@ import { View, ViewStyle, } from 'react-native' -import {IconProp} from '@fortawesome/fontawesome-svg-core' import RootSiblings from 'react-native-root-siblings' +import {FullWindowOverlay} from 'react-native-screens' +import {IconProp} from '@fortawesome/fontawesome-svg-core' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {HITSLOP_10} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {colors} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {isWeb} from 'platform/detection' import {Text} from '../text/Text' import {Button, ButtonType} from './Button' -import {colors} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {HITSLOP_10} from 'lib/constants' -import {useLingui} from '@lingui/react' -import {msg} from '@lingui/macro' -import {isWeb} from 'platform/detection' const ESTIMATED_BTN_HEIGHT = 50 const ESTIMATED_SEP_HEIGHT = 16 @@ -239,7 +242,7 @@ const DropdownItems = ({ // - (On mobile) be buttons by default, accept `label` and `nativeID` // props, and always have an explicit label return ( - <> + {/* This TouchableWithoutFeedback renders the background so if the user clicks outside, the dropdown closes */} - + ) } +// on iOS, due to formSheet presentation style, we need to render the overlay +// as a full screen overlay +const Wrapper = Platform.select({ + ios: FullWindowOverlay, + default: ({children}) => <>{children}, +}) + function isSep(item: DropdownItem): item is DropdownItemSeparator { return 'sep' in item && item.sep } diff --git a/src/view/shell/Composer.web.tsx b/src/view/shell/Composer.web.tsx index 00233f66af..c9c604f114 100644 --- a/src/view/shell/Composer.web.tsx +++ b/src/view/shell/Composer.web.tsx @@ -1,15 +1,16 @@ import React from 'react' import {StyleSheet, View} from 'react-native' import Animated, {FadeIn, FadeInDown, FadeOut} from 'react-native-reanimated' -import {ComposePost} from '../com/composer/Composer' -import {useComposerState} from 'state/shell/composer' + +import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock' +import {useComposerState} from 'state/shell/composer' import { EmojiPicker, EmojiPickerState, } from 'view/com/composer/text-input/web/EmojiPicker.web' +import {ComposePost} from '../com/composer/Composer' const BOTTOM_BAR_HEIGHT = 61 From 8de028387c939999708e521203541fceea5543d4 Mon Sep 17 00:00:00 2001 From: dan Date: Thu, 30 May 2024 15:57:03 +0100 Subject: [PATCH 248/277] Reduce Threadgate button size (#4287) --- src/components/Button.tsx | 6 +++++- src/view/com/composer/threadgate/ThreadgateBtn.tsx | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/Button.tsx b/src/components/Button.tsx index c543cbba5f..e22faa060c 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -28,7 +28,7 @@ export type ButtonColor = | 'gradient_sunset' | 'gradient_nordic' | 'gradient_bonfire' -export type ButtonSize = 'tiny' | 'small' | 'medium' | 'large' +export type ButtonSize = 'tiny' | 'xsmall' | 'small' | 'medium' | 'large' export type ButtonShape = 'round' | 'square' | 'default' export type VariantProps = { /** @@ -283,6 +283,8 @@ export function Button({ baseStyles.push({paddingVertical: 12}, a.px_2xl, a.rounded_sm, a.gap_md) } else if (size === 'small') { baseStyles.push({paddingVertical: 9}, a.px_lg, a.rounded_sm, a.gap_sm) + } else if (size === 'xsmall') { + baseStyles.push({paddingVertical: 6}, a.px_sm, a.rounded_sm, a.gap_sm) } else if (size === 'tiny') { baseStyles.push({paddingVertical: 4}, a.px_sm, a.rounded_xs, a.gap_xs) } @@ -295,6 +297,8 @@ export function Button({ } } else if (size === 'small') { baseStyles.push({height: 34, width: 34}) + } else if (size === 'xsmall') { + baseStyles.push({height: 28, width: 28}) } else if (size === 'tiny') { baseStyles.push({height: 20, width: 20}) } diff --git a/src/view/com/composer/threadgate/ThreadgateBtn.tsx b/src/view/com/composer/threadgate/ThreadgateBtn.tsx index c43f00676b..df2a31e2b9 100644 --- a/src/view/com/composer/threadgate/ThreadgateBtn.tsx +++ b/src/view/com/composer/threadgate/ThreadgateBtn.tsx @@ -49,7 +49,7 @@ export function ThreadgateBtn({ + )} + + ) : ( + children + ) +} diff --git a/src/view/com/posts/AviFollowButton.web.tsx b/src/view/com/posts/AviFollowButton.web.tsx new file mode 100644 index 0000000000..6ad3c9f1fd --- /dev/null +++ b/src/view/com/posts/AviFollowButton.web.tsx @@ -0,0 +1 @@ +export {Fragment as AviFollowButton} from 'react' diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 8077c29683..b10ffe19fa 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -41,6 +41,7 @@ import {PostEmbeds} from '../util/post-embeds' import {PostMeta} from '../util/PostMeta' import {Text} from '../util/text/Text' import {PreviewableUserAvatar} from '../util/UserAvatar' +import {AviFollowButton} from './AviFollowButton' interface FeedItemProps { record: AppBskyFeedPost.Record @@ -284,13 +285,15 @@ let FeedItemInner = ({ - + + + {isThreadParent && ( Date: Thu, 30 May 2024 21:32:54 -0700 Subject: [PATCH 255/277] Change many border widths from `1` to `hairlineWidth` (#4294) * feed items * update some more * moar * profile card * composer and notifications * settings screen * remove border from first item in feeds * remove border from first item in feeds * more removal of top border * fix flatlist rendering * oops * scroll to top fab * a.border * centeredview/list * placeholder * web sidebar * search posts * feeds list * user lists * list header * account list width 1 * hide top border feedgens * same for lists * fix tab bar web desktop * wait... * show the border on desktop web * fix lists * fix lists * round --- src/alf/atoms.ts | 13 ++--- src/components/AccountList.tsx | 4 +- src/view/com/composer/Composer.tsx | 5 +- src/view/com/composer/Prompt.tsx | 16 +++--- src/view/com/feeds/FeedSourceCard.tsx | 16 ++++-- src/view/com/feeds/ProfileFeedgens.tsx | 4 +- src/view/com/lists/ListCard.tsx | 22 ++++---- src/view/com/lists/MyLists.tsx | 18 ++++--- src/view/com/lists/ProfileLists.tsx | 8 +-- src/view/com/notifications/Feed.tsx | 33 ++++++++---- src/view/com/notifications/FeedItem.tsx | 5 +- src/view/com/pager/PagerWithHeader.tsx | 4 +- src/view/com/pager/TabBar.tsx | 3 +- src/view/com/post-thread/PostThreadItem.tsx | 11 ++-- src/view/com/post/Post.tsx | 3 +- src/view/com/posts/Feed.tsx | 21 +++++--- src/view/com/posts/FeedItem.tsx | 11 ++-- src/view/com/posts/FeedSlice.tsx | 10 +++- src/view/com/profile/ProfileCard.tsx | 3 +- src/view/com/profile/ProfileSubpageHeader.tsx | 28 +++++----- src/view/com/util/LoadingPlaceholder.tsx | 3 +- src/view/com/util/ViewHeader.tsx | 5 +- src/view/com/util/Views.web.tsx | 9 ++-- .../com/util/load-latest/LoadLatestBtn.tsx | 3 +- src/view/com/util/post-embeds/QuoteEmbed.tsx | 5 +- src/view/com/util/post-embeds/index.tsx | 3 +- src/view/screens/Feeds.tsx | 5 +- src/view/screens/Lists.tsx | 31 ++++++----- src/view/screens/Notifications.tsx | 53 ++++++++++--------- src/view/screens/ProfileList.tsx | 5 +- src/view/screens/Settings/index.tsx | 3 +- src/view/shell/bottom-bar/BottomBarStyles.tsx | 3 +- src/view/shell/desktop/RightNav.tsx | 5 +- 33 files changed, 227 insertions(+), 144 deletions(-) diff --git a/src/alf/atoms.ts b/src/alf/atoms.ts index eb130f3ae9..1ccb0460c4 100644 --- a/src/alf/atoms.ts +++ b/src/alf/atoms.ts @@ -1,7 +1,8 @@ -import {Platform} from 'react-native' +import {Platform, StyleSheet} from 'react-native' import * as tokens from '#/alf/tokens' import {native, web} from '#/alf/util/platform' +import hairlineWidth = StyleSheet.hairlineWidth export const atoms = { /* @@ -277,19 +278,19 @@ export const atoms = { borderWidth: 0, }, border: { - borderWidth: 1, + borderWidth: hairlineWidth, }, border_t: { - borderTopWidth: 1, + borderTopWidth: hairlineWidth, }, border_b: { - borderBottomWidth: 1, + borderBottomWidth: hairlineWidth, }, border_l: { - borderLeftWidth: 1, + borderLeftWidth: hairlineWidth, }, border_r: { - borderRightWidth: 1, + borderRightWidth: hairlineWidth, }, /* diff --git a/src/components/AccountList.tsx b/src/components/AccountList.tsx index 7d696801ed..883c06c144 100644 --- a/src/components/AccountList.tsx +++ b/src/components/AccountList.tsx @@ -37,7 +37,7 @@ export function AccountList({ style={[ a.rounded_md, a.overflow_hidden, - a.border, + {borderWidth: 1}, t.atoms.border_contrast_low, ]}> {accounts.map(account => ( @@ -48,7 +48,7 @@ export function AccountList({ isCurrentAccount={account.did === currentAccount?.did} isPendingAccount={account.did === pendingDid} /> - + ))} ) : null} - + @@ -621,11 +627,6 @@ export function useComposerCancelRef() { const styles = StyleSheet.create({ topbar: { - flexDirection: 'row', - alignItems: 'center', - marginHorizontal: 16, - height: 54, - gap: 4, borderBottomWidth: StyleSheet.hairlineWidth, }, topbarDesktop: { @@ -633,6 +634,13 @@ const styles = StyleSheet.create({ paddingBottom: 10, height: 50, }, + topbarInner: { + flexDirection: 'row', + alignItems: 'center', + paddingHorizontal: 16, + height: 54, + gap: 4, + }, postBtn: { borderRadius: 20, paddingHorizontal: 20, @@ -643,19 +651,19 @@ const styles = StyleSheet.create({ flexDirection: 'row', backgroundColor: colors.red1, borderRadius: 6, - marginHorizontal: 15, + marginHorizontal: 16, paddingHorizontal: 8, paddingVertical: 6, - marginVertical: 6, + marginBottom: 8, }, reminderLine: { flexDirection: 'row', alignItems: 'center', borderRadius: 6, - marginHorizontal: 15, + marginHorizontal: 16, paddingHorizontal: 8, paddingVertical: 6, - marginBottom: 6, + marginBottom: 8, }, errorIcon: { borderWidth: hairlineWidth, @@ -690,8 +698,8 @@ const styles = StyleSheet.create({ bottomBar: { flexDirection: 'row', paddingVertical: 4, - paddingLeft: 15, - paddingRight: 20, + paddingLeft: 8, + paddingRight: 16, alignItems: 'center', borderTopWidth: hairlineWidth, }, diff --git a/src/view/com/composer/ComposerReplyTo.tsx b/src/view/com/composer/ComposerReplyTo.tsx index 902d60a460..6b38caff03 100644 --- a/src/view/com/composer/ComposerReplyTo.tsx +++ b/src/view/com/composer/ComposerReplyTo.tsx @@ -10,7 +10,6 @@ import { import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {isWeb} from '#/platform/detection' import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeHandle} from 'lib/strings/handles' import {ComposerOptsPostRef} from 'state/shell/composer' @@ -76,10 +75,7 @@ export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) { return ( { @@ -45,7 +46,7 @@ export function ThreadgateBtn({ : _(msg`Some people can reply`) return ( - + + + {title} + + + + + { + setSearchText(text) + listRef.current?.scrollToOffset({offset: 0, animated: false}) + }} + onEscape={control.close} + /> + + + ) + }, [ + t.atoms.border_contrast_low, + t.atoms.bg, + t.atoms.text_contrast_high, + t.palette.contrast_500, + _, + title, + searchText, + control, + ]) + + return ( + item.key} + style={[ + web([a.py_0, {height: '100vh', maxHeight: 600}, a.px_0]), + native({ + height: '100%', + paddingHorizontal: 0, + marginTop: 0, + paddingTop: 0, + borderTopLeftRadius: 40, + borderTopRightRadius: 40, + }), + ]} + webInnerStyle={[a.py_0, {maxWidth: 500, minWidth: 200}]} + keyboardDismissMode="on-drag" + /> ) } @@ -293,217 +461,3 @@ function SearchInput({ ) } - -function SearchablePeopleList({ - onCreateChat, -}: { - onCreateChat: (did: string) => void -}) { - const t = useTheme() - const {_} = useLingui() - const moderationOpts = useModerationOpts() - const control = Dialog.useDialogContext() - const listRef = useRef(null) - const {currentAccount} = useSession() - const inputRef = useRef(null) - - const [searchText, setSearchText] = useState('') - - const { - data: results, - isError, - isFetching, - } = useActorAutocompleteQuery(searchText, true, 12) - const {data: follows} = useProfileFollowsQuery(currentAccount?.did) - - const items = useMemo(() => { - let _items: Item[] = [] - - if (isError) { - _items.push({ - type: 'empty', - key: 'empty', - message: _(msg`We're having network issues, try again`), - }) - } else if (searchText.length) { - if (results?.length) { - for (const profile of results) { - if (profile.did === currentAccount?.did) continue - _items.push({ - type: 'profile', - key: profile.did, - enabled: canBeMessaged(profile), - profile, - }) - } - - _items = _items.sort(a => { - // @ts-ignore - return a.enabled ? -1 : 1 - }) - } - } else { - if (follows) { - for (const page of follows.pages) { - for (const profile of page.follows) { - _items.push({ - type: 'profile', - key: profile.did, - enabled: canBeMessaged(profile), - profile, - }) - } - } - - _items = _items.sort(a => { - // @ts-ignore - return a.enabled ? -1 : 1 - }) - } else { - Array(10) - .fill(0) - .forEach((_, i) => { - _items.push({ - type: 'placeholder', - key: i + '', - }) - }) - } - } - - return _items - }, [_, searchText, results, isError, currentAccount?.did, follows]) - - if (searchText && !isFetching && !items.length && !isError) { - items.push({type: 'empty', key: 'empty', message: _(msg`No results`)}) - } - - const renderItems = useCallback( - ({item}: {item: Item}) => { - switch (item.type) { - case 'profile': { - return ( - - ) - } - case 'placeholder': { - return - } - case 'empty': { - return - } - default: - return null - } - }, - [moderationOpts, onCreateChat], - ) - - useLayoutEffect(() => { - if (isWeb) { - setImmediate(() => { - inputRef?.current?.focus() - }) - } - }, []) - - const listHeader = useMemo(() => { - return ( - - - - - Start a new chat - - - - - { - setSearchText(text) - listRef.current?.scrollToOffset({offset: 0, animated: false}) - }} - onEscape={control.close} - /> - - - ) - }, [t, _, control, searchText]) - - return ( - item.key} - style={[ - web([a.py_0, {height: '100vh', maxHeight: 600}, a.px_0]), - native({ - height: '100%', - paddingHorizontal: 0, - marginTop: 0, - paddingTop: 0, - borderTopLeftRadius: 40, - borderTopRightRadius: 40, - }), - ]} - webInnerStyle={[a.py_0, {maxWidth: 500, minWidth: 200}]} - keyboardDismissMode="on-drag" - /> - ) -} diff --git a/src/components/dms/dialogs/ShareViaChatDialog.tsx b/src/components/dms/dialogs/ShareViaChatDialog.tsx new file mode 100644 index 0000000000..ac475f7c99 --- /dev/null +++ b/src/components/dms/dialogs/ShareViaChatDialog.tsx @@ -0,0 +1,52 @@ +import React, {useCallback} from 'react' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useGetConvoForMembers} from '#/state/queries/messages/get-convo-for-members' +import {logEvent} from 'lib/statsig/statsig' +import * as Toast from '#/view/com/util/Toast' +import * as Dialog from '#/components/Dialog' +import {SearchablePeopleList} from './SearchablePeopleList' + +export function SendViaChatDialog({ + control, + onSelectChat, +}: { + control: Dialog.DialogControlProps + onSelectChat: (chatId: string) => void +}) { + const {_} = useLingui() + + const {mutate: createChat} = useGetConvoForMembers({ + onSuccess: data => { + onSelectChat(data.convo.id) + + if (!data.convo.lastMessage) { + logEvent('chat:create', {logContext: 'SendViaChatDialog'}) + } + logEvent('chat:open', {logContext: 'SendViaChatDialog'}) + }, + onError: error => { + Toast.show(error.message) + }, + }) + + const onCreateChat = useCallback( + (did: string) => { + control.close(() => createChat([did])) + }, + [control, createChat], + ) + + return ( + + + + ) +} diff --git a/src/components/dms/NewChatDialog/TextInput.tsx b/src/components/dms/dialogs/TextInput.tsx similarity index 100% rename from src/components/dms/NewChatDialog/TextInput.tsx rename to src/components/dms/dialogs/TextInput.tsx diff --git a/src/components/dms/NewChatDialog/TextInput.web.tsx b/src/components/dms/dialogs/TextInput.web.tsx similarity index 100% rename from src/components/dms/NewChatDialog/TextInput.web.tsx rename to src/components/dms/dialogs/TextInput.web.tsx diff --git a/src/lib/routes/types.ts b/src/lib/routes/types.ts index 5011aafd79..7504cd83a0 100644 --- a/src/lib/routes/types.ts +++ b/src/lib/routes/types.ts @@ -38,7 +38,7 @@ export type CommonNavigatorParams = { AccessibilitySettings: undefined Search: {q?: string} Hashtag: {tag: string; author?: string} - MessagesConversation: {conversation: string} + MessagesConversation: {conversation: string; embed?: string} MessagesSettings: undefined } diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index 00444c18c4..48651b3d96 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -130,10 +130,14 @@ export type LogEvents = { | 'AvatarButton' } 'chat:create': { - logContext: 'ProfileHeader' | 'NewChatDialog' + logContext: 'ProfileHeader' | 'NewChatDialog' | 'SendViaChatDialog' } 'chat:open': { - logContext: 'ProfileHeader' | 'NewChatDialog' | 'ChatsList' + logContext: + | 'ProfileHeader' + | 'NewChatDialog' + | 'ChatsList' + | 'SendViaChatDialog' } 'test:all:always': {} diff --git a/src/screens/Messages/Conversation/MessageInput.tsx b/src/screens/Messages/Conversation/MessageInput.tsx index 1491886846..c8229f95dc 100644 --- a/src/screens/Messages/Conversation/MessageInput.tsx +++ b/src/screens/Messages/Conversation/MessageInput.tsx @@ -27,13 +27,20 @@ import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {useSharedInputStyles} from '#/components/forms/TextField' import {PaperPlane_Stroke2_Corner0_Rounded as PaperPlane} from '#/components/icons/PaperPlane' +import {useExtractEmbedFromFacets} from './MessageInputEmbed' const AnimatedTextInput = Animated.createAnimatedComponent(TextInput) export function MessageInput({ onSendMessage, + hasEmbed, + setEmbed, + children, }: { onSendMessage: (message: string) => void + hasEmbed: boolean + setEmbed: (embedUrl: string | undefined) => void + children?: React.ReactNode }) { const {_} = useLingui() const t = useTheme() @@ -53,9 +60,10 @@ export function MessageInput({ const inputRef = useAnimatedRef() useSaveMessageDraft(message) + useExtractEmbedFromFacets(message, setEmbed) const onSubmit = React.useCallback(() => { - if (message.trim() === '') { + if (!hasEmbed && message.trim() === '') { return } if (new Graphemer().countGraphemes(message) > MAX_DM_GRAPHEME_LENGTH) { @@ -66,13 +74,23 @@ export function MessageInput({ onSendMessage(message) playHaptic() setMessage('') + setEmbed(undefined) // Pressing the send button causes the text input to lose focus, so we need to // re-focus it after sending setTimeout(() => { inputRef.current?.focus() }, 100) - }, [message, clearDraft, onSendMessage, playHaptic, _, inputRef]) + }, [ + hasEmbed, + message, + clearDraft, + onSendMessage, + playHaptic, + setEmbed, + _, + inputRef, + ]) useFocusedInputHandler( { @@ -101,6 +119,7 @@ export function MessageInput({ return ( + {children} void + hasEmbed: boolean + setEmbed: (embedUrl: string | undefined) => void + children?: React.ReactNode }) { const {isTabletOrDesktop} = useWebMediaQueries() const {_} = useLingui() @@ -35,7 +42,7 @@ export function MessageInput({ const [textAreaHeight, setTextAreaHeight] = React.useState(38) const onSubmit = React.useCallback(() => { - if (message.trim() === '') { + if (!hasEmbed && message.trim() === '') { return } if (new Graphemer().countGraphemes(message) > MAX_DM_GRAPHEME_LENGTH) { @@ -45,7 +52,8 @@ export function MessageInput({ clearDraft() onSendMessage(message) setMessage('') - }, [message, onSendMessage, _, clearDraft]) + setEmbed(undefined) + }, [message, onSendMessage, _, clearDraft, hasEmbed, setEmbed]) const onKeyDown = React.useCallback( (e: React.KeyboardEvent) => { @@ -87,9 +95,11 @@ export function MessageInput({ ) useSaveMessageDraft(message) + useExtractEmbedFromFacets(message, setEmbed) return ( + {children} >() + const navigation = useNavigation() + const embedFromParams = route.params.embed + + const [embedUri, setEmbed] = useState(embedFromParams) + + if (embedFromParams && embedUri !== embedFromParams) { + setEmbed(embedFromParams) + } + + return { + embedUri, + setEmbed: useCallback( + (embedUrl: string | undefined) => { + if (!embedUrl) { + navigation.setParams({embed: ''}) + setEmbed(undefined) + return + } + + if (embedFromParams) return + + const url = convertBskyAppUrlIfNeeded(embedUrl) + const [_0, user, _1, rkey] = url.split('/').filter(Boolean) + const uri = makeRecordUri(user, 'app.bsky.feed.post', rkey) + + setEmbed(uri) + }, + [embedFromParams, navigation], + ), + } +} + +export function useExtractEmbedFromFacets( + message: string, + setEmbed: (embedUrl: string | undefined) => void, +) { + const rt = new RichTextAPI({text: message}) + rt.detectFacetsWithoutResolution() + + let uriFromFacet: string | undefined + + for (const facet of rt.facets ?? []) { + for (const feature of facet.features) { + if (AppBskyRichtextFacet.isLink(feature) && isBskyPostUrl(feature.uri)) { + uriFromFacet = feature.uri + break + } + } + } + + useEffect(() => { + if (uriFromFacet) { + setEmbed(uriFromFacet) + } + }, [uriFromFacet, setEmbed]) +} + +export function MessageInputEmbed({ + embedUri, + setEmbed, +}: { + embedUri: string | undefined + setEmbed: (embedUrl: string | undefined) => void +}) { + const t = useTheme() + const {_} = useLingui() + + const {data: post, status} = usePostQuery(embedUri) + + const moderationOpts = useModerationOpts() + const moderation = useMemo( + () => + moderationOpts && post ? moderatePost(post, moderationOpts) : undefined, + [moderationOpts, post], + ) + + const {rt, record} = useMemo(() => { + if ( + post && + AppBskyFeedPost.isRecord(post.record) && + AppBskyFeedPost.validateRecord(post.record).success + ) { + return { + rt: new RichTextAPI({ + text: post.record.text, + facets: post.record.facets, + }), + record: post.record, + } + } + + return {rt: undefined, record: undefined} + }, [post]) + + if (!embedUri) { + return null + } + + let content = null + switch (status) { + case 'pending': + content = ( + + + + ) + break + case 'error': + content = ( + + Could not fetch post + + ) + break + case 'success': + const itemUrip = new AtUri(post.uri) + const itemHref = makeProfileLink(post.author, 'post', itemUrip.rkey) + + if (!post || !moderation || !rt || !record) { + return null + } + + const images = AppBskyEmbedImages.isView(post.embed) + ? post.embed.images + : AppBskyEmbedRecordWithMedia.isView(post.embed) && + AppBskyEmbedImages.isView(post.embed.media) + ? post.embed.media.images + : undefined + + content = ( + + + + + {rt.text && ( + + + + )} + {images && images?.length > 0 && ( + + )} + + + ) + break + } + + return ( + + {content} + + + ) +} diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index d6aa06a1ce..e6f657b497 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -15,9 +15,11 @@ import {ReanimatedScrollEvent} from 'react-native-reanimated/lib/typescript/rean import {useSafeAreaInsets} from 'react-native-safe-area-context' import {AppBskyEmbedRecord, AppBskyRichtextFacet, RichText} from '@atproto/api' -import {getPostAsQuote} from '#/lib/link-meta/bsky' import {shortenLinks, stripInvalidMentions} from '#/lib/strings/rich-text-manip' -import {isBskyPostUrl} from '#/lib/strings/url-helpers' +import { + convertBskyAppUrlIfNeeded, + isBskyPostUrl, +} from '#/lib/strings/url-helpers' import {logger} from '#/logger' import {isNative} from '#/platform/detection' import {isConvoActive, useConvoActive} from '#/state/messages/convo' @@ -36,6 +38,7 @@ import {MessageItem} from '#/components/dms/MessageItem' import {NewMessagesPill} from '#/components/dms/NewMessagesPill' import {Loader} from '#/components/Loader' import {Text} from '#/components/Typography' +import {MessageInputEmbed, useMessageEmbed} from './MessageInputEmbed' function MaybeLoader({isLoading}: {isLoading: boolean}) { return ( @@ -85,6 +88,7 @@ export function MessagesList({ const convoState = useConvoActive() const agent = useAgent() const getPost = useGetPost() + const {embedUri, setEmbed} = useMessageEmbed() const flatListRef = useAnimatedRef() @@ -277,25 +281,10 @@ export function MessagesList({ rt.detectFacetsWithoutResolution() let embed: AppBskyEmbedRecord.Main | undefined - // find the first link facet that is a link to a post - const postLinkFacet = rt.facets?.find(facet => { - return facet.features.find(feature => { - if (AppBskyRichtextFacet.isLink(feature)) { - return isBskyPostUrl(feature.uri) - } - return false - }) - }) - - // if we found a post link, get the post and embed it - if (postLinkFacet) { - const postLink = postLinkFacet.features.find( - AppBskyRichtextFacet.isLink, - ) - if (!postLink) return + if (embedUri) { try { - const post = await getPostAsQuote(getPost, postLink.uri) + const post = await getPost({uri: embedUri}) if (post) { embed = { $type: 'app.bsky.embed.record', @@ -305,24 +294,43 @@ export function MessagesList({ }, } - // remove the post link from the text - rt.delete( - postLinkFacet.index.byteStart, - postLinkFacet.index.byteEnd, - ) + // look for the embed uri in the facets, so we can remove it from the text + const postLinkFacet = rt.facets?.find(facet => { + return facet.features.find(feature => { + if (AppBskyRichtextFacet.isLink(feature)) { + if (isBskyPostUrl(feature.uri)) { + const url = convertBskyAppUrlIfNeeded(feature.uri) + const [_0, _1, _2, rkey] = url.split('/').filter(Boolean) - // re-trim the text, now that we've removed the post link - // - // if the post link is at the start of the text, we don't want to leave a leading space - // so trim on both sides - if (postLinkFacet.index.byteStart === 0) { - rt = new RichText({text: rt.text.trim()}, {cleanNewlines: true}) - } else { - // otherwise just trim the end - rt = new RichText( - {text: rt.text.trimEnd()}, - {cleanNewlines: true}, + // this might have a handle instead of a DID + // so just compare the rkey - not particularly dangerous + return post.uri.endsWith(rkey) + } + } + return false + }) + }) + + if (postLinkFacet) { + // remove the post link from the text + rt.delete( + postLinkFacet.index.byteStart, + postLinkFacet.index.byteEnd, ) + + // re-trim the text, now that we've removed the post link + // + // if the post link is at the start of the text, we don't want to leave a leading space + // so trim on both sides + if (postLinkFacet.index.byteStart === 0) { + rt = new RichText({text: rt.text.trim()}, {cleanNewlines: true}) + } else { + // otherwise just trim the end + rt = new RichText( + {text: rt.text.trimEnd()}, + {cleanNewlines: true}, + ) + } } } } catch (error) { @@ -345,7 +353,7 @@ export function MessagesList({ embed, }) }, - [agent, convoState, getPost, hasScrolled, setHasScrolled], + [agent, convoState, embedUri, getPost, hasScrolled, setHasScrolled], ) // -- List layout changes (opening emoji keyboard, etc.) @@ -420,7 +428,12 @@ export function MessagesList({ {isConvoActive(convoState) && !convoState.isFetchingHistory && convoState.items.length === 0 && } - + + + )} diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index 7c67c59d3f..0b1fe2a958 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -21,8 +21,8 @@ import {CenteredView} from '#/view/com/util/Views' import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {DialogControlProps, useDialogControl} from '#/components/Dialog' +import {NewChat} from '#/components/dms/dialogs/NewChatDialog' import {MessagesNUX} from '#/components/dms/MessagesNUX' -import {NewChat} from '#/components/dms/NewChatDialog' import {useRefreshOnFocus} from '#/components/hooks/useRefreshOnFocus' import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Retry} from '#/components/icons/ArrowRotateCounterClockwise' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' diff --git a/src/state/messages/convo/agent.ts b/src/state/messages/convo/agent.ts index 9850124c90..de2605b5ad 100644 --- a/src/state/messages/convo/agent.ts +++ b/src/state/messages/convo/agent.ts @@ -1018,6 +1018,7 @@ export class Convo { key: m.id, message: { ...m.message, + embed: undefined, $type: 'chat.bsky.convo.defs#messageView', id: nanoid(), rev: '__fake__', diff --git a/src/state/queries/post.ts b/src/state/queries/post.ts index f27628d696..794f48eb1b 100644 --- a/src/state/queries/post.ts +++ b/src/state/queries/post.ts @@ -18,7 +18,16 @@ export function usePostQuery(uri: string | undefined) { return useQuery({ queryKey: RQKEY(uri || ''), async queryFn() { - const res = await agent.getPosts({uris: [uri!]}) + const urip = new AtUri(uri!) + + if (!urip.host.startsWith('did:')) { + const res = await agent.resolveHandle({ + handle: urip.host, + }) + urip.host = res.data.did + } + + const res = await agent.getPosts({uris: [urip.toString()]}) if (res.success && res.data.posts[0]) { return res.data.posts[0] } @@ -47,7 +56,7 @@ export function useGetPost() { } const res = await agent.getPosts({ - uris: [urip.toString()!], + uris: [urip.toString()], }) if (res.success && res.data.posts[0]) { diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index a5cc60fd81..4b50946a41 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -451,7 +451,7 @@ function AdditionalPostText({post}: {post?: AppBskyFeedDefs.PostView}) { return ( <> {text?.length > 0 && {text}} - {images && images?.length > 0 && ( + {images && images.length > 0 && ( )} diff --git a/src/view/com/util/forms/PostDropdownBtn.tsx b/src/view/com/util/forms/PostDropdownBtn.tsx index cd82ec98f0..945cf5e596 100644 --- a/src/view/com/util/forms/PostDropdownBtn.tsx +++ b/src/view/com/util/forms/PostDropdownBtn.tsx @@ -12,12 +12,12 @@ import { AtUri, RichText as RichTextAPI, } from '@atproto/api' -import {msg} from '@lingui/macro' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' import {makeProfileLink} from '#/lib/routes/links' -import {CommonNavigatorParams} from '#/lib/routes/types' +import {CommonNavigatorParams, NavigationProp} from '#/lib/routes/types' import {richTextToString} from '#/lib/strings/rich-text-helpers' import {getTranslatorLink} from '#/locale/helpers' import {logger} from '#/logger' @@ -37,6 +37,7 @@ import {atoms as a, useBreakpoints, useTheme as useAlf} from '#/alf' import {useDialogControl} from '#/components/Dialog' import {useGlobalDialogsControlContext} from '#/components/dialogs/Context' import {EmbedDialog} from '#/components/dialogs/Embed' +import {SendViaChatDialog} from '#/components/dms/dialogs/ShareViaChatDialog' import {ArrowOutOfBox_Stroke2_Corner0_Rounded as Share} from '#/components/icons/ArrowOutOfBox' import {BubbleQuestion_Stroke2_Corner0_Rounded as Translate} from '#/components/icons/Bubble' import {Clipboard_Stroke2_Corner2_Rounded as ClipboardIcon} from '#/components/icons/Clipboard' @@ -49,6 +50,7 @@ import { import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash' import {Filter_Stroke2_Corner0_Rounded as Filter} from '#/components/icons/Filter' import {Mute_Stroke2_Corner0_Rounded as Mute} from '#/components/icons/Mute' +import {PaperPlane_Stroke2_Corner0_Rounded as Send} from '#/components/icons/PaperPlane' import {SpeakerVolumeFull_Stroke2_Corner0_Rounded as Unmute} from '#/components/icons/Speaker' import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning' @@ -102,13 +104,14 @@ let PostDropdownBtn = ({ const {hidePost} = useHiddenPostsApi() const feedFeedback = useFeedFeedbackContext() const openLink = useOpenLink() - const navigation = useNavigation() + const navigation = useNavigation() const {mutedWordsDialogControl} = useGlobalDialogsControlContext() const reportDialogControl = useReportDialogControl() const deletePromptControl = useDialogControl() const hidePromptControl = useDialogControl() const loggedOutWarningPromptControl = useDialogControl() const embedPostControl = useDialogControl() + const sendViaChatControl = useDialogControl() const rootUri = record.reply?.root?.uri || postUri const isThreadMuted = mutedThreads.includes(rootUri) @@ -229,6 +232,16 @@ let PostDropdownBtn = ({ Toast.show('Feedback sent!') }, [feedFeedback, postUri, postFeedContext]) + const onSelectChatToShareTo = React.useCallback( + (conversation: string) => { + navigation.navigate('MessagesConversation', { + conversation, + embed: postUri, + }) + }, + [navigation, postUri], + ) + const canEmbed = isWeb && gtMobile && !hideInPWI return ( @@ -280,6 +293,18 @@ let PostDropdownBtn = ({ )} + {hasSession && ( + + + Send via direct message + + + + )} + )} + + ) } diff --git a/src/view/com/util/images/ImageHorzList.tsx b/src/view/com/util/images/ImageHorzList.tsx index e37f8af1b7..12eef14f73 100644 --- a/src/view/com/util/images/ImageHorzList.tsx +++ b/src/view/com/util/images/ImageHorzList.tsx @@ -27,11 +27,14 @@ export function ImageHorzList({images, style}: Props) { } const styles = StyleSheet.create({ - flexRow: {flexDirection: 'row'}, + flexRow: { + flexDirection: 'row', + gap: 5, + }, image: { - width: 100, - height: 100, + maxWidth: 100, + aspectRatio: 1, + flex: 1, borderRadius: 4, - marginRight: 5, }, }) diff --git a/yarn.lock b/yarn.lock index 3e1246d92c..ae18bfbec6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,10 +34,10 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@atproto/api@^0.12.13": - version "0.12.13" - resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.12.13.tgz#269d6c57ea894e23f20b28bd3cbfed944bd28528" - integrity sha512-pRSID6w8AUiZJoCxgctMPRTSGVFHq7wphAnxEbRLBP3OQ1g+BRZUcqFw+e+17Pd3wrc8VImjiD4HCWtCJvCx3w== +"@atproto/api@^0.12.14": + version "0.12.14" + resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.12.14.tgz#81252fd166ec8fe950056531e690d563437720fa" + integrity sha512-ZPh/afoRjFEQDQgMZW2FQiG5CDUifY7SxBqI0zVJUwed8Zi6fqYzGYM8fcDvD8yJfflRCqRxUE72g5fKiA1zAQ== dependencies: "@atproto/common-web" "^0.3.0" "@atproto/lexicon" "^0.4.0" @@ -22564,12 +22564,12 @@ zod-validation-error@^3.0.3: resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-3.3.0.tgz#2cfe81b62d044e0453d1aa3ae7c32a2f36dde9af" integrity sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw== -zod@^3.14.2, zod@^3.20.2, zod@^3.21.4: +zod@^3.14.2, zod@^3.20.2: version "3.22.2" resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.2.tgz#3add8c682b7077c05ac6f979fea6998b573e157b" integrity sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg== -zod@^3.22.4: +zod@^3.21.4, zod@^3.22.4: version "3.23.8" resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== From 2bb36948198b9a0787544258bde72b4d3c6d78b0 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 31 May 2024 12:14:11 -0500 Subject: [PATCH 262/277] =?UTF-8?q?[=F0=9F=90=B4]=20Add=20labels=20to=20ch?= =?UTF-8?q?ats=20(#4293)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add labels to chat list * Add to convo header * Prevent click through on PostAlert buttons * Fix space * Fix alignment --- src/components/dms/MessagesListHeader.tsx | 107 ++++++++++++--------- src/components/moderation/PostAlerts.tsx | 4 +- src/screens/Messages/List/ChatListItem.tsx | 7 ++ 3 files changed, 74 insertions(+), 44 deletions(-) diff --git a/src/components/dms/MessagesListHeader.tsx b/src/components/dms/MessagesListHeader.tsx index 0a0cd20da1..0aeac36286 100644 --- a/src/components/dms/MessagesListHeader.tsx +++ b/src/components/dms/MessagesListHeader.tsx @@ -22,6 +22,7 @@ import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' import {ConvoMenu} from '#/components/dms/ConvoMenu' import {Bell2Off_Filled_Corner0_Rounded as BellStroke} from '#/components/icons/Bell2' import {Link} from '#/components/Link' +import {PostAlerts} from '#/components/moderation/PostAlerts' import {Text} from '#/components/Typography' const PFP_SIZE = isWeb ? 40 : 34 @@ -58,7 +59,7 @@ export let MessagesListHeader = ({ t.atoms.border_contrast_low, a.border_b, a.flex_row, - a.align_center, + a.align_start, a.gap_sm, gtTablet ? a.pl_lg : a.pl_xl, a.pr_lg, @@ -69,7 +70,7 @@ export let MessagesListHeader = ({ testID="conversationHeaderBackBtn" onPress={onPressBack} hitSlop={BACK_HITSLOP} - style={{width: 30, height: 30}} + style={{width: 30, height: 30, marginTop: isWeb ? 6 : 4}} accessibilityRole="button" accessibilityLabel={_(msg`Back`)} accessibilityHint=""> @@ -152,51 +153,71 @@ function HeaderReady({ ) return ( - <> - - - - - {displayName} - - {!isDeletedAccount && ( + + + + + + + - @{profile.handle} - {convoState.convo?.muted && ( - <> - {' '} - ·{' '} - - - )} + {displayName} - )} - - + {!isDeletedAccount && ( + + @{profile.handle} + {convoState.convo?.muted && ( + <> + {' '} + ·{' '} + + + )} + + )} + + - {isConvoActive(convoState) && ( - + )} + + + + - )} - + + ) } diff --git a/src/components/moderation/PostAlerts.tsx b/src/components/moderation/PostAlerts.tsx index 5a33bbc80f..0b48b51d1d 100644 --- a/src/components/moderation/PostAlerts.tsx +++ b/src/components/moderation/PostAlerts.tsx @@ -64,7 +64,9 @@ function PostLabel({ <> )} From b51640fbc099a1e9df1430b5a05bf913495008b7 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 31 May 2024 22:57:42 +0300 Subject: [PATCH 265/277] =?UTF-8?q?[=F0=9F=90=B4]=20add=20emoji=20multipli?= =?UTF-8?q?er=20prop=20to=20RichText=20and=20bump=20it=20up=20for=20DMs=20?= =?UTF-8?q?(#4229)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add emoji multiplier prop to RichText and bump it up for DMs * remove background if only emoji * Handle more emoji * Adjust emoji regex and length * Fix bad merge conflict res * Fix logic * Revert to emoji specific regex --------- Co-authored-by: Eric Bailey --- src/components/RichText.tsx | 20 +++++++++----- src/components/dms/MessageItem.tsx | 44 ++++++++++++++++-------------- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/src/components/RichText.tsx b/src/components/RichText.tsx index ed69c199ad..9ba44eabe4 100644 --- a/src/components/RichText.tsx +++ b/src/components/RichText.tsx @@ -28,6 +28,7 @@ export function RichText({ authorHandle, onLinkPress, interactiveStyle, + emojiMultiplier = 1.85, }: TextStyleProp & Pick & { value: RichTextAPI | string @@ -38,6 +39,7 @@ export function RichText({ authorHandle?: string onLinkPress?: LinkProps['onPress'] interactiveStyle?: TextStyle + emojiMultiplier?: number }) { const richText = React.useMemo( () => @@ -57,17 +59,14 @@ export function RichText({ const {text, facets} = richText if (!facets?.length) { - if (text.length <= 5 && /^\p{Extended_Pictographic}+$/u.test(text)) { + if (isOnlyEmoji(text)) { + const fontSize = + (flattenedStyle.fontSize ?? a.text_sm.fontSize) * emojiMultiplier return ( {text} @@ -247,3 +246,10 @@ function RichTextTag({ ) } + +export function isOnlyEmoji(text: string) { + return ( + text.length <= 15 && + /^[\p{Emoji_Presentation}\p{Extended_Pictographic}]+$/u.test(text) + ) +} diff --git a/src/components/dms/MessageItem.tsx b/src/components/dms/MessageItem.tsx index 772fcb1b11..61358c9893 100644 --- a/src/components/dms/MessageItem.tsx +++ b/src/components/dms/MessageItem.tsx @@ -21,7 +21,7 @@ import {atoms as a, useTheme} from '#/alf' import {ActionsWrapper} from '#/components/dms/ActionsWrapper' import {InlineLinkText} from '#/components/Link' import {Text} from '#/components/Typography' -import {RichText} from '../RichText' +import {isOnlyEmoji, RichText} from '../RichText' import {MessageItemEmbed} from './MessageItemEmbed' let MessageItem = ({ @@ -87,36 +87,38 @@ let MessageItem = ({ )} {rt.text.length > 0 && ( + style={ + !isOnlyEmoji(message.text) && [ + a.py_sm, + a.my_2xs, + a.rounded_md, + { + paddingLeft: 14, + paddingRight: 14, + backgroundColor: isFromSelf + ? isPending + ? pendingColor + : t.palette.primary_500 + : t.palette.contrast_50, + borderRadius: 17, + }, + isFromSelf ? a.self_end : a.self_start, + isFromSelf + ? {borderBottomRightRadius: isLastInGroup ? 2 : 17} + : {borderBottomLeftRadius: isLastInGroup ? 2 : 17}, + ] + }> )} From 708a80e7a7ca1199247a8c3ff4552d3957ea1c7b Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 31 May 2024 13:02:18 -0700 Subject: [PATCH 266/277] fix accessibility label in notifications (#4305) * fix accessibility label in notifications * add accessibility options to expand post * inherit from outside, but always include `activate` * include option to disable label/hint on previewable avatar * fix hidden elements still being read on voiceover * make it work for followers too * extract variable * fix hint * update wording elsewhere --- src/view/com/notifications/FeedItem.tsx | 118 ++++++++++++++---------- src/view/com/util/Link.tsx | 15 +++ src/view/com/util/UserAvatar.tsx | 9 +- 3 files changed, 93 insertions(+), 49 deletions(-) diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index 4b50946a41..22ebf8271c 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -194,10 +194,36 @@ let FeedItem = ({ ]} href={itemHref} noFeedback - accessible={ - (item.type === 'post-like' && authors.length === 1) || - item.type === 'repost' + accessible={!isAuthorsExpanded} + accessibilityActions={ + authors.length > 1 + ? [ + { + name: 'toggleAuthorsExpanded', + label: isAuthorsExpanded + ? _(msg`Collapse list of users`) + : _(msg`Expand list of users`), + }, + ] + : [ + { + name: 'viewProfile', + label: _( + msg`View ${ + authors[0].profile.displayName || authors[0].profile.handle + }'s profile`, + ), + }, + ] } + onAccessibilityAction={e => { + if (e.nativeEvent.actionName === 'activate') { + onBeforePress() + } + if (e.nativeEvent.actionName === 'toggleAuthorsExpanded') { + onToggleAuthorsExpanded() + } + }} onBeforePress={onBeforePress}> {/* TODO: Prevent conditional rendering and move toward composable @@ -332,16 +358,14 @@ function CondensedAuthorsList({ profile={authors[0].profile} moderation={authors[0].moderation.ui('avatar')} type={authors[0].profile.associated?.labeler ? 'labeler' : 'user'} + accessible={false} /> ) } return ( {authors.slice(0, MAX_AUTHORS).map(author => ( @@ -351,6 +375,7 @@ function CondensedAuthorsList({ profile={author.profile} moderation={author.moderation.ui('avatar')} type={author.profile.associated?.labeler ? 'labeler' : 'user'} + accessible={false} /> ))} @@ -392,48 +417,45 @@ function ExpandedAuthorsList({ }, [heightInterp, visible]) return ( - - {authors.map(author => ( - - - - - - - - - {sanitizeDisplayName( - author.profile.displayName || author.profile.handle, - )} -   - - {sanitizeHandle(author.profile.handle)} + + {visible && + authors.map(author => ( + + + + + + + + + {sanitizeDisplayName( + author.profile.displayName || author.profile.handle, + )} +   + + {sanitizeHandle(author.profile.handle)} + - - - - ))} + + + ))} ) } diff --git a/src/view/com/util/Link.tsx b/src/view/com/util/Link.tsx index 865be45520..ab6fd200fc 100644 --- a/src/view/com/util/Link.tsx +++ b/src/view/com/util/Link.tsx @@ -64,6 +64,8 @@ export const Link = memo(function Link({ anchorNoUnderline, navigationAction, onBeforePress, + accessibilityActions, + onAccessibilityAction, ...props }: Props) { const t = useTheme() @@ -89,6 +91,11 @@ export const Link = memo(function Link({ [closeModal, navigation, navigationAction, href, openLink, onBeforePress], ) + const accessibilityActionsWithActivate = [ + ...(accessibilityActions || []), + {name: 'activate', label: title}, + ] + if (noFeedback) { return ( @@ -97,6 +104,14 @@ export const Link = memo(function Link({ onPress={onPress} accessible={accessible} accessibilityRole="link" + accessibilityActions={accessibilityActionsWithActivate} + onAccessibilityAction={e => { + if (e.nativeEvent.actionName === 'activate') { + onPress() + } else { + onAccessibilityAction?.(e) + } + }} {...props} android_ripple={{ color: t.atoms.bg_contrast_25.backgroundColor, diff --git a/src/view/com/util/UserAvatar.tsx b/src/view/com/util/UserAvatar.tsx index f23f4f7a5d..587b466a3c 100644 --- a/src/view/com/util/UserAvatar.tsx +++ b/src/view/com/util/UserAvatar.tsx @@ -53,6 +53,7 @@ interface PreviewableUserAvatarProps extends BaseUserAvatarProps { profile: AppBskyActorDefs.ProfileViewBasic disableHoverCard?: boolean onBeforePress?: () => void + accessible?: boolean } const BLUR_AMOUNT = isWeb ? 5 : 100 @@ -386,6 +387,7 @@ let PreviewableUserAvatar = ({ profile, disableHoverCard, onBeforePress, + accessible = true, ...rest }: PreviewableUserAvatarProps): React.ReactNode => { const {_} = useLingui() @@ -399,7 +401,12 @@ let PreviewableUserAvatar = ({ return ( Date: Mon, 3 Jun 2024 09:21:02 -0700 Subject: [PATCH 267/277] hide top border for mentions and replies (#4330) --- src/view/com/notifications/FeedItem.tsx | 1 + src/view/com/post/Post.tsx | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index 22ebf8271c..d6c38ea61c 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -148,6 +148,7 @@ let FeedItem = ({ borderColor: pal.colors.unreadNotifBorder, } } + hideTopBorder={hideTopBorder} /> ) diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx index a7ccf0be2b..51a1381ec8 100644 --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -41,10 +41,12 @@ import hairlineWidth = StyleSheet.hairlineWidth export function Post({ post, showReplyLine, + hideTopBorder, style, }: { post: AppBskyFeedDefs.PostView showReplyLine?: boolean + hideTopBorder?: boolean style?: StyleProp }) { const moderationOpts = useModerationOpts() @@ -82,6 +84,7 @@ export function Post({ richText={richText} moderation={moderation} showReplyLine={showReplyLine} + hideTopBorder={hideTopBorder} style={style} /> ) @@ -95,6 +98,7 @@ function PostInner({ richText, moderation, showReplyLine, + hideTopBorder, style, }: { post: Shadow @@ -102,6 +106,7 @@ function PostInner({ richText: RichTextAPI moderation: ModerationDecision showReplyLine?: boolean + hideTopBorder?: boolean style?: StyleProp }) { const queryClient = useQueryClient() @@ -143,7 +148,12 @@ function PostInner({ return ( {showReplyLine && } @@ -243,7 +253,6 @@ const styles = StyleSheet.create({ paddingRight: 15, paddingBottom: 5, paddingLeft: 10, - borderTopWidth: hairlineWidth, // @ts-ignore web only -prf cursor: 'pointer', }, From de257a11869292953144da956b05b8e7cc276991 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 3 Jun 2024 17:05:14 -0500 Subject: [PATCH 268/277] =?UTF-8?q?Revert=20"[=F0=9F=90=B4]=20Embed=20back?= =?UTF-8?q?wards=20compat=20(#4302)"=20(#4338)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit f868821cfcc87b62a320e5a1e11375fdb973adc1. --- src/components/dms/MessageItemEmbed.tsx | 4 +- .../Messages/Conversation/MessagesList.tsx | 45 ++++++++++++++++++- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/components/dms/MessageItemEmbed.tsx b/src/components/dms/MessageItemEmbed.tsx index 9deb0c1d91..5d3656bac1 100644 --- a/src/components/dms/MessageItemEmbed.tsx +++ b/src/components/dms/MessageItemEmbed.tsx @@ -2,7 +2,6 @@ import React from 'react' import {View} from 'react-native' import {AppBskyEmbedRecord} from '@atproto/api' -import {isNative} from '#/platform/detection' import {PostEmbeds} from '#/view/com/util/post-embeds' import {atoms as a, useTheme} from '#/alf' @@ -14,8 +13,7 @@ let MessageItemEmbed = ({ const t = useTheme() return ( - + ) diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index de77997f1d..e6f657b497 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -13,9 +13,13 @@ import { } from 'react-native-reanimated' import {ReanimatedScrollEvent} from 'react-native-reanimated/lib/typescript/reanimated2/hook/commonTypes' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {AppBskyEmbedRecord, RichText} from '@atproto/api' +import {AppBskyEmbedRecord, AppBskyRichtextFacet, RichText} from '@atproto/api' import {shortenLinks, stripInvalidMentions} from '#/lib/strings/rich-text-manip' +import { + convertBskyAppUrlIfNeeded, + isBskyPostUrl, +} from '#/lib/strings/url-helpers' import {logger} from '#/logger' import {isNative} from '#/platform/detection' import {isConvoActive, useConvoActive} from '#/state/messages/convo' @@ -289,6 +293,45 @@ export function MessagesList({ cid: post.cid, }, } + + // look for the embed uri in the facets, so we can remove it from the text + const postLinkFacet = rt.facets?.find(facet => { + return facet.features.find(feature => { + if (AppBskyRichtextFacet.isLink(feature)) { + if (isBskyPostUrl(feature.uri)) { + const url = convertBskyAppUrlIfNeeded(feature.uri) + const [_0, _1, _2, rkey] = url.split('/').filter(Boolean) + + // this might have a handle instead of a DID + // so just compare the rkey - not particularly dangerous + return post.uri.endsWith(rkey) + } + } + return false + }) + }) + + if (postLinkFacet) { + // remove the post link from the text + rt.delete( + postLinkFacet.index.byteStart, + postLinkFacet.index.byteEnd, + ) + + // re-trim the text, now that we've removed the post link + // + // if the post link is at the start of the text, we don't want to leave a leading space + // so trim on both sides + if (postLinkFacet.index.byteStart === 0) { + rt = new RichText({text: rt.text.trim()}, {cleanNewlines: true}) + } else { + // otherwise just trim the end + rt = new RichText( + {text: rt.text.trimEnd()}, + {cleanNewlines: true}, + ) + } + } } } catch (error) { logger.error('Failed to get post as quote for DM', {error}) From f05aebf78e816aa06a98fb0f826b7164775b3cc4 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 3 Jun 2024 15:05:37 -0700 Subject: [PATCH 269/277] don't use flexBasis on web for message post embeds (#4303) * don't use flexBasis on web * rm unnecessary style --- src/components/dms/MessageItemEmbed.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/dms/MessageItemEmbed.tsx b/src/components/dms/MessageItemEmbed.tsx index 5d3656bac1..dbdbe95b56 100644 --- a/src/components/dms/MessageItemEmbed.tsx +++ b/src/components/dms/MessageItemEmbed.tsx @@ -3,7 +3,7 @@ import {View} from 'react-native' import {AppBskyEmbedRecord} from '@atproto/api' import {PostEmbeds} from '#/view/com/util/post-embeds' -import {atoms as a, useTheme} from '#/alf' +import {atoms as a, native, useTheme} from '#/alf' let MessageItemEmbed = ({ embed, @@ -13,7 +13,7 @@ let MessageItemEmbed = ({ const t = useTheme() return ( - + ) From 16f295ca858bd75fba623ca1fc4f559792fd21f3 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 3 Jun 2024 15:33:35 -0700 Subject: [PATCH 270/277] truncate if extending one line acct switcher (#4310) --- src/view/screens/Settings/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx index 49702ae47c..a647ea902d 100644 --- a/src/view/screens/Settings/index.tsx +++ b/src/view/screens/Settings/index.tsx @@ -103,10 +103,10 @@ function SettingsAccountCard({ /> - + {profile?.displayName || account.handle} - + {account.handle} @@ -381,7 +381,7 @@ export function SettingsScreen({}: Props) { {!currentAccount.emailConfirmed && } - + Signed in as From bda10510a479d0c9ce710b74249b0b7c47adf0c7 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 3 Jun 2024 15:35:57 -0700 Subject: [PATCH 271/277] use the new icon in reposted by (#4307) * use the new icon in reposted by * tweak --- src/view/com/posts/FeedItem.tsx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 72c8b8757a..675f23a88c 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -43,6 +43,7 @@ import {Text} from '../util/text/Text' import {PreviewableUserAvatar} from '../util/UserAvatar' import {AviFollowButton} from './AviFollowButton' import hairlineWidth = StyleSheet.hairlineWidth +import {Repost_Stroke2_Corner2_Rounded as Repost} from '#/components/icons/Repost' interface FeedItemProps { record: AppBskyFeedPost.Record @@ -251,13 +252,10 @@ let FeedItemInner = ({ )}`, )} onBeforePress={onOpenReposter}> - Date: Tue, 4 Jun 2024 07:41:03 +0900 Subject: [PATCH 272/277] Fix filtering uris of fetchSubjects (#4324) --- src/state/queries/notifications/util.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/state/queries/notifications/util.ts b/src/state/queries/notifications/util.ts index ebcdff6866..4662493533 100644 --- a/src/state/queries/notifications/util.ts +++ b/src/state/queries/notifications/util.ts @@ -145,7 +145,7 @@ async function fetchSubjects( ): Promise> { const uris = new Set() for (const notif of groupedNotifs) { - if (notif.subjectUri && !notif.subjectUri.includes('feed.generator')) { + if (notif.subjectUri?.includes('app.bsky.feed.post')) { uris.add(notif.subjectUri) } } From 8d8323421c5f9c9f850f2b4e6fd4c62b932e14b2 Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 3 Jun 2024 15:58:16 -0700 Subject: [PATCH 273/277] remove resolution from post thread (#4297) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * remove resolution from post thread nit completely remove did cache lookup move cache check for did to `usePostThreadQuery` remove resolution from post thread * helper function * simplify * simplify search too * fix missing check for root or parent quoted post 🤯 * fix thread traversal --- src/state/queries/notifications/feed.ts | 18 +++++--- src/state/queries/post-feed.ts | 46 +++++++++++++++------ src/state/queries/post-thread.ts | 25 ++++++----- src/state/queries/search-posts.ts | 14 +++++-- src/state/queries/util.ts | 19 +++++++++ src/view/screens/PostThread.tsx | 55 ++++++++++--------------- 6 files changed, 112 insertions(+), 65 deletions(-) diff --git a/src/state/queries/notifications/feed.ts b/src/state/queries/notifications/feed.ts index 40be2ce8ee..d9f019af38 100644 --- a/src/state/queries/notifications/feed.ts +++ b/src/state/queries/notifications/feed.ts @@ -17,7 +17,7 @@ */ import {useEffect, useRef} from 'react' -import {AppBskyActorDefs, AppBskyFeedDefs} from '@atproto/api' +import {AppBskyActorDefs, AppBskyFeedDefs, AtUri} from '@atproto/api' import { InfiniteData, QueryClient, @@ -30,7 +30,11 @@ import {useMutedThreads} from '#/state/muted-threads' import {useAgent} from '#/state/session' import {useModerationOpts} from '../../preferences/moderation-opts' import {STALE} from '..' -import {embedViewRecordToPostView, getEmbeddedPost} from '../util' +import { + didOrHandleUriMatches, + embedViewRecordToPostView, + getEmbeddedPost, +} from '../util' import {FeedPage} from './types' import {useUnreadNotificationsApi} from './unread' import {fetchPage} from './util' @@ -142,6 +146,8 @@ export function* findAllPostsInQueryData( queryClient: QueryClient, uri: string, ): Generator { + const atUri = new AtUri(uri) + const queryDatas = queryClient.getQueriesData>({ queryKey: [RQKEY_ROOT], }) @@ -149,14 +155,16 @@ export function* findAllPostsInQueryData( if (!queryData?.pages) { continue } + for (const page of queryData?.pages) { for (const item of page.items) { - if (item.subject?.uri === uri) { + if (item.subject && didOrHandleUriMatches(atUri, item.subject)) { yield item.subject } + const quotedPost = getEmbeddedPost(item.subject?.embed) - if (quotedPost?.uri === uri) { - yield embedViewRecordToPostView(quotedPost) + if (quotedPost && didOrHandleUriMatches(atUri, quotedPost)) { + yield embedViewRecordToPostView(quotedPost!) } } } diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index 5c483483ac..2fb80de37d 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -35,7 +35,11 @@ import {KnownError} from '#/view/com/posts/FeedErrorMessage' import {useFeedTuners} from '../preferences/feed-tuners' import {useModerationOpts} from '../preferences/moderation-opts' import {usePreferencesQuery} from './preferences' -import {embedViewRecordToPostView, getEmbeddedPost} from './util' +import { + didOrHandleUriMatches, + embedViewRecordToPostView, + getEmbeddedPost, +} from './util' type ActorDid = string type AuthorFilter = @@ -448,6 +452,8 @@ export function* findAllPostsInQueryData( queryClient: QueryClient, uri: string, ): Generator { + const atUri = new AtUri(uri) + const queryDatas = queryClient.getQueriesData< InfiniteData >({ @@ -459,24 +465,38 @@ export function* findAllPostsInQueryData( } for (const page of queryData?.pages) { for (const item of page.feed) { - if (item.post.uri === uri) { + if (didOrHandleUriMatches(atUri, item.post)) { yield item.post } + const quotedPost = getEmbeddedPost(item.post.embed) - if (quotedPost?.uri === uri) { + if (quotedPost && didOrHandleUriMatches(atUri, quotedPost)) { yield embedViewRecordToPostView(quotedPost) } - if ( - AppBskyFeedDefs.isPostView(item.reply?.parent) && - item.reply?.parent?.uri === uri - ) { - yield item.reply.parent + + if (AppBskyFeedDefs.isPostView(item.reply?.parent)) { + if (didOrHandleUriMatches(atUri, item.reply.parent)) { + yield item.reply.parent + } + + const parentQuotedPost = getEmbeddedPost(item.reply.parent.embed) + if ( + parentQuotedPost && + didOrHandleUriMatches(atUri, parentQuotedPost) + ) { + yield embedViewRecordToPostView(parentQuotedPost) + } } - if ( - AppBskyFeedDefs.isPostView(item.reply?.root) && - item.reply?.root?.uri === uri - ) { - yield item.reply.root + + if (AppBskyFeedDefs.isPostView(item.reply?.root)) { + if (didOrHandleUriMatches(atUri, item.reply.root)) { + yield item.reply.root + } + + const rootQuotedPost = getEmbeddedPost(item.reply.root.embed) + if (rootQuotedPost && didOrHandleUriMatches(atUri, rootQuotedPost)) { + yield embedViewRecordToPostView(rootQuotedPost) + } } } } diff --git a/src/state/queries/post-thread.ts b/src/state/queries/post-thread.ts index b1bff1493f..f7d21a4270 100644 --- a/src/state/queries/post-thread.ts +++ b/src/state/queries/post-thread.ts @@ -4,6 +4,7 @@ import { AppBskyFeedDefs, AppBskyFeedGetPostThread, AppBskyFeedPost, + AtUri, ModerationDecision, ModerationOpts, } from '@atproto/api' @@ -24,7 +25,11 @@ import { findAllPostsInQueryData as findAllPostsInFeedQueryData, findAllProfilesInQueryData as findAllProfilesInFeedQueryData, } from './post-feed' -import {embedViewRecordToPostView, getEmbeddedPost} from './util' +import { + didOrHandleUriMatches, + embedViewRecordToPostView, + getEmbeddedPost, +} from './util' const RQKEY_ROOT = 'post-thread' export const RQKEY = (uri: string) => [RQKEY_ROOT, uri] @@ -91,14 +96,10 @@ export function usePostThreadQuery(uri: string | undefined) { }, enabled: !!uri, placeholderData: () => { - if (!uri) { - return undefined - } - { - const post = findPostInQueryData(queryClient, uri) - if (post) { - return post - } + if (!uri) return + const post = findPostInQueryData(queryClient, uri) + if (post) { + return post } return undefined }, @@ -271,6 +272,8 @@ export function* findAllPostsInQueryData( queryClient: QueryClient, uri: string, ): Generator { + const atUri = new AtUri(uri) + const queryDatas = queryClient.getQueriesData({ queryKey: [RQKEY_ROOT], }) @@ -279,7 +282,7 @@ export function* findAllPostsInQueryData( continue } for (const item of traverseThread(queryData)) { - if (item.uri === uri) { + if (item.type === 'post' && didOrHandleUriMatches(atUri, item.post)) { const placeholder = threadNodeToPlaceholderThread(item) if (placeholder) { yield placeholder @@ -287,7 +290,7 @@ export function* findAllPostsInQueryData( } const quotedPost = item.type === 'post' ? getEmbeddedPost(item.post.embed) : undefined - if (quotedPost?.uri === uri) { + if (quotedPost && didOrHandleUriMatches(atUri, quotedPost)) { yield embedViewRecordToPlaceholderThread(quotedPost) } } diff --git a/src/state/queries/search-posts.ts b/src/state/queries/search-posts.ts index f71d642551..5c50ad2671 100644 --- a/src/state/queries/search-posts.ts +++ b/src/state/queries/search-posts.ts @@ -2,6 +2,7 @@ import { AppBskyActorDefs, AppBskyFeedDefs, AppBskyFeedSearchPosts, + AtUri, } from '@atproto/api' import { InfiniteData, @@ -11,7 +12,11 @@ import { } from '@tanstack/react-query' import {useAgent} from '#/state/session' -import {embedViewRecordToPostView, getEmbeddedPost} from './util' +import { + didOrHandleUriMatches, + embedViewRecordToPostView, + getEmbeddedPost, +} from './util' const searchPostsQueryKeyRoot = 'search-posts' const searchPostsQueryKey = ({query, sort}: {query: string; sort?: string}) => [ @@ -62,17 +67,20 @@ export function* findAllPostsInQueryData( >({ queryKey: [searchPostsQueryKeyRoot], }) + const atUri = new AtUri(uri) + for (const [_queryKey, queryData] of queryDatas) { if (!queryData?.pages) { continue } for (const page of queryData?.pages) { for (const post of page.posts) { - if (post.uri === uri) { + if (didOrHandleUriMatches(atUri, post)) { yield post } + const quotedPost = getEmbeddedPost(post.embed) - if (quotedPost?.uri === uri) { + if (quotedPost && didOrHandleUriMatches(atUri, quotedPost)) { yield embedViewRecordToPostView(quotedPost) } } diff --git a/src/state/queries/util.ts b/src/state/queries/util.ts index b74893fcd1..f733c37886 100644 --- a/src/state/queries/util.ts +++ b/src/state/queries/util.ts @@ -1,8 +1,10 @@ import { + AppBskyActorDefs, AppBskyEmbedRecord, AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, AppBskyFeedPost, + AtUri, } from '@atproto/api' import {InfiniteData, QueryClient, QueryKey} from '@tanstack/react-query' @@ -22,6 +24,23 @@ export function truncateAndInvalidate( queryClient.invalidateQueries({queryKey}) } +// Given an AtUri, this function will check if the AtUri matches a +// hit regardless of whether the AtUri uses a DID or handle as a host. +// +// AtUri should be the URI that is being searched for, while currentUri +// is the URI that is being checked. currentAuthor is the author +// of the currentUri that is being checked. +export function didOrHandleUriMatches( + atUri: AtUri, + record: {uri: string; author: AppBskyActorDefs.ProfileViewBasic}, +) { + if (atUri.host.startsWith('did:')) { + return atUri.href === record.uri + } + + return atUri.host === record.author.handle && record.uri.endsWith(atUri.rkey) +} + export function getEmbeddedPost( v: unknown, ): AppBskyEmbedRecord.ViewRecord | undefined { diff --git a/src/view/screens/PostThread.tsx b/src/view/screens/PostThread.tsx index ba1fa130ee..70378f4b81 100644 --- a/src/view/screens/PostThread.tsx +++ b/src/view/screens/PostThread.tsx @@ -1,28 +1,26 @@ import React from 'react' import {StyleSheet, View} from 'react-native' import Animated from 'react-native-reanimated' +import {useSafeAreaInsets} from 'react-native-safe-area-context' import {useFocusEffect} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' -import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' -import {makeRecordUri} from 'lib/strings/url-helpers' -import {PostThread as PostThreadComponent} from '../com/post-thread/PostThread' -import {ComposePrompt} from 'view/com/composer/Prompt' -import {s} from 'lib/styles' -import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {clamp} from 'lodash' + +import {isWeb} from '#/platform/detection' import { RQKEY as POST_THREAD_RQKEY, ThreadNode, } from '#/state/queries/post-thread' -import {clamp} from 'lodash' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {useSetMinimalShellMode} from '#/state/shell' -import {useResolveUriQuery} from '#/state/queries/resolve-uri' -import {ErrorMessage} from '../com/util/error/ErrorMessage' -import {CenteredView} from '../com/util/Views' -import {useComposerControls} from '#/state/shell/composer' import {useSession} from '#/state/session' -import {isWeb} from '#/platform/detection' +import {useSetMinimalShellMode} from '#/state/shell' +import {useComposerControls} from '#/state/shell/composer' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' +import {makeRecordUri} from 'lib/strings/url-helpers' +import {s} from 'lib/styles' +import {ComposePrompt} from 'view/com/composer/Prompt' +import {PostThread as PostThreadComponent} from '../com/post-thread/PostThread' type Props = NativeStackScreenProps export function PostThreadScreen({route}: Props) { @@ -35,7 +33,6 @@ export function PostThreadScreen({route}: Props) { const {name, rkey} = route.params const {isMobile} = useWebMediaQueries() const uri = makeRecordUri(name, 'app.bsky.feed.post', rkey) - const {data: resolvedUri, error: uriError} = useResolveUriQuery(uri) const [canReply, setCanReply] = React.useState(false) useFocusEffect( @@ -45,12 +42,10 @@ export function PostThreadScreen({route}: Props) { ) const onPressReply = React.useCallback(() => { - if (!resolvedUri) { + if (!uri) { return } - const thread = queryClient.getQueryData( - POST_THREAD_RQKEY(resolvedUri.uri), - ) + const thread = queryClient.getQueryData(POST_THREAD_RQKEY(uri)) if (thread?.type !== 'post') { return } @@ -64,25 +59,19 @@ export function PostThreadScreen({route}: Props) { }, onPost: () => queryClient.invalidateQueries({ - queryKey: POST_THREAD_RQKEY(resolvedUri.uri || ''), + queryKey: POST_THREAD_RQKEY(uri), }), }) - }, [openComposer, queryClient, resolvedUri]) + }, [openComposer, queryClient, uri]) return ( - {uriError ? ( - - - - ) : ( - - )} + {isMobile && canReply && hasSession && ( Date: Tue, 4 Jun 2024 01:05:26 +0200 Subject: [PATCH 274/277] Unify profile tabs and lists screens placeholders (#4315) --- src/view/com/feeds/ProfileFeedgens.tsx | 18 +++++++----------- src/view/com/lists/MyLists.tsx | 19 +++++++++---------- src/view/com/lists/ProfileLists.tsx | 18 ++++++++---------- src/view/com/modals/UserAddRemoveLists.tsx | 8 ++------ src/view/com/util/EmptyState.tsx | 9 ++++++--- src/view/screens/Lists.tsx | 12 ++++++------ 6 files changed, 38 insertions(+), 46 deletions(-) diff --git a/src/view/com/feeds/ProfileFeedgens.tsx b/src/view/com/feeds/ProfileFeedgens.tsx index 670cd3e11c..5977e6af99 100644 --- a/src/view/com/feeds/ProfileFeedgens.tsx +++ b/src/view/com/feeds/ProfileFeedgens.tsx @@ -7,7 +7,7 @@ import { View, ViewStyle, } from 'react-native' -import {msg, Trans} from '@lingui/macro' +import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' @@ -18,12 +18,11 @@ import {isNative} from '#/platform/detection' import {hydrateFeedGenerator} from '#/state/queries/feed' import {usePreferencesQuery} from '#/state/queries/preferences' import {RQKEY, useProfileFeedgensQuery} from '#/state/queries/profile-feedgens' -import {usePalette} from 'lib/hooks/usePalette' import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' +import {EmptyState} from 'view/com/util/EmptyState' import {ErrorMessage} from '../util/error/ErrorMessage' import {List, ListRef} from '../util/List' import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {Text} from '../util/text/Text' import {FeedSourceCardLoaded} from './FeedSourceCard' const LOADING = {_reactKey: '__loading__'} @@ -52,7 +51,6 @@ export const ProfileFeedgens = React.forwardRef< {did, scrollElRef, headerOffset, enabled, style, testID, setScrollViewTag}, ref, ) { - const pal = usePalette('default') const {_} = useLingui() const theme = useTheme() const [isPTRing, setIsPTRing] = React.useState(false) @@ -138,13 +136,11 @@ export const ProfileFeedgens = React.forwardRef< ({item, index}: ListRenderItemInfo) => { if (item === EMPTY) { return ( - - - You have no feeds. - - + /> ) } else if (item === ERROR_ITEM) { return ( @@ -176,7 +172,7 @@ export const ProfileFeedgens = React.forwardRef< } return null }, - [error, refetch, onPressRetryLoadMore, pal, preferences, _], + [error, refetch, onPressRetryLoadMore, preferences, _], ) React.useEffect(() => { diff --git a/src/view/com/lists/MyLists.tsx b/src/view/com/lists/MyLists.tsx index 5ea95971ca..472d2688c7 100644 --- a/src/view/com/lists/MyLists.tsx +++ b/src/view/com/lists/MyLists.tsx @@ -9,7 +9,8 @@ import { ViewStyle, } from 'react-native' import {AppBskyGraphDefs as GraphDefs} from '@atproto/api' -import {Trans} from '@lingui/macro' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' @@ -17,11 +18,10 @@ import {MyListsFilter, useMyListsQuery} from '#/state/queries/my-lists' import {useAnalytics} from 'lib/analytics/analytics' import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' +import {EmptyState} from 'view/com/util/EmptyState' import {ErrorMessage} from '../util/error/ErrorMessage' import {List} from '../util/List' -import {Text} from '../util/text/Text' import {ListCard} from './ListCard' -import hairlineWidth = StyleSheet.hairlineWidth const LOADING = {_reactKey: '__loading__'} const EMPTY = {_reactKey: '__empty__'} @@ -42,6 +42,7 @@ export function MyLists({ }) { const pal = usePalette('default') const {track} = useAnalytics() + const {_} = useLingui() const [isPTRing, setIsPTRing] = React.useState(false) const {data, isFetching, isFetched, isError, error, refetch} = useMyListsQuery(filter) @@ -83,14 +84,12 @@ export function MyLists({ ({item, index}: {item: any; index: number}) => { if (item === EMPTY) { return ( - - - You have no lists. - - + /> ) } else if (item === ERROR_ITEM) { return ( @@ -118,7 +117,7 @@ export function MyLists({ /> ) }, - [error, onRefresh, renderItem, pal], + [error, onRefresh, renderItem, _], ) if (inline) { diff --git a/src/view/com/lists/ProfileLists.tsx b/src/view/com/lists/ProfileLists.tsx index d1ef05f124..8c3a151fa8 100644 --- a/src/view/com/lists/ProfileLists.tsx +++ b/src/view/com/lists/ProfileLists.tsx @@ -7,7 +7,7 @@ import { View, ViewStyle, } from 'react-native' -import {msg, Trans} from '@lingui/macro' +import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' @@ -17,12 +17,11 @@ import {logger} from '#/logger' import {isNative} from '#/platform/detection' import {RQKEY, useProfileListsQuery} from '#/state/queries/profile-lists' import {useAnalytics} from 'lib/analytics/analytics' -import {usePalette} from 'lib/hooks/usePalette' import {FeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' +import {EmptyState} from 'view/com/util/EmptyState' import {ErrorMessage} from '../util/error/ErrorMessage' import {List, ListRef} from '../util/List' import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {Text} from '../util/text/Text' import {ListCard} from './ListCard' const LOADING = {_reactKey: '__loading__'} @@ -49,7 +48,6 @@ export const ProfileLists = React.forwardRef( {did, scrollElRef, headerOffset, enabled, style, testID, setScrollViewTag}, ref, ) { - const pal = usePalette('default') const theme = useTheme() const {track} = useAnalytics() const {_} = useLingui() @@ -142,11 +140,11 @@ export const ProfileLists = React.forwardRef( ({item, index}: ListRenderItemInfo) => { if (item === EMPTY) { return ( - - - You have no lists. - - + ) } else if (item === ERROR_ITEM) { return ( @@ -176,7 +174,7 @@ export const ProfileLists = React.forwardRef( /> ) }, - [error, refetch, onPressRetryLoadMore, pal, _], + [error, refetch, onPressRetryLoadMore, _], ) React.useEffect(() => { diff --git a/src/view/com/modals/UserAddRemoveLists.tsx b/src/view/com/modals/UserAddRemoveLists.tsx index 8a61b1a707..995af7da2c 100644 --- a/src/view/com/modals/UserAddRemoveLists.tsx +++ b/src/view/com/modals/UserAddRemoveLists.tsx @@ -61,7 +61,7 @@ export function Component({ return [pal.border, {height: screenHeight / 1.5}] } - return [pal.border, {flex: 1}] + return [pal.border, {flex: 1, borderTopWidth: 1}] }, [pal.border, screenHeight]) return ( @@ -233,11 +233,7 @@ const styles = StyleSheet.create({ textAlign: 'center', fontWeight: 'bold', fontSize: 24, - marginBottom: 10, - }, - list: { - flex: 1, - borderTopWidth: 1, + marginBottom: 12, }, btns: { position: 'relative', diff --git a/src/view/com/util/EmptyState.tsx b/src/view/com/util/EmptyState.tsx index 7486b212fa..150a16aaa3 100644 --- a/src/view/com/util/EmptyState.tsx +++ b/src/view/com/util/EmptyState.tsx @@ -8,6 +8,7 @@ import { import {Text} from './text/Text' import {UserGroupIcon} from 'lib/icons' import {usePalette} from 'lib/hooks/usePalette' +import {isWeb} from 'platform/detection' export function EmptyState({ testID, @@ -22,7 +23,9 @@ export function EmptyState({ }) { const pal = usePalette('default') return ( - + {icon === 'user-group' ? ( @@ -48,9 +51,9 @@ export function EmptyState({ const styles = StyleSheet.create({ container: { - paddingVertical: 20, + paddingVertical: 24, paddingHorizontal: 36, - borderTopWidth: 1, + borderTopWidth: isWeb ? 1 : undefined, }, iconContainer: { flexDirection: 'row', diff --git a/src/view/screens/Lists.tsx b/src/view/screens/Lists.tsx index 0dd2febcb6..12ea6f48be 100644 --- a/src/view/screens/Lists.tsx +++ b/src/view/screens/Lists.tsx @@ -52,12 +52,12 @@ export function ListsScreen({}: Props) { + style={[ + pal.border, + isMobile + ? {borderBottomWidth: hairlineWidth} + : {borderLeftWidth: hairlineWidth, borderRightWidth: hairlineWidth}, + ]}> User Lists From 8c596b61c018e0156a92fe7d0ca7c4b9bcd2d46d Mon Sep 17 00:00:00 2001 From: Hailey Date: Mon, 3 Jun 2024 16:34:37 -0700 Subject: [PATCH 275/277] fix top border width for user list updates (#4340) * fix nits in add/remove users from list screen invert check use `ViewHeader` simplify replace with hairline width fix top border width for user list updates * dont use `ViewHeader` * update one more hairline --- src/view/com/modals/UserAddRemoveLists.tsx | 55 ++++++++++++---------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/src/view/com/modals/UserAddRemoveLists.tsx b/src/view/com/modals/UserAddRemoveLists.tsx index 995af7da2c..88506da570 100644 --- a/src/view/com/modals/UserAddRemoveLists.tsx +++ b/src/view/com/modals/UserAddRemoveLists.tsx @@ -6,28 +6,30 @@ import { View, } from 'react-native' import {AppBskyGraphDefs as GraphDefs} from '@atproto/api' -import {Text} from '../util/text/Text' -import {UserAvatar} from '../util/UserAvatar' -import {MyLists} from '../lists/MyLists' -import {Button} from '../util/forms/Button' -import * as Toast from '../util/Toast' -import {sanitizeDisplayName} from 'lib/strings/display-names' -import {sanitizeHandle} from 'lib/strings/handles' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {isWeb, isAndroid, isMobileWeb} from 'platform/detection' -import {Trans, msg} from '@lingui/macro' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' + +import {cleanError} from '#/lib/strings/errors' import {useModalControls} from '#/state/modals' import { - useDangerousListMembershipsQuery, getMembership, ListMembersip, + useDangerousListMembershipsQuery, useListMembershipAddMutation, useListMembershipRemoveMutation, } from '#/state/queries/list-memberships' -import {cleanError} from '#/lib/strings/errors' import {useSession} from '#/state/session' +import {usePalette} from 'lib/hooks/usePalette' +import {sanitizeDisplayName} from 'lib/strings/display-names' +import {sanitizeHandle} from 'lib/strings/handles' +import {s} from 'lib/styles' +import {isAndroid, isMobileWeb, isWeb} from 'platform/detection' +import {MyLists} from '../lists/MyLists' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {UserAvatar} from '../util/UserAvatar' +import hairlineWidth = StyleSheet.hairlineWidth export const snapPoints = ['fullscreen'] @@ -61,12 +63,23 @@ export function Component({ return [pal.border, {height: screenHeight / 1.5}] } - return [pal.border, {flex: 1, borderTopWidth: 1}] + return [pal.border, {flex: 1, borderTopWidth: hairlineWidth}] }, [pal.border, screenHeight]) return ( - + Update {displayName} in Lists @@ -229,12 +240,6 @@ const styles = StyleSheet.create({ container: { paddingHorizontal: isWeb ? 0 : 16, }, - title: { - textAlign: 'center', - fontWeight: 'bold', - fontSize: 24, - marginBottom: 12, - }, btns: { position: 'relative', flexDirection: 'row', @@ -243,7 +248,7 @@ const styles = StyleSheet.create({ gap: 10, paddingTop: 10, paddingBottom: isAndroid ? 10 : 0, - borderTopWidth: 1, + borderTopWidth: hairlineWidth, }, footerBtn: { paddingHorizontal: 24, From 3b55f61d5f0111287be56b76a1a342256d3f2a95 Mon Sep 17 00:00:00 2001 From: dan Date: Tue, 4 Jun 2024 00:38:12 +0100 Subject: [PATCH 276/277] Avi follow experiment tweaks (#4341) * Move avi button to visually align content * Fix wrong prop warning * Remove avi follow from post thread --- src/view/com/post-thread/PostThreadItem.tsx | 17 ++++++----------- src/view/com/posts/AviFollowButton.tsx | 4 ++-- src/view/com/posts/AviFollowButton.web.tsx | 6 +++++- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 096305a230..4827aef512 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -40,7 +40,6 @@ import {LabelsOnMyPost} from '../../../components/moderation/LabelsOnMe' import {PostAlerts} from '../../../components/moderation/PostAlerts' import {PostHider} from '../../../components/moderation/PostHider' import {getTranslatorLink, isPostInLanguage} from '../../../locale/helpers' -import {AviFollowButton} from '../posts/AviFollowButton' import {WhoCanReply} from '../threadgate/WhoCanReply' import {ErrorMessage} from '../util/error/ErrorMessage' import {Link, TextLink} from '../util/Link' @@ -472,16 +471,12 @@ let PostThreadItemLoaded = ({ {/* If we are in threaded mode, the avatar is rendered in PostMeta */} {!isThreadedChild && ( - - - + {showChildReplyLine && ( Date: Tue, 4 Jun 2024 02:49:50 +0300 Subject: [PATCH 277/277] Composer - add animated bottom border (#4325) * start adding bottom border (wip) * add content change listener * add layout listener and move to hook * remove logs * use square-er image icon * visually align bottom bar icons * reduce keyboard vertical offset slightly * only add border to top/bottom * run worklet function on UI thread --- .../icons/image_stroke2_corner0_rounded.svg | 2 +- src/components/icons/Image.tsx | 2 +- src/view/com/composer/Composer.tsx | 145 +++++++++++++++--- .../com/composer/threadgate/ThreadgateBtn.tsx | 9 +- 4 files changed, 130 insertions(+), 28 deletions(-) diff --git a/assets/icons/image_stroke2_corner0_rounded.svg b/assets/icons/image_stroke2_corner0_rounded.svg index 389020b0d1..3363e186db 100644 --- a/assets/icons/image_stroke2_corner0_rounded.svg +++ b/assets/icons/image_stroke2_corner0_rounded.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/components/icons/Image.tsx b/src/components/icons/Image.tsx index 03702a0f46..eac296ad42 100644 --- a/src/components/icons/Image.tsx +++ b/src/components/icons/Image.tsx @@ -1,5 +1,5 @@ import {createSinglePathSVG} from './TEMPLATE' export const Image_Stroke2_Corner0_Rounded = createSinglePathSVG({ - path: 'M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5Zm16 0H5v7.213l1.246-.932.044-.03a3 3 0 0 1 3.863.454c1.468 1.58 2.941 2.749 4.847 2.749 1.703 0 2.855-.555 4-1.618V5Zm0 10.357c-1.112.697-2.386 1.097-4 1.097-2.81 0-4.796-1.755-6.313-3.388a1 1 0 0 0-1.269-.164L5 14.712V19h14v-3.643ZM15 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm-3 1a3 3 0 1 1 6 0 3 3 0 0 1-6 0Z', + path: 'M3 4a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4Zm2 1v7.213l1.246-.932.044-.03a3 3 0 0 1 3.863.454c1.468 1.58 2.941 2.749 4.847 2.749 1.703 0 2.855-.555 4-1.618V5H5Zm14 10.357c-1.112.697-2.386 1.097-4 1.097-2.81 0-4.796-1.755-6.313-3.388a1 1 0 0 0-1.269-.164L5 14.712V19h14v-3.643ZM15 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2Zm-3 1a3 3 0 1 1 6 0 3 3 0 0 1-6 0Z', }) diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index b1c020a105..ad79cdb58c 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -9,6 +9,7 @@ import React, { import { ActivityIndicator, Keyboard, + LayoutChangeEvent, StyleSheet, TouchableOpacity, View, @@ -19,6 +20,7 @@ import { } from 'react-native-keyboard-controller' import Animated, { interpolateColor, + runOnUI, useAnimatedStyle, useSharedValue, withTiming, @@ -170,22 +172,6 @@ export const ComposePost = observer(function ComposePost({ [insets, isKeyboardVisible], ) - const hasScrolled = useSharedValue(0) - const scrollHandler = useAnimatedScrollHandler({ - onScroll: event => { - hasScrolled.value = withTiming(event.contentOffset.y > 0 ? 1 : 0) - }, - }) - const topBarAnimatedStyle = useAnimatedStyle(() => { - return { - borderColor: interpolateColor( - hasScrolled.value, - [0, 1], - ['transparent', t.atoms.border_contrast_medium.borderColor], - ), - } - }) - const onPressCancel = useCallback(() => { if (graphemeLength > 0 || !gallery.isEmpty) { closeAllDialogs() @@ -395,13 +381,21 @@ export const ComposePost = observer(function ComposePost({ [setExtLink], ) + const { + scrollHandler, + onScrollViewContentSizeChange, + onScrollViewLayout, + topBarAnimatedStyle, + bottomBarAnimatedStyle, + } = useAnimatedBorders() + return ( <> + keyboardVerticalOffset={replyTo ? 110 : isAndroid ? 180 : 140}> + keyboardShouldPersistTaps="always" + onContentSizeChange={onScrollViewContentSizeChange} + onLayout={onScrollViewLayout}> {replyTo ? : undefined} {replyTo ? null : ( - + )} (null) } +function useAnimatedBorders() { + const t = useTheme() + const hasScrolledTop = useSharedValue(0) + const hasScrolledBottom = useSharedValue(0) + const contentOffset = useSharedValue(0) + const scrollViewHeight = useSharedValue(Infinity) + const contentHeight = useSharedValue(0) + + /** + * Make sure to run this on the UI thread! + */ + const showHideBottomBorder = useCallback( + ({ + newContentHeight, + newContentOffset, + newScrollViewHeight, + }: { + newContentHeight?: number + newContentOffset?: number + newScrollViewHeight?: number + }) => { + 'worklet' + + if (typeof newContentHeight === 'number') + contentHeight.value = newContentHeight + if (typeof newContentOffset === 'number') + contentOffset.value = newContentOffset + if (typeof newScrollViewHeight === 'number') + scrollViewHeight.value = newScrollViewHeight + + hasScrolledBottom.value = withTiming( + contentHeight.value - contentOffset.value >= scrollViewHeight.value + ? 1 + : 0, + ) + }, + [contentHeight, contentOffset, scrollViewHeight, hasScrolledBottom], + ) + + const scrollHandler = useAnimatedScrollHandler({ + onScroll: event => { + hasScrolledTop.value = withTiming(event.contentOffset.y > 0 ? 1 : 0) + + // already on UI thread + showHideBottomBorder({ + newContentOffset: event.contentOffset.y, + newContentHeight: event.contentSize.height, + newScrollViewHeight: event.layoutMeasurement.height, + }) + }, + }) + + const onScrollViewContentSizeChange = useCallback( + (_width: number, height: number) => { + runOnUI(showHideBottomBorder)({ + newContentHeight: height, + }) + }, + [showHideBottomBorder], + ) + + const onScrollViewLayout = useCallback( + (evt: LayoutChangeEvent) => { + runOnUI(showHideBottomBorder)({ + newScrollViewHeight: evt.nativeEvent.layout.height, + }) + }, + [showHideBottomBorder], + ) + + const topBarAnimatedStyle = useAnimatedStyle(() => { + return { + borderBottomWidth: hairlineWidth, + borderColor: interpolateColor( + hasScrolledTop.value, + [0, 1], + ['transparent', t.atoms.border_contrast_medium.borderColor], + ), + } + }) + const bottomBarAnimatedStyle = useAnimatedStyle(() => { + return { + borderTopWidth: hairlineWidth, + borderColor: interpolateColor( + hasScrolledBottom.value, + [0, 1], + ['transparent', t.atoms.border_contrast_medium.borderColor], + ), + } + }) + + return { + scrollHandler, + onScrollViewContentSizeChange, + onScrollViewLayout, + topBarAnimatedStyle, + bottomBarAnimatedStyle, + } +} + const styles = StyleSheet.create({ - topbar: { - borderBottomWidth: StyleSheet.hairlineWidth, - }, + topbar: {}, topbarDesktop: { paddingTop: 10, paddingBottom: 10, @@ -698,7 +796,8 @@ const styles = StyleSheet.create({ bottomBar: { flexDirection: 'row', paddingVertical: 4, - paddingLeft: 8, + // should be 8 but due to visual alignment we have to fudge it + paddingLeft: 7, paddingRight: 16, alignItems: 'center', borderTopWidth: hairlineWidth, diff --git a/src/view/com/composer/threadgate/ThreadgateBtn.tsx b/src/view/com/composer/threadgate/ThreadgateBtn.tsx index afc9f5bfad..2aefdfbbf3 100644 --- a/src/view/com/composer/threadgate/ThreadgateBtn.tsx +++ b/src/view/com/composer/threadgate/ThreadgateBtn.tsx @@ -1,5 +1,6 @@ import React from 'react' -import {Keyboard, View} from 'react-native' +import {Keyboard, StyleProp, ViewStyle} from 'react-native' +import Animated, {AnimatedStyle} from 'react-native-reanimated' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -16,9 +17,11 @@ import {Group3_Stroke2_Corner0_Rounded as Group} from '#/components/icons/Group' export function ThreadgateBtn({ threadgate, onChange, + style, }: { threadgate: ThreadgateSetting[] onChange: (v: ThreadgateSetting[]) => void + style?: StyleProp> }) { const {track} = useAnalytics() const {_} = useLingui() @@ -46,7 +49,7 @@ export function ThreadgateBtn({ : _(msg`Some people can reply`) return ( - + - + ) }