diff options
Diffstat (limited to 'src')
49 files changed, 3164 insertions, 3513 deletions
diff --git a/src/alf/index.tsx b/src/alf/index.tsx index 27738e91d..f0a0ede7a 100644 --- a/src/alf/index.tsx +++ b/src/alf/index.tsx @@ -16,6 +16,7 @@ type BreakpointName = keyof typeof breakpoints const breakpoints: { [key: string]: number } = { + gtPhone: 500, gtMobile: 800, gtTablet: 1300, } @@ -26,6 +27,7 @@ function getActiveBreakpoints({width}: {width: number}) { return { active: active[active.length - 1], + gtPhone: active.includes('gtPhone'), gtMobile: active.includes('gtMobile'), gtTablet: active.includes('gtTablet'), } @@ -39,6 +41,7 @@ export const Context = React.createContext<{ theme: themes.Theme breakpoints: { active: BreakpointName | undefined + gtPhone: boolean gtMobile: boolean gtTablet: boolean } @@ -47,6 +50,7 @@ export const Context = React.createContext<{ theme: themes.light, breakpoints: { active: undefined, + gtPhone: false, gtMobile: false, gtTablet: false, }, diff --git a/src/components/Dialog/types.ts b/src/components/Dialog/types.ts index 9e7ad3c04..b1a46f853 100644 --- a/src/components/Dialog/types.ts +++ b/src/components/Dialog/types.ts @@ -1,5 +1,5 @@ import React from 'react' -import type {AccessibilityProps} from 'react-native' +import type {AccessibilityProps, GestureResponderEvent} from 'react-native' import {BottomSheetProps} from '@gorhom/bottom-sheet' import {ViewStyleProp} from '#/alf' @@ -10,9 +10,15 @@ type A11yProps = Required<AccessibilityProps> * Mutated by useImperativeHandle to provide a public API for controlling the * dialog. The methods here will actually become the handlers defined within * the `Dialog.Outer` component. + * + * `Partial<GestureResponderEvent>` here allows us to add this directly to the + * `onPress` prop of a button, for example. If this type was not added, we + * would need to create a function to wrap `.open()` with. */ export type DialogControlRefProps = { - open: (options?: DialogControlOpenOptions) => void + open: ( + options?: DialogControlOpenOptions & Partial<GestureResponderEvent>, + ) => void close: (callback?: () => void) => void } diff --git a/src/components/Error.tsx b/src/components/Error.tsx new file mode 100644 index 000000000..1dbf68284 --- /dev/null +++ b/src/components/Error.tsx @@ -0,0 +1,90 @@ +import React from 'react' + +import {CenteredView} from 'view/com/util/Views' +import {atoms as a, useBreakpoints, useTheme} from '#/alf' +import {Text} from '#/components/Typography' +import {View} from 'react-native' +import {Button} from '#/components/Button' +import {useNavigation} from '@react-navigation/core' +import {NavigationProp} from 'lib/routes/types' +import {StackActions} from '@react-navigation/native' +import {router} from '#/routes' + +export function Error({ + title, + message, + onRetry, +}: { + title?: string + message?: string + onRetry?: () => unknown +}) { + const navigation = useNavigation<NavigationProp>() + const t = useTheme() + const {gtMobile} = useBreakpoints() + + const canGoBack = navigation.canGoBack() + const onGoBack = React.useCallback(() => { + if (canGoBack) { + navigation.goBack() + } else { + navigation.navigate('HomeTab') + + // Checking the state for routes ensures that web doesn't encounter errors while going back + if (navigation.getState()?.routes) { + navigation.dispatch(StackActions.push(...router.matchPath('/'))) + } else { + navigation.navigate('HomeTab') + navigation.dispatch(StackActions.popToTop()) + } + } + }, [navigation, canGoBack]) + + return ( + <CenteredView + style={[ + a.flex_1, + a.align_center, + !gtMobile ? a.justify_between : a.gap_5xl, + t.atoms.border_contrast_low, + {paddingTop: 175, paddingBottom: 110}, + ]} + sideBorders> + <View style={[a.w_full, a.align_center, a.gap_lg]}> + <Text style={[a.font_bold, a.text_3xl]}>{title}</Text> + <Text + style={[ + a.text_md, + a.text_center, + t.atoms.text_contrast_high, + {lineHeight: 1.4}, + gtMobile && {width: 450}, + ]}> + {message} + </Text> + </View> + <View style={[a.gap_md, gtMobile ? {width: 350} : [a.w_full, a.px_lg]]}> + {onRetry && ( + <Button + variant="solid" + color="primary" + label="Click here" + onPress={onRetry} + size="large" + style={[a.rounded_sm, a.overflow_hidden, {paddingVertical: 10}]}> + Retry + </Button> + )} + <Button + variant="solid" + color={onRetry ? 'secondary' : 'primary'} + label="Click here" + onPress={onGoBack} + size="large" + style={[a.rounded_sm, a.overflow_hidden, {paddingVertical: 10}]}> + Go Back + </Button> + </View> + </CenteredView> + ) +} diff --git a/src/components/LabelingServiceCard/index.tsx b/src/components/LabelingServiceCard/index.tsx index 6d0613511..f924f0f59 100644 --- a/src/components/LabelingServiceCard/index.tsx +++ b/src/components/LabelingServiceCard/index.tsx @@ -104,7 +104,7 @@ export function Default({ }: LabelingServiceProps & ViewStyleProp) { return ( <Outer style={style}> - <Avatar /> + <Avatar avatar={labeler.creator.avatar} /> <Content> <Title value={getLabelingServiceTitle({ diff --git a/src/components/Lists.tsx b/src/components/Lists.tsx index 7476a8e2f..8e4a58007 100644 --- a/src/components/Lists.tsx +++ b/src/components/Lists.tsx @@ -1,27 +1,28 @@ import React from 'react' import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {View} from 'react-native' +import {useLingui} from '@lingui/react' +import {Trans, msg} from '@lingui/macro' + import {CenteredView} from 'view/com/util/Views' import {Loader} from '#/components/Loader' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {cleanError} from 'lib/strings/errors' -import {Button, ButtonText} from '#/components/Button' +import {Button} from '#/components/Button' import {Text} from '#/components/Typography' -import {StackActions} from '@react-navigation/native' -import {router} from '#/routes' -import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped' +import {Error} from '#/components/Error' export function ListFooter({ isFetching, isError, error, onRetry, + height, }: { - isFetching: boolean - isError: boolean + isFetching?: boolean + isError?: boolean error?: string onRetry?: () => Promise<unknown> + height?: number }) { const t = useTheme() @@ -30,11 +31,10 @@ export function ListFooter({ style={[ a.w_full, a.align_center, - a.justify_center, a.border_t, a.pb_lg, t.atoms.border_contrast_low, - {height: 180}, + {height: height ?? 180, paddingTop: 30}, ]}> {isFetching ? ( <Loader size="xl" /> @@ -54,7 +54,7 @@ function ListFooterMaybeError({ error, onRetry, }: { - isError: boolean + isError?: boolean error?: string onRetry?: () => Promise<unknown> }) { @@ -130,126 +130,72 @@ export function ListMaybePlaceholder({ isLoading, isEmpty, isError, - empty, - error, - notFoundType = 'page', + emptyTitle, + emptyMessage, + errorTitle, + errorMessage, + emptyType = 'page', onRetry, }: { isLoading: boolean - isEmpty: boolean - isError: boolean - empty?: string - error?: string - notFoundType?: 'page' | 'results' + isEmpty?: boolean + isError?: boolean + emptyTitle?: string + emptyMessage?: string + errorTitle?: string + errorMessage?: string + emptyType?: 'page' | 'results' onRetry?: () => Promise<unknown> }) { - const navigation = useNavigationDeduped() const t = useTheme() + const {_} = useLingui() const {gtMobile, gtTablet} = useBreakpoints() const {_} = useLingui() - const canGoBack = navigation.canGoBack() - const onGoBack = React.useCallback(() => { - if (canGoBack) { - navigation.goBack() - } else { - navigation.navigate('HomeTab') - - // Checking the state for routes ensures that web doesn't encounter errors while going back - if (navigation.getState()?.routes) { - navigation.dispatch(StackActions.push(...router.matchPath('/'))) - } else { - navigation.navigate('HomeTab') - navigation.dispatch(StackActions.popToTop()) - } - } - }, [navigation, canGoBack]) - - if (!isEmpty) return null + if (!isLoading && isError) { + return ( + <Error + title={errorTitle ?? _(msg`Oops!`)} + message={errorMessage ?? _(`Something went wrong!`)} + onRetry={onRetry} + /> + ) + } - return ( - <CenteredView - style={[ - a.flex_1, - a.align_center, - !gtMobile ? a.justify_between : a.gap_5xl, - t.atoms.border_contrast_low, - {paddingTop: 175, paddingBottom: 110}, - ]} - sideBorders={gtMobile} - topBorder={!gtTablet}> - {isLoading ? ( + if (isLoading) { + return ( + <CenteredView + style={[ + a.flex_1, + a.align_center, + !gtMobile ? a.justify_between : a.gap_5xl, + t.atoms.border_contrast_low, + {paddingTop: 175, paddingBottom: 110}, + ]} + sideBorders={gtMobile} + topBorder={!gtTablet}> <View style={[a.w_full, a.align_center, {top: 100}]}> <Loader size="xl" /> </View> - ) : ( - <> - <View style={[a.w_full, a.align_center, a.gap_lg]}> - <Text style={[a.font_bold, a.text_3xl]}> - {isError ? ( - <Trans>Oops!</Trans> - ) : isEmpty ? ( - <> - {notFoundType === 'results' ? ( - <Trans>No results found</Trans> - ) : ( - <Trans>Page not found</Trans> - )} - </> - ) : undefined} - </Text> + </CenteredView> + ) + } - {isError ? ( - <Text - style={[a.text_md, a.text_center, t.atoms.text_contrast_high]}> - {error ? error : <Trans>Something went wrong!</Trans>} - </Text> - ) : isEmpty ? ( - <Text - style={[a.text_md, a.text_center, t.atoms.text_contrast_high]}> - {empty ? ( - empty - ) : ( - <Trans> - We're sorry! We can't find the page you were looking for. - </Trans> - )} - </Text> - ) : undefined} - </View> - <View - style={[a.gap_md, !gtMobile ? [a.w_full, a.px_lg] : {width: 350}]}> - {isError && onRetry && ( - <Button - variant="solid" - color="primary" - label={_(msg`Click here to retry`)} - onPress={onRetry} - size="large" - style={[ - a.rounded_sm, - a.overflow_hidden, - {paddingVertical: 10}, - ]}> - <ButtonText> - <Trans>Retry</Trans> - </ButtonText> - </Button> - )} - <Button - variant="solid" - color={isError && onRetry ? 'secondary' : 'primary'} - label={_(msg`Click here to go back`)} - onPress={onGoBack} - size="large" - style={[a.rounded_sm, a.overflow_hidden, {paddingVertical: 10}]}> - <ButtonText> - <Trans>Go Back</Trans> - </ButtonText> - </Button> - </View> - </> - )} - </CenteredView> - ) + if (isEmpty) { + return ( + <Error + title={ + emptyTitle ?? + (emptyType === 'results' + ? _(msg`No results found`) + : _(msg`Page not found`)) + } + message={ + emptyMessage ?? + _(msg`We're sorry! We can't find the page you were looking for.`) + } + onRetry={onRetry} + /> + ) + } } diff --git a/src/components/ReportDialog/SelectLabelerView.tsx b/src/components/ReportDialog/SelectLabelerView.tsx index 300114fc4..817426355 100644 --- a/src/components/ReportDialog/SelectLabelerView.tsx +++ b/src/components/ReportDialog/SelectLabelerView.tsx @@ -5,12 +5,13 @@ import {useLingui} from '@lingui/react' import {AppBskyLabelerDefs} from '@atproto/api' export {useDialogControl as useReportDialogControl} from '#/components/Dialog' +import {getLabelingServiceTitle} from '#/lib/moderation' -import {atoms as a, useTheme} from '#/alf' +import {atoms as a, useTheme, useBreakpoints} from '#/alf' import {Text} from '#/components/Typography' import {Button, useButtonContext} from '#/components/Button' import {Divider} from '#/components/Divider' -import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' +import * as LabelingServiceCard from '#/components/LabelingServiceCard' import {ReportDialogProps} from './types' @@ -22,31 +23,29 @@ export function SelectLabelerView({ }) { const t = useTheme() const {_} = useLingui() + const {gtMobile} = useBreakpoints() return ( <View style={[a.gap_lg]}> - <View style={[a.justify_center, a.gap_sm]}> + <View style={[a.justify_center, gtMobile ? a.gap_sm : a.gap_xs]}> <Text style={[a.text_2xl, a.font_bold]}> - <Trans>Select moderation service</Trans> + <Trans>Select moderator</Trans> </Text> <Text style={[a.text_md, t.atoms.text_contrast_medium]}> - <Trans>Who do you want to send this report to?</Trans> + <Trans>To whom would you like to send this report?</Trans> </Text> </View> <Divider /> - <View style={[a.gap_sm, {marginHorizontal: a.p_md.padding * -1}]}> + <View style={[a.gap_xs, {marginHorizontal: a.p_md.padding * -1}]}> {props.labelers.map(labeler => { return ( <Button key={labeler.creator.did} label={_(msg`Send report to ${labeler.creator.displayName}`)} onPress={() => props.onSelectLabeler(labeler.creator.did)}> - <LabelerButton - title={labeler.creator.displayName || labeler.creator.handle} - description={labeler.creator.description || ''} - /> + <LabelerButton labeler={labeler} /> </Button> ) })} @@ -56,11 +55,9 @@ export function SelectLabelerView({ } function LabelerButton({ - title, - description, + labeler, }: { - title: string - description: string + labeler: AppBskyLabelerDefs.LabelerViewDetailed }) { const t = useTheme() const {hovered, pressed} = useButtonContext() @@ -75,41 +72,21 @@ function LabelerButton({ }, [t]) return ( - <View - style={[ - a.w_full, - a.flex_row, - a.align_center, - a.justify_between, - a.p_md, - a.rounded_md, - {paddingRight: 70}, - interacted && styles.interacted, - ]}> - <View style={[a.flex_1, a.gap_xs]}> - <Text style={[a.text_md, a.font_bold, t.atoms.text_contrast_medium]}> - {title} - </Text> - <Text style={[a.leading_tight, {maxWidth: 400}]} numberOfLines={3}> - {description} - </Text> - </View> - - <View - style={[ - a.absolute, - a.inset_0, - a.justify_center, - a.pr_md, - {left: 'auto'}, - ]}> - <ChevronRight - size="md" - fill={ - hovered ? t.palette.primary_500 : t.atoms.text_contrast_low.color - } + <LabelingServiceCard.Outer + style={[a.p_md, a.rounded_sm, interacted && styles.interacted]}> + <LabelingServiceCard.Avatar avatar={labeler.creator.avatar} /> + <LabelingServiceCard.Content> + <LabelingServiceCard.Title + value={getLabelingServiceTitle({ + displayName: labeler.creator.displayName, + handle: labeler.creator.handle, + })} /> - </View> - </View> + <Text + style={[t.atoms.text_contrast_medium, a.text_sm, a.font_semibold]}> + @{labeler.creator.handle} + </Text> + </LabelingServiceCard.Content> + </LabelingServiceCard.Outer> ) } diff --git a/src/components/ReportDialog/SelectReportOptionView.tsx b/src/components/ReportDialog/SelectReportOptionView.tsx index 037a62fce..bacf5a867 100644 --- a/src/components/ReportDialog/SelectReportOptionView.tsx +++ b/src/components/ReportDialog/SelectReportOptionView.tsx @@ -9,7 +9,7 @@ import {DMCA_LINK} from '#/components/ReportDialog/const' import {Link} from '#/components/Link' export {useDialogControl as useReportDialogControl} from '#/components/Dialog' -import {atoms as a, useTheme} from '#/alf' +import {atoms as a, useTheme, useBreakpoints} from '#/alf' import {Text} from '#/components/Typography' import { Button, @@ -35,6 +35,7 @@ export function SelectReportOptionView({ }) { const t = useTheme() const {_} = useLingui() + const {gtMobile} = useBreakpoints() const allReportOptions = useReportOptions() const reportOptions = allReportOptions[props.params.type] @@ -76,7 +77,7 @@ export function SelectReportOptionView({ </Button> ) : null} - <View style={[a.justify_center, a.gap_sm]}> + <View style={[a.justify_center, gtMobile ? a.gap_sm : a.gap_xs]}> <Text style={[a.text_2xl, a.font_bold]}>{i18n.title}</Text> <Text style={[a.text_md, t.atoms.text_contrast_medium]}> {i18n.description} diff --git a/src/components/dialogs/BirthDateSettings.tsx b/src/components/dialogs/BirthDateSettings.tsx index 62c95c78d..4a3e96e56 100644 --- a/src/components/dialogs/BirthDateSettings.tsx +++ b/src/components/dialogs/BirthDateSettings.tsx @@ -1,48 +1,64 @@ import React from 'react' import {useLingui} from '@lingui/react' import {Trans, msg} from '@lingui/macro' +import {View} from 'react-native' import * as Dialog from '#/components/Dialog' import {Text} from '../Typography' import {DateInput} from '#/view/com/util/forms/DateInput' import {logger} from '#/logger' import { + usePreferencesQuery, usePreferencesSetBirthDateMutation, UsePreferencesQueryResponse, } from '#/state/queries/preferences' -import {Button, ButtonText} from '../Button' +import {Button, ButtonIcon, ButtonText} from '../Button' import {atoms as a, useTheme} from '#/alf' import {ErrorMessage} from '#/view/com/util/error/ErrorMessage' import {cleanError} from '#/lib/strings/errors' -import {ActivityIndicator, View} from 'react-native' import {isIOS, isWeb} from '#/platform/detection' +import {Loader} from '#/components/Loader' export function BirthDateSettingsDialog({ control, - preferences, }: { control: Dialog.DialogControlProps - preferences: UsePreferencesQueryResponse | undefined }) { + const t = useTheme() const {_} = useLingui() - const {isPending, isError, error, mutateAsync} = - usePreferencesSetBirthDateMutation() + const {isLoading, error, data: preferences} = usePreferencesQuery() return ( <Dialog.Outer control={control}> <Dialog.Handle /> + <Dialog.ScrollableInner label={_(msg`My Birthday`)}> - {preferences && !isPending ? ( - <BirthdayInner - control={control} - preferences={preferences} - isError={isError} - error={error} - setBirthDate={mutateAsync} + <View style={[a.gap_sm, a.pb_lg]}> + <Text style={[a.text_2xl, a.font_bold]}> + <Trans>My Birthday</Trans> + </Text> + <Text style={[a.text_md, t.atoms.text_contrast_medium]}> + <Trans>This information is not shared with other users.</Trans> + </Text> + </View> + + {isLoading ? ( + <Loader size="xl" /> + ) : error || !preferences ? ( + <ErrorMessage + message={ + error?.toString() || + _( + msg`We were unable to load your birth date preferences. Please try again.`, + ) + } + style={[a.rounded_sm]} /> ) : ( - <ActivityIndicator size="large" style={a.my_5xl} /> + <BirthdayInner control={control} preferences={preferences} /> )} + + <Dialog.Close /> </Dialog.ScrollableInner> </Dialog.Outer> ) @@ -51,20 +67,18 @@ export function BirthDateSettingsDialog({ function BirthdayInner({ control, preferences, - isError, - error, - setBirthDate, }: { control: Dialog.DialogControlProps preferences: UsePreferencesQueryResponse - isError: boolean - error: unknown - setBirthDate: (args: {birthDate: Date}) => Promise<unknown> }) { const {_} = useLingui() const [date, setDate] = React.useState(preferences.birthDate || new Date()) - const t = useTheme() - + const { + isPending, + isError, + error, + mutateAsync: setBirthDate, + } = usePreferencesSetBirthDateMutation() const hasChanged = date !== preferences.birthDate const onSave = React.useCallback(async () => { @@ -74,21 +88,13 @@ function BirthdayInner({ await setBirthDate({birthDate: date}) } control.close() - } catch (e) { - logger.error(`setBirthDate failed`, {message: e}) + } catch (e: any) { + logger.error(`setBirthDate failed`, {message: e.message}) } }, [date, setBirthDate, control, hasChanged]) return ( <View style={a.gap_lg} testID="birthDateSettingsDialog"> - <View style={[a.gap_sm]}> - <Text style={[a.text_2xl, a.font_bold]}> - <Trans>My Birthday</Trans> - </Text> - <Text style={t.atoms.text_contrast_medium}> - <Trans>This information is not shared with other users.</Trans> - </Text> - </View> <View style={isIOS && [a.w_full, a.align_center]}> <DateInput handleAsUTC @@ -103,6 +109,7 @@ function BirthdayInner({ accessibilityLabelledBy="birthDate" /> </View> + {isError ? ( <ErrorMessage message={cleanError(error)} style={[a.rounded_sm]} /> ) : undefined} @@ -110,13 +117,14 @@ function BirthdayInner({ <View style={isWeb && [a.flex_row, a.justify_end]}> <Button label={hasChanged ? _(msg`Save birthday`) : _(msg`Done`)} - size={isWeb ? 'small' : 'medium'} + size="medium" onPress={onSave} variant="solid" color="primary"> <ButtonText> {hasChanged ? <Trans>Save</Trans> : <Trans>Done</Trans>} </ButtonText> + {isPending && <ButtonIcon icon={Loader} />} </Button> </View> </View> diff --git a/src/components/moderation/ModerationLabelPref.tsx b/src/components/moderation/ModerationLabelPref.tsx index f14550488..b16c24859 100644 --- a/src/components/moderation/ModerationLabelPref.tsx +++ b/src/components/moderation/ModerationLabelPref.tsx @@ -12,7 +12,7 @@ import { } from '#/state/queries/preferences' import {getLabelStrings} from '#/lib/moderation/useLabelInfo' -import {useTheme, atoms as a} from '#/alf' +import {useTheme, atoms as a, useBreakpoints} from '#/alf' import {Text} from '#/components/Typography' import {InlineLink} from '#/components/Link' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '../icons/CircleInfo' @@ -29,6 +29,7 @@ export function ModerationLabelPref({ }) { const {_, i18n} = useLingui() const t = useTheme() + const {gtPhone} = useBreakpoints() const isGlobalLabel = !labelValueDefinition.definedBy const {identifier} = labelValueDefinition @@ -57,6 +58,7 @@ export function ModerationLabelPref({ adultOnly && !preferences?.moderationPrefs.adultContentEnabled // are there any reasons we cant configure this label here? const cantConfigure = isGlobalLabel || adultDisabled + const showConfig = !disabled && (gtPhone || !cantConfigure) // adjust the pref based on whether warn is available let prefAdjusted = pref @@ -85,9 +87,19 @@ export function ModerationLabelPref({ ) return ( - <View style={[a.flex_row, a.gap_sm, a.px_lg, a.py_lg, a.justify_between]}> + <View + style={[ + a.flex_row, + a.gap_md, + a.px_lg, + a.py_lg, + a.justify_between, + a.flex_wrap, + ]}> <View style={[a.gap_xs, a.flex_1]}> - <Text style={[a.font_bold]}>{labelStrings.name}</Text> + <Text style={[a.font_bold, gtPhone ? a.text_sm : a.text_md]}> + {labelStrings.name} + </Text> <Text style={[t.atoms.text_contrast_medium, a.leading_snug]}> {labelStrings.description} </Text> @@ -113,40 +125,51 @@ export function ModerationLabelPref({ </View> )} </View> - {disabled ? ( - <></> - ) : cantConfigure ? ( - <View style={[{minHeight: 35}, a.px_sm, a.py_md]}> - <Text style={[a.font_bold, t.atoms.text_contrast_medium]}> - {currentPrefLabel} - </Text> - </View> - ) : ( - <View style={[{minHeight: 35}]}> - <ToggleButton.Group - label={_( - msg`Configure content filtering setting for category: ${labelStrings.name.toLowerCase()}`, - )} - values={[prefAdjusted]} - onChange={newPref => - mutate({ - label: identifier, - visibility: newPref[0] as LabelPreference, - labelerDid, - }) - }> - <ToggleButton.Button name="ignore" label={ignoreLabel}> - {ignoreLabel} - </ToggleButton.Button> - {canWarn && ( - <ToggleButton.Button name="warn" label={warnLabel}> - {warnLabel} - </ToggleButton.Button> - )} - <ToggleButton.Button name="hide" label={hideLabel}> - {hideLabel} - </ToggleButton.Button> - </ToggleButton.Group> + + {showConfig && ( + <View style={[gtPhone ? undefined : a.w_full]}> + {cantConfigure ? ( + <View + style={[ + {minHeight: 35}, + a.px_md, + a.py_md, + a.rounded_sm, + a.border, + t.atoms.border_contrast_low, + ]}> + <Text style={[a.font_bold, t.atoms.text_contrast_low]}> + {currentPrefLabel} + </Text> + </View> + ) : ( + <View style={[{minHeight: 35}]}> + <ToggleButton.Group + label={_( + msg`Configure content filtering setting for category: ${labelStrings.name.toLowerCase()}`, + )} + values={[prefAdjusted]} + onChange={newPref => + mutate({ + label: identifier, + visibility: newPref[0] as LabelPreference, + labelerDid, + }) + }> + <ToggleButton.Button name="ignore" label={ignoreLabel}> + {ignoreLabel} + </ToggleButton.Button> + {canWarn && ( + <ToggleButton.Button name="warn" label={warnLabel}> + {warnLabel} + </ToggleButton.Button> + )} + <ToggleButton.Button name="hide" label={hideLabel}> + {hideLabel} + </ToggleButton.Button> + </ToggleButton.Group> + </View> + )} </View> )} </View> diff --git a/src/lib/strings/url-helpers.ts b/src/lib/strings/url-helpers.ts index 820311e4e..70a2b7069 100644 --- a/src/lib/strings/url-helpers.ts +++ b/src/lib/strings/url-helpers.ts @@ -4,6 +4,23 @@ import TLDs from 'tlds' import psl from 'psl' export const BSKY_APP_HOST = 'https://bsky.app' +const BSKY_TRUSTED_HOSTS = [ + 'bsky.app', + 'bsky.social', + 'blueskyweb.xyz', + 'blueskyweb.zendesk.com', + ...(__DEV__ ? ['localhost:19006', 'localhost:8100'] : []), +] + +/* + * This will allow any BSKY_TRUSTED_HOSTS value by itself or with a subdomain. + * It will also allow relative paths like /profile as well as #. + */ +const TRUSTED_REGEX = new RegExp( + `^(http(s)?://(([\\w-]+\\.)?${BSKY_TRUSTED_HOSTS.join( + '|([\\w-]+\\.)?', + )})|/|#)`, +) export function isValidDomain(str: string): boolean { return !!TLDs.find(tld => { @@ -86,6 +103,10 @@ export function isExternalUrl(url: string): boolean { return external || rss } +export function isTrustedUrl(url: string): boolean { + return TRUSTED_REGEX.test(url) +} + export function isBskyPostUrl(url: string): boolean { if (isBskyAppUrl(url)) { try { @@ -163,8 +184,8 @@ export function feedUriToHref(url: string): string { export function linkRequiresWarning(uri: string, label: string) { const labelDomain = labelToDomain(label) - // If the uri started with a / we know it is internal. - if (isRelativeUrl(uri)) { + // We should trust any relative URL or a # since we know it links to internal content + if (isRelativeUrl(uri) || uri === '#') { return false } @@ -176,18 +197,11 @@ export function linkRequiresWarning(uri: string, label: string) { } const host = urip.hostname.toLowerCase() - // Hosts that end with bsky.app or bsky.social should be trusted by default. - if ( - host.endsWith('bsky.app') || - host.endsWith('bsky.social') || - host.endsWith('blueskyweb.xyz') - ) { - // if this is a link to internal content, - // warn if it represents itself as a URL to another app + if (isTrustedUrl(uri)) { + // if this is a link to internal content, warn if it represents itself as a URL to another app return !!labelDomain && labelDomain !== host && isPossiblyAUrl(labelDomain) } else { - // if this is a link to external content, - // warn if the label doesnt match the target + // if this is a link to external content, warn if the label doesnt match the target if (!labelDomain) { return true } diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 5182cf581..503d656ee 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -8,40 +8,22 @@ msgstr "" "Language: de\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: \n" +"PO-Revision-Date: 2024-03-12 13:00+0000\n" "Last-Translator: \n" -"Language-Team: \n" +"Language-Team: Translators in PR 2319, PythooonUser, cdfzo\n" "Plural-Forms: \n" #: src/view/com/modals/VerifyEmail.tsx:142 msgid "(no email)" -msgstr "" - -#: src/view/shell/desktop/RightNav.tsx:168 -#~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" -#~ msgstr "" +msgstr "(keine E-Mail)" #: src/view/com/profile/ProfileHeader.tsx:593 msgid "{following} following" -msgstr "" - -#: src/view/shell/desktop/RightNav.tsx:151 -#~ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" -#~ msgstr "" - -#: src/view/screens/Settings.tsx:435 -#: src/view/shell/Drawer.tsx:664 -#~ msgid "{invitesAvailable} invite code available" -#~ msgstr "{invitesAvailable} Einladungscode verfügbar" - -#: src/view/screens/Settings.tsx:437 -#: src/view/shell/Drawer.tsx:666 -#~ msgid "{invitesAvailable} invite codes available" -#~ msgstr "{invitesAvailable} Einladungscodes verfügbar" +msgstr "{following} folge ich" #: src/view/shell/Drawer.tsx:440 msgid "{numUnreadNotifications} unread" -msgstr "" +msgstr "{numUnreadNotifications} ungelesen" #: src/view/com/threadgate/WhoCanReply.tsx:158 msgid "<0/> members" @@ -49,7 +31,7 @@ msgstr "<0/> Mitglieder" #: src/view/com/profile/ProfileHeader.tsx:595 msgid "<0>{following} </0><1>following</1>" -msgstr "" +msgstr "<0>{following} </0><1>folge ich</1>" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:30 msgid "<0>Choose your</0><1>Recommended</1><2>Feeds</2>" @@ -61,11 +43,11 @@ msgstr "<0>Folge einigen</0><1>empfohlenen</1><2>Nutzern</2>" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:21 msgid "<0>Welcome to</0><1>Bluesky</1>" -msgstr "" +msgstr "<0>Willkommen bei</0><1>Bluesky</1>" #: src/view/com/profile/ProfileHeader.tsx:558 msgid "âš Invalid Handle" -msgstr "" +msgstr "âš Ungültiger Handle" #: src/view/com/util/moderation/LabelInfo.tsx:45 msgid "A content warning has been applied to this {0}." @@ -78,11 +60,11 @@ msgstr "Eine neue Version der App ist verfügbar. Bitte aktualisiere die App, um #: src/view/com/util/ViewHeader.tsx:89 #: src/view/screens/Search/Search.tsx:647 msgid "Access navigation links and settings" -msgstr "" +msgstr "Zugriff auf Navigationslinks und Einstellungen" #: src/view/com/home/HomeHeaderLayoutMobile.tsx:52 msgid "Access profile and other navigation links" -msgstr "" +msgstr "Zugang zum Profil und anderen Navigationslinks" #: src/view/com/modals/EditImage.tsx:299 #: src/view/screens/Settings/index.tsx:451 @@ -97,19 +79,19 @@ msgstr "Konto" #: src/view/com/profile/ProfileHeader.tsx:246 msgid "Account blocked" -msgstr "" +msgstr "Konto blockiert" #: src/view/com/profile/ProfileHeader.tsx:213 msgid "Account muted" -msgstr "" +msgstr "Konto stummgeschaltet" #: src/view/com/modals/ModerationDetails.tsx:86 msgid "Account Muted" -msgstr "" +msgstr "Konto Stummgeschaltet" #: src/view/com/modals/ModerationDetails.tsx:72 msgid "Account Muted by List" -msgstr "" +msgstr "Konto stummgeschaltet nach Liste" #: src/view/com/util/AccountDropdownBtn.tsx:41 msgid "Account options" @@ -117,15 +99,15 @@ msgstr "Kontoeinstellungen" #: src/view/com/util/AccountDropdownBtn.tsx:25 msgid "Account removed from quick access" -msgstr "" +msgstr "Konto aus dem Schnellzugriff entfernt" #: src/view/com/profile/ProfileHeader.tsx:268 msgid "Account unblocked" -msgstr "" +msgstr "Konto entblockiert" #: src/view/com/profile/ProfileHeader.tsx:226 msgid "Account unmuted" -msgstr "" +msgstr "Konto Stummschaltung aufgehoben" #: src/components/dialogs/MutedWords.tsx:165 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 @@ -158,7 +140,7 @@ msgstr "Alt-Text hinzufügen" #: src/view/screens/AppPasswords.tsx:143 #: src/view/screens/AppPasswords.tsx:156 msgid "Add App Password" -msgstr "" +msgstr "App-Passwort hinzufügen" #: src/view/com/modals/report/InputIssueDetails.tsx:41 #: src/view/com/modals/report/Modal.tsx:191 @@ -179,11 +161,11 @@ msgstr "Link-Karte hinzufügen:" #: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" -msgstr "" +msgstr "Stummgeschaltetes Wort für konfigurierte Einstellungen hinzufügen" #: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" -msgstr "" +msgstr "Füge stummgeschaltete Wörter und Tags hinzu" #: src/view/com/modals/ChangeHandle.tsx:417 msgid "Add the following DNS record to your domain:" @@ -200,7 +182,7 @@ msgstr "Zu meinen Feeds hinzufügen" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:139 msgid "Added" -msgstr "" +msgstr "Hinzugefügt" #: src/view/com/modals/ListAddRemoveUsers.tsx:191 #: src/view/com/modals/UserAddRemoveLists.tsx:144 @@ -209,7 +191,7 @@ msgstr "Zur Liste hinzugefügt" #: src/view/com/feeds/FeedSourceCard.tsx:127 msgid "Added to my feeds" -msgstr "" +msgstr "Zu meinen Feeds hinzugefügt" #: src/view/screens/PreferencesFollowingFeed.tsx:173 msgid "Adjust the number of likes a reply must have to be shown in your feed." @@ -221,11 +203,7 @@ msgstr "Inhalt für Erwachsene" #: src/view/com/modals/ContentFilteringSettings.tsx:141 msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "" - -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 -#~ msgid "Adult content can only be enabled via the Web at <0>bsky.app</0>." -#~ msgstr "" +msgstr "Inhalte für Erwachsene können nur über das Web unter <0/> aktiviert werden." #: src/view/screens/Settings/index.tsx:664 msgid "Advanced" @@ -233,16 +211,16 @@ msgstr "Erweitert" #: src/view/screens/Feeds.tsx:666 msgid "All the feeds you've saved, right in one place." -msgstr "" +msgstr "All deine gespeicherten Feeds an einem Ort." #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Already have a code?" -msgstr "" +msgstr "Hast du bereits einen Code?" #: src/view/com/auth/login/ChooseAccountForm.tsx:98 msgid "Already signed in as @{0}" -msgstr "" +msgstr "Bereits angemeldet als @{0}" #: src/view/com/composer/photos/Gallery.tsx:130 msgid "ALT" @@ -258,7 +236,7 @@ msgstr "Alt-Text beschreibt Bilder für blinde und sehbehinderte Nutzer und hilf #: src/view/com/modals/VerifyEmail.tsx:124 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." +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:119 msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." @@ -267,7 +245,7 @@ msgstr "Eine E-Mail wurde an deine vorherige Adresse {0} gesendet. Sie enthält #: src/view/com/profile/FollowButton.tsx:30 #: src/view/com/profile/FollowButton.tsx:40 msgid "An issue occurred, please try again." -msgstr "" +msgstr "Es ist ein Problem aufgetreten, bitte versuche es erneut." #: src/view/com/notifications/FeedItem.tsx:237 #: src/view/com/threadgate/WhoCanReply.tsx:178 @@ -276,7 +254,7 @@ msgstr "und" #: src/screens/Onboarding/index.tsx:32 msgid "Animals" -msgstr "" +msgstr "Tiere" #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" @@ -284,23 +262,19 @@ msgstr "App-Sprache" #: src/view/screens/AppPasswords.tsx:228 msgid "App password deleted" -msgstr "" +msgstr "App-Passwort gelöscht" #: src/view/com/modals/AddAppPasswords.tsx:134 msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." -msgstr "" +msgstr "App-Passwortnamen dürfen nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche enthalten." #: src/view/com/modals/AddAppPasswords.tsx:99 msgid "App Password names must be at least 4 characters long." -msgstr "" +msgstr "App-Passwortnamen müssen mindestens 4 Zeichen lang sein." #: src/view/screens/Settings/index.tsx:675 msgid "App password settings" -msgstr "" - -#: src/view/screens/Settings.tsx:650 -#~ msgid "App passwords" -#~ msgstr "App-Passwörter" +msgstr "App-Passwort-Einstellungen" #: src/Navigation.tsx:239 #: src/view/screens/AppPasswords.tsx:187 @@ -311,11 +285,11 @@ msgstr "App-Passwörter" #: src/view/com/util/forms/PostDropdownBtn.tsx:337 #: src/view/com/util/forms/PostDropdownBtn.tsx:346 msgid "Appeal content warning" -msgstr "" +msgstr "Inhaltswarnungseinspruch" #: src/view/com/modals/AppealLabel.tsx:65 msgid "Appeal Content Warning" -msgstr "" +msgstr "Inhaltswarnungseinspruch" #: src/view/com/util/moderation/LabelInfo.tsx:52 msgid "Appeal this decision" @@ -348,11 +322,11 @@ msgstr "Bist du sicher? Dies kann nicht rückgängig gemacht werden." #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}</0>?" -msgstr "" +msgstr "Schreibst du auf <0>{0}</0>?" #: src/screens/Onboarding/index.tsx:26 msgid "Art" -msgstr "" +msgstr "Kunst" #: src/view/com/modals/SelfLabel.tsx:123 msgid "Artistic or non-erotic nudity." @@ -375,11 +349,11 @@ msgstr "Zurück" #: src/view/com/post-thread/PostThread.tsx:480 msgctxt "action" msgid "Back" -msgstr "" +msgstr "Zurück" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" -msgstr "" +msgstr "Ausgehend von deinem Interesse an {interestsText}" #: src/view/screens/Settings/index.tsx:523 msgid "Basics" @@ -397,11 +371,11 @@ msgstr "Geburtstag:" #: src/view/com/profile/ProfileHeader.tsx:239 #: src/view/com/profile/ProfileHeader.tsx:346 msgid "Block Account" -msgstr "" +msgstr "Konto blockieren" #: src/view/screens/ProfileList.tsx:556 msgid "Block accounts" -msgstr "" +msgstr "Konten blockieren" #: src/view/screens/ProfileList.tsx:506 msgid "Block list" @@ -413,12 +387,12 @@ msgstr "Diese Konten blockieren?" #: src/view/screens/ProfileList.tsx:320 msgid "Block this List" -msgstr "" +msgstr "Diese Liste blockieren" #: src/view/com/lists/ListCard.tsx:110 #: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 msgid "Blocked" -msgstr "" +msgstr "Blockiert" #: src/view/screens/Moderation.tsx:142 msgid "Blocked accounts" @@ -458,7 +432,7 @@ msgstr "Bluesky" #: src/view/com/auth/server-input/index.tsx:150 msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." -msgstr "" +msgstr "Bluesky ist ein offenes Netzwerk, in dem du deinen Hosting-Anbieter wählen kannst. Benutzerdefiniertes Hosting ist jetzt in der Beta-Phase für Entwickler verfügbar." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 @@ -475,21 +449,13 @@ msgstr "Bluesky ist offen." msgid "Bluesky is public." msgstr "Bluesky ist öffentlich." -#: src/view/com/modals/Waitlist.tsx:70 -#~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." -#~ msgstr "Bluesky nutzt Einladungen, um eine gesündere Community aufzubauen. Wenn du niemanden kennst, der eine Einladung hat, kannst du dich auf die Warteliste setzen lassen und wir schicken dir bald eine zu." - #: src/view/screens/Moderation.tsx:245 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 zeigt dein Profil und deine Beiträge nicht für abgemeldete Nutzer an. Andere Apps kommen dieser Aufforderung möglicherweise nicht nach." -#: src/view/com/modals/ServerInput.tsx:78 -#~ msgid "Bluesky.Social" -#~ msgstr "Bluesky.Social" - #: src/screens/Onboarding/index.tsx:33 msgid "Books" -msgstr "" +msgstr "Bücher" #: src/view/screens/Settings/index.tsx:859 msgid "Build version {0} {1}" @@ -500,25 +466,21 @@ msgstr "Build-Version {0} {1}" msgid "Business" msgstr "Business" -#: src/view/com/modals/ServerInput.tsx:115 -#~ msgid "Button disabled. Input custom domain to proceed." -#~ msgstr "" - #: src/view/com/profile/ProfileSubpageHeader.tsx:157 msgid "by —" -msgstr "" +msgstr "von —" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:100 msgid "by {0}" -msgstr "" +msgstr "von {0}" #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" -msgstr "" +msgstr "von <0/>" #: src/view/com/profile/ProfileSubpageHeader.tsx:159 msgid "by you" -msgstr "" +msgstr "von dir" #: src/view/com/composer/photos/OpenCameraBtn.tsx:60 #: src/view/com/util/UserAvatar.tsx:224 @@ -557,7 +519,7 @@ msgstr "Abbrechen" #: src/view/com/modals/DeleteAccount.tsx:234 msgctxt "action" msgid "Cancel" -msgstr "" +msgstr "Abbrechen" #: src/view/com/modals/DeleteAccount.tsx:152 #: src/view/com/modals/DeleteAccount.tsx:230 @@ -566,29 +528,25 @@ msgstr "Konto-Löschung abbrechen" #: src/view/com/modals/ChangeHandle.tsx:149 msgid "Cancel change handle" -msgstr "" +msgstr "Handle ändern abbrechen" #: src/view/com/modals/crop-image/CropImage.web.tsx:134 msgid "Cancel image crop" -msgstr "" +msgstr "Bildbeschneidung abbrechen" #: src/view/com/modals/EditProfile.tsx:244 msgid "Cancel profile editing" -msgstr "" +msgstr "Profilbearbeitung abbrechen" #: src/view/com/modals/Repost.tsx:78 msgid "Cancel quote post" -msgstr "" +msgstr "Beitrag zitieren abbrechen" #: src/view/com/modals/ListAddRemoveUsers.tsx:87 #: src/view/shell/desktop/Search.tsx:234 msgid "Cancel search" msgstr "Suche abbrechen" -#: src/view/com/modals/Waitlist.tsx:136 -#~ msgid "Cancel waitlist signup" -#~ msgstr "Anmeldung zur Warteliste abbrechen" - #: src/view/screens/Settings/index.tsx:334 msgctxt "action" msgid "Change" @@ -609,19 +567,19 @@ msgstr "Meine E-Mail ändern" #: src/view/screens/Settings/index.tsx:732 msgid "Change password" -msgstr "" +msgstr "Passwort ändern" #: src/view/screens/Settings/index.tsx:741 msgid "Change Password" -msgstr "" +msgstr "Passwort Ändern" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:73 msgid "Change post language to {0}" -msgstr "" +msgstr "Beitragssprache in {0} ändern" #: src/view/screens/Settings/index.tsx:733 msgid "Change your Bluesky password" -msgstr "" +msgstr "Ändere dein Bluesky-Passwort" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -630,7 +588,7 @@ msgstr "Deine E-Mail ändern" #: src/screens/Deactivated.tsx:72 #: src/screens/Deactivated.tsx:76 msgid "Check my status" -msgstr "" +msgstr "Meinen Status prüfen" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:121 msgid "Check out some recommended feeds. Tap + to add them to your list of pinned feeds." @@ -646,11 +604,11 @@ msgstr "Überprüfe deinen Posteingang auf eine E-Mail mit dem Bestätigungscode #: src/view/com/modals/Threadgate.tsx:72 msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "" +msgstr "Wähle \"Alle\" oder \"Niemand\"" #: src/view/screens/Settings/index.tsx:697 msgid "Choose a new Bluesky username or create" -msgstr "" +msgstr "Wähle oder erstelle einen neuen Bluesky-Benutzernamen" #: src/view/com/auth/server-input/index.tsx:79 msgid "Choose Service" @@ -658,20 +616,16 @@ msgstr "Service wählen" #: src/screens/Onboarding/StepFinished.tsx:135 msgid "Choose the algorithms that power your custom feeds." -msgstr "" +msgstr "Wähle die Algorithmen aus, welche deine benutzerdefinierten Feeds generieren." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 msgid "Choose the algorithms that power your experience with custom feeds." -msgstr "" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:103 -#~ msgid "Choose your algorithmic feeds" -#~ msgstr "" +msgstr "Wähle die Algorithmen aus, welche dein Erlebnis mit benutzerdefinierten Feeds unterstützen." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:103 msgid "Choose your main feeds" -msgstr "" +msgstr "Wähle deine Haupt-Feeds" #: src/view/com/auth/create/Step1.tsx:196 msgid "Choose your password" @@ -702,37 +656,37 @@ msgstr "Suchanfrage löschen" #: src/view/screens/Support.tsx:40 msgid "click here" -msgstr "" +msgstr "hier klicken" #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" -msgstr "" +msgstr "Klicke hier, um das Tag-Menü für {tag} zu öffnen" #: src/components/RichText.tsx:191 msgid "Click here to open tag menu for #{tag}" -msgstr "" +msgstr "Klicke hier, um das Tag-Menü für #{tag} zu öffnen" #: src/screens/Onboarding/index.tsx:35 msgid "Climate" -msgstr "" +msgstr "Klima" #: src/view/com/modals/ChangePassword.tsx:265 #: src/view/com/modals/ChangePassword.tsx:268 msgid "Close" -msgstr "" +msgstr "Schließen" #: src/components/Dialog/index.web.tsx:84 #: src/components/Dialog/index.web.tsx:198 msgid "Close active dialog" -msgstr "" +msgstr "Aktiven Dialog schließen" #: src/view/com/auth/login/PasswordUpdatedForm.tsx:38 msgid "Close alert" -msgstr "" +msgstr "Meldung schließen" #: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 msgid "Close bottom drawer" -msgstr "" +msgstr "Untere Schublade schließen" #: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 msgid "Close image" @@ -740,43 +694,43 @@ msgstr "Bild schließen" #: src/view/com/lightbox/Lightbox.web.tsx:119 msgid "Close image viewer" -msgstr "" +msgstr "Bildbetrachter schließen" #: src/view/shell/index.web.tsx:51 msgid "Close navigation footer" -msgstr "" +msgstr "Fußzeile der Navigation schließen" #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" -msgstr "" +msgstr "Diesen Dialog schließen" #: src/view/shell/index.web.tsx:52 msgid "Closes bottom navigation bar" -msgstr "" +msgstr "Schließt die untere Navigationsleiste" #: src/view/com/auth/login/PasswordUpdatedForm.tsx:39 msgid "Closes password update alert" -msgstr "" +msgstr "Schließt die Kennwortaktualisierungsmeldung" #: src/view/com/composer/Composer.tsx:309 msgid "Closes post composer and discards post draft" -msgstr "" +msgstr "Schließt den Beitragsverfasser und verwirft den Beitragsentwurf" #: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 msgid "Closes viewer for header image" -msgstr "" +msgstr "Schließt den Betrachter für das Banner" #: src/view/com/notifications/FeedItem.tsx:318 msgid "Collapses list of users for a given notification" -msgstr "" +msgstr "Klappt die Liste der Benutzer für eine bestimmte Meldung zusammen" #: src/screens/Onboarding/index.tsx:41 msgid "Comedy" -msgstr "" +msgstr "Komödie" #: src/screens/Onboarding/index.tsx:27 msgid "Comics" -msgstr "" +msgstr "Comics" #: src/Navigation.tsx:229 #: src/view/screens/CommunityGuidelines.tsx:32 @@ -785,15 +739,15 @@ msgstr "Community-Richtlinien" #: src/screens/Onboarding/StepFinished.tsx:148 msgid "Complete onboarding and start using your account" -msgstr "" +msgstr "Schließe das Onboarding ab und nutze dein Konto" #: src/view/com/auth/create/Step3.tsx:73 msgid "Complete the challenge" -msgstr "" +msgstr "Beende die Herausforderung" #: src/view/com/composer/Composer.tsx:424 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" -msgstr "" +msgstr "Verfasse Beiträge mit einer Länge von bis zu {MAX_GRAPHEME_LENGTH} Zeichen" #: src/view/com/composer/Prompt.tsx:24 msgid "Compose reply" @@ -801,7 +755,7 @@ msgstr "Antwort verfassen" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 msgid "Configure content filtering setting for category: {0}" -msgstr "" +msgstr "Inhaltsfilterungseinstellung der Kategorie {0} konfigurieren" #: src/components/Prompt.tsx:124 #: src/view/com/modals/AppealLabel.tsx:98 @@ -817,7 +771,7 @@ msgstr "Bestätigen" #: src/view/com/modals/Confirm.tsx:78 msgctxt "action" msgid "Confirm" -msgstr "" +msgstr "Bestätigen" #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 @@ -834,7 +788,7 @@ msgstr "Bestätige das Löschen des Kontos" #: src/view/com/modals/ContentFilteringSettings.tsx:156 msgid "Confirm your age to enable adult content." -msgstr "" +msgstr "Bestätige dein Alter, um Inhalte für Erwachsene zu aktivieren." #: src/view/com/modals/ChangeEmail.tsx:157 #: src/view/com/modals/DeleteAccount.tsx:182 @@ -842,10 +796,6 @@ msgstr "" msgid "Confirmation code" msgstr "Bestätigungscode" -#: src/view/com/modals/Waitlist.tsx:120 -#~ msgid "Confirms signing up {email} to the waitlist" -#~ msgstr "" - #: src/view/com/auth/create/CreateAccount.tsx:193 #: src/view/com/auth/login/LoginForm.tsx:278 msgid "Connecting..." @@ -853,7 +803,7 @@ msgstr "Verbinden..." #: src/view/com/auth/create/CreateAccount.tsx:213 msgid "Contact support" -msgstr "" +msgstr "Support kontaktieren" #: src/view/screens/Moderation.tsx:83 msgid "Content filtering" @@ -866,11 +816,11 @@ msgstr "Inhaltsfilterung" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" -msgstr "" +msgstr "Inhaltssprachen" #: src/view/com/modals/ModerationDetails.tsx:65 msgid "Content Not Available" -msgstr "" +msgstr "Inhalt nicht verfügbar" #: src/view/com/modals/ModerationDetails.tsx:33 #: src/view/com/util/moderation/ScreenHider.tsx:78 @@ -896,19 +846,19 @@ msgstr "Fortfahren" #: src/screens/Onboarding/StepModeration/index.tsx:115 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" -msgstr "" +msgstr "Weiter zum nächsten Schritt" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:167 msgid "Continue to the next step" -msgstr "" +msgstr "Weiter zum nächsten Schritt" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:191 msgid "Continue to the next step without following any accounts" -msgstr "" +msgstr "Fahre mit dem nächsten Schritt fort, ohne Konten zu folgen" #: src/screens/Onboarding/index.tsx:44 msgid "Cooking" -msgstr "" +msgstr "Kochen" #: src/view/com/modals/AddAppPasswords.tsx:195 #: src/view/com/modals/InviteCodes.tsx:182 @@ -917,17 +867,17 @@ msgstr "Kopiert" #: src/view/screens/Settings/index.tsx:241 msgid "Copied build version to clipboard" -msgstr "" +msgstr "Die Build-Version wurde in die Zwischenablage kopiert" #: src/view/com/modals/AddAppPasswords.tsx:76 #: src/view/com/modals/InviteCodes.tsx:152 #: src/view/com/util/forms/PostDropdownBtn.tsx:161 msgid "Copied to clipboard" -msgstr "" +msgstr "In die Zwischenablage kopiert" #: src/view/com/modals/AddAppPasswords.tsx:189 msgid "Copies app password" -msgstr "" +msgstr "Kopiert das App-Passwort" #: src/view/com/modals/AddAppPasswords.tsx:188 msgid "Copy" @@ -949,12 +899,12 @@ msgstr "Link zum Profil kopieren" #: src/view/com/util/forms/PostDropdownBtn.tsx:223 #: src/view/com/util/forms/PostDropdownBtn.tsx:225 msgid "Copy post text" -msgstr "" +msgstr "Beitragstext kopieren" #: src/Navigation.tsx:234 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" -msgstr "" +msgstr "Urheberrechtsbestimmungen" #: src/view/screens/ProfileFeed.tsx:97 msgid "Could not load feed" @@ -964,10 +914,6 @@ msgstr "Feed konnte nicht geladen werden" msgid "Could not load list" msgstr "Liste konnte nicht geladen werden" -#: src/view/com/auth/create/Step2.tsx:91 -#~ msgid "Country" -#~ msgstr "" - #: src/view/com/auth/HomeLoggedOutCTA.tsx:62 #: src/view/com/auth/SplashScreen.tsx:71 #: src/view/com/auth/SplashScreen.web.tsx:81 @@ -976,7 +922,7 @@ msgstr "Ein neues Konto erstellen" #: src/view/screens/Settings/index.tsx:384 msgid "Create a new Bluesky account" -msgstr "" +msgstr "Erstelle ein neues Bluesky-Konto" #: src/view/com/auth/create/CreateAccount.tsx:133 msgid "Create Account" @@ -984,7 +930,7 @@ msgstr "Konto erstellen" #: src/view/com/modals/AddAppPasswords.tsx:226 msgid "Create App Password" -msgstr "" +msgstr "App-Passwort erstellen" #: src/view/com/auth/HomeLoggedOutCTA.tsx:54 #: src/view/com/auth/SplashScreen.tsx:68 @@ -997,24 +943,24 @@ msgstr "Erstellt {0}" #: src/view/screens/ProfileFeed.tsx:616 msgid "Created by <0/>" -msgstr "" +msgstr "Erstellt von <0/>" #: src/view/screens/ProfileFeed.tsx:614 msgid "Created by you" -msgstr "" +msgstr "Erstellt von dir" #: src/view/com/composer/Composer.tsx:455 msgid "Creates a card with a thumbnail. The card links to {url}" -msgstr "" +msgstr "Erzeugt eine Karte mit Vorschaubild und verlinkt auf {url}" #: src/screens/Onboarding/index.tsx:29 msgid "Culture" -msgstr "" +msgstr "Kultur" #: src/view/com/auth/server-input/index.tsx:95 #: src/view/com/auth/server-input/index.tsx:96 msgid "Custom" -msgstr "" +msgstr "Benutzerdefiniert" #: src/view/com/modals/ChangeHandle.tsx:389 msgid "Custom domain" @@ -1023,32 +969,28 @@ msgstr "Benutzerdefinierte Domain" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:106 #: src/view/screens/Feeds.tsx:692 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." -msgstr "" +msgstr "Benutzerdefinierte Feeds, die von der Community erstellt wurden, bringen dir neue Erfahrungen und helfen dir, die Inhalte zu finden, die du liebst." #: src/view/screens/PreferencesExternalEmbeds.tsx:55 msgid "Customize media from external sites." -msgstr "" - -#: src/view/screens/Settings.tsx:687 -#~ msgid "Danger Zone" -#~ msgstr "" +msgstr "Passe die Einstellungen für Medien von externen Websites an." #: src/view/screens/Settings/index.tsx:485 #: src/view/screens/Settings/index.tsx:511 msgid "Dark" -msgstr "" +msgstr "Dunkel" #: src/view/screens/Debug.tsx:63 msgid "Dark mode" -msgstr "" +msgstr "Dunkelmodus" #: src/view/screens/Settings/index.tsx:498 msgid "Dark Theme" -msgstr "" +msgstr "Dunkles Thema" #: src/view/screens/Debug.tsx:83 msgid "Debug panel" -msgstr "" +msgstr "Debug-Panel" #: src/view/screens/Settings/index.tsx:772 msgid "Delete account" @@ -1072,13 +1014,9 @@ msgstr "Liste löschen" msgid "Delete my account" msgstr "Mein Konto löschen" -#: src/view/screens/Settings.tsx:706 -#~ msgid "Delete my account…" -#~ msgstr "Mein Konto löschen…" - #: src/view/screens/Settings/index.tsx:784 msgid "Delete My Account…" -msgstr "" +msgstr "Mein Konto Löschen…" #: src/view/com/util/forms/PostDropdownBtn.tsx:317 #: src/view/com/util/forms/PostDropdownBtn.tsx:326 @@ -1091,7 +1029,7 @@ msgstr "Diesen Beitrag löschen?" #: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 msgid "Deleted" -msgstr "" +msgstr "Gelöscht" #: src/view/com/post-thread/PostThread.tsx:316 msgid "Deleted post." @@ -1104,17 +1042,13 @@ msgstr "Gelöschter Beitrag." msgid "Description" msgstr "Beschreibung" -#: src/view/screens/Settings.tsx:760 -#~ msgid "Developer Tools" -#~ msgstr "Entwickler-Tools" - #: src/view/com/composer/Composer.tsx:218 msgid "Did you want to say anything?" -msgstr "" +msgstr "Wolltest du etwas sagen?" #: src/view/screens/Settings/index.tsx:504 msgid "Dim" -msgstr "" +msgstr "Dimmen" #: src/view/com/composer/Composer.tsx:151 msgid "Discard" @@ -1131,15 +1065,11 @@ msgstr "Apps daran hindern, abgemeldeten Nutzern mein Konto zu zeigen" #: src/view/com/posts/FollowingEmptyState.tsx:74 #: src/view/com/posts/FollowingEndOfFeed.tsx:75 msgid "Discover new custom feeds" -msgstr "" - -#: src/view/screens/Feeds.tsx:473 -#~ msgid "Discover new feeds" -#~ msgstr "Entdecke neue Feeds" +msgstr "Entdecke neue benutzerdefinierte Feeds" #: src/view/screens/Feeds.tsx:689 msgid "Discover New Feeds" -msgstr "" +msgstr "Entdecke neue Feeds" #: src/view/com/modals/EditProfile.tsx:192 msgid "Display name" @@ -1153,10 +1083,6 @@ msgstr "Anzeigename" msgid "Domain verified!" msgstr "Domain verifiziert!" -#: src/view/com/auth/create/Step1.tsx:170 -#~ msgid "Don't have an invite code?" -#~ msgstr "" - #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 #: src/view/com/modals/EditImage.tsx:333 #: src/view/com/modals/ListAddRemoveUsers.tsx:144 @@ -1168,7 +1094,7 @@ msgstr "Domain verifiziert!" #: src/view/screens/PreferencesThreads.tsx:162 msgctxt "action" msgid "Done" -msgstr "" +msgstr "Erledigt" #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 @@ -1192,48 +1118,48 @@ msgstr "Erledigt{extraText}" #: src/view/com/auth/login/ChooseAccountForm.tsx:45 msgid "Double tap to sign in" -msgstr "" +msgstr "Doppeltippen zum Anmelden" #: src/view/screens/Settings/index.tsx:755 msgid "Download Bluesky account data (repository)" -msgstr "" +msgstr "Öffnet ein Modal zum Herunterladen deiner Bluesky-Kontodaten (Kontodepot)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 msgid "Download CAR file" -msgstr "" +msgstr "CAR-Datei herunterladen" #: src/view/com/composer/text-input/TextInput.web.tsx:249 msgid "Drop to add images" -msgstr "" +msgstr "Ablegen zum Hinzufügen von Bildern" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "" +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/EditProfile.tsx:185 msgid "e.g. Alice Roberts" -msgstr "" +msgstr "z.B. Alice Roberts" #: src/view/com/modals/EditProfile.tsx:203 msgid "e.g. Artist, dog-lover, and avid reader." -msgstr "" +msgstr "z.B. Künstlerin, Hundeliebhaberin und begeisterte Leserin." #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" -msgstr "" +msgstr "z.B. Große Poster" #: src/view/com/modals/CreateOrEditList.tsx:284 msgid "e.g. Spammers" -msgstr "" +msgstr "z.B. Spammer" #: src/view/com/modals/CreateOrEditList.tsx:312 msgid "e.g. The posters who never miss." -msgstr "" +msgstr "z.B. Die Poster, die immer ins Schwarze treffen." #: src/view/com/modals/CreateOrEditList.tsx:313 msgid "e.g. Users that repeatedly reply with ads." -msgstr "" +msgstr "z.B. Nutzer, die wiederholt mit Werbung antworten." #: src/view/com/modals/InviteCodes.tsx:96 msgid "Each code works once. You'll receive more invite codes periodically." @@ -1242,7 +1168,7 @@ msgstr "Jeder Code funktioniert einmal. Du erhältst regelmäßig neue Einladung #: src/view/com/lists/ListMembers.tsx:149 msgctxt "action" msgid "Edit" -msgstr "" +msgstr "Bearbeiten" #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 @@ -1255,7 +1181,7 @@ msgstr "Details der Liste bearbeiten" #: src/view/com/modals/CreateOrEditList.tsx:250 msgid "Edit Moderation List" -msgstr "" +msgstr "Moderationsliste bearbeiten" #: src/Navigation.tsx:244 #: src/view/screens/Feeds.tsx:434 @@ -1282,19 +1208,19 @@ msgstr "Gespeicherte Feeds bearbeiten" #: src/view/com/modals/CreateOrEditList.tsx:245 msgid "Edit User List" -msgstr "" +msgstr "Benutzerliste bearbeiten" #: src/view/com/modals/EditProfile.tsx:193 msgid "Edit your display name" -msgstr "" +msgstr "Bearbeite deinen Anzeigenamen" #: src/view/com/modals/EditProfile.tsx:211 msgid "Edit your profile description" -msgstr "" +msgstr "Bearbeite deine Profilbeschreibung" #: src/screens/Onboarding/index.tsx:34 msgid "Education" -msgstr "" +msgstr "Bildung" #: src/view/com/auth/create/Step1.tsx:176 #: src/view/com/auth/login/ForgotPasswordForm.tsx:156 @@ -1310,7 +1236,7 @@ msgstr "E-Mail-Adresse" #: src/view/com/modals/ChangeEmail.tsx:56 #: src/view/com/modals/ChangeEmail.tsx:88 msgid "Email updated" -msgstr "" +msgstr "E-Mail aktualisiert" #: src/view/com/modals/ChangeEmail.tsx:111 msgid "Email Updated" @@ -1318,7 +1244,7 @@ msgstr "E-Mail aktualisiert" #: src/view/com/modals/VerifyEmail.tsx:78 msgid "Email verified" -msgstr "" +msgstr "E-Mail verifiziert" #: src/view/screens/Settings/index.tsx:312 msgid "Email:" @@ -1326,24 +1252,24 @@ msgstr "E-Mail:" #: src/view/com/modals/EmbedConsent.tsx:113 msgid "Enable {0} only" -msgstr "" +msgstr "Nur {0} aktivieren" #: src/view/com/modals/ContentFilteringSettings.tsx:167 msgid "Enable Adult Content" -msgstr "" +msgstr "Inhalte für Erwachsene aktivieren" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 msgid "Enable adult content in your feeds" -msgstr "" +msgstr "Aktiviere Inhalte für Erwachsene in deinen Feeds" #: src/view/com/modals/EmbedConsent.tsx:97 msgid "Enable External Media" -msgstr "" +msgstr "Externe Medien aktivieren" #: src/view/screens/PreferencesExternalEmbeds.tsx:75 msgid "Enable media players for" -msgstr "" +msgstr "Aktiviere Medienplayer für" #: src/view/screens/PreferencesFollowingFeed.tsx:147 msgid "Enable this setting to only see replies between people you follow." @@ -1355,20 +1281,20 @@ msgstr "Ende des Feeds" #: src/view/com/modals/AddAppPasswords.tsx:166 msgid "Enter a name for this App Password" -msgstr "" +msgstr "Gebe einen Namen für dieses App-Passwort ein" #: src/components/dialogs/MutedWords.tsx:100 #: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" -msgstr "" +msgstr "Gib ein Wort oder einen Tag ein" #: src/view/com/modals/VerifyEmail.tsx:105 msgid "Enter Confirmation Code" -msgstr "" +msgstr "Bestätigungscode eingeben" #: src/view/com/modals/ChangePassword.tsx:151 msgid "Enter the code you received to change your password." -msgstr "" +msgstr "Gib den Code ein, welchen du erhalten hast, um dein Passwort zu ändern." #: src/view/com/modals/ChangeHandle.tsx:371 msgid "Enter the domain you want to use" @@ -1381,11 +1307,7 @@ msgstr "Gib die E-Mail ein, die du zur Erstellung deines Kontos verwendet hast. #: src/view/com/auth/create/Step1.tsx:228 #: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" -msgstr "" - -#: src/view/com/modals/Waitlist.tsx:78 -#~ msgid "Enter your email" -#~ msgstr "" +msgstr "Gib dein Geburtsdatum ein" #: src/view/com/auth/create/Step1.tsx:172 msgid "Enter your email address" @@ -1393,23 +1315,19 @@ msgstr "Gib deine E-Mail-Adresse ein" #: src/view/com/modals/ChangeEmail.tsx:41 msgid "Enter your new email above" -msgstr "" +msgstr "Gib oben deine neue E-Mail-Adresse ein" #: src/view/com/modals/ChangeEmail.tsx:117 msgid "Enter your new email address below." msgstr "Gib unten deine neue E-Mail-Adresse ein." -#: src/view/com/auth/create/Step2.tsx:188 -#~ msgid "Enter your phone number" -#~ msgstr "" - #: src/view/com/auth/login/Login.tsx:99 msgid "Enter your username and password" msgstr "Gib deinen Benutzernamen und dein Passwort ein" #: src/view/com/auth/create/Step3.tsx:67 msgid "Error receiving captcha response." -msgstr "" +msgstr "Fehler beim Empfang der Captcha-Antwort." #: src/view/screens/Search/Search.tsx:110 msgid "Error:" @@ -1421,20 +1339,16 @@ msgstr "Alle" #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" -msgstr "" +msgstr "Beendet den Prozess des Handle-Wechsels" #: src/view/com/lightbox/Lightbox.web.tsx:120 msgid "Exits image view" -msgstr "" +msgstr "Beendet die Bildansicht" #: src/view/com/modals/ListAddRemoveUsers.tsx:88 #: src/view/shell/desktop/Search.tsx:235 msgid "Exits inputting search query" -msgstr "" - -#: src/view/com/modals/Waitlist.tsx:138 -#~ msgid "Exits signing up for waitlist with {email}" -#~ msgstr "" +msgstr "Beendet die Eingabe der Suchanfrage" #: src/view/com/lightbox/Lightbox.web.tsx:163 msgid "Expand alt text" @@ -1443,48 +1357,48 @@ msgstr "Alt-Text erweitern" #: src/view/com/composer/ComposerReplyTo.tsx:81 #: src/view/com/composer/ComposerReplyTo.tsx:84 msgid "Expand or collapse the full post you are replying to" -msgstr "" +msgstr "Erweitere oder reduziere den gesamten Beitrag, auf den du antwortest" #: src/view/screens/Settings/index.tsx:753 msgid "Export my data" -msgstr "" +msgstr "Exportiere meine Daten" #: src/view/screens/Settings/ExportCarDialog.tsx:44 #: src/view/screens/Settings/index.tsx:764 msgid "Export My Data" -msgstr "" +msgstr "Exportiere meine Daten" #: src/view/com/modals/EmbedConsent.tsx:64 msgid "External Media" -msgstr "" +msgstr "Externe Medien" #: src/view/com/modals/EmbedConsent.tsx:75 #: src/view/screens/PreferencesExternalEmbeds.tsx:66 msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." -msgstr "" +msgstr "Externe Medien können es Websites ermöglichen, Informationen über dich und dein Gerät zu sammeln. Es werden keine Informationen gesendet oder angefordert, bis du die Schaltfläche \"Abspielen\" drückst." #: src/Navigation.tsx:263 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 #: src/view/screens/Settings/index.tsx:657 msgid "External Media Preferences" -msgstr "" +msgstr "Externe Medienpräferenzen" #: src/view/screens/Settings/index.tsx:648 msgid "External media settings" -msgstr "" +msgstr "Externe Medienpräferenzen" #: src/view/com/modals/AddAppPasswords.tsx:115 #: src/view/com/modals/AddAppPasswords.tsx:119 msgid "Failed to create app password." -msgstr "" +msgstr "Das App-Passwort konnte nicht erstellt werden." #: src/view/com/modals/CreateOrEditList.tsx:206 msgid "Failed to create the list. Check your internet connection and try again." -msgstr "" +msgstr "Die Liste konnte nicht erstellt werden. Überprüfe deine Internetverbindung und versuche es erneut." #: src/view/com/util/forms/PostDropdownBtn.tsx:128 msgid "Failed to delete post, please try again" -msgstr "" +msgstr "Beitrag konnte nicht gelöscht werden, bitte versuche es erneut" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 @@ -1493,20 +1407,16 @@ msgstr "Empfohlene Feeds konnten nicht geladen werden" #: src/Navigation.tsx:194 msgid "Feed" -msgstr "" +msgstr "Feed" #: src/view/com/feeds/FeedSourceCard.tsx:231 msgid "Feed by {0}" -msgstr "" +msgstr "Feed von {0}" #: src/view/screens/Feeds.tsx:605 msgid "Feed offline" msgstr "Feed offline" -#: src/view/com/feeds/FeedPage.tsx:143 -#~ msgid "Feed Preferences" -#~ msgstr "Feed-Einstellungen" - #: src/view/shell/desktop/RightNav.tsx:61 #: src/view/shell/Drawer.tsx:311 msgid "Feedback" @@ -1523,14 +1433,6 @@ msgstr "Feedback" msgid "Feeds" msgstr "Feeds" -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:106 -#~ msgid "Feeds are created by users and can give you entirely new experiences." -#~ msgstr "" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:106 -#~ msgid "Feeds are created by users and organizations. They offer you varied experiences and suggest content you may like using algorithms." -#~ msgstr "" - #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:57 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." @@ -1541,17 +1443,17 @@ msgstr "Feeds sind benutzerdefinierte Algorithmen, die Nutzer mit ein wenig Prog #: src/screens/Onboarding/StepTopicalFeeds.tsx:76 msgid "Feeds can be topical as well!" -msgstr "" +msgstr "Die Feeds können auch auf einem Thema basieren!" #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" -msgstr "" +msgstr "Abschließen" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 #: src/view/com/posts/FollowingEmptyState.tsx:57 #: src/view/com/posts/FollowingEndOfFeed.tsx:58 msgid "Find accounts to follow" -msgstr "" +msgstr "Konten zum Folgen finden" #: src/view/screens/Search/Search.tsx:440 msgid "Find users on Bluesky" @@ -1567,32 +1469,28 @@ msgstr "Suche nach ähnlichen Konten..." #: src/view/screens/PreferencesFollowingFeed.tsx:111 msgid "Fine-tune the content you see on your Following feed." -msgstr "" - -#: src/view/screens/PreferencesHomeFeed.tsx:111 -#~ msgid "Fine-tune the content you see on your home screen." -#~ msgstr "" +msgstr "Passe die Inhalte auf Deinem Following-Feed an." #: src/view/screens/PreferencesThreads.tsx:60 msgid "Fine-tune the discussion threads." -msgstr "" +msgstr "Passe die Diskussionsstränge an." #: src/screens/Onboarding/index.tsx:38 msgid "Fitness" -msgstr "" +msgstr "Fitness" #: src/screens/Onboarding/StepFinished.tsx:131 msgid "Flexible" -msgstr "" +msgstr "Flexibel" #: src/view/com/modals/EditImage.tsx:115 msgid "Flip horizontal" -msgstr "" +msgstr "Horizontal drehen" #: src/view/com/modals/EditImage.tsx:120 #: src/view/com/modals/EditImage.tsx:287 msgid "Flip vertically" -msgstr "" +msgstr "Vertikal drehen" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 @@ -1603,21 +1501,21 @@ msgstr "Folgen" #: src/view/com/profile/FollowButton.tsx:64 msgctxt "action" msgid "Follow" -msgstr "" +msgstr "Folgen" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 #: src/view/com/profile/ProfileHeader.tsx:504 msgid "Follow {0}" -msgstr "" +msgstr "{0} folgen" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" -msgstr "" +msgstr "Allen folgen" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:174 msgid "Follow selected accounts and continue to the next step" -msgstr "" +msgstr "Ausgewählten Konten folgen und mit dem nächsten Schritt fortfahren" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:64 msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." @@ -1625,19 +1523,19 @@ msgstr "Folge einigen Nutzern, um loszulegen. Wir können dir weitere Nutzer emp #: src/view/com/profile/ProfileCard.tsx:194 msgid "Followed by {0}" -msgstr "" +msgstr "Gefolgt von {0}" #: src/view/com/modals/Threadgate.tsx:98 msgid "Followed users" -msgstr "" +msgstr "Benutzer, denen ich folge" #: src/view/screens/PreferencesFollowingFeed.tsx:154 msgid "Followed users only" -msgstr "" +msgstr "Nur Benutzer, denen ich folge" #: src/view/com/notifications/FeedItem.tsx:166 msgid "followed you" -msgstr "" +msgstr "folgte dir" #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" @@ -1651,7 +1549,7 @@ msgstr "Folge ich" #: src/view/com/profile/ProfileHeader.tsx:149 msgid "Following {0}" -msgstr "" +msgstr "ich folge {0}" #: src/Navigation.tsx:250 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 @@ -1659,7 +1557,7 @@ msgstr "" #: src/view/screens/PreferencesFollowingFeed.tsx:104 #: src/view/screens/Settings/index.tsx:543 msgid "Following Feed Preferences" -msgstr "" +msgstr "Following-Feed-Einstellungen" #: src/view/com/profile/ProfileHeader.tsx:546 msgid "Follows you" @@ -1667,11 +1565,11 @@ msgstr "Folgt dir" #: src/view/com/profile/ProfileCard.tsx:141 msgid "Follows You" -msgstr "" +msgstr "Folgt dir" #: src/screens/Onboarding/index.tsx:43 msgid "Food" -msgstr "" +msgstr "Essen" #: src/view/com/modals/DeleteAccount.tsx:111 msgid "For security reasons, we'll need to send a confirmation code to your email address." @@ -1697,12 +1595,12 @@ msgstr "Passwort vergessen" #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" -msgstr "" +msgstr "Von @{sanitizedAuthor}" #: src/view/com/posts/FeedItem.tsx:189 msgctxt "from-feed" msgid "From <0/>" -msgstr "" +msgstr "Aus <0/>" #: src/view/com/composer/photos/SelectPhotoBtn.tsx:43 msgid "Gallery" @@ -1730,12 +1628,12 @@ msgstr "Gehe zurück" #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" -msgstr "" +msgstr "Zum vorherigen Schritt zurückkehren" #: src/view/screens/Search/Search.tsx:747 #: src/view/shell/desktop/Search.tsx:262 msgid "Go to @{queryMaybeHandle}" -msgstr "" +msgstr "Gehe zu @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 @@ -1751,19 +1649,15 @@ msgstr "Handle" #: src/Navigation.tsx:270 msgid "Hashtag" -msgstr "" - -#: src/components/RichText.tsx:188 -#~ msgid "Hashtag: {tag}" -#~ msgstr "" +msgstr "Hashtag" #: src/components/RichText.tsx:190 msgid "Hashtag: #{tag}" -msgstr "" +msgstr "Hashtag: #{tag}" #: src/view/com/auth/create/CreateAccount.tsx:208 msgid "Having trouble?" -msgstr "" +msgstr "Hast du Probleme?" #: src/view/shell/desktop/RightNav.tsx:90 #: src/view/shell/Drawer.tsx:321 @@ -1772,15 +1666,15 @@ msgstr "Hilfe" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:132 msgid "Here are some accounts for you to follow" -msgstr "" +msgstr "Hier sind einige Konten, denen du folgen könntest" #: src/screens/Onboarding/StepTopicalFeeds.tsx:85 msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "" +msgstr "Hier sind einige beliebte thematische Feeds. Du kannst so vielen folgen, wie du möchtest." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "" +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:153 msgid "Here is your app password." @@ -1797,7 +1691,7 @@ msgstr "Ausblenden" #: src/view/com/notifications/FeedItem.tsx:326 msgctxt "action" msgid "Hide" -msgstr "" +msgstr "Ausblenden" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 #: src/view/com/util/forms/PostDropdownBtn.tsx:287 @@ -1807,7 +1701,7 @@ msgstr "Beitrag ausblenden" #: src/view/com/util/moderation/ContentHider.tsx:67 #: src/view/com/util/moderation/PostHider.tsx:61 msgid "Hide the content" -msgstr "" +msgstr "Den Inhalt ausblenden" #: src/view/com/util/forms/PostDropdownBtn.tsx:280 msgid "Hide this post?" @@ -1819,19 +1713,19 @@ msgstr "Benutzerliste ausblenden" #: src/view/com/profile/ProfileHeader.tsx:487 msgid "Hides posts from {0} in your feed" -msgstr "" +msgstr "Blendet Beiträge von {0} in Deinem Feed aus" #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." -msgstr "Hm, beim Kontakt mit dem Feed-Server ist ein Problem aufgetreten. Bitte informiere den Eigentümer des Feeds über dieses Problem." +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 msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." -msgstr "Hm, der Feed-Server scheint falsch konfiguriert zu sein. Bitte informiere den Eigentümer des Feeds über dieses Problem." +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 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." -msgstr "Hm, der Feed-Server scheint offline zu sein. Bitte informiere den Eigentümer des Feeds über dieses Problem." +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 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." @@ -1839,7 +1733,7 @@ msgstr "Hmm, der Feed-Server hat eine schlechte Antwort gegeben. Bitte informier #: src/view/com/posts/FeedErrorMessage.tsx:96 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." -msgstr "Hm, wir haben Probleme, diesen Feed zu finden. Möglicherweise wurde er gelöscht." +msgstr "Hmm, wir haben Probleme, diesen Feed zu finden. Möglicherweise wurde er gelöscht." #: src/Navigation.tsx:442 #: src/view/shell/bottom-bar/BottomBar.tsx:137 @@ -1849,13 +1743,6 @@ msgstr "Hm, wir haben Probleme, diesen Feed zu finden. Möglicherweise wurde er msgid "Home" msgstr "Home" -#: src/Navigation.tsx:247 -#: src/view/com/pager/FeedsTabBarMobile.tsx:123 -#: src/view/screens/PreferencesHomeFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 -#~ msgid "Home Feed Preferences" -#~ msgstr "Home-Feed-Einstellungen" - #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 msgid "Hosting provider" @@ -1863,7 +1750,7 @@ msgstr "Hosting-Anbieter" #: src/view/com/modals/InAppBrowserConsent.tsx:44 msgid "How should we open this link?" -msgstr "" +msgstr "Wie sollen wir diesen Link öffnen?" #: src/view/com/modals/VerifyEmail.tsx:214 msgid "I have a code" @@ -1871,7 +1758,7 @@ msgstr "Ich habe einen Code" #: src/view/com/modals/VerifyEmail.tsx:216 msgid "I have a confirmation code" -msgstr "" +msgstr "Ich habe einen Bestätigungscode" #: src/view/com/modals/ChangeHandle.tsx:283 msgid "I have my own domain" @@ -1879,7 +1766,7 @@ msgstr "Ich habe meine eigene Domain" #: src/view/com/lightbox/Lightbox.web.tsx:165 msgid "If alt text is long, toggles alt text expanded state" -msgstr "" +msgstr "Schaltet den erweiterten Status des Alt-Textes um, wenn dieser lang ist" #: src/view/com/modals/SelfLabel.tsx:127 msgid "If none are selected, suitable for all ages." @@ -1887,11 +1774,11 @@ msgstr "Wenn keine ausgewählt werden, sind sie für alle Altersgruppen geeignet #: src/view/com/modals/ChangePassword.tsx:146 msgid "If you want to change your password, we will send you a code to verify that this is your account." -msgstr "" +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/view/com/util/images/Gallery.tsx:38 msgid "Image" -msgstr "" +msgstr "Bild" #: src/view/com/modals/AltImage.tsx:120 msgid "Image alt text" @@ -1904,72 +1791,56 @@ msgstr "Bild-Optionen" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" -msgstr "" +msgstr "Gib den Code ein, den du per E-Mail erhalten hast, um dein Passwort zurückzusetzen." #: src/view/com/modals/DeleteAccount.tsx:184 msgid "Input confirmation code for account deletion" -msgstr "" +msgstr "Bestätigungscode für die Kontolöschung eingeben" #: src/view/com/auth/create/Step1.tsx:177 msgid "Input email for Bluesky account" -msgstr "" +msgstr "E-Mail für Bluesky-Konto eingeben" #: src/view/com/auth/create/Step1.tsx:151 msgid "Input invite code to proceed" -msgstr "" +msgstr "Einladungscode eingeben, um fortzufahren" #: src/view/com/modals/AddAppPasswords.tsx:180 msgid "Input name for app password" -msgstr "" +msgstr "Namen für das App-Passwort eingeben" #: src/view/com/auth/login/SetNewPasswordForm.tsx:162 msgid "Input new password" -msgstr "" +msgstr "Neues Passwort eingeben" #: src/view/com/modals/DeleteAccount.tsx:203 msgid "Input password for account deletion" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:196 -#~ msgid "Input phone number for SMS verification" -#~ msgstr "" +msgstr "Passwort für die Kontolöschung eingeben" #: src/view/com/auth/login/LoginForm.tsx:230 msgid "Input the password tied to {identifier}" -msgstr "" +msgstr "Passwort, das an {identifier} gebunden ist, eingeben" #: src/view/com/auth/login/LoginForm.tsx:197 msgid "Input the username or email address you used at signup" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:271 -#~ msgid "Input the verification code we have texted to you" -#~ msgstr "" - -#: src/view/com/modals/Waitlist.tsx:90 -#~ msgid "Input your email to get on the Bluesky waitlist" -#~ msgstr "" +msgstr "Benutzernamen oder E-Mail-Adresse eingeben, die du bei der Anmeldung verwendet hast" #: src/view/com/auth/login/LoginForm.tsx:229 msgid "Input your password" -msgstr "" +msgstr "Gib dein Passwort ein" #: src/view/com/auth/create/Step2.tsx:80 msgid "Input your user handle" -msgstr "" +msgstr "Gib deinen Handle ein" #: src/view/com/post-thread/PostThreadItem.tsx:226 msgid "Invalid or unsupported post record" -msgstr "" +msgstr "Ungültiger oder nicht unterstützter Beitragrekord" #: src/view/com/auth/login/LoginForm.tsx:113 msgid "Invalid username or password" msgstr "Ungültiger Benutzername oder Passwort" -#: src/view/screens/Settings.tsx:411 -#~ msgid "Invite" -#~ msgstr "Einladen" - #: src/view/com/modals/InviteCodes.tsx:93 msgid "Invite a Friend" msgstr "Einen Freund einladen" @@ -1985,41 +1856,24 @@ msgstr "Einladungscode nicht akzeptiert. Überprüfe, ob du ihn richtig eingegeb #: src/view/com/modals/InviteCodes.tsx:170 msgid "Invite codes: {0} available" -msgstr "" - -#: src/view/shell/Drawer.tsx:645 -#~ msgid "Invite codes: {invitesAvailable} available" -#~ msgstr "Einladungscodes: {invitesAvailable} verfügbar" +msgstr "Einladungscodes: {0} verfügbar" #: src/view/com/modals/InviteCodes.tsx:169 msgid "Invite codes: 1 available" -msgstr "" +msgstr "Einladungscodes: 1 verfügbar" #: src/screens/Onboarding/StepFollowingFeed.tsx:64 msgid "It shows posts from the people you follow as they happen." -msgstr "" +msgstr "Es zeigt die Beiträge der Personen an, denen du folgst, sobald sie erscheinen." #: src/view/com/auth/HomeLoggedOutCTA.tsx:99 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "Jobs" -#: src/view/com/modals/Waitlist.tsx:67 -#~ msgid "Join the waitlist" -#~ msgstr "Der Warteliste beitreten" - -#: src/view/com/auth/create/Step1.tsx:174 -#: src/view/com/auth/create/Step1.tsx:178 -#~ msgid "Join the waitlist." -#~ msgstr "Der Warteliste beitreten." - -#: src/view/com/modals/Waitlist.tsx:128 -#~ msgid "Join Waitlist" -#~ msgstr "Warteliste beitreten" - #: src/screens/Onboarding/index.tsx:24 msgid "Journalism" -msgstr "" +msgstr "Journalismus" #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" @@ -2027,7 +1881,7 @@ msgstr "Sprachauswahl" #: src/view/screens/Settings/index.tsx:594 msgid "Language settings" -msgstr "" +msgstr "Spracheinstellungen" #: src/Navigation.tsx:142 #: src/view/screens/LanguageSettings.tsx:89 @@ -2040,7 +1894,7 @@ msgstr "Sprachen" #: src/view/com/auth/create/StepHeader.tsx:20 msgid "Last step!" -msgstr "" +msgstr "Letzter Schritt!" #: src/view/com/util/moderation/ContentHider.tsx:103 msgid "Learn more" @@ -2074,11 +1928,11 @@ msgstr "Bluesky verlassen" #: src/screens/Deactivated.tsx:128 msgid "left to go." -msgstr "" +msgstr "noch übrig." #: src/view/screens/Settings/index.tsx:278 msgid "Legacy storage cleared, you need to restart the app now." -msgstr "" +msgstr "Der Legacy-Speicher wurde gelöscht, du musst die App jetzt neu starten." #: src/view/com/auth/login/Login.tsx:128 #: src/view/com/auth/login/Login.tsx:144 @@ -2087,7 +1941,7 @@ msgstr "Lass uns dein Passwort zurücksetzen!" #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Let's go!" -msgstr "" +msgstr "Los geht's!" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 @@ -2096,84 +1950,84 @@ msgstr "Bibliothek" #: src/view/screens/Settings/index.tsx:479 msgid "Light" -msgstr "" +msgstr "Licht" #: src/view/com/util/post-ctrls/PostCtrls.tsx:182 msgid "Like" -msgstr "" +msgstr "Liken" #: src/view/screens/ProfileFeed.tsx:591 msgid "Like this feed" -msgstr "" +msgstr "Diesen Feed liken" #: src/Navigation.tsx:199 msgid "Liked by" -msgstr "" +msgstr "Gelikt von" #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" -msgstr "" +msgstr "Gelikt von" #: src/view/com/feeds/FeedSourceCard.tsx:279 msgid "Liked by {0} {1}" -msgstr "" +msgstr "Von {0} {1} gelikt" #: src/view/screens/ProfileFeed.tsx:606 msgid "Liked by {likeCount} {0}" -msgstr "" +msgstr "Von {likeCount} {0} gelikt" #: src/view/com/notifications/FeedItem.tsx:170 msgid "liked your custom feed" -msgstr "" +msgstr "hat deinen benutzerdefinierten Feed gelikt" #: src/view/com/notifications/FeedItem.tsx:155 msgid "liked your post" -msgstr "" +msgstr "hat deinen Beitrag gelikt" #: src/view/screens/Profile.tsx:183 msgid "Likes" -msgstr "" +msgstr "Likes" #: src/view/com/post-thread/PostThreadItem.tsx:183 msgid "Likes on this post" -msgstr "" +msgstr "Likes für diesen Beitrag" #: src/Navigation.tsx:168 msgid "List" -msgstr "" +msgstr "Liste" #: src/view/com/modals/CreateOrEditList.tsx:261 msgid "List Avatar" -msgstr "" +msgstr "Avatar auflisten" #: src/view/screens/ProfileList.tsx:324 msgid "List blocked" -msgstr "" +msgstr "Liste blockiert" #: src/view/com/feeds/FeedSourceCard.tsx:233 msgid "List by {0}" -msgstr "" +msgstr "Liste von {0}" #: src/view/screens/ProfileList.tsx:378 msgid "List deleted" -msgstr "" +msgstr "Liste gelöscht" #: src/view/screens/ProfileList.tsx:283 msgid "List muted" -msgstr "" +msgstr "Liste stummgeschaltet" #: src/view/com/modals/CreateOrEditList.tsx:275 msgid "List Name" -msgstr "" +msgstr "Name der Liste" #: src/view/screens/ProfileList.tsx:343 msgid "List unblocked" -msgstr "" +msgstr "Liste entblockiert" #: src/view/screens/ProfileList.tsx:302 msgid "List unmuted" -msgstr "" +msgstr "Listenstummschaltung aufgehoben" #: src/Navigation.tsx:112 #: src/view/screens/Profile.tsx:185 @@ -2190,7 +2044,7 @@ msgstr "Mehr Beiträge laden" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" -msgstr "Neue Benachrichtigungen laden" +msgstr "Neue Mitteilungen laden" #: src/view/com/feeds/FeedPage.tsx:115 #: src/view/screens/Profile.tsx:440 @@ -2203,24 +2057,20 @@ msgstr "Neue Beiträge laden" msgid "Loading..." msgstr "Wird geladen..." -#: src/view/com/modals/ServerInput.tsx:50 -#~ msgid "Local dev server" -#~ msgstr "Lokaler Entwicklungsserver" - #: src/Navigation.tsx:209 msgid "Log" -msgstr "" +msgstr "Systemprotokoll" #: src/screens/Deactivated.tsx:149 #: src/screens/Deactivated.tsx:152 #: src/screens/Deactivated.tsx:178 #: src/screens/Deactivated.tsx:181 msgid "Log out" -msgstr "" +msgstr "Abmelden" #: src/view/screens/Moderation.tsx:155 msgid "Logged-out visibility" -msgstr "" +msgstr "Sichtbarkeit für abgemeldete Benutzer" #: src/view/com/auth/login/ChooseAccountForm.tsx:133 msgid "Login to account that is not listed" @@ -2232,15 +2082,15 @@ msgstr "Vergewissere dich, dass du auch wirklich dorthin gehen willst!" #: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" -msgstr "" +msgstr "Verwalte deine stummgeschalteten Wörter und Tags" #: src/view/com/auth/create/Step2.tsx:118 msgid "May not be longer than 253 characters" -msgstr "" +msgstr "Darf nicht länger als 253 Zeichen sein" #: src/view/com/auth/create/Step2.tsx:109 msgid "May only contain letters and numbers" -msgstr "" +msgstr "Darf nur Buchstaben und Zahlen enthalten" #: src/view/screens/Profile.tsx:182 msgid "Media" @@ -2275,25 +2125,25 @@ msgstr "Moderation" #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" -msgstr "" +msgstr "Moderationsliste von {0}" #: src/view/screens/ProfileList.tsx:775 msgid "Moderation list by <0/>" -msgstr "" +msgstr "Moderationsliste von <0/>" #: src/view/com/lists/ListCard.tsx:91 #: src/view/com/modals/UserAddRemoveLists.tsx:204 #: src/view/screens/ProfileList.tsx:773 msgid "Moderation list by you" -msgstr "" +msgstr "Moderationsliste von dir" #: src/view/com/modals/CreateOrEditList.tsx:197 msgid "Moderation list created" -msgstr "" +msgstr "Moderationsliste erstellt" #: src/view/com/modals/CreateOrEditList.tsx:183 msgid "Moderation list updated" -msgstr "" +msgstr "Moderationsliste aktualisiert" #: src/view/screens/Moderation.tsx:114 msgid "Moderation lists" @@ -2306,11 +2156,11 @@ msgstr "Moderationslisten" #: src/view/screens/Settings/index.tsx:619 msgid "Moderation settings" -msgstr "" +msgstr "Moderationseinstellungen" #: src/view/com/modals/ModerationDetails.tsx:35 msgid "Moderator has chosen to set a general warning on the content." -msgstr "" +msgstr "Der Moderator hat beschlossen, eine allgemeine Warnung vor dem Inhalt auszusprechen." #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" @@ -2322,25 +2172,21 @@ msgstr "Mehr Feeds" msgid "More options" msgstr "Mehr Optionen" -#: src/view/com/util/forms/PostDropdownBtn.tsx:315 -#~ msgid "More post options" -#~ msgstr "" - #: src/view/screens/PreferencesThreads.tsx:82 msgid "Most-liked replies first" -msgstr "" +msgstr "Beliebteste Antworten zuerst" #: src/view/com/auth/create/Step2.tsx:122 msgid "Must be at least 3 characters" -msgstr "" +msgstr "Muss mindestens 3 Zeichen lang sein" #: src/components/TagMenu/index.tsx:249 msgid "Mute" -msgstr "" +msgstr "Stummschalten" #: src/components/TagMenu/index.web.tsx:105 msgid "Mute {truncatedTag}" -msgstr "" +msgstr "{truncatedTag} stummschalten" #: src/view/com/profile/ProfileHeader.tsx:327 msgid "Mute Account" @@ -2352,23 +2198,19 @@ msgstr "Konten stummschalten" #: src/components/TagMenu/index.tsx:209 msgid "Mute all {displayTag} posts" -msgstr "" - -#: src/components/TagMenu/index.tsx:211 -#~ msgid "Mute all {tag} posts" -#~ msgstr "" +msgstr "Alle {displayTag}-Beiträge stummschalten" #: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" -msgstr "" +msgstr "Nur in Tags stummschalten" #: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" -msgstr "" +msgstr "In Text und Tags stummschalten" #: src/view/screens/ProfileList.tsx:491 msgid "Mute list" -msgstr "" +msgstr "Liste stummschalten" #: src/view/screens/ProfileList.tsx:275 msgid "Mute these accounts?" @@ -2376,15 +2218,15 @@ msgstr "Diese Konten stummschalten?" #: src/view/screens/ProfileList.tsx:279 msgid "Mute this List" -msgstr "" +msgstr "Diese Liste stummschalten" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" -msgstr "" +msgstr "Dieses Wort in Beitragstexten und Tags stummschalten" #: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" -msgstr "" +msgstr "Dieses Wort nur in Tags stummschalten" #: src/view/com/util/forms/PostDropdownBtn.tsx:251 #: src/view/com/util/forms/PostDropdownBtn.tsx:257 @@ -2394,11 +2236,11 @@ msgstr "Thread stummschalten" #: src/view/com/util/forms/PostDropdownBtn.tsx:267 #: src/view/com/util/forms/PostDropdownBtn.tsx:269 msgid "Mute words & tags" -msgstr "" +msgstr "Wörter und Tags stummschalten" #: src/view/com/lists/ListCard.tsx:102 msgid "Muted" -msgstr "" +msgstr "Stummgeschaltet" #: src/view/screens/Moderation.tsx:128 msgid "Muted accounts" @@ -2411,15 +2253,15 @@ msgstr "Stummgeschaltete Konten" #: src/view/screens/ModerationMutedAccounts.tsx:115 msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." -msgstr "Bei stummgeschalteten Konten werden ihre Beiträge aus deinem Feed und deinen Benachrichtigungen entfernt. Stummschaltungen sind völlig privat." +msgstr "Bei stummgeschalteten Konten werden dazugehörige Beiträge aus deinem Feed und deinen Mitteilungen entfernt. Stummschaltungen sind völlig privat." #: src/view/screens/Moderation.tsx:100 msgid "Muted words & tags" -msgstr "" +msgstr "Stummgeschaltete Wörter und Tags" #: src/view/screens/ProfileList.tsx:277 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 Benachrichtigungen von ihnen." +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." #: src/view/com/modals/BirthDateSettings.tsx:56 msgid "My Birthday" @@ -2439,7 +2281,7 @@ msgstr "Meine gespeicherten Feeds" #: src/view/com/auth/server-input/index.tsx:118 msgid "my-server.com" -msgstr "" +msgstr "mein-server.de" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2448,11 +2290,11 @@ msgstr "Name" #: src/view/com/modals/CreateOrEditList.tsx:145 msgid "Name is required" -msgstr "" +msgstr "Name ist erforderlich" #: src/screens/Onboarding/index.tsx:25 msgid "Nature" -msgstr "" +msgstr "Natur" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 @@ -2460,16 +2302,16 @@ msgstr "" #: src/view/com/auth/login/SetNewPasswordForm.tsx:196 #: src/view/com/modals/ChangePassword.tsx:166 msgid "Navigates to the next screen" -msgstr "" +msgstr "Navigiert zum nächsten Bildschirm" #: src/view/shell/Drawer.tsx:71 msgid "Navigates to your profile" -msgstr "" +msgstr "Navigiert zu Deinem Profil" #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" -msgstr "" +msgstr "Lade niemals eingebettete Medien von {0}" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 @@ -2478,16 +2320,16 @@ msgstr "Verliere nie den Zugriff auf deine Follower und Daten." #: src/screens/Onboarding/StepFinished.tsx:119 msgid "Never lose access to your followers or data." -msgstr "" +msgstr "Verliere nie den Zugriff auf deine Follower oder Daten." #: src/components/dialogs/MutedWords.tsx:293 msgid "Nevermind" -msgstr "" +msgstr "Egal" #: src/view/screens/Lists.tsx:76 msgctxt "action" msgid "New" -msgstr "" +msgstr "Neu" #: src/view/screens/ModerationModlists.tsx:78 msgid "New" @@ -2495,20 +2337,20 @@ msgstr "Neu" #: src/view/com/modals/CreateOrEditList.tsx:252 msgid "New Moderation List" -msgstr "" +msgstr "Neue Moderationsliste" #: src/view/com/auth/login/SetNewPasswordForm.tsx:150 msgid "New password" -msgstr "" +msgstr "Neues Passwort" #: src/view/com/modals/ChangePassword.tsx:215 msgid "New Password" -msgstr "" +msgstr "Neues Passwort" #: src/view/com/feeds/FeedPage.tsx:126 msgctxt "action" msgid "New post" -msgstr "" +msgstr "Neuer Beitrag" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 @@ -2527,15 +2369,15 @@ msgstr "Neuer Beitrag" #: src/view/com/modals/CreateOrEditList.tsx:247 msgid "New User List" -msgstr "" +msgstr "Neue Benutzerliste" #: src/view/screens/PreferencesThreads.tsx:79 msgid "Newest replies first" -msgstr "" +msgstr "Neueste Antworten zuerst" #: src/screens/Onboarding/index.tsx:23 msgid "News" -msgstr "" +msgstr "Aktuelles" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 @@ -2552,7 +2394,7 @@ msgstr "Nächste" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:103 msgctxt "action" msgid "Next" -msgstr "" +msgstr "Nächste" #: src/view/com/lightbox/Lightbox.web.tsx:149 msgid "Next image" @@ -2574,11 +2416,11 @@ msgstr "Keine Beschreibung" #: src/view/com/profile/ProfileHeader.tsx:170 msgid "No longer following {0}" -msgstr "" +msgstr "{0} wird nicht mehr gefolgt" #: src/view/com/notifications/Feed.tsx:109 msgid "No notifications yet!" -msgstr "" +msgstr "Noch keine Mitteilungen!" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 #: src/view/com/composer/text-input/web/Autocomplete.tsx:191 @@ -2587,7 +2429,7 @@ msgstr "Kein Ergebnis" #: src/components/Lists.tsx:192 msgid "No results found" -msgstr "" +msgstr "Keine Ergebnisse gefunden" #: src/view/screens/Feeds.tsx:495 msgid "No results found for \"{query}\"" @@ -2601,7 +2443,7 @@ msgstr "Keine Ergebnisse für {query} gefunden" #: src/view/com/modals/EmbedConsent.tsx:129 msgid "No thanks" -msgstr "" +msgstr "Nein danke" #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" @@ -2614,12 +2456,12 @@ msgstr "Unzutreffend." #: src/Navigation.tsx:107 #: src/view/screens/Profile.tsx:106 msgid "Not Found" -msgstr "" +msgstr "Nicht gefunden" #: src/view/com/modals/VerifyEmail.tsx:246 #: src/view/com/modals/VerifyEmail.tsx:252 msgid "Not right now" -msgstr "" +msgstr "Im Moment nicht" #: src/view/screens/Moderation.tsx:252 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." @@ -2637,7 +2479,7 @@ msgstr "Mitteilungen" #: src/view/com/modals/SelfLabel.tsx:103 msgid "Nudity" -msgstr "" +msgstr "Nacktheit" #: src/view/com/util/ErrorBoundary.tsx:35 msgid "Oh no!" @@ -2645,7 +2487,7 @@ msgstr "Oh nein!" #: src/screens/Onboarding/StepInterests/index.tsx:128 msgid "Oh no! Something went wrong." -msgstr "" +msgstr "Oh nein, da ist etwas schief gelaufen." #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" @@ -2653,11 +2495,11 @@ msgstr "Okay" #: src/view/screens/PreferencesThreads.tsx:78 msgid "Oldest replies first" -msgstr "" +msgstr "Älteste Antworten zuerst" #: src/view/screens/Settings/index.tsx:234 msgid "Onboarding reset" -msgstr "" +msgstr "Onboarding zurücksetzen" #: src/view/com/composer/Composer.tsx:382 msgid "One or more images is missing alt text." @@ -2669,34 +2511,34 @@ msgstr "Nur {0} kann antworten." #: src/components/Lists.tsx:82 msgid "Oops, something went wrong!" -msgstr "" +msgstr "Ups, da ist etwas schief gelaufen!" #: src/components/Lists.tsx:188 #: src/view/screens/AppPasswords.tsx:65 #: src/view/screens/Profile.tsx:106 msgid "Oops!" -msgstr "" +msgstr "Huch!" #: src/screens/Onboarding/StepFinished.tsx:115 msgid "Open" -msgstr "" +msgstr "Öffnen" #: src/view/screens/Moderation.tsx:75 msgid "Open content filtering settings" -msgstr "" +msgstr "Inhaltsfiltereinstellungen öffnen" #: src/view/com/composer/Composer.tsx:477 #: src/view/com/composer/Composer.tsx:478 msgid "Open emoji picker" -msgstr "" +msgstr "Emoji-Picker öffnen" #: src/view/screens/Settings/index.tsx:712 msgid "Open links with in-app browser" -msgstr "" +msgstr "Links mit In-App-Browser öffnen" #: src/view/screens/Moderation.tsx:92 msgid "Open muted words settings" -msgstr "" +msgstr "Einstellungen für stummgeschaltete Wörter öffnen" #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" @@ -2704,31 +2546,31 @@ msgstr "Navigation öffnen" #: src/view/com/util/forms/PostDropdownBtn.tsx:175 msgid "Open post options menu" -msgstr "" +msgstr "Beitragsoptionsmenü öffnen" #: src/view/screens/Settings/index.tsx:804 msgid "Open storybook page" -msgstr "" +msgstr "Geschichtenbuch öffnen" #: src/view/com/util/forms/DropdownButton.tsx:154 msgid "Opens {numItems} options" -msgstr "" +msgstr "Öffnet {numItems} Optionen" #: src/view/screens/Log.tsx:54 msgid "Opens additional details for a debug entry" -msgstr "" +msgstr "Öffnet zusätzliche Details für einen Debug-Eintrag" #: src/view/com/notifications/FeedItem.tsx:349 msgid "Opens an expanded list of users in this notification" -msgstr "" +msgstr "Öffnet eine erweiterte Liste der Benutzer in dieser Meldung" #: src/view/com/composer/photos/OpenCameraBtn.tsx:61 msgid "Opens camera on device" -msgstr "" +msgstr "Öffnet die Kamera auf dem Gerät" #: src/view/com/composer/Prompt.tsx:25 msgid "Opens composer" -msgstr "" +msgstr "Öffnet den Beitragsverfasser" #: src/view/screens/Settings/index.tsx:595 msgid "Opens configurable language settings" @@ -2736,27 +2578,23 @@ msgstr "Öffnet die konfigurierbaren Spracheinstellungen" #: src/view/com/composer/photos/SelectPhotoBtn.tsx:44 msgid "Opens device photo gallery" -msgstr "" +msgstr "Öffnet die Gerätefotogalerie" #: src/view/com/profile/ProfileHeader.tsx:420 msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "" +msgstr "Öffnet den Editor für Profilanzeige, Avatar, Hintergrundbild und Beschreibung" #: src/view/screens/Settings/index.tsx:649 msgid "Opens external embeds settings" -msgstr "" +msgstr "Öffnet die Einstellungen für externe eingebettete Medien" #: src/view/com/profile/ProfileHeader.tsx:575 msgid "Opens followers list" -msgstr "" +msgstr "Öffnet die Follower-Liste" #: src/view/com/profile/ProfileHeader.tsx:594 msgid "Opens following list" -msgstr "" - -#: src/view/screens/Settings.tsx:412 -#~ msgid "Opens invite code list" -#~ msgstr "" +msgstr "Öffnet folgende Liste" #: src/view/com/modals/InviteCodes.tsx:172 msgid "Opens list of invite codes" @@ -2764,7 +2602,7 @@ msgstr "Öffnet die Liste der Einladungscodes" #: src/view/screens/Settings/index.tsx:774 msgid "Opens modal for account deletion confirmation. Requires email code." -msgstr "" +msgstr "Öffnet ein Modal, um die Löschung des Kontos zu bestätigen. Erfordert einen E-Mail-Code." #: src/view/com/modals/ChangeHandle.tsx:281 msgid "Opens modal for using custom domain" @@ -2776,12 +2614,12 @@ msgstr "Öffnet die Moderationseinstellungen" #: src/view/com/auth/login/LoginForm.tsx:239 msgid "Opens password reset form" -msgstr "" +msgstr "Öffnet das Formular zum Zurücksetzen des Passworts" #: src/view/com/home/HomeHeaderLayout.web.tsx:63 #: src/view/screens/Feeds.tsx:356 msgid "Opens screen to edit Saved Feeds" -msgstr "" +msgstr "Öffnet den Bildschirm zum Bearbeiten gespeicherten Feeds" #: src/view/screens/Settings/index.tsx:576 msgid "Opens screen with all saved feeds" @@ -2797,7 +2635,7 @@ msgstr "Öffnet die Home-Feed-Einstellungen" #: src/view/screens/Settings/index.tsx:805 msgid "Opens the storybook page" -msgstr "" +msgstr "Öffnet die Geschichtenbuch" #: src/view/screens/Settings/index.tsx:793 msgid "Opens the system log page" @@ -2809,20 +2647,16 @@ msgstr "Öffnet die Thread-Einstellungen" #: src/view/com/util/forms/DropdownButton.tsx:280 msgid "Option {0} of {numItems}" -msgstr "" +msgstr "Option {0} von {numItems}" #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" -msgstr "" +msgstr "Oder kombiniere diese Optionen:" #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" msgstr "Anderes Konto" -#: src/view/com/modals/ServerInput.tsx:88 -#~ msgid "Other service" -#~ msgstr "Anderer Service" - #: src/view/com/composer/select-language/SelectLangBtn.tsx:91 msgid "Other..." msgstr "Andere..." @@ -2834,7 +2668,7 @@ msgstr "Seite nicht gefunden" #: src/view/screens/NotFound.tsx:42 msgid "Page Not Found" -msgstr "" +msgstr "Seite nicht gefunden" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 @@ -2854,27 +2688,23 @@ msgstr "Passwort aktualisiert!" #: src/Navigation.tsx:162 msgid "People followed by @{0}" -msgstr "" +msgstr "Personen gefolgt von @{0}" #: src/Navigation.tsx:155 msgid "People following @{0}" -msgstr "" +msgstr "Personen, die @{0} folgen" #: src/view/com/lightbox/Lightbox.tsx:66 msgid "Permission to access camera roll is required." -msgstr "" +msgstr "Die Erlaubnis zum Zugriff auf die Kamerarolle ist erforderlich." #: src/view/com/lightbox/Lightbox.tsx:72 msgid "Permission to access camera roll was denied. Please enable it in your system settings." -msgstr "" +msgstr "Die Berechtigung zum Zugriff auf die Kamerarolle wurde verweigert. Bitte aktiviere sie in deinen Systemeinstellungen." #: src/screens/Onboarding/index.tsx:31 msgid "Pets" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:183 -#~ msgid "Phone number" -#~ msgstr "" +msgstr "Haustiere" #: src/view/com/modals/SelfLabel.tsx:121 msgid "Pictures meant for adults." @@ -2883,7 +2713,7 @@ msgstr "Bilder, die für Erwachsene bestimmt sind." #: src/view/screens/ProfileFeed.tsx:354 #: src/view/screens/ProfileList.tsx:581 msgid "Pin to home" -msgstr "" +msgstr "An die Startseite anheften" #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" @@ -2891,16 +2721,16 @@ msgstr "Angeheftete Feeds" #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 msgid "Play {0}" -msgstr "" +msgstr "{0} abspielen" #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 msgid "Play Video" -msgstr "" +msgstr "Video abspielen" #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 msgid "Plays the GIF" -msgstr "" +msgstr "Spielt das GIF ab" #: src/view/com/auth/create/state.ts:124 msgid "Please choose your handle." @@ -2912,7 +2742,7 @@ msgstr "Bitte wähle dein Passwort." #: src/view/com/auth/create/state.ts:131 msgid "Please complete the verification captcha." -msgstr "" +msgstr "Bitte fülle das Verifizierungs-Captcha aus." #: src/view/com/modals/ChangeEmail.tsx:67 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." @@ -2920,27 +2750,15 @@ msgstr "Bitte bestätige deine E-Mail, bevor du sie änderst. Dies ist eine vorà #: src/view/com/modals/AddAppPasswords.tsx:90 msgid "Please enter a name for your app password. All spaces is not allowed." -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:206 -#~ msgid "Please enter a phone number that can receive SMS text messages." -#~ msgstr "" +msgstr "Bitte gib einen Namen für dein App-Passwort ein. Nur Leerzeichen sind nicht erlaubt." #: src/view/com/modals/AddAppPasswords.tsx:145 msgid "Please enter a unique name for this App Password or use our randomly generated one." -msgstr "" +msgstr "Bitte gib einen eindeutigen Namen für dieses App-Passwort ein oder verwende unseren zufällig generierten Namen." #: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" -msgstr "" - -#: src/view/com/auth/create/state.ts:170 -#~ msgid "Please enter the code you received by SMS." -#~ msgstr "" - -#: src/view/com/auth/create/Step2.tsx:282 -#~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." -#~ msgstr "" +msgstr "Bitte gib ein gültiges Wort, einen Tag oder eine Phrase zum Stummschalten ein" #: src/view/com/auth/create/state.ts:103 msgid "Please enter your email." @@ -2957,25 +2775,25 @@ msgstr "Bitte teile uns mit, warum du denkst, dass diese Inhaltswarnung falsch a #: src/view/com/modals/VerifyEmail.tsx:101 msgid "Please Verify Your Email" -msgstr "" +msgstr "Bitte verifiziere deine E-Mail" #: src/view/com/composer/Composer.tsx:222 msgid "Please wait for your link card to finish loading" -msgstr "" +msgstr "Bitte warte, bis deine Link-karte vollständig geladen ist" #: src/screens/Onboarding/index.tsx:37 msgid "Politics" -msgstr "" +msgstr "Politik" #: src/view/com/modals/SelfLabel.tsx:111 msgid "Porn" -msgstr "" +msgstr "Porno" #: src/view/com/composer/Composer.tsx:357 #: src/view/com/composer/Composer.tsx:365 msgctxt "action" msgid "Post" -msgstr "" +msgstr "Beitrag" #: src/view/com/post-thread/PostThread.tsx:303 msgctxt "description" @@ -2984,17 +2802,17 @@ msgstr "Beitrag" #: src/view/com/post-thread/PostThreadItem.tsx:175 msgid "Post by {0}" -msgstr "" +msgstr "Beitrag von {0}" #: src/Navigation.tsx:174 #: src/Navigation.tsx:181 #: src/Navigation.tsx:188 msgid "Post by @{0}" -msgstr "" +msgstr "Beitrag von @{0}" #: src/view/com/util/forms/PostDropdownBtn.tsx:108 msgid "Post deleted" -msgstr "" +msgstr "Beitrag gelöscht" #: src/view/com/post-thread/PostThread.tsx:462 msgid "Post hidden" @@ -3014,7 +2832,7 @@ msgstr "Beitrag nicht gefunden" #: src/components/TagMenu/index.tsx:253 msgid "posts" -msgstr "" +msgstr "Beiträge" #: src/view/screens/Profile.tsx:180 msgid "Posts" @@ -3022,11 +2840,11 @@ msgstr "Beiträge" #: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." -msgstr "" +msgstr "Beiträge können basierend auf ihrem Text, ihren Tags oder beidem stummgeschaltet werden." #: src/view/com/posts/FeedErrorMessage.tsx:64 msgid "Posts hidden" -msgstr "" +msgstr "Ausgeblendete Beiträge" #: src/view/com/modals/LinkWarning.tsx:46 msgid "Potentially Misleading Link" @@ -3070,7 +2888,7 @@ msgstr "Profil" #: src/view/com/modals/EditProfile.tsx:128 msgid "Profile updated" -msgstr "" +msgstr "Profil aktualisiert" #: src/view/screens/Settings/index.tsx:949 msgid "Protect your account by verifying your email." @@ -3078,7 +2896,7 @@ msgstr "Schütze dein Konto, indem du deine E-Mail bestätigst." #: src/screens/Onboarding/StepFinished.tsx:101 msgid "Public" -msgstr "" +msgstr "Öffentlich" #: src/view/screens/ModerationModlists.tsx:61 msgid "Public, shareable lists of users to mute or block in bulk." @@ -3090,11 +2908,11 @@ msgstr "Öffentliche, gemeinsam nutzbare Listen, die Feeds steuern können." #: src/view/com/composer/Composer.tsx:342 msgid "Publish post" -msgstr "" +msgstr "Beitrag veröffentlichen" #: src/view/com/composer/Composer.tsx:342 msgid "Publish reply" -msgstr "" +msgstr "Antwort veröffentlichen" #: src/view/com/modals/Repost.tsx:65 msgctxt "action" @@ -3112,11 +2930,11 @@ msgstr "Beitrag zitieren" #: src/view/screens/PreferencesThreads.tsx:86 msgid "Random (aka \"Poster's Roulette\")" -msgstr "" +msgstr "Zufällig (alias \"Poster's Roulette\")" #: src/view/com/modals/EditImage.tsx:236 msgid "Ratios" -msgstr "" +msgstr "Verhältnisse" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 msgid "Recommended Feeds" @@ -3166,11 +2984,11 @@ msgstr "Bildvorschau entfernen" #: src/components/dialogs/MutedWords.tsx:343 msgid "Remove mute word from your list" -msgstr "" +msgstr "Stummgeschaltetes Wort aus deiner Liste entfernen" #: src/view/com/modals/Repost.tsx:47 msgid "Remove repost" -msgstr "" +msgstr "Repost entfernen" #: src/view/com/feeds/FeedSourceCard.tsx:175 msgid "Remove this feed from my feeds?" @@ -3188,11 +3006,11 @@ msgstr "Aus der Liste entfernt" #: src/view/com/feeds/FeedSourceCard.tsx:113 #: src/view/com/feeds/FeedSourceCard.tsx:180 msgid "Removed from my feeds" -msgstr "" +msgstr "Aus meinen Feeds entfernt" #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" -msgstr "" +msgstr "Entfernt Standard-Miniaturansicht von {0}" #: src/view/screens/Profile.tsx:181 msgid "Replies" @@ -3205,7 +3023,7 @@ msgstr "Antworten auf diesen Thread sind deaktiviert" #: src/view/com/composer/Composer.tsx:355 msgctxt "action" msgid "Reply" -msgstr "" +msgstr "Antworten" #: src/view/screens/PreferencesFollowingFeed.tsx:144 msgid "Reply Filters" @@ -3215,7 +3033,7 @@ msgstr "Antwortfilter" #: src/view/com/posts/FeedItem.tsx:287 msgctxt "description" msgid "Reply to <0/>" -msgstr "" +msgstr "Antwort an <0/>" #: src/view/com/modals/report/Modal.tsx:166 msgid "Report {collectionName}" @@ -3245,7 +3063,7 @@ msgstr "Beitrag melden" #: src/view/com/util/post-ctrls/RepostButton.tsx:61 msgctxt "action" msgid "Repost" -msgstr "" +msgstr "Repost" #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Repost" @@ -3254,45 +3072,41 @@ msgstr "Erneut veröffentlichen" #: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 msgid "Repost or quote post" -msgstr "" +msgstr "Reposten oder Beitrag zitieren" #: src/view/screens/PostRepostedBy.tsx:27 msgid "Reposted By" -msgstr "" +msgstr "Repostet von" #: src/view/com/posts/FeedItem.tsx:207 msgid "Reposted by {0}" -msgstr "" +msgstr "Repostet von {0}" #: src/view/com/posts/FeedItem.tsx:224 msgid "Reposted by <0/>" -msgstr "" +msgstr "Repostet von <0/>" #: src/view/com/notifications/FeedItem.tsx:162 msgid "reposted your post" -msgstr "" +msgstr "hat deinen Beitrag repostet" #: src/view/com/post-thread/PostThreadItem.tsx:188 msgid "Reposts of this post" -msgstr "" +msgstr "Reposts von diesem Beitrag" #: src/view/com/modals/ChangeEmail.tsx:181 #: src/view/com/modals/ChangeEmail.tsx:183 msgid "Request Change" msgstr "Änderung anfordern" -#: src/view/com/auth/create/Step2.tsx:219 -#~ msgid "Request code" -#~ msgstr "" - #: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 msgid "Request Code" -msgstr "" +msgstr "Einen Code anfordern" #: src/view/screens/Settings/index.tsx:456 msgid "Require alt text before posting" -msgstr "" +msgstr "Alt-Text vor der Veröffentlichung erforderlich machen" #: src/view/com/auth/create/Step1.tsx:146 msgid "Required for this provider" @@ -3305,15 +3119,15 @@ msgstr "Code zurücksetzen" #: src/view/com/modals/ChangePassword.tsx:190 msgid "Reset Code" -msgstr "" +msgstr "Code zurücksetzen" #: src/view/screens/Settings/index.tsx:824 msgid "Reset onboarding" -msgstr "" +msgstr "Onboarding zurücksetzen" #: src/view/screens/Settings/index.tsx:827 msgid "Reset onboarding state" -msgstr "" +msgstr "Onboarding-Status zurücksetzen" #: src/view/com/auth/login/ForgotPasswordForm.tsx:104 msgid "Reset password" @@ -3321,28 +3135,28 @@ msgstr "Passwort zurücksetzen" #: src/view/screens/Settings/index.tsx:814 msgid "Reset preferences" -msgstr "" +msgstr "Einstellungen zurücksetzen" #: src/view/screens/Settings/index.tsx:817 msgid "Reset preferences state" -msgstr "" +msgstr "Einstellungen zurücksetzen" #: src/view/screens/Settings/index.tsx:825 msgid "Resets the onboarding state" -msgstr "" +msgstr "Setzt den Onboarding-Status zurück" #: src/view/screens/Settings/index.tsx:815 msgid "Resets the preferences state" -msgstr "" +msgstr "Einstellungen zurücksetzen" #: src/view/com/auth/login/LoginForm.tsx:269 msgid "Retries login" -msgstr "" +msgstr "Versucht die Anmeldung erneut" #: src/view/com/util/error/ErrorMessage.tsx:57 #: src/view/com/util/error/ErrorScreen.tsx:74 msgid "Retries the last action, which errored out" -msgstr "" +msgstr "Wiederholung der letzten Aktion, bei der ein Fehler aufgetreten ist" #: src/screens/Onboarding/StepInterests/index.tsx:221 #: src/screens/Onboarding/StepInterests/index.tsx:224 @@ -3355,23 +3169,15 @@ msgstr "" msgid "Retry" msgstr "Wiederholen" -#: src/view/com/auth/create/Step2.tsx:247 -#~ msgid "Retry." -#~ msgstr "" - #: src/view/screens/ProfileList.tsx:903 msgid "Return to previous page" -msgstr "" - -#: src/view/shell/desktop/RightNav.tsx:55 -#~ msgid "SANDBOX. Posts and accounts are not permanent." -#~ msgstr "" +msgstr "Zurück zur vorherigen Seite" #: src/view/com/lightbox/Lightbox.tsx:132 #: src/view/com/modals/CreateOrEditList.tsx:345 msgctxt "action" msgid "Save" -msgstr "" +msgstr "Speichern" #: src/view/com/modals/BirthDateSettings.tsx:94 #: src/view/com/modals/BirthDateSettings.tsx:97 @@ -3404,19 +3210,19 @@ msgstr "Gespeicherte Feeds" #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" -msgstr "" +msgstr "Speichert alle Änderungen an Deinem Profil" #: src/view/com/modals/ChangeHandle.tsx:171 msgid "Saves handle change to {handle}" -msgstr "" +msgstr "Speichert Handle-Änderung in {handle}" #: src/screens/Onboarding/index.tsx:36 msgid "Science" -msgstr "" +msgstr "Wissenschaft" #: src/view/screens/ProfileList.tsx:859 msgid "Scroll to top" -msgstr "" +msgstr "Zum Anfang blättern" #: src/Navigation.tsx:447 #: src/view/com/auth/LoggedOut.tsx:122 @@ -3438,23 +3244,15 @@ msgstr "Suche" #: src/view/screens/Search/Search.tsx:735 #: src/view/shell/desktop/Search.tsx:255 msgid "Search for \"{query}\"" -msgstr "" +msgstr "Suche nach \"{query}\"" #: src/components/TagMenu/index.tsx:145 msgid "Search for all posts by @{authorHandle} with tag {displayTag}" -msgstr "" - -#: src/components/TagMenu/index.tsx:145 -#~ msgid "Search for all posts by @{authorHandle} with tag {tag}" -#~ msgstr "" +msgstr "Nach allen Beiträgen von @{authorHandle} mit dem Tag {displayTag} suchen" #: src/components/TagMenu/index.tsx:94 msgid "Search for all posts with tag {displayTag}" -msgstr "" - -#: src/components/TagMenu/index.tsx:90 -#~ msgid "Search for all posts with tag {tag}" -#~ msgstr "" +msgstr "Nach allen Beiträgen mit dem Tag {displayTag} suchen" #: src/view/com/auth/LoggedOut.tsx:104 #: src/view/com/auth/LoggedOut.tsx:105 @@ -3468,31 +3266,23 @@ msgstr "Sicherheitsschritt erforderlich" #: src/components/TagMenu/index.web.tsx:66 msgid "See {truncatedTag} posts" -msgstr "" +msgstr "Siehe {truncatedTag}-Beiträge" #: src/components/TagMenu/index.web.tsx:83 msgid "See {truncatedTag} posts by user" -msgstr "" +msgstr "Siehe {truncatedTag}-Beiträge des Benutzers" #: src/components/TagMenu/index.tsx:128 msgid "See <0>{displayTag}</0> posts" -msgstr "" +msgstr "Siehe <0>{displayTag}</0>-Beiträge" #: src/components/TagMenu/index.tsx:187 msgid "See <0>{displayTag}</0> posts by this user" -msgstr "" - -#: src/components/TagMenu/index.tsx:128 -#~ msgid "See <0>{tag}</0> posts" -#~ msgstr "" - -#: src/components/TagMenu/index.tsx:189 -#~ msgid "See <0>{tag}</0> posts by this user" -#~ msgstr "" +msgstr "Siehe <0>{displayTag}</0>-Beiträge von diesem Benutzer" #: src/view/screens/SavedFeeds.tsx:163 msgid "See this guide" -msgstr "" +msgstr "Siehe diesen Leitfaden" #: src/view/com/auth/HomeLoggedOutCTA.tsx:39 msgid "See what's next" @@ -3500,11 +3290,7 @@ msgstr "Schau, was als nächstes kommt" #: src/view/com/util/Selector.tsx:106 msgid "Select {item}" -msgstr "" - -#: src/view/com/modals/ServerInput.tsx:75 -#~ msgid "Select Bluesky Social" -#~ msgstr "Wähle Bluesky Social" +msgstr "Wähle {item}" #: src/view/com/auth/login/Login.tsx:117 msgid "Select from an existing account" @@ -3512,7 +3298,7 @@ msgstr "Von einem bestehenden Konto auswählen" #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" -msgstr "" +msgstr "Wähle Option {i} von {numItems}" #: src/view/com/auth/create/Step1.tsx:96 #: src/view/com/auth/login/LoginForm.tsx:150 @@ -3521,23 +3307,19 @@ msgstr "Service auswählen" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 msgid "Select some accounts below to follow" -msgstr "" +msgstr "Wähle unten einige Konten aus, denen du folgen möchtest" #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." -msgstr "" - -#: src/screens/Onboarding/StepModeration/index.tsx:49 -#~ msgid "Select the types of content that you want to see (or not see), and we'll handle the rest." -#~ msgstr "" +msgstr "Wähle den Dienst aus, der deine Daten hostet." #: src/screens/Onboarding/StepTopicalFeeds.tsx:96 msgid "Select topical feeds to follow from the list below" -msgstr "" +msgstr "Wähle aus der folgenden Liste die themenbezogenen Feeds aus, die du verfolgen möchtest" #: src/screens/Onboarding/StepModeration/index.tsx:75 msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "" +msgstr "Wähle aus, was du sehen (oder nicht sehen) möchtest, und wir kümmern uns um den Rest." #: src/view/screens/LanguageSettings.tsx:281 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." @@ -3549,11 +3331,7 @@ msgstr "Wählen deine App-Sprache für den Standardtext aus, der in der App ange #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:155 -#~ msgid "Select your phone's country" -#~ msgstr "" +msgstr "Wähle aus den folgenden Optionen deine Interessen aus" #: src/view/screens/LanguageSettings.tsx:190 msgid "Select your preferred language for translations in your feed." @@ -3561,11 +3339,11 @@ msgstr "Wähle deine bevorzugte Sprache für die Übersetzungen in deinem Feed a #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:116 msgid "Select your primary algorithmic feeds" -msgstr "" +msgstr "Wähle deine primären algorithmischen Feeds" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:142 msgid "Select your secondary algorithmic feeds" -msgstr "" +msgstr "Wähle deine sekundären algorithmischen Feeds" #: src/view/com/modals/VerifyEmail.tsx:202 #: src/view/com/modals/VerifyEmail.tsx:204 @@ -3588,45 +3366,45 @@ msgstr "Feedback senden" #: src/view/com/modals/report/SendReportButton.tsx:45 msgid "Send Report" -msgstr "" +msgstr "Bericht senden" #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" -msgstr "" +msgstr "Sendet eine E-Mail mit Bestätigungscode für die Kontolöschung" #: src/view/com/auth/server-input/index.tsx:110 msgid "Server address" -msgstr "" +msgstr "Server-Adresse" #: src/view/com/modals/ContentFilteringSettings.tsx:311 msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "" +msgstr "Legt {value} für die {labelGroup} Inhaltsmoderationsrichtlinie fest" #: src/view/com/modals/ContentFilteringSettings.tsx:160 #: src/view/com/modals/ContentFilteringSettings.tsx:179 msgctxt "action" msgid "Set Age" -msgstr "" +msgstr "Alter festlegen" #: src/view/screens/Settings/index.tsx:488 msgid "Set color theme to dark" -msgstr "" +msgstr "Farbthema auf dunkel einstellen" #: src/view/screens/Settings/index.tsx:481 msgid "Set color theme to light" -msgstr "" +msgstr "Farbthema auf hell einstellen" #: src/view/screens/Settings/index.tsx:475 msgid "Set color theme to system setting" -msgstr "" +msgstr "Farbthema auf Systemeinstellung setzen" #: src/view/screens/Settings/index.tsx:514 msgid "Set dark theme to the dark theme" -msgstr "" +msgstr "Dunkles Thema auf das dunkle Thema einstellen" #: src/view/screens/Settings/index.tsx:507 msgid "Set dark theme to the dim theme" -msgstr "" +msgstr "Dunkles Thema auf das gedämpfte Thema einstellen" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3634,7 +3412,7 @@ msgstr "Neues Passwort festlegen" #: src/view/com/auth/create/Step1.tsx:202 msgid "Set password" -msgstr "" +msgstr "Passwort festlegen" #: src/view/screens/PreferencesFollowingFeed.tsx:225 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." @@ -3652,34 +3430,30 @@ 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/PreferencesHomeFeed.tsx:261 -#~ 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 folgenden Feed anzuzeigen. Dies ist eine experimentelle Funktion." - #: src/view/screens/PreferencesFollowingFeed.tsx:261 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." -msgstr "" +msgstr "Setze diese Einstellung auf \"Ja\", um Beispiele für deine gespeicherten Feeds in deinem Following-Feed anzuzeigen. Dies ist eine experimentelle Funktion." #: src/screens/Onboarding/Layout.tsx:50 msgid "Set up your account" -msgstr "" +msgstr "Dein Konto einrichten" #: src/view/com/modals/ChangeHandle.tsx:266 msgid "Sets Bluesky username" -msgstr "" +msgstr "Legt deinen Bluesky-Benutzernamen fest" #: src/view/com/auth/login/ForgotPasswordForm.tsx:157 msgid "Sets email for password reset" -msgstr "" +msgstr "Legt die E-Mail für das Zurücksetzen des Passworts fest" #: src/view/com/auth/login/ForgotPasswordForm.tsx:122 msgid "Sets hosting provider for password reset" -msgstr "" +msgstr "Legt den Hosting-Anbieter für das Zurücksetzen des Passworts fest" #: src/view/com/auth/create/Step1.tsx:97 #: src/view/com/auth/login/LoginForm.tsx:151 msgid "Sets server for the Bluesky client" -msgstr "" +msgstr "Setzt den Server für den Bluesky-Client" #: src/Navigation.tsx:137 #: src/view/screens/Settings/index.tsx:294 @@ -3696,7 +3470,7 @@ msgstr "Sexuelle Aktivitäten oder erotische Nacktheit." #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" -msgstr "" +msgstr "Teilen" #: src/view/com/profile/ProfileHeader.tsx:295 #: src/view/com/util/forms/PostDropdownBtn.tsx:231 @@ -3720,7 +3494,7 @@ msgstr "Anzeigen" #: src/view/screens/PreferencesFollowingFeed.tsx:68 msgid "Show all replies" -msgstr "" +msgstr "Alle Antworten anzeigen" #: src/view/com/util/moderation/ScreenHider.tsx:132 msgid "Show anyway" @@ -3728,17 +3502,17 @@ msgstr "Trotzdem anzeigen" #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" -msgstr "" +msgstr "Eingebettete Medien von {0} anzeigen" #: src/view/com/profile/ProfileHeader.tsx:459 msgid "Show follows similar to {0}" -msgstr "" +msgstr "Zeige ähnliche Konten wie {0}" #: src/view/com/post-thread/PostThreadItem.tsx:538 #: src/view/com/post/Post.tsx:198 #: src/view/com/posts/FeedItem.tsx:363 msgid "Show More" -msgstr "" +msgstr "Mehr anzeigen" #: src/view/screens/PreferencesFollowingFeed.tsx:258 msgid "Show Posts from My Feeds" @@ -3746,19 +3520,19 @@ msgstr "Beiträge aus meinen Feeds anzeigen" #: src/view/screens/PreferencesFollowingFeed.tsx:222 msgid "Show Quote Posts" -msgstr "" +msgstr "Zitierte Beiträge anzeigen" #: src/screens/Onboarding/StepFollowingFeed.tsx:118 msgid "Show quote-posts in Following feed" -msgstr "" +msgstr "Zitierte Beiträge im Following Feed anzeigen" #: src/screens/Onboarding/StepFollowingFeed.tsx:134 msgid "Show quotes in Following" -msgstr "" +msgstr "Zitierte Beiträge im Following Feed anzeigen" #: src/screens/Onboarding/StepFollowingFeed.tsx:94 msgid "Show re-posts in Following feed" -msgstr "" +msgstr "Reposts im Following-Feed anzeigen" #: src/view/screens/PreferencesFollowingFeed.tsx:119 msgid "Show Replies" @@ -3770,15 +3544,15 @@ msgstr "Zeige Antworten von Personen, denen du folgst, vor allen anderen Antwort #: src/screens/Onboarding/StepFollowingFeed.tsx:86 msgid "Show replies in Following" -msgstr "" +msgstr "Antworten in folgendem Feed anzeigen" #: src/screens/Onboarding/StepFollowingFeed.tsx:70 msgid "Show replies in Following feed" -msgstr "" +msgstr "Antworten in folgendem Feed anzeigen" #: src/view/screens/PreferencesFollowingFeed.tsx:70 msgid "Show replies with at least {value} {0}" -msgstr "" +msgstr "Antworten mit mindestens {value} {0} anzeigen" #: src/view/screens/PreferencesFollowingFeed.tsx:188 msgid "Show Reposts" @@ -3786,12 +3560,12 @@ msgstr "Reposts anzeigen" #: src/screens/Onboarding/StepFollowingFeed.tsx:110 msgid "Show reposts in Following" -msgstr "" +msgstr "Reposts im Following-Feed anzeigen" #: src/view/com/util/moderation/ContentHider.tsx:67 #: src/view/com/util/moderation/PostHider.tsx:61 msgid "Show the content" -msgstr "" +msgstr "Den Inhalt anzeigen" #: src/view/com/notifications/FeedItem.tsx:347 msgid "Show users" @@ -3799,12 +3573,12 @@ msgstr "Nutzer anzeigen" #: src/view/com/profile/ProfileHeader.tsx:462 msgid "Shows a list of users similar to this user." -msgstr "" +msgstr "Zeigt eine Liste von Benutzern, die diesem Benutzer ähnlich sind." #: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 #: src/view/com/profile/ProfileHeader.tsx:506 msgid "Shows posts from {0} in your feed" -msgstr "" +msgstr "Zeigt Beiträge von {0} in deinem Feed" #: src/view/com/auth/HomeLoggedOutCTA.tsx:70 #: src/view/com/auth/login/Login.tsx:98 @@ -3872,11 +3646,11 @@ msgstr "Angemeldet als" #: src/view/com/auth/login/ChooseAccountForm.tsx:103 msgid "Signed in as @{0}" -msgstr "" +msgstr "Angemeldet als @{0}" #: src/view/com/modals/SwitchAccount.tsx:66 msgid "Signs {0} out of Bluesky" -msgstr "" +msgstr "Meldet {0} von Bluesky ab" #: src/screens/Onboarding/StepInterests/index.tsx:235 #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:195 @@ -3886,31 +3660,19 @@ msgstr "Überspringen" #: src/screens/Onboarding/StepInterests/index.tsx:232 msgid "Skip this flow" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:82 -#~ msgid "SMS verification" -#~ msgstr "" +msgstr "Diesen Schritt überspringen" #: src/screens/Onboarding/index.tsx:40 msgid "Software Dev" -msgstr "" - -#: src/view/com/modals/ProfilePreview.tsx:62 -#~ msgid "Something went wrong and we're not sure what." -#~ msgstr "" +msgstr "Software-Entwicklung" #: src/components/Lists.tsx:203 msgid "Something went wrong!" -msgstr "" - -#: src/view/com/modals/Waitlist.tsx:51 -#~ msgid "Something went wrong. Check your email and try again." -#~ msgstr "" +msgstr "Es ist ein Fehler aufgetreten." #: src/App.native.tsx:66 msgid "Sorry! Your session expired. Please log in again." -msgstr "" +msgstr "Entschuldigung! Deine Sitzung ist abgelaufen. Bitte logge dich erneut ein." #: src/view/screens/PreferencesThreads.tsx:69 msgid "Sort Replies" @@ -3922,15 +3684,11 @@ msgstr "Antworten auf denselben Beitrag sortieren nach:" #: src/screens/Onboarding/index.tsx:30 msgid "Sports" -msgstr "" +msgstr "Sport" #: src/view/com/modals/crop-image/CropImage.web.tsx:122 msgid "Square" -msgstr "" - -#: src/view/com/modals/ServerInput.tsx:62 -#~ msgid "Staging" -#~ msgstr "Staging" +msgstr "Quadratische" #: src/view/screens/Settings/index.tsx:871 msgid "Status page" @@ -3938,16 +3696,16 @@ msgstr "Status-Seite" #: src/view/com/auth/create/StepHeader.tsx:22 msgid "Step {0} of {numSteps}" -msgstr "" +msgstr "Schritt {0} von {numSteps}" #: src/view/screens/Settings/index.tsx:274 msgid "Storage cleared, you need to restart the app now." -msgstr "" +msgstr "Der Speicher wurde gelöscht, du musst die App jetzt neu starten." #: src/Navigation.tsx:204 #: src/view/screens/Settings/index.tsx:807 msgid "Storybook" -msgstr "" +msgstr "Geschichtenbuch" #: src/view/com/modals/AppealLabel.tsx:101 msgid "Submit" @@ -3960,7 +3718,7 @@ msgstr "Abonnieren" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" -msgstr "" +msgstr "Abonniere den {0} Feed" #: src/view/screens/ProfileList.tsx:604 msgid "Subscribe to this list" @@ -3972,11 +3730,11 @@ msgstr "Vorgeschlagene Follower" #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:64 msgid "Suggested for you" -msgstr "" +msgstr "Vorgeschlagen für dich" #: src/view/com/modals/SelfLabel.tsx:95 msgid "Suggestive" -msgstr "" +msgstr "Suggestiv" #: src/Navigation.tsx:214 #: src/view/screens/Support.tsx:30 @@ -3984,10 +3742,6 @@ msgstr "" msgid "Support" msgstr "Support" -#: src/view/com/modals/ProfilePreview.tsx:110 -#~ msgid "Swipe up to see more" -#~ msgstr "" - #: src/view/com/modals/SwitchAccount.tsx:117 msgid "Switch Account" msgstr "Konto wechseln" @@ -3995,16 +3749,16 @@ msgstr "Konto wechseln" #: src/view/com/modals/SwitchAccount.tsx:97 #: src/view/screens/Settings/index.tsx:130 msgid "Switch to {0}" -msgstr "" +msgstr "Wechseln zu {0}" #: src/view/com/modals/SwitchAccount.tsx:98 #: src/view/screens/Settings/index.tsx:131 msgid "Switches the account you are logged in to" -msgstr "" +msgstr "Wechselt das Konto, in das du eingeloggt bist" #: src/view/screens/Settings/index.tsx:472 msgid "System" -msgstr "" +msgstr "System" #: src/view/screens/Settings/index.tsx:795 msgid "System log" @@ -4012,15 +3766,11 @@ msgstr "Systemprotokoll" #: src/components/dialogs/MutedWords.tsx:337 msgid "tag" -msgstr "" +msgstr "Tag" #: src/components/TagMenu/index.tsx:78 msgid "Tag menu: {displayTag}" -msgstr "" - -#: src/components/TagMenu/index.tsx:74 -#~ msgid "Tag menu: {tag}" -#~ msgstr "" +msgstr "Tag-Menü: {displayTag}" #: src/view/com/modals/crop-image/CropImage.web.tsx:112 msgid "Tall" @@ -4028,11 +3778,11 @@ msgstr "Groß" #: src/view/com/util/images/AutoSizedImage.tsx:70 msgid "Tap to view fully" -msgstr "" +msgstr "Tippe, um die vollständige Ansicht anzuzeigen" #: src/screens/Onboarding/index.tsx:39 msgid "Tech" -msgstr "" +msgstr "Technik" #: src/view/shell/desktop/RightNav.tsx:81 msgid "Terms" @@ -4047,7 +3797,7 @@ msgstr "Nutzungsbedingungen" #: src/components/dialogs/MutedWords.tsx:337 msgid "text" -msgstr "" +msgstr "Text" #: src/view/com/modals/AppealLabel.tsx:70 #: src/view/com/modals/report/InputIssueDetails.tsx:51 @@ -4056,11 +3806,11 @@ msgstr "Text-Eingabefeld" #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." -msgstr "" +msgstr "Dieser Handle ist bereits besetzt." #: src/view/com/profile/ProfileHeader.tsx:263 msgid "The account will be able to interact with you after unblocking." -msgstr "" +msgstr "Das Konto kann nach der Entblockiert mit dir interagieren." #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" @@ -4068,11 +3818,11 @@ msgstr "Die Community-Richtlinien wurden nach <0/> verschoben" #: src/view/screens/CopyrightPolicy.tsx:33 msgid "The Copyright Policy has been moved to <0/>" -msgstr "" +msgstr "Die Copyright-Richtlinie wurde nach <0/> verschoben" #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." -msgstr "" +msgstr "Die folgenden Schritte helfen dir, dein Bluesky-Erlebnis anzupassen." #: src/view/com/post-thread/PostThread.tsx:517 msgid "The post may have been deleted." @@ -4088,23 +3838,23 @@ msgstr "Das Support-Formular wurde verschoben. Wenn du Hilfe benötigst, wende d #: src/view/screens/TermsOfService.tsx:33 msgid "The Terms of Service have been moved to" -msgstr "" +msgstr "Die Allgemeinen Geschäftsbedingungen wurden verschoben nach" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:150 msgid "There are many feeds to try:" -msgstr "" +msgstr "Es gibt viele Feeds zum Ausprobieren:" #: src/view/screens/ProfileFeed.tsx:550 msgid "There was an an issue contacting the server, please check your internet connection and try again." -msgstr "" +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:139 msgid "There was an an issue removing this feed. Please check your internet connection and try again." -msgstr "" +msgstr "Es gab ein Problem beim Entfernen dieses Feeds. Bitte überprüfe deine Internetverbindung und versuche es erneut." #: src/view/screens/ProfileFeed.tsx:210 msgid "There was an an issue updating your feeds, please check your internet connection and try again." -msgstr "" +msgstr "Es gab ein Problem bei der Aktualisierung deines Feeds. Bitte überprüfe deine Internetverbindung und versuche es erneut." #: src/view/screens/ProfileFeed.tsx:237 #: src/view/screens/ProfileList.tsx:267 @@ -4112,7 +3862,7 @@ msgstr "" #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 msgid "There was an issue contacting the server" -msgstr "" +msgstr "Es gab ein Problem bei der Kontaktaufnahme mit dem Server" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 @@ -4120,33 +3870,33 @@ msgstr "" #: src/view/com/feeds/FeedSourceCard.tsx:129 #: src/view/com/feeds/FeedSourceCard.tsx:183 msgid "There was an issue contacting your server" -msgstr "" +msgstr "Es gab ein Problem bei der Kontaktaufnahme mit deinem Server" #: src/view/com/notifications/Feed.tsx:117 msgid "There was an issue fetching notifications. Tap here to try again." -msgstr "" +msgstr "Es gab ein Problem beim Abrufen von Mitteilungen. Tippe hier, um es erneut zu versuchen." #: src/view/com/posts/Feed.tsx:265 msgid "There was an issue fetching posts. Tap here to try again." -msgstr "" +msgstr "Es gab ein Problem beim Abrufen der Beiträge. Tippe hier, um es erneut zu versuchen." #: src/view/com/lists/ListMembers.tsx:172 msgid "There was an issue fetching the list. Tap here to try again." -msgstr "" +msgstr "Es gab ein Problem beim Abrufen der Liste. Tippe hier, um es erneut zu versuchen." #: src/view/com/feeds/ProfileFeedgens.tsx:148 #: src/view/com/lists/ProfileLists.tsx:155 msgid "There was an issue fetching your lists. Tap here to try again." -msgstr "" +msgstr "Es gab ein Problem beim Abrufen deiner Listen. Tippe hier, um es erneut zu versuchen." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 #: src/view/com/modals/ContentFilteringSettings.tsx:126 msgid "There was an issue syncing your preferences with the server" -msgstr "" +msgstr "Es gab ein Problem bei der Synchronisierung deiner Einstellungen mit dem Server" #: src/view/screens/AppPasswords.tsx:66 msgid "There was an issue with fetching your app passwords" -msgstr "" +msgstr "Es gab ein Problem beim Abrufen deiner App-Passwörter" #: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 #: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 @@ -4157,46 +3907,42 @@ msgstr "" #: src/view/com/profile/ProfileHeader.tsx:250 #: src/view/com/profile/ProfileHeader.tsx:272 msgid "There was an issue! {0}" -msgstr "" +msgstr "Es gab ein Problem! {0}" #: src/view/screens/ProfileList.tsx:288 #: src/view/screens/ProfileList.tsx:307 #: src/view/screens/ProfileList.tsx:329 #: src/view/screens/ProfileList.tsx:348 msgid "There was an issue. Please check your internet connection and try again." -msgstr "" +msgstr "Es ist ein Problem aufgetreten. Bitte überprüfe deine Internetverbindung und versuche es erneut." #: src/view/com/util/ErrorBoundary.tsx:36 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" -msgstr "" +msgstr "Es gab ein unerwartetes Problem in der Anwendung. Bitte teile uns mit, wenn dies bei dir der Fall ist!" #: src/screens/Deactivated.tsx:106 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:55 -#~ msgid "There's something wrong with this number. Please choose your country and enter your full phone number!" -#~ msgstr "" +msgstr "Es gab einen Ansturm neuer Nutzer auf Bluesky! Wir werden dein Konto so schnell wie möglich aktivieren." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:138 msgid "These are popular accounts you might like:" -msgstr "" +msgstr "Dies sind beliebte Konten, die dir gefallen könnten:" #: src/view/com/util/moderation/ScreenHider.tsx:88 msgid "This {screenDescription} has been flagged:" -msgstr "" +msgstr "Diese {screenDescription} wurde gekennzeichnet:" #: src/view/com/util/moderation/ScreenHider.tsx:83 msgid "This account has requested that users sign in to view their profile." -msgstr "" +msgstr "Dieses Konto hat die Benutzer aufgefordert, sich anzumelden, um dein Profil zu sehen." #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" -msgstr "" +msgstr "Dieser Inhalt wird von {0} gehostet. Möchtest du externe Medien aktivieren?" #: src/view/com/modals/ModerationDetails.tsx:67 msgid "This content is not available because one of the users involved has blocked the other." -msgstr "" +msgstr "Dieser Inhalt ist nicht verfügbar, weil einer der beteiligten Nutzer den anderen blockiert hat." #: src/view/com/posts/FeedErrorMessage.tsx:108 msgid "This content is not viewable without a Bluesky account." @@ -4204,7 +3950,7 @@ msgstr "Dieser Inhalt ist ohne ein Bluesky-Konto nicht sichtbar." #: src/view/screens/Settings/ExportCarDialog.tsx:75 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost.</0>" -msgstr "" +msgstr "Diese Funktion befindet sich in der Beta-Phase. Du kannst mehr über Kontodepot-Exporte in <0>diesem Blogpost lesen.</0>" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." @@ -4214,11 +3960,11 @@ msgstr "Dieser Feed wird derzeit stark frequentiert und ist vorübergehend nicht #: src/view/screens/ProfileFeed.tsx:476 #: src/view/screens/ProfileList.tsx:661 msgid "This feed is empty!" -msgstr "" +msgstr "Dieser Feed ist leer!" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 msgid "This feed is empty! You may need to follow more users or tune your language settings." -msgstr "" +msgstr "Dieser Feed ist leer! Möglicherweise musst du mehr Benutzern folgen oder deine Spracheinstellungen anpassen." #: src/view/com/modals/BirthDateSettings.tsx:61 msgid "This information is not shared with other users." @@ -4234,11 +3980,11 @@ msgstr "Dieser Link führt dich auf die folgende Website:" #: src/view/screens/ProfileList.tsx:839 msgid "This list is empty!" -msgstr "" +msgstr "Diese Liste ist leer!" #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" -msgstr "" +msgstr "Dieser Name ist bereits in Gebrauch" #: src/view/com/post-thread/PostThreadItem.tsx:125 msgid "This post has been deleted." @@ -4246,19 +3992,15 @@ msgstr "Dieser Beitrag wurde gelöscht." #: src/view/com/modals/ModerationDetails.tsx:62 msgid "This user has blocked you. You cannot view their content." -msgstr "" +msgstr "Dieser Benutzer hat dich blockiert. Du kannst deren Inhalte nicht sehen." #: src/view/com/modals/ModerationDetails.tsx:42 msgid "This user is included in the <0/> list which you have blocked." -msgstr "" +msgstr "Dieser Benutzer ist in der Liste <0/> enthalten, die du blockiert hast." #: src/view/com/modals/ModerationDetails.tsx:74 msgid "This user is included in the <0/> list which you have muted." -msgstr "" - -#: src/view/com/modals/ModerationDetails.tsx:74 -#~ msgid "This user is included the <0/> list which you have muted." -#~ msgstr "" +msgstr "Dieser Benutzer ist in der Liste <0/> enthalten, die du stummgeschaltet haben." #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." @@ -4266,7 +4008,7 @@ msgstr "Diese Warnung ist nur für Beiträge mit angehängten Medien verfügbar. #: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." -msgstr "" +msgstr "Dies wird {0} aus deinen stummgeschalteten Wörtern löschen. Du kannst es später jederzeit wieder hinzufügen." #: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "This will hide this post from your feeds." @@ -4279,23 +4021,23 @@ msgstr "Thread-Einstellungen" #: src/view/screens/PreferencesThreads.tsx:119 msgid "Threaded Mode" -msgstr "" +msgstr "Gewindemodus" #: src/Navigation.tsx:257 msgid "Threads Preferences" -msgstr "" +msgstr "Thread-Einstellungen" #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." -msgstr "" +msgstr "Zwischen den Optionen für stummgeschaltete Wörter wechseln." #: src/view/com/util/forms/DropdownButton.tsx:246 msgid "Toggle dropdown" -msgstr "" +msgstr "Dieses Dropdown umschalten" #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" -msgstr "" +msgstr "Verwandlungen" #: src/view/com/post-thread/PostThreadItem.tsx:685 #: src/view/com/post-thread/PostThreadItem.tsx:687 @@ -4311,11 +4053,11 @@ msgstr "Erneut versuchen" #: src/view/screens/ProfileList.tsx:506 msgid "Un-block list" -msgstr "" +msgstr "Liste entblocken" #: src/view/screens/ProfileList.tsx:491 msgid "Un-mute list" -msgstr "" +msgstr "Stummschaltung von Liste aufheben" #: src/view/com/auth/create/CreateAccount.tsx:58 #: src/view/com/auth/login/ForgotPasswordForm.tsx:87 @@ -4323,22 +4065,22 @@ msgstr "" #: src/view/com/auth/login/LoginForm.tsx:118 #: src/view/com/modals/ChangePassword.tsx:70 msgid "Unable to contact your service. Please check your Internet connection." -msgstr "" +msgstr "Es ist uns nicht gelungen, deinen Dienst zu kontaktieren. Bitte überprüfe deine Internetverbindung." #: src/view/com/profile/ProfileHeader.tsx:433 #: src/view/screens/ProfileList.tsx:590 msgid "Unblock" -msgstr "" +msgstr "Entblocken" #: src/view/com/profile/ProfileHeader.tsx:436 msgctxt "action" msgid "Unblock" -msgstr "" +msgstr "Entblocken" #: src/view/com/profile/ProfileHeader.tsx:261 #: src/view/com/profile/ProfileHeader.tsx:345 msgid "Unblock Account" -msgstr "" +msgstr "Konto entblocken" #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 @@ -4350,11 +4092,11 @@ msgstr "Repost rückgängig machen" #: src/view/com/profile/FollowButton.tsx:55 msgctxt "action" msgid "Unfollow" -msgstr "" +msgstr "Nicht mehr folgen" #: src/view/com/profile/ProfileHeader.tsx:485 msgid "Unfollow {0}" -msgstr "" +msgstr "{0} nicht mehr folgen" #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." @@ -4362,50 +4104,46 @@ msgstr "Leider erfüllst du nicht die Voraussetzungen, um einen Account zu erste #: src/view/com/util/post-ctrls/PostCtrls.tsx:182 msgid "Unlike" -msgstr "" +msgstr "Like aufheben" #: src/components/TagMenu/index.tsx:249 #: src/view/screens/ProfileList.tsx:597 msgid "Unmute" -msgstr "" +msgstr "Stummschaltung aufheben" #: src/components/TagMenu/index.web.tsx:104 msgid "Unmute {truncatedTag}" -msgstr "" +msgstr "Stummschaltung von {truncatedTag} aufheben" #: src/view/com/profile/ProfileHeader.tsx:326 msgid "Unmute Account" -msgstr "" +msgstr "Stummschaltung von Konto aufheben" #: src/components/TagMenu/index.tsx:208 msgid "Unmute all {displayTag} posts" -msgstr "" - -#: src/components/TagMenu/index.tsx:210 -#~ msgid "Unmute all {tag} posts" -#~ msgstr "" +msgstr "Stummschaltung aller {displayTag}-Beiträge aufheben" #: src/view/com/util/forms/PostDropdownBtn.tsx:251 #: src/view/com/util/forms/PostDropdownBtn.tsx:256 msgid "Unmute thread" -msgstr "" +msgstr "Stummschaltung von Thread aufheben" #: src/view/screens/ProfileFeed.tsx:354 #: src/view/screens/ProfileList.tsx:581 msgid "Unpin" -msgstr "" +msgstr "Anheften aufheben" #: src/view/screens/ProfileList.tsx:474 msgid "Unpin moderation list" -msgstr "" +msgstr "Anheften der Moderationsliste aufheben" #: src/view/screens/ProfileFeed.tsx:346 msgid "Unsave" -msgstr "" +msgstr "Speicherung aufheben" #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" -msgstr "" +msgstr "{displayName} in Listen aktualisieren" #: src/lib/hooks/useOTAUpdate.ts:15 msgid "Update Available" @@ -4417,7 +4155,7 @@ msgstr "Aktualisieren..." #: src/view/com/modals/ChangeHandle.tsx:455 msgid "Upload a text file to:" -msgstr "" +msgstr "Hochladen einer Textdatei auf:" #: src/view/screens/AppPasswords.tsx:195 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." @@ -4430,36 +4168,32 @@ msgstr "Standardanbieter verwenden" #: src/view/com/modals/InAppBrowserConsent.tsx:56 #: src/view/com/modals/InAppBrowserConsent.tsx:58 msgid "Use in-app browser" -msgstr "" +msgstr "In-App-Browser verwenden" #: src/view/com/modals/InAppBrowserConsent.tsx:66 #: src/view/com/modals/InAppBrowserConsent.tsx:68 msgid "Use my default browser" -msgstr "" +msgstr "Meinen Standardbrowser verwenden" #: src/view/com/modals/AddAppPasswords.tsx:155 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." -#: src/view/com/modals/ServerInput.tsx:105 -#~ msgid "Use your domain as your Bluesky client service provider" -#~ msgstr "" - #: src/view/com/modals/InviteCodes.tsx:200 msgid "Used by:" msgstr "Verwendet von:" #: src/view/com/modals/ModerationDetails.tsx:54 msgid "User Blocked" -msgstr "" +msgstr "Benutzer blockiert" #: src/view/com/modals/ModerationDetails.tsx:40 msgid "User Blocked by List" -msgstr "" +msgstr "Benutzer durch der Liste blockiert" #: src/view/com/modals/ModerationDetails.tsx:60 msgid "User Blocks You" -msgstr "" +msgstr "Benutzer blockiert dich" #: src/view/com/auth/create/Step2.tsx:79 msgid "User handle" @@ -4468,25 +4202,25 @@ msgstr "Benutzerhandle" #: src/view/com/lists/ListCard.tsx:85 #: src/view/com/modals/UserAddRemoveLists.tsx:198 msgid "User list by {0}" -msgstr "" +msgstr "Benutzerliste von {0}" #: src/view/screens/ProfileList.tsx:763 msgid "User list by <0/>" -msgstr "" +msgstr "Benutzerliste von <0/>" #: src/view/com/lists/ListCard.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:196 #: src/view/screens/ProfileList.tsx:761 msgid "User list by you" -msgstr "" +msgstr "Benutzerliste von dir" #: src/view/com/modals/CreateOrEditList.tsx:196 msgid "User list created" -msgstr "" +msgstr "Benutzerliste erstellt" #: src/view/com/modals/CreateOrEditList.tsx:182 msgid "User list updated" -msgstr "" +msgstr "Benutzerliste aktualisiert" #: src/view/screens/Lists.tsx:58 msgid "User Lists" @@ -4507,11 +4241,7 @@ msgstr "Nutzer gefolgt von <0/>" #: src/view/com/modals/Threadgate.tsx:106 msgid "Users in \"{0}\"" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:243 -#~ msgid "Verification code" -#~ msgstr "" +msgstr "Benutzer in \"{0}\"" #: src/view/screens/Settings/index.tsx:910 msgid "Verify email" @@ -4532,15 +4262,15 @@ msgstr "Neue E-Mail bestätigen" #: src/view/com/modals/VerifyEmail.tsx:103 msgid "Verify Your Email" -msgstr "" +msgstr "Überprüfe deine E-Mail" #: src/screens/Onboarding/index.tsx:42 msgid "Video Games" -msgstr "" +msgstr "Videospiele" #: src/view/com/profile/ProfileHeader.tsx:662 msgid "View {0}'s avatar" -msgstr "" +msgstr "Avatar {0} ansehen" #: src/view/screens/Log.tsx:52 msgid "View debug entry" @@ -4548,11 +4278,11 @@ msgstr "Debug-Eintrag anzeigen" #: src/view/com/posts/FeedSlice.tsx:103 msgid "View full thread" -msgstr "" +msgstr "Vollständigen Thread ansehen" #: src/view/com/posts/FeedErrorMessage.tsx:172 msgid "View profile" -msgstr "" +msgstr "Profil ansehen" #: src/view/com/profile/ProfileSubpageHeader.tsx:128 msgid "View the avatar" @@ -4565,55 +4295,51 @@ msgstr "Seite ansehen" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 #: src/view/com/modals/ContentFilteringSettings.tsx:259 msgid "Warn" -msgstr "" +msgstr "Warnen" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" -msgstr "" +msgstr "Wir glauben auch, dass dir \"For You\" von Skygaze gefallen wird:" #: src/screens/Hashtag.tsx:132 msgid "We couldn't find any results for that hashtag." -msgstr "" +msgstr "Wir konnten keine Ergebnisse für diesen Hashtag finden." #: src/screens/Deactivated.tsx:133 msgid "We estimate {estimatedTime} until your account is ready." -msgstr "" +msgstr "Wir schätzen {estimatedTime} bis dein Konto bereit ist." #: src/screens/Onboarding/StepFinished.tsx:93 msgid "We hope you have a wonderful time. Remember, Bluesky is:" -msgstr "" +msgstr "Wir hoffen, dass du eine schöne Zeit hast. Denke daran, Bluesky ist:" #: src/view/com/posts/DiscoverFallbackHeader.tsx:29 msgid "We ran out of posts from your follows. Here's the latest from <0/>." -msgstr "" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:118 -#~ msgid "We recommend \"For You\" by Skygaze:" -#~ msgstr "" +msgstr "Wir haben keine Beiträge mehr von den Konten, denen du folgst. Hier ist das Neueste von <0/>." #: 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 "" +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." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:124 msgid "We recommend our \"Discover\" feed:" -msgstr "" +msgstr "Wir empfehlen unser \"Discover\" Feed:" #: src/screens/Onboarding/StepInterests/index.tsx:133 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 "" +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." #: src/screens/Deactivated.tsx:137 msgid "We will let you know when your account is ready." -msgstr "" +msgstr "Wir werden dich benachrichtigen, wenn dein Konto bereit ist." #: src/view/com/modals/AppealLabel.tsx:48 msgid "We'll look into your appeal promptly." -msgstr "" +msgstr "Wir werden deinen Widerspruch unverzüglich prüfen." #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." -msgstr "" +msgstr "Wir verwenden diese Informationen, um dein Erlebnis individuell zu gestalten." #: src/view/com/auth/create/CreateAccount.tsx:134 msgid "We're so excited to have you join us!" @@ -4621,11 +4347,11 @@ msgstr "Wir freuen uns sehr, dass du dabei bist!" #: src/view/screens/ProfileList.tsx:86 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." -msgstr "" +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:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." -msgstr "" +msgstr "Es tut uns leid, aber wir konnten deine stummgeschalteten Wörter nicht laden. Bitte versuche es erneut." #: src/view/screens/Search/Search.tsx:254 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." @@ -4642,11 +4368,11 @@ msgstr "Willkommen bei <0>Bluesky</0>" #: src/screens/Onboarding/StepInterests/index.tsx:130 msgid "What are your interests?" -msgstr "" +msgstr "Was sind deine Interessen?" #: src/view/com/modals/report/Modal.tsx:169 msgid "What is the issue with this {collectionName}?" -msgstr "" +msgstr "Was ist das Problem mit diesem {collectionName}?" #: src/view/com/auth/SplashScreen.tsx:59 #: src/view/com/composer/Composer.tsx:286 @@ -4681,11 +4407,7 @@ msgstr "Schreibe deine Antwort" #: src/screens/Onboarding/index.tsx:28 msgid "Writers" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:263 -#~ msgid "XXXXXX" -#~ msgstr "" +msgstr "Schriftsteller" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 #: src/view/screens/PreferencesFollowingFeed.tsx:129 @@ -4697,26 +4419,18 @@ msgstr "" msgid "Yes" msgstr "Ja" -#: src/screens/Onboarding/StepModeration/index.tsx:46 -#~ msgid "You are in control" -#~ msgstr "" - #: src/screens/Deactivated.tsx:130 msgid "You are in line." -msgstr "" +msgstr "Du befindest dich in der Warteschlange." #: 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 "" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:123 -#~ msgid "You can also try our \"Discover\" algorithm:" -#~ msgstr "" +msgstr "Du kannst auch neue benutzerdefinierte Feeds entdecken und ihnen folgen." #: src/screens/Onboarding/StepFollowingFeed.tsx:142 msgid "You can change these settings later." -msgstr "" +msgstr "Du kannst diese Einstellungen später ändern." #: src/view/com/auth/login/Login.tsx:158 #: src/view/com/auth/login/PasswordUpdatedForm.tsx:31 @@ -4745,18 +4459,18 @@ msgstr "Du hast den Verfasser blockiert oder du wurdest vom Verfasser blockiert. #: src/view/com/modals/ModerationDetails.tsx:56 msgid "You have blocked this user. You cannot view their content." -msgstr "" +msgstr "Du hast diesen Benutzer blockiert und kannst seine Inhalte nicht sehen." #: src/view/com/auth/login/SetNewPasswordForm.tsx:57 #: src/view/com/auth/login/SetNewPasswordForm.tsx:92 #: src/view/com/modals/ChangePassword.tsx:87 #: src/view/com/modals/ChangePassword.tsx:121 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." -msgstr "" +msgstr "Du hast einen ungültigen Code eingegeben. Er sollte wie XXXXX-XXXXX aussehen." #: src/view/com/modals/ModerationDetails.tsx:87 msgid "You have muted this user." -msgstr "" +msgstr "Du hast diesen Benutzer stummgeschaltet." #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." @@ -4769,7 +4483,7 @@ msgstr "Du hast keine Listen." #: src/view/screens/ModerationBlockedAccounts.tsx:132 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 "" +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:87 msgid "You have not created any app passwords yet. You can create one by pressing the button below." @@ -4777,27 +4491,27 @@ msgstr "Du hast noch keine App-Passwörter erstellt. Du kannst eines erstellen, #: src/view/screens/ModerationMutedAccounts.tsx:131 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 "" +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/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" -msgstr "" +msgstr "Du hast noch keine Wörter oder Tags stummgeschaltet" #: src/view/com/modals/ContentFilteringSettings.tsx:175 msgid "You must be 18 or older to enable adult content." -msgstr "" +msgstr "Du musst 18 Jahre oder älter sein, um Inhalte für Erwachsene zu aktivieren." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 msgid "You must be 18 years or older to enable adult content" -msgstr "" +msgstr "Du musst 18 Jahre oder älter sein, um Inhalte für Erwachsene zu aktivieren." #: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will no longer receive notifications for this thread" -msgstr "" +msgstr "Du wirst keine Mitteilungen mehr für diesen Thread erhalten" #: src/view/com/util/forms/PostDropdownBtn.tsx:150 msgid "You will now receive notifications for this thread" -msgstr "" +msgstr "Du erhälst nun Mitteilungen für dieses Thread" #: src/view/com/auth/login/SetNewPasswordForm.tsx:107 msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." @@ -4805,21 +4519,21 @@ msgstr "Du erhältst eine E-Mail mit einem \"Reset-Code\". Gib diesen Code hier #: src/screens/Onboarding/StepModeration/index.tsx:72 msgid "You're in control" -msgstr "" +msgstr "Du hast die Kontrolle" #: src/screens/Deactivated.tsx:87 #: src/screens/Deactivated.tsx:88 #: src/screens/Deactivated.tsx:103 msgid "You're in line" -msgstr "" +msgstr "Du bist in der Warteschlange" #: src/screens/Onboarding/StepFinished.tsx:90 msgid "You're ready to go!" -msgstr "" +msgstr "Du kannst loslegen!" #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." -msgstr "" +msgstr "Du hast das Ende deines Feeds erreicht! Finde weitere Konten, denen du folgen kannst." #: src/view/com/auth/create/Step1.tsx:67 msgid "Your account" @@ -4827,11 +4541,11 @@ msgstr "Dein Konto" #: src/view/com/modals/DeleteAccount.tsx:67 msgid "Your account has been deleted" -msgstr "" +msgstr "Dein Konto wurde gelöscht" #: src/view/screens/Settings/ExportCarDialog.tsx:47 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 "" +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." #: src/view/com/auth/create/Step1.tsx:215 msgid "Your birth date" @@ -4839,11 +4553,11 @@ msgstr "Dein Geburtsdatum" #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." -msgstr "" +msgstr "Deine Wahl wird gespeichert, kann aber später in den Einstellungen geändert werden." #: src/screens/Onboarding/StepFollowingFeed.tsx:61 msgid "Your default feed is \"Following\"" -msgstr "" +msgstr "Dein Standard-Feed ist \"Following\"" #: src/view/com/auth/create/state.ts:110 #: src/view/com/auth/login/ForgotPasswordForm.tsx:70 @@ -4851,10 +4565,6 @@ msgstr "" msgid "Your email appears to be invalid." msgstr "Deine E-Mail scheint ungültig zu sein." -#: src/view/com/modals/Waitlist.tsx:109 -#~ msgid "Your email has been saved! We'll be in touch soon." -#~ msgstr "Deine E-Mail wurde gespeichert! Wir werden uns bald bei dir melden." - #: src/view/com/modals/ChangeEmail.tsx:125 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." @@ -4865,33 +4575,27 @@ msgstr "Deine E-Mail wurde noch nicht bestätigt. Dies ist ein wichtiger Sicherh #: src/view/com/posts/FollowingEmptyState.tsx:47 msgid "Your following feed is empty! Follow more users to see what's happening." -msgstr "" +msgstr "Dein Following-Feed ist leer! Folge mehr Benutzern, um auf dem Laufenden zu bleiben." #: src/view/com/auth/create/Step2.tsx:83 msgid "Your full handle will be" -msgstr "" +msgstr "Dein vollständiger Handle lautet" #: src/view/com/modals/ChangeHandle.tsx:270 msgid "Your full handle will be <0>@{0}</0>" -msgstr "" - -#: src/view/screens/Settings.tsx:430 -#: src/view/shell/desktop/RightNav.tsx:137 -#: src/view/shell/Drawer.tsx:660 -#~ msgid "Your invite codes are hidden when logged in using an App Password" -#~ msgstr "Deine Einladungscodes werden ausgeblendet, wenn du dich mit einem App-Passwort anmeldest" +msgstr "Dein vollständiger Handle lautet <0>@{0}</0>" #: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" -msgstr "" +msgstr "Deine stummgeschalteten Wörter" #: src/view/com/modals/ChangePassword.tsx:155 msgid "Your password has been changed successfully!" -msgstr "" +msgstr "Dein Passwort wurde erfolgreich geändert!" #: src/view/com/composer/Composer.tsx:274 msgid "Your post has been published" -msgstr "" +msgstr "Dein Beitrag wurde veröffentlicht" #: src/screens/Onboarding/StepFinished.tsx:105 #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:59 @@ -4906,7 +4610,7 @@ msgstr "Dein Profil" #: src/view/com/composer/Composer.tsx:273 msgid "Your reply has been published" -msgstr "" +msgstr "Deine Antwort wurde veröffentlicht" #: src/view/com/auth/create/Step2.tsx:65 msgid "Your user handle" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 2351ecb3a..37af8b386 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -8,41 +8,19 @@ msgstr "" "Language: fr\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: \n" -"Last-Translator: Stanislas Signoud (@signez.fr)\n" -"Language-Team: \n" +"PO-Revision-Date: 2024-03-12 09:00+0000\n" +"Last-Translator: surfdude29\n" +"Language-Team: Stanislas Signoud (@signez.fr), surfdude29\n" "Plural-Forms: \n" #: src/view/com/modals/VerifyEmail.tsx:142 msgid "(no email)" msgstr "(pas d’e-mail)" -#: src/view/shell/desktop/RightNav.tsx:168 -#~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" -#~ msgstr "{0, plural, one {# code d’invitation disponible} other {# codes d’invitations disponibles}}" - #: src/view/com/profile/ProfileHeader.tsx:593 msgid "{following} following" msgstr "{following} abonnements" -#: src/view/shell/desktop/RightNav.tsx:151 -#~ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" -#~ msgstr "{invitesAvailable, plural, one {Code d’invitation : # disponible} other {Codes d’invitation : # disponibles}}" - -#: src/view/screens/Settings.tsx:435 -#: src/view/shell/Drawer.tsx:664 -#~ msgid "{invitesAvailable} invite code available" -#~ msgstr "{invitesAvailable} code d’invitation disponible" - -#: src/view/screens/Settings.tsx:437 -#: src/view/shell/Drawer.tsx:666 -#~ msgid "{invitesAvailable} invite codes available" -#~ msgstr "{invitesAvailable} codes d’invitation disponibles" - -#: src/view/screens/Search/Search.tsx:87 -#~ msgid "{message}" -#~ msgstr "{message}" - #: src/view/shell/Drawer.tsx:440 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications} non lus" @@ -57,7 +35,7 @@ msgstr "<0>{following} </0><1>abonnements</1>" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:30 msgid "<0>Choose your</0><1>Recommended</1><2>Feeds</2>" -msgstr "<0>Choisissez vos</0><1>fils d’actualité</1><2>recommandés</2>" +msgstr "<0>Choisissez vos</0><1>fils d’actu</1><2>recommandés</2>" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:37 msgid "<0>Follow some</0><1>Recommended</1><2>Users</2>" @@ -179,19 +157,19 @@ msgstr "Ajouter une carte de lien" #: src/view/com/composer/Composer.tsx:458 msgid "Add link card:" -msgstr "Ajouter une carte de lien :" +msgstr "Ajouter une carte de lien :" #: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" -msgstr "" +msgstr "Ajouter un mot masqué pour les paramètres configurés" #: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" -msgstr "" +msgstr "Ajouter des mots et des mots-clés masqués" #: src/view/com/modals/ChangeHandle.tsx:417 msgid "Add the following DNS record to your domain:" -msgstr "Ajoutez l’enregistrement DNS suivant à votre domaine :" +msgstr "Ajoutez l’enregistrement DNS suivant à votre domaine :" #: src/view/com/profile/ProfileHeader.tsx:310 msgid "Add to Lists" @@ -217,7 +195,7 @@ msgstr "Ajouté à mes fils d’actu" #: src/view/screens/PreferencesFollowingFeed.tsx:173 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’actualité." +msgstr "Définissez le nombre de likes qu’une réponse doit avoir pour être affichée dans votre fil d’actu." #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" @@ -227,22 +205,18 @@ msgstr "Contenu pour adultes" msgid "Adult content can only be enabled via the Web at <0/>." msgstr "Le contenu pour adultes ne peut être activé que via le Web à <0/>." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 -#~ msgid "Adult content can only be enabled via the Web at <0>bsky.app</0>." -#~ msgstr "" - #: src/view/screens/Settings/index.tsx:664 msgid "Advanced" msgstr "Avancé" #: src/view/screens/Feeds.tsx:666 msgid "All the feeds you've saved, right in one place." -msgstr "" +msgstr "Tous les fils d’actu que vous avez enregistrés, au même endroit." #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Already have a code?" -msgstr "" +msgstr "Avez-vous déjà un code ?" #: src/view/com/auth/login/ChooseAccountForm.tsx:98 msgid "Already signed in as @{0}" @@ -280,7 +254,7 @@ msgstr "et" #: src/screens/Onboarding/index.tsx:32 msgid "Animals" -msgstr "" +msgstr "Animaux" #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" @@ -302,10 +276,6 @@ msgstr "Les noms de mots de passe d’application doivent comporter au moins 4 c msgid "App password settings" msgstr "Paramètres de mot de passe d’application" -#: src/view/screens/Settings.tsx:650 -#~ msgid "App passwords" -#~ msgstr "Mots de passe d’application" - #: src/Navigation.tsx:239 #: src/view/screens/AppPasswords.tsx:187 #: src/view/screens/Settings/index.tsx:684 @@ -319,7 +289,7 @@ msgstr "Faire appel de l’avertissement sur le contenu" #: src/view/com/modals/AppealLabel.tsx:65 msgid "Appeal Content Warning" -msgstr "Appel de l’avertissement sur le contenu" +msgstr "Faire appel de l’avertissement sur le contenu" #: src/view/com/util/moderation/LabelInfo.tsx:52 msgid "Appeal this decision" @@ -335,28 +305,28 @@ msgstr "Affichage" #: src/view/screens/AppPasswords.tsx:224 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} » ?" +msgstr "Êtes-vous sûr de vouloir supprimer le mot de passe de l’application « {name} » ?" #: src/view/com/composer/Composer.tsx:150 msgid "Are you sure you'd like to discard this draft?" -msgstr "Êtes-vous sûr de vouloir rejeter ce brouillon ?" +msgstr "Êtes-vous sûr de vouloir rejeter ce brouillon ?" #: src/components/dialogs/MutedWords.tsx:282 #: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" -msgstr "Vous confirmez ?" +msgstr "Vous confirmez ?" #: src/view/com/util/forms/PostDropdownBtn.tsx:322 msgid "Are you sure? This cannot be undone." -msgstr "Vous confirmez ? Cela ne pourra pas être annulé." +msgstr "Vous confirmez ? Cela ne pourra pas être annulé." #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}</0>?" -msgstr "" +msgstr "Écrivez-vous en <0>{0}</0> ?" #: src/screens/Onboarding/index.tsx:26 msgid "Art" -msgstr "" +msgstr "Art" #: src/view/com/modals/SelfLabel.tsx:123 msgid "Artistic or non-erotic nudity." @@ -383,7 +353,7 @@ msgstr "Retour" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:136 msgid "Based on your interest in {interestsText}" -msgstr "" +msgstr "En fonction de votre intérêt pour {interestsText}" #: src/view/screens/Settings/index.tsx:523 msgid "Basics" @@ -396,7 +366,7 @@ msgstr "Date de naissance" #: src/view/screens/Settings/index.tsx:340 msgid "Birthday:" -msgstr "Date de naissance :" +msgstr "Date de naissance :" #: src/view/com/profile/ProfileHeader.tsx:239 #: src/view/com/profile/ProfileHeader.tsx:346 @@ -413,7 +383,7 @@ msgstr "Liste de blocage" #: src/view/screens/ProfileList.tsx:316 msgid "Block these accounts?" -msgstr "Bloquer ces comptes ?" +msgstr "Bloquer ces comptes ?" #: src/view/screens/ProfileList.tsx:320 msgid "Block this List" @@ -462,7 +432,7 @@ msgstr "Bluesky" #: src/view/com/auth/server-input/index.tsx:150 msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." -msgstr "" +msgstr "Bluesky est un réseau ouvert où vous pouvez choisir votre hébergeur. L’auto-hébergement est désormais disponible en version bêta pour les développeurs." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 @@ -479,21 +449,13 @@ msgstr "Bluesky est ouvert." msgid "Bluesky is public." msgstr "Bluesky est public." -#: src/view/com/modals/Waitlist.tsx:70 -#~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." -#~ msgstr "Bluesky distribue des invitations pour construire une communauté plus saine. Si personne ne peut vous donner une invitation, vous pouvez vous inscrire sur notre liste d’attente et nous vous en enverrons une bientôt." - #: src/view/screens/Moderation.tsx:245 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 n’affichera pas votre profil et vos messages à des personnes non connectées. Il est possible que d’autres applications n’honorent pas cette demande. Cela ne privatise pas votre compte." - -#: src/view/com/modals/ServerInput.tsx:78 -#~ msgid "Bluesky.Social" -#~ msgstr "Bluesky.Social" +msgstr "Bluesky n’affichera pas votre profil et vos posts à des personnes non connectées. Il est possible que d’autres applications n’honorent pas cette demande. Cela ne privatise pas votre compte." #: src/screens/Onboarding/index.tsx:33 msgid "Books" -msgstr "" +msgstr "Livres" #: src/view/screens/Settings/index.tsx:859 msgid "Build version {0} {1}" @@ -504,10 +466,6 @@ msgstr "Version Build {0} {1}" msgid "Business" msgstr "Affaires" -#: src/view/com/modals/ServerInput.tsx:115 -#~ msgid "Button disabled. Input custom domain to proceed." -#~ msgstr "Bouton désactivé. Saisissez un domaine personnalisé pour continuer." - #: src/view/com/profile/ProfileSubpageHeader.tsx:157 msgid "by —" msgstr "par —" @@ -589,10 +547,6 @@ msgstr "Annuler la citation" msgid "Cancel search" msgstr "Annuler la recherche" -#: src/view/com/modals/Waitlist.tsx:136 -#~ msgid "Cancel waitlist signup" -#~ msgstr "Annuler l’inscription sur la liste d’attente" - #: src/view/screens/Settings/index.tsx:334 msgctxt "action" msgid "Change" @@ -613,19 +567,19 @@ msgstr "Modifier mon e-mail" #: src/view/screens/Settings/index.tsx:732 msgid "Change password" -msgstr "" +msgstr "Modifier le mot de passe" #: src/view/screens/Settings/index.tsx:741 msgid "Change Password" -msgstr "" +msgstr "Modifier le mot de passe" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:73 msgid "Change post language to {0}" -msgstr "" +msgstr "Modifier la langue de post en {0}" #: src/view/screens/Settings/index.tsx:733 msgid "Change your Bluesky password" -msgstr "" +msgstr "Changer votre mot de passe pour Bluesky" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -634,11 +588,11 @@ msgstr "Modifier votre e-mail" #: src/screens/Deactivated.tsx:72 #: src/screens/Deactivated.tsx:76 msgid "Check my status" -msgstr "" +msgstr "Vérifier mon statut" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:121 msgid "Check out some recommended feeds. Tap + to add them to your list of pinned feeds." -msgstr "Consultez quelques fils d’actu recommandés. Appuyez sur + pour les ajouter à votre liste de fils d’actualité." +msgstr "Consultez quelques fils d’actu recommandés. Appuyez sur + pour les ajouter à votre liste de fils d’actu." #: src/view/com/auth/onboarding/RecommendedFollows.tsx:185 msgid "Check out some recommended users. Follow them to see similar users." @@ -646,11 +600,11 @@ msgstr "Consultez quelques comptes recommandés. Suivez-les pour voir des person #: src/view/com/modals/DeleteAccount.tsx:169 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 :" +msgstr "Consultez votre boîte de réception, vous avez du recevoir un e-mail contenant un code de confirmation à saisir ci-dessous :" #: src/view/com/modals/Threadgate.tsx:72 msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "Choisir « Tout le monde » ou « Personne »" +msgstr "Choisir « Tout le monde » ou « Personne »" #: src/view/screens/Settings/index.tsx:697 msgid "Choose a new Bluesky username or create" @@ -662,20 +616,16 @@ msgstr "Choisir un service" #: src/screens/Onboarding/StepFinished.tsx:135 msgid "Choose the algorithms that power your custom feeds." -msgstr "" +msgstr "Choisissez les algorithmes qui alimentent vos fils d’actu personnalisés." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 msgid "Choose the algorithms that power your experience with custom feeds." -msgstr "Choisissez les algorithmes qui alimentent votre expérience avec des fils d’actualité personnalisés." - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:103 -#~ msgid "Choose your algorithmic feeds" -#~ msgstr "" +msgstr "Choisissez les algorithmes qui alimentent votre expérience avec des fils d’actu personnalisés." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:103 msgid "Choose your main feeds" -msgstr "" +msgstr "Choisissez vos principaux fils d’actu" #: src/view/com/auth/create/Step1.tsx:196 msgid "Choose your password" @@ -710,25 +660,25 @@ msgstr "cliquez ici" #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" -msgstr "" +msgstr "Cliquez ici pour ouvrir le menu de mot-clé pour {tag}" #: src/components/RichText.tsx:191 msgid "Click here to open tag menu for #{tag}" -msgstr "" +msgstr "Cliquez ici pour ouvrir le menu de mot-clé pour #{tag}" #: src/screens/Onboarding/index.tsx:35 msgid "Climate" -msgstr "" +msgstr "Climat" #: src/view/com/modals/ChangePassword.tsx:265 #: src/view/com/modals/ChangePassword.tsx:268 msgid "Close" -msgstr "" +msgstr "Fermer" #: src/components/Dialog/index.web.tsx:84 #: src/components/Dialog/index.web.tsx:198 msgid "Close active dialog" -msgstr "" +msgstr "Fermer le dialogue actif" #: src/view/com/auth/login/PasswordUpdatedForm.tsx:38 msgid "Close alert" @@ -752,7 +702,7 @@ msgstr "Fermer le pied de page de navigation" #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" -msgstr "" +msgstr "Fermer ce dialogue" #: src/view/shell/index.web.tsx:52 msgid "Closes bottom navigation bar" @@ -776,11 +726,11 @@ msgstr "Réduit la liste des comptes pour une notification donnée" #: src/screens/Onboarding/index.tsx:41 msgid "Comedy" -msgstr "" +msgstr "Comédie" #: src/screens/Onboarding/index.tsx:27 msgid "Comics" -msgstr "" +msgstr "Bandes dessinées" #: src/Navigation.tsx:229 #: src/view/screens/CommunityGuidelines.tsx:32 @@ -789,15 +739,15 @@ msgstr "Directives communautaires" #: src/screens/Onboarding/StepFinished.tsx:148 msgid "Complete onboarding and start using your account" -msgstr "" +msgstr "Terminez le didacticiel et commencez à utiliser votre compte" #: src/view/com/auth/create/Step3.tsx:73 msgid "Complete the challenge" -msgstr "" +msgstr "Compléter le défi" #: src/view/com/composer/Composer.tsx:424 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" -msgstr "Permet d’écrire des messages de {MAX_GRAPHEME_LENGTH} caractères maximum" +msgstr "Permet d’écrire des posts de {MAX_GRAPHEME_LENGTH} caractères maximum" #: src/view/com/composer/Prompt.tsx:24 msgid "Compose reply" @@ -805,7 +755,7 @@ msgstr "Rédiger une réponse" #: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 msgid "Configure content filtering setting for category: {0}" -msgstr "" +msgstr "Configurer les paramètres de filtrage de contenu pour la catégorie : {0}" #: src/components/Prompt.tsx:124 #: src/view/com/modals/AppealLabel.tsx:98 @@ -846,10 +796,6 @@ msgstr "Confirmez votre âge pour activer le contenu pour adultes." msgid "Confirmation code" msgstr "Code de confirmation" -#: src/view/com/modals/Waitlist.tsx:120 -#~ msgid "Confirms signing up {email} to the waitlist" -#~ msgstr "Confirme l’inscription de {email} sur la liste d’attente" - #: src/view/com/auth/create/CreateAccount.tsx:193 #: src/view/com/auth/login/LoginForm.tsx:278 msgid "Connecting..." @@ -857,7 +803,7 @@ msgstr "Connexion…" #: src/view/com/auth/create/CreateAccount.tsx:213 msgid "Contact support" -msgstr "" +msgstr "Contacter le support" #: src/view/screens/Moderation.tsx:83 msgid "Content filtering" @@ -900,19 +846,19 @@ msgstr "Continuer" #: src/screens/Onboarding/StepModeration/index.tsx:115 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" -msgstr "" +msgstr "Passer à l’étape suivante" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:167 msgid "Continue to the next step" -msgstr "" +msgstr "Passer à l’étape suivante" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:191 msgid "Continue to the next step without following any accounts" -msgstr "" +msgstr "Passer à l’étape suivante sans suivre aucun compte" #: src/screens/Onboarding/index.tsx:44 msgid "Cooking" -msgstr "" +msgstr "Cuisine" #: src/view/com/modals/AddAppPasswords.tsx:195 #: src/view/com/modals/InviteCodes.tsx:182 @@ -968,10 +914,6 @@ msgstr "Impossible de charger le fil d’actu" msgid "Could not load list" msgstr "Impossible de charger la liste" -#: src/view/com/auth/create/Step2.tsx:91 -#~ msgid "Country" -#~ msgstr "" - #: src/view/com/auth/HomeLoggedOutCTA.tsx:62 #: src/view/com/auth/SplashScreen.tsx:71 #: src/view/com/auth/SplashScreen.web.tsx:81 @@ -1013,12 +955,12 @@ msgstr "Crée une carte avec une miniature. La carte pointe vers {url}" #: src/screens/Onboarding/index.tsx:29 msgid "Culture" -msgstr "" +msgstr "Culture" #: src/view/com/auth/server-input/index.tsx:95 #: src/view/com/auth/server-input/index.tsx:96 msgid "Custom" -msgstr "" +msgstr "Personnalisé" #: src/view/com/modals/ChangeHandle.tsx:389 msgid "Custom domain" @@ -1027,16 +969,12 @@ msgstr "Domaine personnalisé" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:106 #: src/view/screens/Feeds.tsx:692 msgid "Custom feeds built by the community bring you new experiences and help you find the content you love." -msgstr "" +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." #: src/view/screens/PreferencesExternalEmbeds.tsx:55 msgid "Customize media from external sites." msgstr "Personnaliser les médias provenant de sites externes." -#: src/view/screens/Settings.tsx:687 -#~ msgid "Danger Zone" -#~ msgstr "Zone de danger" - #: src/view/screens/Settings/index.tsx:485 #: src/view/screens/Settings/index.tsx:511 msgid "Dark" @@ -1048,7 +986,7 @@ msgstr "Mode sombre" #: src/view/screens/Settings/index.tsx:498 msgid "Dark Theme" -msgstr "" +msgstr "Thème sombre" #: src/view/screens/Debug.tsx:83 msgid "Debug panel" @@ -1076,13 +1014,9 @@ msgstr "Supprimer la liste" msgid "Delete my account" msgstr "Supprimer mon compte" -#: src/view/screens/Settings.tsx:706 -#~ msgid "Delete my account…" -#~ msgstr "Supprimer mon compte…" - #: src/view/screens/Settings/index.tsx:784 msgid "Delete My Account…" -msgstr "" +msgstr "Supprimer mon compte…" #: src/view/com/util/forms/PostDropdownBtn.tsx:317 #: src/view/com/util/forms/PostDropdownBtn.tsx:326 @@ -1091,7 +1025,7 @@ msgstr "Supprimer le post" #: src/view/com/util/forms/PostDropdownBtn.tsx:321 msgid "Delete this post?" -msgstr "Supprimer ce post ?" +msgstr "Supprimer ce post ?" #: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 msgid "Deleted" @@ -1108,17 +1042,13 @@ msgstr "Post supprimé." msgid "Description" msgstr "Description" -#: src/view/screens/Settings.tsx:760 -#~ msgid "Developer Tools" -#~ msgstr "Outils de dév" - #: src/view/com/composer/Composer.tsx:218 msgid "Did you want to say anything?" -msgstr "Vous vouliez dire quelque chose ?" +msgstr "Vous vouliez dire quelque chose ?" #: src/view/screens/Settings/index.tsx:504 msgid "Dim" -msgstr "" +msgstr "Atténué" #: src/view/com/composer/Composer.tsx:151 msgid "Discard" @@ -1137,13 +1067,9 @@ 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:473 -#~ msgid "Discover new feeds" -#~ msgstr "Découvrir de nouveaux fils d’actu" - #: src/view/screens/Feeds.tsx:689 msgid "Discover New Feeds" -msgstr "" +msgstr "Découvrir de nouveaux fils d’actu" #: src/view/com/modals/EditProfile.tsx:192 msgid "Display name" @@ -1155,11 +1081,7 @@ msgstr "Afficher le nom" #: src/view/com/modals/ChangeHandle.tsx:487 msgid "Domain verified!" -msgstr "Domaine vérifié !" - -#: src/view/com/auth/create/Step1.tsx:170 -#~ msgid "Don't have an invite code?" -#~ msgstr "Pas de code d’invitation ?" +msgstr "Domaine vérifié !" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 #: src/view/com/modals/EditImage.tsx:333 @@ -1200,20 +1122,20 @@ msgstr "Tapotez deux fois pour vous connecter" #: src/view/screens/Settings/index.tsx:755 msgid "Download Bluesky account data (repository)" -msgstr "" +msgstr "Télécharger les données du compte Bluesky (dépôt)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 msgid "Download CAR file" -msgstr "" +msgstr "Télécharger le fichier CAR" #: src/view/com/composer/text-input/TextInput.web.tsx:249 msgid "Drop to add images" -msgstr "" +msgstr "Déposer pour ajouter des images" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." -msgstr "" +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/EditProfile.tsx:185 msgid "e.g. Alice Roberts" @@ -1298,7 +1220,7 @@ msgstr "Modifier votre description de profil" #: src/screens/Onboarding/index.tsx:34 msgid "Education" -msgstr "" +msgstr "Éducation" #: src/view/com/auth/create/Step1.tsx:176 #: src/view/com/auth/login/ForgotPasswordForm.tsx:156 @@ -1326,7 +1248,7 @@ msgstr "Adresse e-mail vérifiée" #: src/view/screens/Settings/index.tsx:312 msgid "Email:" -msgstr "E-mail :" +msgstr "E-mail :" #: src/view/com/modals/EmbedConsent.tsx:113 msgid "Enable {0} only" @@ -1339,7 +1261,7 @@ msgstr "Activer le contenu pour adultes" #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 msgid "Enable adult content in your feeds" -msgstr "" +msgstr "Activer le contenu pour adultes dans vos fils d’actu" #: src/view/com/modals/EmbedConsent.tsx:97 msgid "Enable External Media" @@ -1364,7 +1286,7 @@ msgstr "Entrer un nom pour ce mot de passe d’application" #: src/components/dialogs/MutedWords.tsx:100 #: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" -msgstr "" +msgstr "Saisir un mot ou un mot-clé" #: src/view/com/modals/VerifyEmail.tsx:105 msgid "Enter Confirmation Code" @@ -1372,7 +1294,7 @@ msgstr "Entrer un code de confirmation" #: src/view/com/modals/ChangePassword.tsx:151 msgid "Enter the code you received to change your password." -msgstr "" +msgstr "Saisissez le code que vous avez reçu pour modifier votre mot de passe." #: src/view/com/modals/ChangeHandle.tsx:371 msgid "Enter the domain you want to use" @@ -1380,17 +1302,13 @@ msgstr "Entrez le domaine que vous voulez utiliser" #: src/view/com/auth/login/ForgotPasswordForm.tsx:107 msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." -msgstr "Saisissez l’e-mail que vous avez utilisé pour créer votre compte. Nous vous enverrons un « code de réinitialisation » afin changer votre mot de passe." +msgstr "Saisissez l’e-mail que vous avez utilisé pour créer votre compte. Nous vous enverrons un « code de réinitialisation » afin changer votre mot de passe." #: src/view/com/auth/create/Step1.tsx:228 #: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "Saisissez votre date de naissance" -#: src/view/com/modals/Waitlist.tsx:78 -#~ msgid "Enter your email" -#~ msgstr "Entrez votre e-mail" - #: src/view/com/auth/create/Step1.tsx:172 msgid "Enter your email address" msgstr "Entrez votre e-mail" @@ -1403,21 +1321,17 @@ msgstr "Entrez votre nouvel e-mail ci-dessus" msgid "Enter your new email address below." msgstr "Entrez votre nouvelle e-mail ci-dessous." -#: src/view/com/auth/create/Step2.tsx:188 -#~ msgid "Enter your phone number" -#~ msgstr "" - #: src/view/com/auth/login/Login.tsx:99 msgid "Enter your username and password" msgstr "Entrez votre pseudo et votre mot de passe" #: src/view/com/auth/create/Step3.tsx:67 msgid "Error receiving captcha response." -msgstr "" +msgstr "Erreur de réception de la réponse captcha." #: src/view/screens/Search/Search.tsx:110 msgid "Error:" -msgstr "Erreur :" +msgstr "Erreur :" #: src/view/com/modals/Threadgate.tsx:76 msgid "Everybody" @@ -1436,10 +1350,6 @@ msgstr "Sort de la vue de l’image" msgid "Exits inputting search query" msgstr "Sort de la saisie de la recherche" -#: src/view/com/modals/Waitlist.tsx:138 -#~ msgid "Exits signing up for waitlist with {email}" -#~ msgstr "Sort de l’inscription sur la liste d’attente avec {email}" - #: src/view/com/lightbox/Lightbox.web.tsx:163 msgid "Expand alt text" msgstr "Développer le texte alt" @@ -1451,12 +1361,12 @@ msgstr "Développe ou réduit le post complet auquel vous répondez" #: src/view/screens/Settings/index.tsx:753 msgid "Export my data" -msgstr "" +msgstr "Exporter mes données" #: src/view/screens/Settings/ExportCarDialog.tsx:44 #: src/view/screens/Settings/index.tsx:764 msgid "Export My Data" -msgstr "" +msgstr "Exporter mes données" #: src/view/com/modals/EmbedConsent.tsx:64 msgid "External Media" @@ -1507,10 +1417,6 @@ msgstr "Fil d’actu par {0}" msgid "Feed offline" msgstr "Fil d’actu hors ligne" -#: src/view/com/feeds/FeedPage.tsx:143 -#~ msgid "Feed Preferences" -#~ msgstr "Préférences en matière de fil d’actu" - #: src/view/shell/desktop/RightNav.tsx:61 #: src/view/shell/Drawer.tsx:311 msgid "Feedback" @@ -1525,15 +1431,7 @@ msgstr "Feedback" #: src/view/shell/Drawer.tsx:476 #: src/view/shell/Drawer.tsx:477 msgid "Feeds" -msgstr "Fil d’actu" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:106 -#~ msgid "Feeds are created by users and can give you entirely new experiences." -#~ msgstr "" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:106 -#~ msgid "Feeds are created by users and organizations. They offer you varied experiences and suggest content you may like using algorithms." -#~ msgstr "" +msgstr "Fils d’actu" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:57 msgid "Feeds are created by users to curate content. Choose some feeds that you find interesting." @@ -1545,11 +1443,11 @@ msgstr "Les fils d’actu sont des algorithmes personnalisés qui se construisen #: src/screens/Onboarding/StepTopicalFeeds.tsx:76 msgid "Feeds can be topical as well!" -msgstr "" +msgstr "Les fils d’actu peuvent également être thématiques !" #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" -msgstr "" +msgstr "Finalisation" #: src/view/com/posts/CustomFeedEmptyState.tsx:47 #: src/view/com/posts/FollowingEmptyState.tsx:57 @@ -1571,11 +1469,7 @@ msgstr "Recherche de comptes similaires…" #: src/view/screens/PreferencesFollowingFeed.tsx:111 msgid "Fine-tune the content you see on your Following feed." -msgstr "" - -#: src/view/screens/PreferencesHomeFeed.tsx:111 -#~ msgid "Fine-tune the content you see on your home screen." -#~ msgstr "Affine le contenu affiché sur votre écran d’accueil." +msgstr "Affine le contenu affiché sur votre fil d’actu « Following »." #: src/view/screens/PreferencesThreads.tsx:60 msgid "Fine-tune the discussion threads." @@ -1583,11 +1477,11 @@ msgstr "Affine les fils de discussion." #: src/screens/Onboarding/index.tsx:38 msgid "Fitness" -msgstr "" +msgstr "Fitness" #: src/screens/Onboarding/StepFinished.tsx:131 msgid "Flexible" -msgstr "" +msgstr "Flexible" #: src/view/com/modals/EditImage.tsx:115 msgid "Flip horizontal" @@ -1617,11 +1511,11 @@ msgstr "Suivre {0}" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" -msgstr "" +msgstr "Suivre tous" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:174 msgid "Follow selected accounts and continue to the next step" -msgstr "" +msgstr "Suivre les comptes sélectionnés et passer à l’étape suivante" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:64 msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." @@ -1663,7 +1557,7 @@ msgstr "Suit {0}" #: src/view/screens/PreferencesFollowingFeed.tsx:104 #: src/view/screens/Settings/index.tsx:543 msgid "Following Feed Preferences" -msgstr "" +msgstr "Préférences en matière de fil d’actu « Following »" #: src/view/com/profile/ProfileHeader.tsx:546 msgid "Follows you" @@ -1675,7 +1569,7 @@ msgstr "Vous suit" #: src/screens/Onboarding/index.tsx:43 msgid "Food" -msgstr "" +msgstr "Nourriture" #: src/view/com/modals/DeleteAccount.tsx:111 msgid "For security reasons, we'll need to send a confirmation code to your email address." @@ -1701,7 +1595,7 @@ msgstr "Mot de passe oublié" #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" -msgstr "" +msgstr "De @{sanitizedAuthor}" #: src/view/com/posts/FeedItem.tsx:189 msgctxt "from-feed" @@ -1734,12 +1628,12 @@ msgstr "Retour" #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" -msgstr "" +msgstr "Retour à l’étape précédente" #: src/view/screens/Search/Search.tsx:747 #: src/view/shell/desktop/Search.tsx:262 msgid "Go to @{queryMaybeHandle}" -msgstr "" +msgstr "Aller à @{queryMaybeHandle}" #: src/view/com/auth/login/ForgotPasswordForm.tsx:189 #: src/view/com/auth/login/ForgotPasswordForm.tsx:218 @@ -1755,19 +1649,15 @@ msgstr "Pseudo" #: src/Navigation.tsx:270 msgid "Hashtag" -msgstr "" - -#: src/components/RichText.tsx:188 -#~ msgid "Hashtag: {tag}" -#~ msgstr "" +msgstr "Mot-clé" #: src/components/RichText.tsx:190 msgid "Hashtag: #{tag}" -msgstr "" +msgstr "Mot-clé : #{tag}" #: src/view/com/auth/create/CreateAccount.tsx:208 msgid "Having trouble?" -msgstr "" +msgstr "Un souci ?" #: src/view/shell/desktop/RightNav.tsx:90 #: src/view/shell/Drawer.tsx:321 @@ -1776,15 +1666,15 @@ msgstr "Aide" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:132 msgid "Here are some accounts for you to follow" -msgstr "" +msgstr "Voici quelques comptes à suivre" #: src/screens/Onboarding/StepTopicalFeeds.tsx:85 msgid "Here are some popular topical feeds. You can choose to follow as many as you like." -msgstr "" +msgstr "Voici quelques fils d’actu thématiques populaires. Vous pouvez choisir d’en suivre autant que vous le souhaitez." #: src/screens/Onboarding/StepTopicalFeeds.tsx:80 msgid "Here are some topical feeds based on your interests: {interestsText}. You can choose to follow as many as you like." -msgstr "" +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:153 msgid "Here is your app password." @@ -1815,7 +1705,7 @@ msgstr "Cacher ce contenu" #: src/view/com/util/forms/PostDropdownBtn.tsx:280 msgid "Hide this post?" -msgstr "Cacher ce post ?" +msgstr "Cacher ce post ?" #: src/view/com/notifications/FeedItem.tsx:316 msgid "Hide user list" @@ -1853,13 +1743,6 @@ msgstr "Hmm, nous n’arrivons pas à trouver ce fil d’actu. Il a peut-être à msgid "Home" msgstr "Accueil" -#: src/Navigation.tsx:247 -#: src/view/com/pager/FeedsTabBarMobile.tsx:123 -#: src/view/screens/PreferencesHomeFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 -#~ msgid "Home Feed Preferences" -#~ msgstr "Préférences de fils d’actu de l’accueil" - #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 msgid "Hosting provider" @@ -1867,7 +1750,7 @@ msgstr "Hébergeur" #: src/view/com/modals/InAppBrowserConsent.tsx:44 msgid "How should we open this link?" -msgstr "" +msgstr "Comment ouvrir ce lien ?" #: src/view/com/modals/VerifyEmail.tsx:214 msgid "I have a code" @@ -1891,7 +1774,7 @@ msgstr "Si rien n’est sélectionné, il n’y a pas de restriction d’âge." #: src/view/com/modals/ChangePassword.tsx:146 msgid "If you want to change your password, we will send you a code to verify that this is your account." -msgstr "" +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/view/com/util/images/Gallery.tsx:38 msgid "Image" @@ -1916,7 +1799,7 @@ msgstr "Entrez le code de confirmation pour supprimer le compte" #: src/view/com/auth/create/Step1.tsx:177 msgid "Input email for Bluesky account" -msgstr "" +msgstr "Saisir l’email pour le compte Bluesky" #: src/view/com/auth/create/Step1.tsx:151 msgid "Input invite code to proceed" @@ -1934,10 +1817,6 @@ 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/view/com/auth/create/Step2.tsx:196 -#~ msgid "Input phone number for SMS verification" -#~ msgstr "" - #: src/view/com/auth/login/LoginForm.tsx:230 msgid "Input the password tied to {identifier}" msgstr "Entrez le mot de passe associé à {identifier}" @@ -1946,14 +1825,6 @@ msgstr "Entrez le mot de passe associé à {identifier}" 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/view/com/auth/create/Step2.tsx:271 -#~ msgid "Input the verification code we have texted to you" -#~ msgstr "" - -#: src/view/com/modals/Waitlist.tsx:90 -#~ msgid "Input your email to get on the Bluesky waitlist" -#~ msgstr "Entrez votre e-mail pour vous inscrire sur la liste d’attente de Bluesky" - #: src/view/com/auth/login/LoginForm.tsx:229 msgid "Input your password" msgstr "Entrez votre mot de passe" @@ -1970,10 +1841,6 @@ msgstr "Enregistrement de post invalide ou non pris en charge" msgid "Invalid username or password" msgstr "Pseudo ou mot de passe incorrect" -#: src/view/screens/Settings.tsx:411 -#~ msgid "Invite" -#~ msgstr "Inviter" - #: src/view/com/modals/InviteCodes.tsx:93 msgid "Invite a Friend" msgstr "Inviter un ami" @@ -1989,41 +1856,24 @@ msgstr "Code d’invitation refusé. Vérifiez que vous l’avez saisi correctem #: src/view/com/modals/InviteCodes.tsx:170 msgid "Invite codes: {0} available" -msgstr "Code d’invitation : {0} disponible" - -#: src/view/shell/Drawer.tsx:645 -#~ msgid "Invite codes: {invitesAvailable} available" -#~ msgstr "Invitations : {invitesAvailable} codes dispo" +msgstr "Code d’invitation : {0} disponible" #: src/view/com/modals/InviteCodes.tsx:169 msgid "Invite codes: 1 available" -msgstr "Invitations : 1 code dispo" +msgstr "Invitations : 1 code dispo" #: src/screens/Onboarding/StepFollowingFeed.tsx:64 msgid "It shows posts from the people you follow as they happen." -msgstr "" +msgstr "Il affiche les posts des personnes que vous suivez au fur et à mesure qu’ils sont publiés." #: src/view/com/auth/HomeLoggedOutCTA.tsx:99 #: src/view/com/auth/SplashScreen.web.tsx:138 msgid "Jobs" msgstr "Emplois" -#: src/view/com/modals/Waitlist.tsx:67 -#~ msgid "Join the waitlist" -#~ msgstr "S’inscrire sur la liste d’attente" - -#: src/view/com/auth/create/Step1.tsx:174 -#: src/view/com/auth/create/Step1.tsx:178 -#~ msgid "Join the waitlist." -#~ msgstr "S’inscrire sur la liste d’attente." - -#: src/view/com/modals/Waitlist.tsx:128 -#~ msgid "Join Waitlist" -#~ msgstr "S’inscrire sur la liste d’attente" - #: src/screens/Onboarding/index.tsx:24 msgid "Journalism" -msgstr "" +msgstr "Journalisme" #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" @@ -2044,7 +1894,7 @@ msgstr "Langues" #: src/view/com/auth/create/StepHeader.tsx:20 msgid "Last step!" -msgstr "Dernière étape !" +msgstr "Dernière étape !" #: src/view/com/util/moderation/ContentHider.tsx:103 msgid "Learn more" @@ -2078,7 +1928,7 @@ msgstr "Quitter Bluesky" #: src/screens/Deactivated.tsx:128 msgid "left to go." -msgstr "" +msgstr "devant vous dans la file." #: src/view/screens/Settings/index.tsx:278 msgid "Legacy storage cleared, you need to restart the app now." @@ -2087,11 +1937,11 @@ msgstr "Stockage ancien effacé, vous devez redémarrer l’application maintena #: src/view/com/auth/login/Login.tsx:128 #: src/view/com/auth/login/Login.tsx:144 msgid "Let's get your password reset!" -msgstr "Réinitialisez votre mot de passe !" +msgstr "Réinitialisez votre mot de passe !" #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Let's go!" -msgstr "" +msgstr "Allons-y !" #: src/view/com/util/UserAvatar.tsx:248 #: src/view/com/util/UserBanner.tsx:62 @@ -2117,7 +1967,7 @@ msgstr "Liké par" #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" -msgstr "" +msgstr "Liké par" #: src/view/com/feeds/FeedSourceCard.tsx:279 msgid "Liked by {0} {1}" @@ -2190,7 +2040,7 @@ msgstr "Listes" #: src/view/com/post-thread/PostThread.tsx:333 #: src/view/com/post-thread/PostThread.tsx:341 msgid "Load more posts" -msgstr "Charger plus d’articles" +msgstr "Charger plus de posts" #: src/view/screens/Notifications.tsx:159 msgid "Load new notifications" @@ -2201,16 +2051,12 @@ msgstr "Charger les nouvelles notifications" #: src/view/screens/ProfileFeed.tsx:495 #: src/view/screens/ProfileList.tsx:681 msgid "Load new posts" -msgstr "Charger les nouveaux messages" +msgstr "Charger les nouveaux posts" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 msgid "Loading..." msgstr "Chargement…" -#: src/view/com/modals/ServerInput.tsx:50 -#~ msgid "Local dev server" -#~ msgstr "Serveur de dév local" - #: src/Navigation.tsx:209 msgid "Log" msgstr "Journaux" @@ -2220,7 +2066,7 @@ msgstr "Journaux" #: src/screens/Deactivated.tsx:178 #: src/screens/Deactivated.tsx:181 msgid "Log out" -msgstr "" +msgstr "Déconnexion" #: src/view/screens/Moderation.tsx:155 msgid "Logged-out visibility" @@ -2232,19 +2078,19 @@ msgstr "Se connecter à un compte qui n’est pas listé" #: src/view/com/modals/LinkWarning.tsx:65 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 !" +msgstr "Assurez-vous que c’est bien là que vous avez l’intention d’aller !" #: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" -msgstr "" +msgstr "Gérer les mots et les mots-clés masqués" #: src/view/com/auth/create/Step2.tsx:118 msgid "May not be longer than 253 characters" -msgstr "" +msgstr "Ne doit pas dépasser 253 caractères" #: src/view/com/auth/create/Step2.tsx:109 msgid "May only contain letters and numbers" -msgstr "" +msgstr "Ne peut contenir que des lettres et des chiffres" #: src/view/screens/Profile.tsx:182 msgid "Media" @@ -2265,7 +2111,7 @@ msgstr "Menu" #: src/view/com/posts/FeedErrorMessage.tsx:197 msgid "Message from server: {0}" -msgstr "Message du serveur : {0}" +msgstr "Message du serveur : {0}" #: src/Navigation.tsx:117 #: src/view/screens/Moderation.tsx:66 @@ -2326,25 +2172,21 @@ msgstr "Plus de fils d’actu" msgid "More options" msgstr "Plus d’options" -#: src/view/com/util/forms/PostDropdownBtn.tsx:315 -#~ msgid "More post options" -#~ msgstr "Plus d’options de post" - #: src/view/screens/PreferencesThreads.tsx:82 msgid "Most-liked replies first" msgstr "Réponses les plus likées en premier" #: src/view/com/auth/create/Step2.tsx:122 msgid "Must be at least 3 characters" -msgstr "" +msgstr "Doit comporter au moins 3 caractères" #: src/components/TagMenu/index.tsx:249 msgid "Mute" -msgstr "" +msgstr "Masquer" #: src/components/TagMenu/index.web.tsx:105 msgid "Mute {truncatedTag}" -msgstr "" +msgstr "Masquer {truncatedTag}" #: src/view/com/profile/ProfileHeader.tsx:327 msgid "Mute Account" @@ -2356,19 +2198,15 @@ msgstr "Masquer les comptes" #: src/components/TagMenu/index.tsx:209 msgid "Mute all {displayTag} posts" -msgstr "" - -#: src/components/TagMenu/index.tsx:211 -#~ msgid "Mute all {tag} posts" -#~ msgstr "" +msgstr "Masquer tous les posts {displayTag}" #: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" -msgstr "" +msgstr "Masquer dans les mots-clés uniquement" #: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" -msgstr "" +msgstr "Masquer dans le texte et les mots-clés" #: src/view/screens/ProfileList.tsx:491 msgid "Mute list" @@ -2376,7 +2214,7 @@ msgstr "Masquer la liste" #: src/view/screens/ProfileList.tsx:275 msgid "Mute these accounts?" -msgstr "Masquer ces comptes ?" +msgstr "Masquer ces comptes ?" #: src/view/screens/ProfileList.tsx:279 msgid "Mute this List" @@ -2384,11 +2222,11 @@ msgstr "Masquer cette liste" #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" -msgstr "" +msgstr "Masquer ce mot dans le texte du post et les mots-clés" #: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" -msgstr "" +msgstr "Masquer ce mot dans les mots-clés uniquement" #: src/view/com/util/forms/PostDropdownBtn.tsx:251 #: src/view/com/util/forms/PostDropdownBtn.tsx:257 @@ -2398,11 +2236,11 @@ msgstr "Masquer ce fil de discussion" #: src/view/com/util/forms/PostDropdownBtn.tsx:267 #: src/view/com/util/forms/PostDropdownBtn.tsx:269 msgid "Mute words & tags" -msgstr "" +msgstr "Masquer les mots et les mots-clés" #: src/view/com/lists/ListCard.tsx:102 msgid "Muted" -msgstr "" +msgstr "Masqué" #: src/view/screens/Moderation.tsx:128 msgid "Muted accounts" @@ -2415,11 +2253,11 @@ msgstr "Comptes masqués" #: src/view/screens/ModerationMutedAccounts.tsx:115 msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." -msgstr "Les comptes masqués voient leurs posts supprimés de votre fil d’actualité et de vos notifications. Cette option est totalement privée." +msgstr "Les comptes masqués voient leurs posts supprimés de votre fil d’actu et de vos notifications. Cette option est totalement privée." #: src/view/screens/Moderation.tsx:100 msgid "Muted words & tags" -msgstr "" +msgstr "Les mots et les mots-clés masqués" #: src/view/screens/ProfileList.tsx:277 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." @@ -2443,7 +2281,7 @@ msgstr "Mes fils d’actu enregistrés" #: src/view/com/auth/server-input/index.tsx:118 msgid "my-server.com" -msgstr "" +msgstr "mon-serveur.fr" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2456,7 +2294,7 @@ msgstr "Le nom est requis" #: src/screens/Onboarding/index.tsx:25 msgid "Nature" -msgstr "" +msgstr "Nature" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 #: src/view/com/auth/login/ForgotPasswordForm.tsx:219 @@ -2482,11 +2320,11 @@ msgstr "Ne perdez jamais l’accès à vos followers et à vos données." #: src/screens/Onboarding/StepFinished.tsx:119 msgid "Never lose access to your followers or data." -msgstr "" +msgstr "Ne perdez jamais l’accès à vos followers ou à vos données." #: src/components/dialogs/MutedWords.tsx:293 msgid "Nevermind" -msgstr "" +msgstr "Peu importe" #: src/view/screens/Lists.tsx:76 msgctxt "action" @@ -2507,7 +2345,7 @@ msgstr "Nouveau mot de passe" #: src/view/com/modals/ChangePassword.tsx:215 msgid "New Password" -msgstr "" +msgstr "Nouveau mot de passe" #: src/view/com/feeds/FeedPage.tsx:126 msgctxt "action" @@ -2539,7 +2377,7 @@ msgstr "Réponses les plus récentes en premier" #: src/screens/Onboarding/index.tsx:23 msgid "News" -msgstr "" +msgstr "Actualités" #: src/view/com/auth/create/CreateAccount.tsx:172 #: src/view/com/auth/login/ForgotPasswordForm.tsx:182 @@ -2582,7 +2420,7 @@ msgstr "Ne suit plus {0}" #: src/view/com/notifications/Feed.tsx:109 msgid "No notifications yet!" -msgstr "Pas encore de notifications !" +msgstr "Pas encore de notifications !" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 #: src/view/com/composer/text-input/web/Autocomplete.tsx:191 @@ -2591,11 +2429,11 @@ msgstr "Aucun résultat" #: src/components/Lists.tsx:192 msgid "No results found" -msgstr "" +msgstr "Aucun résultat trouvé" #: src/view/screens/Feeds.tsx:495 msgid "No results found for \"{query}\"" -msgstr "Aucun résultat trouvé pour « {query} »" +msgstr "Aucun résultat trouvé pour « {query} »" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 #: src/view/screens/Search/Search.tsx:281 @@ -2627,7 +2465,7 @@ msgstr "Pas maintenant" #: src/view/screens/Moderation.tsx:252 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." +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/Navigation.tsx:457 #: src/view/screens/Notifications.tsx:124 @@ -2645,11 +2483,11 @@ msgstr "Nudité" #: src/view/com/util/ErrorBoundary.tsx:35 msgid "Oh no!" -msgstr "Oh non !" +msgstr "Oh non !" #: src/screens/Onboarding/StepInterests/index.tsx:128 msgid "Oh no! Something went wrong." -msgstr "" +msgstr "Oh non ! Il y a eu un problème." #: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 msgid "Okay" @@ -2673,21 +2511,21 @@ msgstr "Seul {0} peut répondre." #: src/components/Lists.tsx:82 msgid "Oops, something went wrong!" -msgstr "" +msgstr "Oups, quelque chose n’a pas marché !" #: src/components/Lists.tsx:188 #: src/view/screens/AppPasswords.tsx:65 #: src/view/screens/Profile.tsx:106 msgid "Oops!" -msgstr "Oups !" +msgstr "Oups !" #: src/screens/Onboarding/StepFinished.tsx:115 msgid "Open" -msgstr "" +msgstr "Ouvrir" #: src/view/screens/Moderation.tsx:75 msgid "Open content filtering settings" -msgstr "" +msgstr "Ouvrir les paramètres de filtrage de contenu" #: src/view/com/composer/Composer.tsx:477 #: src/view/com/composer/Composer.tsx:478 @@ -2696,11 +2534,11 @@ msgstr "Ouvrir le sélecteur d’emoji" #: src/view/screens/Settings/index.tsx:712 msgid "Open links with in-app browser" -msgstr "" +msgstr "Ouvrir des liens avec le navigateur interne à l’appli" #: src/view/screens/Moderation.tsx:92 msgid "Open muted words settings" -msgstr "" +msgstr "Ouvrir les paramètres des mots masqués" #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" @@ -2708,7 +2546,7 @@ msgstr "Navigation ouverte" #: src/view/com/util/forms/PostDropdownBtn.tsx:175 msgid "Open post options menu" -msgstr "" +msgstr "Ouvrir le menu d’options du post" #: src/view/screens/Settings/index.tsx:804 msgid "Open storybook page" @@ -2758,10 +2596,6 @@ msgstr "Ouvre la liste des comptes abonnés" msgid "Opens following list" msgstr "Ouvre la liste des abonnements" -#: src/view/screens/Settings.tsx:412 -#~ msgid "Opens invite code list" -#~ msgstr "Ouvre la liste des codes d’invitation" - #: src/view/com/modals/InviteCodes.tsx:172 msgid "Opens list of invite codes" msgstr "Ouvre la liste des codes d’invitation" @@ -2817,16 +2651,12 @@ msgstr "Option {0} sur {numItems}" #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" -msgstr "Ou une combinaison de ces options :" +msgstr "Ou une combinaison de ces options :" #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" msgstr "Autre compte" -#: src/view/com/modals/ServerInput.tsx:88 -#~ msgid "Other service" -#~ msgstr "Autre service" - #: src/view/com/composer/select-language/SelectLangBtn.tsx:91 msgid "Other..." msgstr "Autre…" @@ -2838,7 +2668,7 @@ msgstr "Page introuvable" #: src/view/screens/NotFound.tsx:42 msgid "Page Not Found" -msgstr "" +msgstr "Page introuvable" #: src/view/com/auth/create/Step1.tsx:191 #: src/view/com/auth/create/Step1.tsx:201 @@ -2854,7 +2684,7 @@ msgstr "Mise à jour du mot de passe" #: src/view/com/auth/login/PasswordUpdatedForm.tsx:28 msgid "Password updated!" -msgstr "Mot de passe mis à jour !" +msgstr "Mot de passe mis à jour !" #: src/Navigation.tsx:162 msgid "People followed by @{0}" @@ -2874,11 +2704,7 @@ msgstr "Permission d’accès à la pellicule refusée. Veuillez l’activer dan #: src/screens/Onboarding/index.tsx:31 msgid "Pets" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:183 -#~ msgid "Phone number" -#~ msgstr "" +msgstr "Animaux domestiques" #: src/view/com/modals/SelfLabel.tsx:121 msgid "Pictures meant for adults." @@ -2916,7 +2742,7 @@ msgstr "Veuillez choisir votre mot de passe." #: src/view/com/auth/create/state.ts:131 msgid "Please complete the verification captcha." -msgstr "" +msgstr "Veuillez compléter le captcha de vérification." #: src/view/com/modals/ChangeEmail.tsx:67 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." @@ -2926,25 +2752,13 @@ msgstr "Veuillez confirmer votre e-mail avant de le modifier. Ceci est temporair 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/auth/create/Step2.tsx:206 -#~ msgid "Please enter a phone number that can receive SMS text messages." -#~ msgstr "" - #: src/view/com/modals/AddAppPasswords.tsx:145 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:68 msgid "Please enter a valid word, tag, or phrase to mute" -msgstr "" - -#: src/view/com/auth/create/state.ts:170 -#~ msgid "Please enter the code you received by SMS." -#~ msgstr "" - -#: src/view/com/auth/create/Step2.tsx:282 -#~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." -#~ msgstr "" +msgstr "Veuillez entrer un mot, un mot-clé ou une phrase valide à masquer" #: src/view/com/auth/create/state.ts:103 msgid "Please enter your email." @@ -2952,12 +2766,12 @@ msgstr "Veuillez entrer votre e-mail." #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Please enter your password as well:" -msgstr "Veuillez également entrer votre mot de passe :" +msgstr "Veuillez également entrer votre mot de passe :" #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "Dites-nous donc pourquoi vous pensez que cet avertissement de contenu a été appliqué à tort !" +msgstr "Dites-nous donc pourquoi vous pensez que cet avertissement de contenu a été appliqué à tort !" #: src/view/com/modals/VerifyEmail.tsx:101 msgid "Please Verify Your Email" @@ -2969,7 +2783,7 @@ msgstr "Veuillez patienter le temps que votre carte de lien soit chargée" #: src/screens/Onboarding/index.tsx:37 msgid "Politics" -msgstr "" +msgstr "Politique" #: src/view/com/modals/SelfLabel.tsx:111 msgid "Porn" @@ -3018,7 +2832,7 @@ msgstr "Post introuvable" #: src/components/TagMenu/index.tsx:253 msgid "posts" -msgstr "" +msgstr "posts" #: src/view/screens/Profile.tsx:180 msgid "Posts" @@ -3026,7 +2840,7 @@ msgstr "Posts" #: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." -msgstr "" +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 msgid "Posts hidden" @@ -3082,7 +2896,7 @@ msgstr "Protégez votre compte en vérifiant votre e-mail." #: src/screens/Onboarding/StepFinished.tsx:101 msgid "Public" -msgstr "" +msgstr "Public" #: src/view/screens/ModerationModlists.tsx:61 msgid "Public, shareable lists of users to mute or block in bulk." @@ -3141,7 +2955,7 @@ msgstr "Supprimer" #: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Remove {0} from my feeds?" -msgstr "Supprimer {0} de mes fils d’actu ?" +msgstr "Supprimer {0} de mes fils d’actu ?" #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" @@ -3170,7 +2984,7 @@ msgstr "Supprimer l’aperçu d’image" #: src/components/dialogs/MutedWords.tsx:343 msgid "Remove mute word from your list" -msgstr "" +msgstr "Supprimer le mot masqué de votre liste" #: src/view/com/modals/Repost.tsx:47 msgid "Remove repost" @@ -3178,11 +2992,11 @@ msgstr "Supprimer le repost" #: src/view/com/feeds/FeedSourceCard.tsx:175 msgid "Remove this feed from my feeds?" -msgstr "Supprimer ce fil d’actu ?" +msgstr "Supprimer ce fil d’actu ?" #: src/view/com/posts/FeedErrorMessage.tsx:132 msgid "Remove this feed from your saved feeds?" -msgstr "Supprimer ce fil d’actu de vos fils d’actu enregistrés ?" +msgstr "Supprimer ce fil d’actu de vos fils d’actu enregistrés ?" #: src/view/com/modals/ListAddRemoveUsers.tsx:199 #: src/view/com/modals/UserAddRemoveLists.tsx:152 @@ -3285,14 +3099,10 @@ msgstr "Reposts de ce post" msgid "Request Change" msgstr "Demande de modification" -#: src/view/com/auth/create/Step2.tsx:219 -#~ msgid "Request code" -#~ msgstr "" - #: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 msgid "Request Code" -msgstr "" +msgstr "Demander un code" #: src/view/screens/Settings/index.tsx:456 msgid "Require alt text before posting" @@ -3309,7 +3119,7 @@ msgstr "Réinitialiser le code" #: src/view/com/modals/ChangePassword.tsx:190 msgid "Reset Code" -msgstr "" +msgstr "Code de réinitialisation" #: src/view/screens/Settings/index.tsx:824 msgid "Reset onboarding" @@ -3359,18 +3169,10 @@ msgstr "Réessaye la dernière action, qui a échoué" msgid "Retry" msgstr "Réessayer" -#: src/view/com/auth/create/Step2.tsx:247 -#~ msgid "Retry." -#~ msgstr "" - #: src/view/screens/ProfileList.tsx:903 msgid "Return to previous page" msgstr "Retourne à la page précédente" -#: src/view/shell/desktop/RightNav.tsx:55 -#~ msgid "SANDBOX. Posts and accounts are not permanent." -#~ msgstr "SANDBOX. Les posts et les comptes ne sont pas permanents." - #: src/view/com/lightbox/Lightbox.tsx:132 #: src/view/com/modals/CreateOrEditList.tsx:345 msgctxt "action" @@ -3416,7 +3218,7 @@ msgstr "Enregistre le changement de pseudo en {handle}" #: src/screens/Onboarding/index.tsx:36 msgid "Science" -msgstr "" +msgstr "Science" #: src/view/screens/ProfileList.tsx:859 msgid "Scroll to top" @@ -3442,23 +3244,15 @@ msgstr "Recherche" #: src/view/screens/Search/Search.tsx:735 #: src/view/shell/desktop/Search.tsx:255 msgid "Search for \"{query}\"" -msgstr "" +msgstr "Recherche de « {query} »" #: src/components/TagMenu/index.tsx:145 msgid "Search for all posts by @{authorHandle} with tag {displayTag}" -msgstr "" - -#: src/components/TagMenu/index.tsx:145 -#~ msgid "Search for all posts by @{authorHandle} with tag {tag}" -#~ msgstr "" +msgstr "Rechercher tous les posts de @{authorHandle} avec le mot-clé {displayTag}" #: src/components/TagMenu/index.tsx:94 msgid "Search for all posts with tag {displayTag}" -msgstr "" - -#: src/components/TagMenu/index.tsx:90 -#~ msgid "Search for all posts with tag {tag}" -#~ msgstr "" +msgstr "Rechercher tous les posts avec le mot-clé {displayTag}" #: src/view/com/auth/LoggedOut.tsx:104 #: src/view/com/auth/LoggedOut.tsx:105 @@ -3472,27 +3266,19 @@ msgstr "Étape de sécurité requise" #: src/components/TagMenu/index.web.tsx:66 msgid "See {truncatedTag} posts" -msgstr "" +msgstr "Voir les posts {truncatedTag}" #: src/components/TagMenu/index.web.tsx:83 msgid "See {truncatedTag} posts by user" -msgstr "" +msgstr "Voir les posts {truncatedTag} de ce compte" #: src/components/TagMenu/index.tsx:128 msgid "See <0>{displayTag}</0> posts" -msgstr "" +msgstr "Voir les posts <0>{displayTag}</0>" #: src/components/TagMenu/index.tsx:187 msgid "See <0>{displayTag}</0> posts by this user" -msgstr "" - -#: src/components/TagMenu/index.tsx:128 -#~ msgid "See <0>{tag}</0> posts" -#~ msgstr "" - -#: src/components/TagMenu/index.tsx:189 -#~ msgid "See <0>{tag}</0> posts by this user" -#~ msgstr "" +msgstr "Voir les posts <0>{displayTag}</0> de ce compte" #: src/view/screens/SavedFeeds.tsx:163 msgid "See this guide" @@ -3506,10 +3292,6 @@ msgstr "Voir la suite" msgid "Select {item}" msgstr "Sélectionner {item}" -#: src/view/com/modals/ServerInput.tsx:75 -#~ msgid "Select Bluesky Social" -#~ msgstr "Sélectionner Bluesky Social" - #: src/view/com/auth/login/Login.tsx:117 msgid "Select from an existing account" msgstr "Sélectionner un compte existant" @@ -3525,23 +3307,19 @@ msgstr "Sélectionner un service" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:52 msgid "Select some accounts below to follow" -msgstr "" +msgstr "Sélectionnez quelques comptes à suivre ci-dessous" #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." -msgstr "" - -#: src/screens/Onboarding/StepModeration/index.tsx:49 -#~ msgid "Select the types of content that you want to see (or not see), and we'll handle the rest." -#~ msgstr "" +msgstr "Sélectionnez le service qui héberge vos données." #: src/screens/Onboarding/StepTopicalFeeds.tsx:96 msgid "Select topical feeds to follow from the list below" -msgstr "" +msgstr "Sélectionnez les fils d’actu thématiques à suivre dans la liste ci-dessous" #: src/screens/Onboarding/StepModeration/index.tsx:75 msgid "Select what you want to see (or not see), and we’ll handle the rest." -msgstr "" +msgstr "Sélectionnez ce que vous voulez voir (ou ne pas voir), et nous nous occupons du reste." #: src/view/screens/LanguageSettings.tsx:281 msgid "Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown." @@ -3553,11 +3331,7 @@ msgstr "Sélectionnez la langue de votre application à afficher par défaut" #: src/screens/Onboarding/StepInterests/index.tsx:196 msgid "Select your interests from the options below" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:155 -#~ msgid "Select your phone's country" -#~ msgstr "" +msgstr "Sélectionnez vos centres d’intérêt parmi les options ci-dessous" #: src/view/screens/LanguageSettings.tsx:190 msgid "Select your preferred language for translations in your feed." @@ -3565,11 +3339,11 @@ msgstr "Sélectionnez votre langue préférée pour traduire votre fils d’actu #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:116 msgid "Select your primary algorithmic feeds" -msgstr "" +msgstr "Sélectionnez vos principaux fils d’actu algorithmiques" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:142 msgid "Select your secondary algorithmic feeds" -msgstr "" +msgstr "Sélectionnez vos fils d’actu algorithmiques secondaires" #: src/view/com/modals/VerifyEmail.tsx:202 #: src/view/com/modals/VerifyEmail.tsx:204 @@ -3600,7 +3374,7 @@ msgstr "Envoie un e-mail avec le code de confirmation pour la suppression du com #: src/view/com/auth/server-input/index.tsx:110 msgid "Server address" -msgstr "" +msgstr "Adresse du serveur" #: src/view/com/modals/ContentFilteringSettings.tsx:311 msgid "Set {value} for {labelGroup} content moderation policy" @@ -3626,11 +3400,11 @@ msgstr "Change le thème de couleur en fonction du paramètre système" #: src/view/screens/Settings/index.tsx:514 msgid "Set dark theme to the dark theme" -msgstr "" +msgstr "Choisir le thème le plus sombre comme thème sombre" #: src/view/screens/Settings/index.tsx:507 msgid "Set dark theme to the dim theme" -msgstr "" +msgstr "Choisir le thème atténué comme thème sombre" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3642,31 +3416,27 @@ msgstr "Définit le mot de passe" #: src/view/screens/PreferencesFollowingFeed.tsx:225 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." +msgstr "Choisissez « Non » pour cacher toutes les citations sur votre fils d’actu. Les reposts seront toujours visibles." #: src/view/screens/PreferencesFollowingFeed.tsx:122 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." +msgstr "Choisissez « Non » pour cacher toutes les réponses dans votre fils d’actu." #: src/view/screens/PreferencesFollowingFeed.tsx:191 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." +msgstr "Choisissez « Non » pour cacher toutes les reposts de votre fils d’actu." #: src/view/screens/PreferencesThreads.tsx:122 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/PreferencesHomeFeed.tsx:261 -#~ 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 fils d’actu suivant. C’est une fonctionnalité expérimentale." +msgstr "Choisissez « Oui » pour afficher les réponses dans un fil de discussion. C’est une fonctionnalité expérimentale." #: src/view/screens/PreferencesFollowingFeed.tsx:261 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your Following feed. This is an experimental feature." -msgstr "" +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." #: src/screens/Onboarding/Layout.tsx:50 msgid "Set up your account" -msgstr "" +msgstr "Créez votre compte" #: src/view/com/modals/ChangeHandle.tsx:266 msgid "Sets Bluesky username" @@ -3754,15 +3524,15 @@ msgstr "Afficher les citations" #: src/screens/Onboarding/StepFollowingFeed.tsx:118 msgid "Show quote-posts in Following feed" -msgstr "" +msgstr "Afficher les citations dans le fil d’actu « Following »" #: src/screens/Onboarding/StepFollowingFeed.tsx:134 msgid "Show quotes in Following" -msgstr "" +msgstr "Afficher les citations dans le fil d’actu « Following »" #: src/screens/Onboarding/StepFollowingFeed.tsx:94 msgid "Show re-posts in Following feed" -msgstr "" +msgstr "Afficher les reposts dans le fil d’actu « Following »" #: src/view/screens/PreferencesFollowingFeed.tsx:119 msgid "Show Replies" @@ -3774,11 +3544,11 @@ msgstr "Afficher les réponses des personnes que vous suivez avant toutes les au #: src/screens/Onboarding/StepFollowingFeed.tsx:86 msgid "Show replies in Following" -msgstr "" +msgstr "Afficher les réponses dans le fil d’actu « Following »" #: src/screens/Onboarding/StepFollowingFeed.tsx:70 msgid "Show replies in Following feed" -msgstr "" +msgstr "Afficher les réponses dans le fil d’actu « Following »" #: src/view/screens/PreferencesFollowingFeed.tsx:70 msgid "Show replies with at least {value} {0}" @@ -3790,7 +3560,7 @@ msgstr "Afficher les reposts" #: src/screens/Onboarding/StepFollowingFeed.tsx:110 msgid "Show reposts in Following" -msgstr "" +msgstr "Afficher les reposts dans le fil d’actu « Following »" #: src/view/com/util/moderation/ContentHider.tsx:67 #: src/view/com/util/moderation/PostHider.tsx:61 @@ -3890,31 +3660,19 @@ msgstr "Ignorer" #: src/screens/Onboarding/StepInterests/index.tsx:232 msgid "Skip this flow" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:82 -#~ msgid "SMS verification" -#~ msgstr "" +msgstr "Passer cette étape" #: src/screens/Onboarding/index.tsx:40 msgid "Software Dev" -msgstr "" - -#: src/view/com/modals/ProfilePreview.tsx:62 -#~ msgid "Something went wrong and we're not sure what." -#~ msgstr "Quelque chose n’a pas marché, mais on ne sait pas trop quoi." +msgstr "Développement de logiciels" #: src/components/Lists.tsx:203 msgid "Something went wrong!" -msgstr "" - -#: src/view/com/modals/Waitlist.tsx:51 -#~ msgid "Something went wrong. Check your email and try again." -#~ msgstr "Quelque chose n’a pas marché. Vérifiez vos e-mails et réessayez." +msgstr "Quelque chose n’a pas marché !" #: src/App.native.tsx:66 msgid "Sorry! Your session expired. Please log in again." -msgstr "Désolé ! Votre session a expiré. Essayez de vous reconnecter." +msgstr "Désolé ! Votre session a expiré. Essayez de vous reconnecter." #: src/view/screens/PreferencesThreads.tsx:69 msgid "Sort Replies" @@ -3922,20 +3680,16 @@ msgstr "Trier les réponses" #: src/view/screens/PreferencesThreads.tsx:72 msgid "Sort replies to the same post by:" -msgstr "Trier les réponses au même post par :" +msgstr "Trier les réponses au même post par :" #: src/screens/Onboarding/index.tsx:30 msgid "Sports" -msgstr "" +msgstr "Sports" #: src/view/com/modals/crop-image/CropImage.web.tsx:122 msgid "Square" msgstr "Carré" -#: src/view/com/modals/ServerInput.tsx:62 -#~ msgid "Staging" -#~ msgstr "Serveur de test" - #: src/view/screens/Settings/index.tsx:871 msgid "Status page" msgstr "État du service" @@ -3964,7 +3718,7 @@ msgstr "S’abonner" #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" -msgstr "" +msgstr "S’abonner au fil d’actu {0}" #: src/view/screens/ProfileList.tsx:604 msgid "Subscribe to this list" @@ -3988,10 +3742,6 @@ msgstr "Suggestif" msgid "Support" msgstr "Soutien" -#: src/view/com/modals/ProfilePreview.tsx:110 -#~ msgid "Swipe up to see more" -#~ msgstr "Glisser vers le haut pour en voir plus" - #: src/view/com/modals/SwitchAccount.tsx:117 msgid "Switch Account" msgstr "Changer de compte" @@ -4016,15 +3766,11 @@ msgstr "Journal système" #: src/components/dialogs/MutedWords.tsx:337 msgid "tag" -msgstr "" +msgstr "mot-clé" #: src/components/TagMenu/index.tsx:78 msgid "Tag menu: {displayTag}" -msgstr "" - -#: src/components/TagMenu/index.tsx:74 -#~ msgid "Tag menu: {tag}" -#~ msgstr "" +msgstr "Menu de mot-clé : {displayTag}" #: src/view/com/modals/crop-image/CropImage.web.tsx:112 msgid "Tall" @@ -4036,7 +3782,7 @@ msgstr "Tapper pour voir en entier" #: src/screens/Onboarding/index.tsx:39 msgid "Tech" -msgstr "" +msgstr "Technologie" #: src/view/shell/desktop/RightNav.tsx:81 msgid "Terms" @@ -4051,7 +3797,7 @@ msgstr "Conditions d’utilisation" #: src/components/dialogs/MutedWords.tsx:337 msgid "text" -msgstr "" +msgstr "texte" #: src/view/com/modals/AppealLabel.tsx:70 #: src/view/com/modals/report/InputIssueDetails.tsx:51 @@ -4060,7 +3806,7 @@ msgstr "Champ de saisie de texte" #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." -msgstr "" +msgstr "Ce pseudo est déjà occupé." #: src/view/com/profile/ProfileHeader.tsx:263 msgid "The account will be able to interact with you after unblocking." @@ -4076,7 +3822,7 @@ msgstr "Notre politique de droits d’auteur a été déplacée vers <0/>" #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." -msgstr "" +msgstr "Les étapes suivantes vous aideront à personnaliser votre expérience avec Bluesky." #: src/view/com/post-thread/PostThread.tsx:517 msgid "The post may have been deleted." @@ -4096,7 +3842,7 @@ msgstr "Nos conditions d’utilisation ont été déplacées vers" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:150 msgid "There are many feeds to try:" -msgstr "" +msgstr "Il existe de nombreux fils d’actu à essayer :" #: src/view/screens/ProfileFeed.tsx:550 msgid "There was an an issue contacting the server, please check your internet connection and try again." @@ -4161,7 +3907,7 @@ msgstr "Il y a eu un problème lors de la récupération de vos mots de passe dâ #: src/view/com/profile/ProfileHeader.tsx:250 #: src/view/com/profile/ProfileHeader.tsx:272 msgid "There was an issue! {0}" -msgstr "Il y a eu un problème ! {0}" +msgstr "Il y a eu un problème ! {0}" #: src/view/screens/ProfileList.tsx:288 #: src/view/screens/ProfileList.tsx:307 @@ -4172,23 +3918,19 @@ msgstr "Il y a eu un problème. Veuillez vérifier votre connexion Internet et r #: src/view/com/util/ErrorBoundary.tsx:36 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" -msgstr "Un problème inattendu s’est produit dans l’application. N’hésitez pas à nous faire savoir si cela vous est arrivé !" +msgstr "Un problème inattendu s’est produit dans l’application. N’hésitez pas à nous faire savoir si cela vous est arrivé !" #: src/screens/Deactivated.tsx:106 msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:55 -#~ msgid "There's something wrong with this number. Please choose your country and enter your full phone number!" -#~ msgstr "" +msgstr "Il y a eu un afflux de nouveaux personnes sur Bluesky ! Nous activerons ton compte dès que possible." #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:138 msgid "These are popular accounts you might like:" -msgstr "" +msgstr "Voici des comptes populaires qui pourraient vous intéresser :" #: src/view/com/util/moderation/ScreenHider.tsx:88 msgid "This {screenDescription} has been flagged:" -msgstr "Ce {screenDescription} a été signalé :" +msgstr "Ce {screenDescription} a été signalé :" #: src/view/com/util/moderation/ScreenHider.tsx:83 msgid "This account has requested that users sign in to view their profile." @@ -4196,7 +3938,7 @@ msgstr "Ce compte a demandé aux personnes de se connecter pour voir son profil. #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" -msgstr "Ce contenu est hébergé par {0}. Voulez-vous activer les médias externes ?" +msgstr "Ce contenu est hébergé par {0}. Voulez-vous activer les médias externes ?" #: src/view/com/modals/ModerationDetails.tsx:67 msgid "This content is not available because one of the users involved has blocked the other." @@ -4208,7 +3950,7 @@ msgstr "Ce contenu n’est pas visible sans un compte Bluesky." #: src/view/screens/Settings/ExportCarDialog.tsx:75 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost.</0>" -msgstr "" +msgstr "Cette fonctionnalité est en version bêta. Vous pouvez en savoir plus sur les exportations de dépôts dans <0>ce blogpost.</0>" #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." @@ -4218,11 +3960,11 @@ msgstr "Ce fil d’actu reçoit actuellement un trafic important, il est tempora #: src/view/screens/ProfileFeed.tsx:476 #: src/view/screens/ProfileList.tsx:661 msgid "This feed is empty!" -msgstr "Ce fil d’actu est vide !" +msgstr "Ce fil d’actu est vide !" #: src/view/com/posts/CustomFeedEmptyState.tsx:37 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." +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/modals/BirthDateSettings.tsx:61 msgid "This information is not shared with other users." @@ -4234,11 +3976,11 @@ msgstr "Ceci est important au cas où vous auriez besoin de changer d’e-mail o #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" -msgstr "Ce lien vous conduit au site Web suivant :" +msgstr "Ce lien vous conduit au site Web suivant :" #: src/view/screens/ProfileList.tsx:839 msgid "This list is empty!" -msgstr "Cette liste est vide !" +msgstr "Cette liste est vide !" #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" @@ -4258,19 +4000,15 @@ msgstr "Ce compte est inclus dans la liste <0/> que vous avez bloquée." #: src/view/com/modals/ModerationDetails.tsx:74 msgid "This user is included in the <0/> list which you have muted." -msgstr "" - -#: src/view/com/modals/ModerationDetails.tsx:74 -#~ msgid "This user is included the <0/> list which you have muted." -#~ msgstr "Ce compte est inclus dans la liste <0/> que vous avez masquée." +msgstr "Ce compte est inclus dans la liste <0/> que vous avez masquée." #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." -msgstr "Cet avertissement n’est disponible que pour les messages contenant des médias." +msgstr "Cet avertissement n’est disponible que pour les posts contenant des médias." #: src/components/dialogs/MutedWords.tsx:285 msgid "This will delete {0} from your muted words. You can always add it back later." -msgstr "" +msgstr "Cela supprimera {0} de vos mots masqués. Vous pourrez toujours le réintégrer plus tard." #: src/view/com/util/forms/PostDropdownBtn.tsx:282 msgid "This will hide this post from your feeds." @@ -4291,7 +4029,7 @@ msgstr "Préférences de fils de discussion" #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." -msgstr "" +msgstr "Basculer entre les options pour les mots masqués." #: src/view/com/util/forms/DropdownButton.tsx:246 msgid "Toggle dropdown" @@ -4375,7 +4113,7 @@ msgstr "Réafficher" #: src/components/TagMenu/index.web.tsx:104 msgid "Unmute {truncatedTag}" -msgstr "" +msgstr "Réafficher {truncatedTag}" #: src/view/com/profile/ProfileHeader.tsx:326 msgid "Unmute Account" @@ -4383,11 +4121,7 @@ msgstr "Réafficher ce compte" #: src/components/TagMenu/index.tsx:208 msgid "Unmute all {displayTag} posts" -msgstr "" - -#: src/components/TagMenu/index.tsx:210 -#~ msgid "Unmute all {tag} posts" -#~ msgstr "" +msgstr "Réafficher tous les posts {displayTag}" #: src/view/com/util/forms/PostDropdownBtn.tsx:251 #: src/view/com/util/forms/PostDropdownBtn.tsx:256 @@ -4421,7 +4155,7 @@ msgstr "Mise à jour…" #: src/view/com/modals/ChangeHandle.tsx:455 msgid "Upload a text file to:" -msgstr "Envoyer un fichier texte vers :" +msgstr "Envoyer un fichier texte vers :" #: src/view/screens/AppPasswords.tsx:195 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." @@ -4434,24 +4168,20 @@ msgstr "Utiliser le fournisseur par défaut" #: src/view/com/modals/InAppBrowserConsent.tsx:56 #: src/view/com/modals/InAppBrowserConsent.tsx:58 msgid "Use in-app browser" -msgstr "" +msgstr "Utiliser le navigateur interne à l’appli" #: src/view/com/modals/InAppBrowserConsent.tsx:66 #: src/view/com/modals/InAppBrowserConsent.tsx:68 msgid "Use my default browser" -msgstr "" +msgstr "Utiliser mon navigateur par défaut" #: src/view/com/modals/AddAppPasswords.tsx:155 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." -#: src/view/com/modals/ServerInput.tsx:105 -#~ msgid "Use your domain as your Bluesky client service provider" -#~ msgstr "Utilise votre domaine comme votre fournisseur de client Bluesky" - #: src/view/com/modals/InviteCodes.tsx:200 msgid "Used by:" -msgstr "Utilisé par :" +msgstr "Utilisé par :" #: src/view/com/modals/ModerationDetails.tsx:54 msgid "User Blocked" @@ -4511,11 +4241,7 @@ msgstr "comptes suivis par <0/>" #: src/view/com/modals/Threadgate.tsx:106 msgid "Users in \"{0}\"" -msgstr "Comptes dans « {0} »" - -#: src/view/com/auth/create/Step2.tsx:243 -#~ msgid "Verification code" -#~ msgstr "" +msgstr "Comptes dans « {0} »" #: src/view/screens/Settings/index.tsx:910 msgid "Verify email" @@ -4540,7 +4266,7 @@ msgstr "Vérifiez votre e-mail" #: src/screens/Onboarding/index.tsx:42 msgid "Video Games" -msgstr "" +msgstr "Jeux vidéo" #: src/view/com/profile/ProfileHeader.tsx:662 msgid "View {0}'s avatar" @@ -4573,43 +4299,39 @@ msgstr "Avertir" #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" -msgstr "" +msgstr "Nous pensons également que vous aimerez « For You » de Skygaze :" #: src/screens/Hashtag.tsx:132 msgid "We couldn't find any results for that hashtag." -msgstr "" +msgstr "Nous n’avons trouvé aucun résultat pour ce mot-clé." #: src/screens/Deactivated.tsx:133 msgid "We estimate {estimatedTime} until your account is ready." -msgstr "" +msgstr "Nous estimons que votre compte sera prêt dans {estimatedTime}." #: src/screens/Onboarding/StepFinished.tsx:93 msgid "We hope you have a wonderful time. Remember, Bluesky is:" -msgstr "" +msgstr "Nous espérons que vous passerez un excellent moment. N’oubliez pas que Bluesky est :" #: src/view/com/posts/DiscoverFallbackHeader.tsx:29 msgid "We ran out of posts from your follows. Here's the latest from <0/>." -msgstr "" - -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:118 -#~ msgid "We recommend \"For You\" by Skygaze:" -#~ msgstr "" +msgstr "Nous n’avons plus de posts provenant des comptes que vous suivez. Voici le dernier de <0/>." #: 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 "" +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." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:124 msgid "We recommend our \"Discover\" feed:" -msgstr "" +msgstr "Nous vous recommandons notre fil d’actu « Discover » :" #: src/screens/Onboarding/StepInterests/index.tsx:133 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 "" +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." #: src/screens/Deactivated.tsx:137 msgid "We will let you know when your account is ready." -msgstr "" +msgstr "Nous vous informerons lorsque votre compte sera prêt." #: src/view/com/modals/AppealLabel.tsx:48 msgid "We'll look into your appeal promptly." @@ -4617,11 +4339,11 @@ msgstr "Nous examinerons votre appel rapidement." #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." -msgstr "" +msgstr "Nous utiliserons ces informations pour personnaliser votre expérience." #: src/view/com/auth/create/CreateAccount.tsx:134 msgid "We're so excited to have you join us!" -msgstr "Nous sommes ravis de vous accueillir !" +msgstr "Nous sommes ravis de vous accueillir !" #: src/view/screens/ProfileList.tsx:86 msgid "We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @{handleOrDid}." @@ -4629,7 +4351,7 @@ msgstr "Nous sommes désolés, mais nous n’avons pas pu charger cette liste. S #: 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 "" +msgstr "Nous sommes désolés, mais nous n’avons pas pu charger vos mots masqués pour le moment. Veuillez réessayer." #: src/view/screens/Search/Search.tsx:254 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." @@ -4638,7 +4360,7 @@ msgstr "Nous sommes désolés, mais votre recherche a été annulée. Veuillez r #: src/components/Lists.tsx:211 #: 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." +msgstr "Nous sommes désolés ! La page que vous recherchez est introuvable." #: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 msgid "Welcome to <0>Bluesky</0>" @@ -4646,29 +4368,29 @@ msgstr "Bienvenue sur <0>Bluesky</0>" #: src/screens/Onboarding/StepInterests/index.tsx:130 msgid "What are your interests?" -msgstr "" +msgstr "Quels sont vos centres d’intérêt ?" #: src/view/com/modals/report/Modal.tsx:169 msgid "What is the issue with this {collectionName}?" -msgstr "Quel est le problème avec cette {collectionName} ?" +msgstr "Quel est le problème avec cette {collectionName} ?" #: src/view/com/auth/SplashScreen.tsx:59 #: src/view/com/composer/Composer.tsx:286 msgid "What's up?" -msgstr "Quoi de neuf ?" +msgstr "Quoi de neuf ?" #: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:78 msgid "Which languages are used in this post?" -msgstr "Quelles sont les langues utilisées dans ce post ?" +msgstr "Quelles sont les langues utilisées dans ce post ?" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:77 msgid "Which languages would you like to see in your algorithmic feeds?" -msgstr "Quelles langues aimeriez-vous voir apparaître dans vos flux algorithmiques ?" +msgstr "Quelles langues aimeriez-vous voir apparaître dans vos fils d’actu algorithmiques ?" #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" -msgstr "Qui peut répondre ?" +msgstr "Qui peut répondre ?" #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" @@ -4685,11 +4407,7 @@ msgstr "Rédigez votre réponse" #: src/screens/Onboarding/index.tsx:28 msgid "Writers" -msgstr "" - -#: src/view/com/auth/create/Step2.tsx:263 -#~ msgid "XXXXXX" -#~ msgstr "" +msgstr "Écrivain·e·s" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 #: src/view/screens/PreferencesFollowingFeed.tsx:129 @@ -4701,26 +4419,18 @@ msgstr "" msgid "Yes" msgstr "Oui" -#: src/screens/Onboarding/StepModeration/index.tsx:46 -#~ msgid "You are in control" -#~ msgstr "" - #: src/screens/Deactivated.tsx:130 msgid "You are in line." -msgstr "" +msgstr "Vous êtes dans la file d’attente." #: 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 "Vous pouvez aussi découvrir de nouveaux fils d’actu personnalisés à suivre." -#: src/screens/Onboarding/StepAlgoFeeds/index.tsx:123 -#~ msgid "You can also try our \"Discover\" algorithm:" -#~ msgstr "" - #: src/screens/Onboarding/StepFollowingFeed.tsx:142 msgid "You can change these settings later." -msgstr "" +msgstr "Vous pouvez modifier ces paramètres ultérieurement." #: src/view/com/auth/login/Login.tsx:158 #: src/view/com/auth/login/PasswordUpdatedForm.tsx:31 @@ -4729,7 +4439,7 @@ msgstr "Vous pouvez maintenant vous connecter avec votre nouveau mot de passe." #: src/view/com/modals/InviteCodes.tsx:66 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." +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:102 msgid "You don't have any pinned feeds." @@ -4737,7 +4447,7 @@ msgstr "Vous n’avez encore aucun fil épinglé." #: src/view/screens/Feeds.tsx:452 msgid "You don't have any saved feeds!" -msgstr "Vous n’avez encore aucun fil enregistré !" +msgstr "Vous n’avez encore aucun fil enregistré !" #: src/view/screens/SavedFeeds.tsx:135 msgid "You don't have any saved feeds." @@ -4756,7 +4466,7 @@ msgstr "Vous avez bloqué ce compte. Vous ne pouvez pas voir son contenu." #: src/view/com/modals/ChangePassword.tsx:87 #: src/view/com/modals/ChangePassword.tsx:121 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." -msgstr "" +msgstr "Vous avez introduit un code non valide. Il devrait ressembler à XXXXX-XXXXX." #: src/view/com/modals/ModerationDetails.tsx:87 msgid "You have muted this user." @@ -4773,7 +4483,7 @@ msgstr "Vous n’avez aucune liste." #: src/view/screens/ModerationBlockedAccounts.tsx:132 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 "Vous n’avez pas encore bloqué de comptes. Pour bloquer un compte, accédez à son profil et sélectionnez « Bloquer le compte » dans le menu de son compte." +msgstr "Vous n’avez pas encore bloqué de comptes. Pour bloquer un compte, accédez à son profil et sélectionnez « Bloquer le compte » dans le menu de son compte." #: src/view/screens/AppPasswords.tsx:87 msgid "You have not created any app passwords yet. You can create one by pressing the button below." @@ -4781,11 +4491,11 @@ msgstr "Vous n’avez encore créé aucun mot de passe pour l’appli. Vous pouv #: src/view/screens/ModerationMutedAccounts.tsx:131 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 "Vous n’avez encore masqué aucun compte. Pour désactiver un compte, allez sur son profil et sélectionnez « Masquer le compte » dans le menu de son compte." +msgstr "Vous n’avez encore masqué aucun compte. Pour désactiver un compte, allez sur son profil et sélectionnez « Masquer le compte » dans le menu de son compte." #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" -msgstr "" +msgstr "Vous n’avez pas encore masqué de mot ou de mot-clé" #: src/view/com/modals/ContentFilteringSettings.tsx:175 msgid "You must be 18 or older to enable adult content." @@ -4793,7 +4503,7 @@ msgstr "Vous devez avoir 18 ans ou plus pour activer le contenu pour adultes." #: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 msgid "You must be 18 years or older to enable adult content" -msgstr "" +msgstr "Vous devez avoir 18 ans ou plus pour activer le contenu pour adultes." #: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will no longer receive notifications for this thread" @@ -4805,25 +4515,25 @@ msgstr "Vous recevrez désormais des notifications pour ce fil de discussion" #: src/view/com/auth/login/SetNewPasswordForm.tsx:107 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." +msgstr "Vous recevrez un e-mail contenant un « code de réinitialisation ». Saisissez ce code ici, puis votre nouveau mot de passe." #: src/screens/Onboarding/StepModeration/index.tsx:72 msgid "You're in control" -msgstr "" +msgstr "Vous avez le contrôle" #: src/screens/Deactivated.tsx:87 #: src/screens/Deactivated.tsx:88 #: src/screens/Deactivated.tsx:103 msgid "You're in line" -msgstr "" +msgstr "Vous êtes dans la file d’attente" #: src/screens/Onboarding/StepFinished.tsx:90 msgid "You're ready to go!" -msgstr "" +msgstr "Vous êtes prêt à partir !" #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." -msgstr "Vous avez atteint la fin de votre fil d’actu ! Trouvez d’autres comptes à suivre." +msgstr "Vous avez atteint la fin de votre fil d’actu ! Trouvez d’autres comptes à suivre." #: src/view/com/auth/create/Step1.tsx:67 msgid "Your account" @@ -4835,7 +4545,7 @@ msgstr "Votre compte a été supprimé" #: src/view/screens/Settings/ExportCarDialog.tsx:47 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 "" +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." #: src/view/com/auth/create/Step1.tsx:215 msgid "Your birth date" @@ -4843,11 +4553,11 @@ msgstr "Votre date de naissance" #: src/view/com/modals/InAppBrowserConsent.tsx:47 msgid "Your choice will be saved, but can be changed later in settings." -msgstr "" +msgstr "Votre choix sera enregistré, mais vous pourrez le modifier ultérieurement dans les paramètres." #: src/screens/Onboarding/StepFollowingFeed.tsx:61 msgid "Your default feed is \"Following\"" -msgstr "" +msgstr "Votre fil d’actu par défaut est « Following »" #: src/view/com/auth/create/state.ts:110 #: src/view/com/auth/login/ForgotPasswordForm.tsx:70 @@ -4855,10 +4565,6 @@ msgstr "" msgid "Your email appears to be invalid." msgstr "Votre e-mail semble être invalide." -#: src/view/com/modals/Waitlist.tsx:109 -#~ msgid "Your email has been saved! We'll be in touch soon." -#~ msgstr "Votre e-mail a été enregistré ! Nous vous contacterons bientôt." - #: src/view/com/modals/ChangeEmail.tsx:125 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." @@ -4869,7 +4575,7 @@ msgstr "Votre e-mail n’a pas encore été vérifié. Il s’agit d’une mesur #: src/view/com/posts/FollowingEmptyState.tsx:47 msgid "Your following feed is empty! Follow more users to see what's happening." -msgstr "Votre fil d’actu des comptes suivis est vide ! Suivez plus de comptes pour voir ce qui se passe." +msgstr "Votre fil d’actu des comptes suivis est vide ! Suivez plus de comptes pour voir ce qui se passe." #: src/view/com/auth/create/Step2.tsx:83 msgid "Your full handle will be" @@ -4879,19 +4585,13 @@ msgstr "Votre nom complet sera" msgid "Your full handle will be <0>@{0}</0>" msgstr "Votre pseudo complet sera <0>@{0}</0>" -#: src/view/screens/Settings.tsx:430 -#: src/view/shell/desktop/RightNav.tsx:137 -#: src/view/shell/Drawer.tsx:660 -#~ msgid "Your invite codes are hidden when logged in using an App Password" -#~ msgstr "Vos codes d’invitation sont cachés lorsque vous êtes connecté à l’aide d’un mot de passe d’application." - #: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" -msgstr "" +msgstr "Vos mots masqués" #: src/view/com/modals/ChangePassword.tsx:155 msgid "Your password has been changed successfully!" -msgstr "" +msgstr "Votre mot de passe a été modifié avec succès !" #: src/view/com/composer/Composer.tsx:274 msgid "Your post has been published" diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index a4c05239f..28059c3ed 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -9,45 +9,27 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "PO-Revision-Date: \n" -"Last-Translator: quiple\n" -"Language-Team: quiple, lens0021, HaruChanHeart, hazzzi\n" +"Last-Translator: heartade\n" +"Language-Team: quiple, lens0021, HaruChanHeart, hazzzi, heartade\n" "Plural-Forms: \n" #: src/view/com/modals/VerifyEmail.tsx:142 msgid "(no email)" msgstr "(ì´ë©”ì¼ ì—†ìŒ)" -#: src/view/shell/desktop/RightNav.tsx:168 -#~ msgid "{0, plural, one {# invite code available} other {# invite codes available}}" -#~ msgstr "{0, plural, one {초대 코드 #ê°œ 사용 가능} other {초대 코드 #ê°œ 사용 가능}}" - -#: src/view/com/profile/ProfileHeader.tsx:593 +#: src/screens/Profile/Header/Metrics.tsx:45 msgid "{following} following" msgstr "{following} 팔로우 중" -#: src/view/shell/desktop/RightNav.tsx:151 -#~ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" -#~ msgstr "{invitesAvailable, plural, one {초대 코드: #ê°œ 사용 가능} other {초대 코드: #ê°œ 사용 가능}}" - -#: src/view/screens/Settings.tsx:435 -#: src/view/shell/Drawer.tsx:664 -#~ msgid "{invitesAvailable} invite code available" -#~ msgstr "초대 코드 {invitesAvailable}ê°œ 사용 가능" - -#: src/view/screens/Settings.tsx:437 -#: src/view/shell/Drawer.tsx:666 -#~ msgid "{invitesAvailable} invite codes available" -#~ msgstr "초대 코드 {invitesAvailable}ê°œ 사용 가능" - #: src/view/shell/Drawer.tsx:440 msgid "{numUnreadNotifications} unread" msgstr "{numUnreadNotifications}ê°œ ì½ì§€ 않ìŒ" #: src/view/com/threadgate/WhoCanReply.tsx:158 msgid "<0/> members" -msgstr "<0/> 멤버" +msgstr "<0/>ì˜ ë©¤ë²„" -#: src/view/com/profile/ProfileHeader.tsx:595 +#: src/screens/Profile/Header/Metrics.tsx:46 msgid "<0>{following} </0><1>following</1>" msgstr "<0>{following} </0><1>팔로우 중</1>" @@ -63,18 +45,10 @@ msgstr "<1>추천 사용ìž</1><0>팔로우하기</0>" msgid "<0>Welcome to</0><1>Bluesky</1>" msgstr "<1>Bluesky</1><0>ì— ì˜¤ì‹ ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤</0>" -#: src/view/com/profile/ProfileHeader.tsx:558 +#: src/screens/Profile/Header/Handle.tsx:42 msgid "âš Invalid Handle" msgstr "âš ìž˜ëª»ëœ í•¸ë“¤" -#: src/view/com/util/moderation/LabelInfo.tsx:45 -msgid "A content warning has been applied to this {0}." -msgstr "ì´ {0}ì— ì½˜í…ì¸ ê²½ê³ ê°€ ì ìš©ë˜ì—ˆìŠµë‹ˆë‹¤." - -#: src/lib/hooks/useOTAUpdate.ts:16 -msgid "A new version of the app is available. Please update to continue using the app." -msgstr "새 ë²„ì „ì˜ ì•±ì„ ì‚¬ìš©í• ìˆ˜ 있습니다. ì•±ì„ ê³„ì† ì‚¬ìš©í•˜ë ¤ë©´ ì—…ë°ì´íŠ¸í•˜ì„¸ìš”." - #: src/view/com/util/ViewHeader.tsx:89 #: src/view/screens/Search/Search.tsx:647 msgid "Access navigation links and settings" @@ -85,29 +59,38 @@ msgid "Access profile and other navigation links" msgstr "프로필 ë° ê¸°íƒ€ íƒìƒ‰ ë§í¬ë¡œ ì´ë™í•©ë‹ˆë‹¤" #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings/index.tsx:451 +#: src/view/screens/Settings/index.tsx:469 msgid "Accessibility" msgstr "ì ‘ê·¼ì„±" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "account" +msgstr "ê³„ì •" + #: src/view/com/auth/login/LoginForm.tsx:166 -#: src/view/screens/Settings/index.tsx:308 -#: src/view/screens/Settings/index.tsx:721 +#: src/view/screens/Settings/index.tsx:326 +#: src/view/screens/Settings/index.tsx:739 msgid "Account" msgstr "ê³„ì •" -#: src/view/com/profile/ProfileHeader.tsx:246 +#: src/view/com/profile/ProfileMenu.tsx:139 msgid "Account blocked" msgstr "ê³„ì • 차단ë¨" -#: src/view/com/profile/ProfileHeader.tsx:213 +#: src/view/com/profile/ProfileMenu.tsx:153 +msgid "Account followed" +msgstr "ê³„ì • 팔로우함" + +#: src/view/com/profile/ProfileMenu.tsx:113 msgid "Account muted" msgstr "ê³„ì • 뮤트ë¨" -#: src/view/com/modals/ModerationDetails.tsx:86 +#: src/components/moderation/ModerationDetailsDialog.tsx:94 +#: src/lib/moderation/useModerationCauseDescription.ts:91 msgid "Account Muted" msgstr "ê³„ì • 뮤트ë¨" -#: src/view/com/modals/ModerationDetails.tsx:72 +#: src/components/moderation/ModerationDetailsDialog.tsx:83 msgid "Account Muted by List" msgstr "리스트로 ê³„ì • 뮤트ë¨" @@ -119,11 +102,16 @@ msgstr "ê³„ì • 옵션" msgid "Account removed from quick access" msgstr "ë¹ ë¥¸ 액세스ì—서 ê³„ì • ì œê±°" -#: src/view/com/profile/ProfileHeader.tsx:268 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:130 +#: src/view/com/profile/ProfileMenu.tsx:128 msgid "Account unblocked" msgstr "ê³„ì • 차단 í•´ì œë¨" -#: src/view/com/profile/ProfileHeader.tsx:226 +#: src/view/com/profile/ProfileMenu.tsx:166 +msgid "Account unfollowed" +msgstr "ê³„ì • 언팔로우함" + +#: src/view/com/profile/ProfileMenu.tsx:102 msgid "Account unmuted" msgstr "ê³„ì • 언뮤트ë¨" @@ -131,7 +119,7 @@ msgstr "ê³„ì • 언뮤트ë¨" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:150 #: src/view/com/modals/ListAddRemoveUsers.tsx:264 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/screens/ProfileList.tsx:813 +#: src/view/screens/ProfileList.tsx:827 msgid "Add" msgstr "추가" @@ -139,12 +127,12 @@ msgstr "추가" msgid "Add a content warning" msgstr "콘í…ì¸ ê²½ê³ ì¶”ê°€" -#: src/view/screens/ProfileList.tsx:803 +#: src/view/screens/ProfileList.tsx:817 msgid "Add a user to this list" msgstr "ì´ ë¦¬ìŠ¤íŠ¸ì— ì‚¬ìš©ìž ì¶”ê°€" -#: src/view/screens/Settings/index.tsx:383 -#: src/view/screens/Settings/index.tsx:392 +#: src/view/screens/Settings/index.tsx:401 +#: src/view/screens/Settings/index.tsx:410 msgid "Add account" msgstr "ê³„ì • 추가" @@ -154,47 +142,38 @@ msgstr "ê³„ì • 추가" msgid "Add alt text" msgstr "대체 í…스트 추가하기" -#: src/view/screens/AppPasswords.tsx:102 -#: src/view/screens/AppPasswords.tsx:143 -#: src/view/screens/AppPasswords.tsx:156 +#: src/view/screens/AppPasswords.tsx:104 +#: src/view/screens/AppPasswords.tsx:145 +#: src/view/screens/AppPasswords.tsx:158 msgid "Add App Password" msgstr "앱 비밀번호 추가" -#: src/view/com/modals/report/InputIssueDetails.tsx:41 -#: src/view/com/modals/report/Modal.tsx:191 -msgid "Add details" -msgstr "세부 ì •ë³´ 추가" - -#: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "ì‹ ê³ ì„¸ë¶€ ì •ë³´ 추가" - -#: src/view/com/composer/Composer.tsx:453 +#: src/view/com/composer/Composer.tsx:462 msgid "Add link card" msgstr "ë§í¬ 카드 추가" -#: src/view/com/composer/Composer.tsx:458 +#: src/view/com/composer/Composer.tsx:467 msgid "Add link card:" msgstr "ë§í¬ 카드 추가:" #: src/components/dialogs/MutedWords.tsx:158 msgid "Add mute word for configured settings" -msgstr "" +msgstr "구성 ì„¤ì •ì— ë®¤íŠ¸ 단어 추가" #: src/components/dialogs/MutedWords.tsx:87 msgid "Add muted words and tags" -msgstr "" +msgstr "ë®¤íŠ¸í• ë‹¨ì–´ ë° íƒœê·¸ 추가" #: src/view/com/modals/ChangeHandle.tsx:417 msgid "Add the following DNS record to your domain:" msgstr "ë„ë©”ì¸ì— ë‹¤ìŒ DNS ë ˆì½”ë“œë¥¼ 추가하세요:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileMenu.tsx:263 +#: src/view/com/profile/ProfileMenu.tsx:266 msgid "Add to Lists" msgstr "ë¦¬ìŠ¤íŠ¸ì— ì¶”ê°€" -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/feeds/FeedSourceCard.tsx:234 msgid "Add to my feeds" msgstr "ë‚´ í”¼ë“œì— ì¶”ê°€" @@ -207,34 +186,35 @@ msgstr "추가ë¨" msgid "Added to list" msgstr "ë¦¬ìŠ¤íŠ¸ì— ì¶”ê°€ë¨" -#: src/view/com/feeds/FeedSourceCard.tsx:127 +#: src/view/com/feeds/FeedSourceCard.tsx:108 msgid "Added to my feeds" msgstr "ë‚´ í”¼ë“œì— ì¶”ê°€ë¨" #: src/view/screens/PreferencesFollowingFeed.tsx:173 msgid "Adjust the number of likes a reply must have to be shown in your feed." -msgstr "ë‹µê¸€ì´ í”¼ë“œì— í‘œì‹œë˜ê¸° 위해 필요한 좋아요 표시 수를 ì¡°ì •í•©ë‹ˆë‹¤." +msgstr "ë‹µê¸€ì´ í”¼ë“œì— í‘œì‹œë˜ê¸° 위해 필요한 좋아요 수를 ì¡°ì •í•©ë‹ˆë‹¤." #: src/view/com/modals/SelfLabel.tsx:75 msgid "Adult Content" msgstr "ì„±ì¸ ì½˜í…ì¸ " -#: src/view/com/modals/ContentFilteringSettings.tsx:141 -msgid "Adult content can only be enabled via the Web at <0/>." -msgstr "ì„±ì¸ ì½˜í…ì¸ ëŠ” <0/>ì—서 ì›¹ì„ í†µí•´ì„œë§Œ í™œì„±í™”í• ìˆ˜ 있습니다." +#: src/components/moderation/ModerationLabelPref.tsx:102 +msgid "Adult content is disabled." +msgstr "ì„±ì¸ ì½˜í…ì¸ ê°€ 비활성화ë˜ì–´ 있습니다." -#: src/view/screens/Settings/index.tsx:664 +#: src/screens/Moderation/index.tsx:383 +#: src/view/screens/Settings/index.tsx:682 msgid "Advanced" msgstr "ê³ ê¸‰" #: src/view/screens/Feeds.tsx:666 msgid "All the feeds you've saved, right in one place." -msgstr "" +msgstr "ì €ìž¥í•œ ëª¨ë“ í”¼ë“œë¥¼ 한 ê³³ì—서 확ì¸í•˜ì„¸ìš”." #: src/view/com/auth/login/ForgotPasswordForm.tsx:221 #: src/view/com/modals/ChangePassword.tsx:168 msgid "Already have a code?" -msgstr "" +msgstr "ì´ë¯¸ 코드가 있나요?" #: src/view/com/auth/login/ChooseAccountForm.tsx:98 msgid "Already signed in as @{0}" @@ -260,12 +240,16 @@ msgstr "{0}(으)로 ì´ë©”ì¼ì„ 보냈습니다. ì´ ì´ë©”ì¼ì—는 ì•„ëž˜ì— msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "ì´ì „ ì£¼ì†Œì¸ {0}(으)로 ì´ë©”ì¼ì„ 보냈습니다. ì´ ì´ë©”ì¼ì—는 ì•„ëž˜ì— ìž…ë ¥í•˜ëŠ” í™•ì¸ ì½”ë“œê°€ í¬í•¨ë˜ì–´ 있습니다." -#: src/view/com/profile/FollowButton.tsx:30 -#: src/view/com/profile/FollowButton.tsx:40 +#: src/lib/moderation/useReportOptions.ts:26 +msgid "An issue not included in these options" +msgstr "ì–´ë–¤ 옵션ì—ë„ í¬í•¨ë˜ì§€ 않는 ë¬¸ì œ" + +#: src/view/com/profile/FollowButton.tsx:35 +#: src/view/com/profile/FollowButton.tsx:45 msgid "An issue occurred, please try again." msgstr "ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. 다시 시ë„í•´ 주세요." -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/notifications/FeedItem.tsx:236 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "ë°" @@ -274,11 +258,15 @@ msgstr "ë°" msgid "Animals" msgstr "ë™ë¬¼" +#: src/lib/moderation/useReportOptions.ts:31 +msgid "Anti-Social Behavior" +msgstr "반사회ì 행위" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "앱 언어" -#: src/view/screens/AppPasswords.tsx:228 +#: src/view/screens/AppPasswords.tsx:223 msgid "App password deleted" msgstr "앱 비밀번호 ì‚ì œë¨" @@ -290,58 +278,49 @@ msgstr "앱 비밀번호 ì´ë¦„ì—는 문ìž, 숫ìž, 공백, 대시, 밑줄만 msgid "App Password names must be at least 4 characters long." msgstr "앱 비밀번호 ì´ë¦„ì€ 4ìž ì´ìƒì´ì–´ì•¼ 합니다." -#: src/view/screens/Settings/index.tsx:675 +#: src/view/screens/Settings/index.tsx:693 msgid "App password settings" msgstr "앱 비밀번호 ì„¤ì •" -#: src/view/screens/Settings.tsx:650 -#~ msgid "App passwords" -#~ msgstr "앱 비밀번호" - -#: src/Navigation.tsx:239 -#: src/view/screens/AppPasswords.tsx:187 -#: src/view/screens/Settings/index.tsx:684 +#: src/Navigation.tsx:251 +#: src/view/screens/AppPasswords.tsx:189 +#: src/view/screens/Settings/index.tsx:702 msgid "App Passwords" msgstr "앱 비밀번호" -#: src/view/com/util/forms/PostDropdownBtn.tsx:337 -#: src/view/com/util/forms/PostDropdownBtn.tsx:346 -msgid "Appeal content warning" -msgstr "콘í…ì¸ ê²½ê³ ì´ì˜ì‹ ì²" - -#: src/view/com/modals/AppealLabel.tsx:65 -msgid "Appeal Content Warning" -msgstr "콘í…ì¸ ê²½ê³ ì´ì˜ì‹ ì²" +#: src/components/moderation/LabelsOnMeDialog.tsx:134 +#: src/components/moderation/LabelsOnMeDialog.tsx:137 +msgid "Appeal" +msgstr "ì´ì˜ì‹ ì²" -#: src/view/com/util/moderation/LabelInfo.tsx:52 -msgid "Appeal this decision" -msgstr "ì´ ê²°ì •ì— ì´ì˜ì‹ ì²" +#: src/components/moderation/LabelsOnMeDialog.tsx:202 +msgid "Appeal \"{0}\" label" +msgstr "\"{0}\" ë¼ë²¨ ì´ì˜ì‹ ì²" -#: src/view/com/util/moderation/LabelInfo.tsx:56 -msgid "Appeal this decision." -msgstr "ì´ ê²°ì •ì— ì´ì˜ì‹ ì²í•©ë‹ˆë‹¤." +#: src/components/moderation/LabelsOnMeDialog.tsx:193 +msgid "Appeal submitted." +msgstr "ì´ì˜ì‹ ì² ì œì¶œí•¨" -#: src/view/screens/Settings/index.tsx:466 +#: src/view/screens/Settings/index.tsx:484 msgid "Appearance" msgstr "모양" -#: src/view/screens/AppPasswords.tsx:224 +#: src/view/screens/AppPasswords.tsx:265 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "앱 비밀번호 \"{name}\"ì„(를) ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" -#: src/view/com/composer/Composer.tsx:150 +#: src/view/com/feeds/FeedSourceCard.tsx:280 +msgid "Are you sure you want to remove {0} from your feeds?" +msgstr "피드ì—서 {0}ì„(를) ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" + +#: src/view/com/composer/Composer.tsx:504 msgid "Are you sure you'd like to discard this draft?" msgstr "ì´ ì´ˆì•ˆì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: src/components/dialogs/MutedWords.tsx:282 -#: src/view/screens/ProfileList.tsx:365 msgid "Are you sure?" msgstr "ì •ë§ì¸ê°€ìš”?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:322 -msgid "Are you sure? This cannot be undone." -msgstr "ì •ë§ì¸ê°€ìš”? ë˜ëŒë¦´ 수 없습니다." - #: src/view/com/composer/select-language/SuggestedLanguage.tsx:60 msgid "Are you writing in <0>{0}</0>?" msgstr "{0}(으)로 ì“°ê³ ìžˆë‚˜ìš”?" @@ -354,21 +333,22 @@ msgstr "ì˜ˆìˆ " msgid "Artistic or non-erotic nudity." msgstr "ì„ ì •ì ì´ì§€ 않거나 ì˜ˆìˆ ì ì¸ ë…¸ì¶œ." +#: src/components/moderation/LabelsOnMeDialog.tsx:247 +#: src/components/moderation/LabelsOnMeDialog.tsx:248 +#: src/screens/Profile/Header/Shell.tsx:97 #: src/view/com/auth/create/CreateAccount.tsx:158 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/LoginForm.tsx:259 #: src/view/com/auth/login/SetNewPasswordForm.tsx:179 -#: src/view/com/modals/report/InputIssueDetails.tsx:46 -#: src/view/com/post-thread/PostThread.tsx:472 -#: src/view/com/post-thread/PostThread.tsx:522 -#: src/view/com/post-thread/PostThread.tsx:530 -#: src/view/com/profile/ProfileHeader.tsx:649 +#: src/view/com/post-thread/PostThread.tsx:473 +#: src/view/com/post-thread/PostThread.tsx:523 +#: src/view/com/post-thread/PostThread.tsx:531 #: src/view/com/util/ViewHeader.tsx:87 msgid "Back" msgstr "뒤로" -#: src/view/com/post-thread/PostThread.tsx:480 +#: src/view/com/post-thread/PostThread.tsx:481 msgctxt "action" msgid "Back" msgstr "뒤로" @@ -377,55 +357,61 @@ msgstr "뒤로" msgid "Based on your interest in {interestsText}" msgstr "{interestsText}ì— ëŒ€í•œ 관심사 기반" -#: src/view/screens/Settings/index.tsx:523 +#: src/view/screens/Settings/index.tsx:541 msgid "Basics" msgstr "기본" +#: src/components/dialogs/BirthDateSettings.tsx:101 #: src/view/com/auth/create/Step1.tsx:227 -#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "ìƒë…„ì›”ì¼" -#: src/view/screens/Settings/index.tsx:340 +#: src/view/screens/Settings/index.tsx:358 msgid "Birthday:" msgstr "ìƒë…„ì›”ì¼:" -#: src/view/com/profile/ProfileHeader.tsx:239 -#: src/view/com/profile/ProfileHeader.tsx:346 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +msgid "Block" +msgstr "차단" + +#: src/view/com/profile/ProfileMenu.tsx:300 +#: src/view/com/profile/ProfileMenu.tsx:307 msgid "Block Account" msgstr "ê³„ì • 차단" -#: src/view/screens/ProfileList.tsx:556 +#: src/view/com/profile/ProfileMenu.tsx:344 +msgid "Block Account?" +msgstr "ê³„ì •ì„ ì°¨ë‹¨í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" + +#: src/view/screens/ProfileList.tsx:530 msgid "Block accounts" msgstr "ê³„ì • 차단" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 +#: src/view/screens/ProfileList.tsx:634 msgid "Block list" msgstr "리스트 차단" -#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:629 msgid "Block these accounts?" msgstr "ì´ ê³„ì •ë“¤ì„ ì°¨ë‹¨í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" -#: src/view/screens/ProfileList.tsx:320 -msgid "Block this List" -msgstr "ì´ ë¦¬ìŠ¤íŠ¸ 차단" - #: src/view/com/lists/ListCard.tsx:110 -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:61 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:55 msgid "Blocked" msgstr "차단ë¨" -#: src/view/screens/Moderation.tsx:142 +#: src/screens/Moderation/index.tsx:270 msgid "Blocked accounts" msgstr "차단한 ê³„ì •" -#: src/Navigation.tsx:132 +#: src/Navigation.tsx:134 #: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "차단한 ê³„ì •" -#: src/view/com/profile/ProfileHeader.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:356 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "차단한 ê³„ì •ì€ ë‚´ ìŠ¤ë ˆë“œì— ë‹µê¸€ì„ ë‹¬ê±°ë‚˜ 나를 멘션하거나 기타 다른 ë°©ì‹ìœ¼ë¡œ 나와 ìƒí˜¸ìž‘ìš©í• ìˆ˜ 없습니다." @@ -433,14 +419,22 @@ 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:324 +#: src/view/com/post-thread/PostThread.tsx:325 msgid "Blocked post." msgstr "ì°¨ë‹¨ëœ ê²Œì‹œë¬¼." -#: src/view/screens/ProfileList.tsx:318 +#: src/screens/Profile/Sections/Labels.tsx:171 +msgid "Blocking does not prevent this labeler from placing labels on your account." +msgstr "차단하ë”ë¼ë„ ì´ ë¼ë²¨ëŸ¬ê°€ ë‚´ ê³„ì •ì— ë¼ë²¨ì„ ë¶™ì´ëŠ” ê²ƒì„ ë§‰ì§€ëŠ” 못합니다." + +#: src/view/screens/ProfileList.tsx:631 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "차단 목ë¡ì€ 공개ë©ë‹ˆë‹¤. 차단한 ê³„ì •ì€ ë‚´ ìŠ¤ë ˆë“œì— ë‹µê¸€ì„ ë‹¬ê±°ë‚˜ 나를 멘션하거나 기타 다른 ë°©ì‹ìœ¼ë¡œ 나와 ìƒí˜¸ìž‘ìš©í• ìˆ˜ 없습니다." +#: 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 "차단하ë”ë¼ë„ ë‚´ ê³„ì •ì— ë¼ë²¨ì´ 붙는 ê²ƒì€ ë§‰ì§€ 못하지만, ì´ ê³„ì •ì´ ë‚´ ìŠ¤ë ˆë“œì— ë‹µê¸€ì„ ë‹¬ê±°ë‚˜ 나와 ìƒí˜¸ìž‘용하는 ê²ƒì€ ì¤‘ì§€ë©ë‹ˆë‹¤." + #: src/view/com/auth/HomeLoggedOutCTA.tsx:93 #: src/view/com/auth/SplashScreen.web.tsx:133 msgid "Blog" @@ -454,7 +448,7 @@ msgstr "Bluesky" #: src/view/com/auth/server-input/index.tsx:150 msgid "Bluesky is an open network where you can choose your hosting provider. Custom hosting is now available in beta for developers." -msgstr "" +msgstr "Bluesky는 호스팅 ì œê³µìžë¥¼ ì„ íƒí• 수 있는 개방형 네트워í¬ìž…니다. 개발ìžë¥¼ 위한 ì‚¬ìš©ìž ì§€ì • í˜¸ìŠ¤íŒ…ì´ ë² íƒ€ ë²„ì „ìœ¼ë¡œ ì œê³µë©ë‹ˆë‹¤." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:80 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 @@ -471,23 +465,23 @@ msgstr "Bluesky는 ì—´ë ¤ 있습니다." msgid "Bluesky is public." msgstr "Bluesky는 공개ì 입니다." -#: src/view/com/modals/Waitlist.tsx:70 -#~ msgid "Bluesky uses invites to build a healthier community. If you don't know anybody with an invite, you can sign up for the waitlist and we'll send one soon." -#~ msgstr "Bluesky는 ë” ê±´ê°•í•œ 커뮤니티를 구축하기 위해 초대 ë°©ì‹ì„ 사용합니다. 초대해 준 ì‚¬ëžŒì´ ì—†ëŠ” 경우 ëŒ€ê¸°ìž ëª…ë‹¨ì— ë“±ë¡í•˜ë©´ ê³§ 초대를 ë³´ë‚´ê² ìŠµë‹ˆë‹¤." - -#: src/view/screens/Moderation.tsx:245 +#: src/screens/Moderation/index.tsx:539 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 "로그아웃한 사용ìžì—게 ë‚´ 프로필과 ê²Œì‹œë¬¼ì„ í‘œì‹œí•˜ì§€ 않습니다. 다른 앱ì—서는 ì´ ì„¤ì •ì„ ë”°ë¥´ì§€ ì•Šì„ ìˆ˜ 있습니다. ë‚´ ê³„ì •ì„ ë¹„ê³µê°œë¡œ ì „í™˜í•˜ì§€ëŠ” 않습니다." -#: src/view/com/modals/ServerInput.tsx:78 -#~ msgid "Bluesky.Social" -#~ msgstr "Bluesky.Social" +#: src/lib/moderation/useLabelBehaviorDescription.ts:53 +msgid "Blur images" +msgstr "ì´ë¯¸ì§€ í리게" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:51 +msgid "Blur images and filter from feeds" +msgstr "ì´ë¯¸ì§€ í리게 ë° í”¼ë“œì—서 í•„í„°ë§" #: src/screens/Onboarding/index.tsx:33 msgid "Books" msgstr "ì±…" -#: src/view/screens/Settings/index.tsx:859 +#: src/view/screens/Settings/index.tsx:887 msgid "Build version {0} {1}" msgstr "빌드 ë²„ì „ {0} {1}" @@ -496,18 +490,18 @@ msgstr "빌드 ë²„ì „ {0} {1}" msgid "Business" msgstr "비즈니스" -#: src/view/com/modals/ServerInput.tsx:115 -#~ msgid "Button disabled. Input custom domain to proceed." -#~ msgstr "ë²„íŠ¼ì´ ë¹„í™œì„±í™”ë˜ì—ˆìŠµë‹ˆë‹¤. 계ì†í•˜ë ¤ë©´ ì‚¬ìš©ìž ì§€ì • ë„ë©”ì¸ì„ ìž…ë ¥í•˜ì„¸ìš”" - #: src/view/com/profile/ProfileSubpageHeader.tsx:157 msgid "by —" -msgstr "—" +msgstr "— ë‹˜ì´ ë§Œë“¦" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:100 msgid "by {0}" msgstr "{0} ë‹˜ì´ ë§Œë“¦" +#: src/components/LabelingServiceCard/index.tsx:57 +msgid "By {0}" +msgstr "{0} ë‹˜ì´ ë§Œë“¦" + #: src/view/com/profile/ProfileSubpageHeader.tsx:161 msgid "by <0/>" msgstr "<0/> ë‹˜ì´ ë§Œë“¦" @@ -516,9 +510,7 @@ msgstr "<0/> ë‹˜ì´ ë§Œë“¦" msgid "by you" msgstr "ë‚´ê°€ 만듦" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:60 -#: src/view/com/util/UserAvatar.tsx:224 -#: src/view/com/util/UserBanner.tsx:40 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:77 msgid "Camera" msgstr "ì¹´ë©”ë¼" @@ -526,9 +518,10 @@ msgstr "ì¹´ë©”ë¼" 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ìžë¥¼ 넘지 않아야 합니다." -#: src/components/Prompt.tsx:101 -#: src/view/com/composer/Composer.tsx:307 -#: src/view/com/composer/Composer.tsx:312 +#: src/components/Prompt.tsx:116 +#: src/components/Prompt.tsx:118 +#: src/view/com/composer/Composer.tsx:316 +#: src/view/com/composer/Composer.tsx:321 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 #: src/view/com/modals/ChangePassword.tsx:265 @@ -546,8 +539,6 @@ msgstr "글ìž, 숫ìž, 공백, 대시, 밑줄만 í¬í•¨í• 수 있습니다. ê¸ msgid "Cancel" msgstr "취소" -#: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 #: src/view/com/modals/CreateOrEditList.tsx:360 #: src/view/com/modals/DeleteAccount.tsx:156 #: src/view/com/modals/DeleteAccount.tsx:234 @@ -581,21 +572,17 @@ msgstr "게시물 ì¸ìš© 취소" msgid "Cancel search" msgstr "검색 취소" -#: src/view/com/modals/Waitlist.tsx:136 -#~ msgid "Cancel waitlist signup" -#~ msgstr "ëŒ€ê¸°ìž ëª…ë‹¨ ë“±ë¡ ì·¨ì†Œ" - -#: src/view/screens/Settings/index.tsx:334 +#: src/view/screens/Settings/index.tsx:352 msgctxt "action" msgid "Change" msgstr "변경" -#: src/view/screens/Settings/index.tsx:696 +#: src/view/screens/Settings/index.tsx:714 msgid "Change handle" msgstr "핸들 변경" #: src/view/com/modals/ChangeHandle.tsx:161 -#: src/view/screens/Settings/index.tsx:705 +#: src/view/screens/Settings/index.tsx:723 msgid "Change Handle" msgstr "핸들 변경" @@ -603,21 +590,21 @@ msgstr "핸들 변경" msgid "Change my email" msgstr "ë‚´ ì´ë©”ì¼ ë³€ê²½í•˜ê¸°" -#: src/view/screens/Settings/index.tsx:732 +#: src/view/screens/Settings/index.tsx:750 msgid "Change password" -msgstr "" +msgstr "비밀번호 변경" -#: src/view/screens/Settings/index.tsx:741 +#: src/view/screens/Settings/index.tsx:759 msgid "Change Password" -msgstr "" +msgstr "비밀번호 변경" #: src/view/com/composer/select-language/SuggestedLanguage.tsx:73 msgid "Change post language to {0}" msgstr "게시물 언어를 {0}(으)로 변경" -#: src/view/screens/Settings/index.tsx:733 +#: src/view/screens/Settings/index.tsx:751 msgid "Change your Bluesky password" -msgstr "" +msgstr "ë‚´ Bluesky 비밀번호를 변경합니다" #: src/view/com/modals/ChangeEmail.tsx:109 msgid "Change Your Email" @@ -644,7 +631,7 @@ msgstr "ë°›ì€ íŽ¸ì§€í•¨ì—서 ì•„ëž˜ì— ìž…ë ¥í•˜ëŠ” í™•ì¸ ì½”ë“œê°€ í¬í•¨ëœ msgid "Choose \"Everybody\" or \"Nobody\"" msgstr "\"모ë‘\" ë˜ëŠ” \"ì—†ìŒ\"ì„ ì„ íƒí•˜ì„¸ìš”." -#: src/view/screens/Settings/index.tsx:697 +#: src/view/screens/Settings/index.tsx:715 msgid "Choose a new Bluesky username or create" msgstr "새 Bluesky ì‚¬ìš©ìž ì´ë¦„ì„ ì„ íƒí•˜ê±°ë‚˜ ë§Œë“니다" @@ -659,7 +646,7 @@ msgstr "맞춤 피드를 구ë™í• ì•Œê³ ë¦¬ì¦˜ì„ ì„ íƒí•˜ì„¸ìš”." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:83 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 msgid "Choose the algorithms that power your experience with custom feeds." -msgstr "맞춤 피드를 통해 ì‚¬ìš©ìž ê²½í—˜ì„ ê°•í™”í•˜ëŠ” ì•Œê³ ë¦¬ì¦˜ì„ ì„ íƒí•©ë‹ˆë‹¤." +msgstr "맞춤 피드를 통해 ì‚¬ìš©ìž ê²½í—˜ì„ ê°•í™”í•˜ëŠ” ì•Œê³ ë¦¬ì¦˜ì„ ì„ íƒí•˜ì„¸ìš”." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:103 msgid "Choose your main feeds" @@ -669,21 +656,21 @@ msgstr "기본 피드 ì„ íƒ" msgid "Choose your password" msgstr "비밀번호를 ìž…ë ¥í•˜ì„¸ìš”" -#: src/view/screens/Settings/index.tsx:834 -#: src/view/screens/Settings/index.tsx:835 +#: src/view/screens/Settings/index.tsx:862 +#: src/view/screens/Settings/index.tsx:863 msgid "Clear all legacy storage data" msgstr "ëª¨ë“ ë ˆê±°ì‹œ ìŠ¤í† ë¦¬ì§€ ë°ì´í„° 지우기" -#: src/view/screens/Settings/index.tsx:837 +#: src/view/screens/Settings/index.tsx:865 msgid "Clear all legacy storage data (restart after this)" msgstr "ëª¨ë“ ë ˆê±°ì‹œ ìŠ¤í† ë¦¬ì§€ ë°ì´í„° 지우기 (ì´í›„ 다시 시작)" -#: src/view/screens/Settings/index.tsx:846 -#: src/view/screens/Settings/index.tsx:847 +#: src/view/screens/Settings/index.tsx:874 +#: src/view/screens/Settings/index.tsx:875 msgid "Clear all storage data" msgstr "ëª¨ë“ ìŠ¤í† ë¦¬ì§€ ë°ì´í„° 지우기" -#: src/view/screens/Settings/index.tsx:849 +#: src/view/screens/Settings/index.tsx:877 msgid "Clear all storage data (restart after this)" msgstr "ëª¨ë“ ìŠ¤í† ë¦¬ì§€ ë°ì´í„° 지우기 (ì´í›„ 다시 시작)" @@ -698,11 +685,11 @@ msgstr "ì´ê³³ì„ í´ë¦" #: src/components/TagMenu/index.web.tsx:138 msgid "Click here to open tag menu for {tag}" -msgstr "" +msgstr "ì´ê³³ì„ í´ë¦í•˜ì—¬ {tag}ì˜ íƒœê·¸ 메뉴 열기" #: src/components/RichText.tsx:191 msgid "Click here to open tag menu for #{tag}" -msgstr "" +msgstr "ì´ê³³ì„ í´ë¦í•˜ì—¬ #{tag}ì˜ íƒœê·¸ 메뉴 열기" #: src/screens/Onboarding/index.tsx:35 msgid "Climate" @@ -711,22 +698,22 @@ msgstr "기후" #: src/view/com/modals/ChangePassword.tsx:265 #: src/view/com/modals/ChangePassword.tsx:268 msgid "Close" -msgstr "" +msgstr "닫기" #: src/components/Dialog/index.web.tsx:84 #: src/components/Dialog/index.web.tsx:198 msgid "Close active dialog" -msgstr "활성 대화 ìƒìž 닫기" +msgstr "ì—´ë ¤ 있는 대화 ìƒìž 닫기" #: src/view/com/auth/login/PasswordUpdatedForm.tsx:38 msgid "Close alert" msgstr "알림 닫기" -#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:36 msgid "Close bottom drawer" msgstr "하단 ì„œëž ë‹«ê¸°" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:30 msgid "Close image" msgstr "ì´ë¯¸ì§€ 닫기" @@ -734,15 +721,16 @@ msgstr "ì´ë¯¸ì§€ 닫기" msgid "Close image viewer" msgstr "ì´ë¯¸ì§€ ë·°ì–´ 닫기" -#: src/view/shell/index.web.tsx:51 +#: src/view/shell/index.web.tsx:55 msgid "Close navigation footer" msgstr "íƒìƒ‰ 푸터 닫기" +#: src/components/Menu/index.tsx:207 #: src/components/TagMenu/index.tsx:262 msgid "Close this dialog" -msgstr "" +msgstr "ì´ ëŒ€í™” ìƒìž 닫기" -#: src/view/shell/index.web.tsx:52 +#: src/view/shell/index.web.tsx:56 msgid "Closes bottom navigation bar" msgstr "하단 íƒìƒ‰ 막대를 닫습니다" @@ -750,15 +738,15 @@ msgstr "하단 íƒìƒ‰ 막대를 닫습니다" msgid "Closes password update alert" msgstr "비밀번호 변경 ì•Œë¦¼ì„ ë‹«ìŠµë‹ˆë‹¤" -#: src/view/com/composer/Composer.tsx:309 +#: src/view/com/composer/Composer.tsx:318 msgid "Closes post composer and discards post draft" msgstr "게시물 작성 ìƒìžë¥¼ ë‹«ê³ ê²Œì‹œë¬¼ ì´ˆì•ˆì„ ì‚ì œí•©ë‹ˆë‹¤" -#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:27 +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:31 msgid "Closes viewer for header image" msgstr "í—¤ë” ì´ë¯¸ì§€ 뷰어를 닫습니다" -#: src/view/com/notifications/FeedItem.tsx:318 +#: src/view/com/notifications/FeedItem.tsx:317 msgid "Collapses list of users for a given notification" msgstr "ì´ ì•Œë¦¼ì— ëŒ€í•œ ì‚¬ìš©ìž ëª©ë¡ì„ 축소합니다" @@ -770,7 +758,7 @@ msgstr "코미디" msgid "Comics" msgstr "만화" -#: src/Navigation.tsx:229 +#: src/Navigation.tsx:241 #: src/view/screens/CommunityGuidelines.tsx:32 msgid "Community Guidelines" msgstr "커뮤니티 ê°€ì´ë“œë¼ì¸" @@ -781,9 +769,9 @@ msgstr "온보딩 완료 후 ê³„ì • 사용 시작" #: src/view/com/auth/create/Step3.tsx:73 msgid "Complete the challenge" -msgstr "" +msgstr "챌린지 완료하기" -#: src/view/com/composer/Composer.tsx:424 +#: src/view/com/composer/Composer.tsx:433 msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length" msgstr "최대 {MAX_GRAPHEME_LENGTH}ìž ê¸¸ì´ê¹Œì§€ ê¸€ì„ ìž‘ì„±í• ìˆ˜ 있습니다" @@ -791,12 +779,18 @@ msgstr "최대 {MAX_GRAPHEME_LENGTH}ìž ê¸¸ì´ê¹Œì§€ ê¸€ì„ ìž‘ì„±í• ìˆ˜ 있습 msgid "Compose reply" msgstr "답글 작성하기" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:67 +#: src/components/moderation/GlobalModerationLabelPref.tsx:69 +#: src/components/moderation/ModerationLabelPref.tsx:128 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:81 msgid "Configure content filtering setting for category: {0}" msgstr "{0} ì¹´í…Œê³ ë¦¬ì— ëŒ€í•œ 콘í…ì¸ í•„í„°ë§ ì„¤ì • 구성" -#: src/components/Prompt.tsx:124 -#: src/view/com/modals/AppealLabel.tsx:98 +#: src/components/moderation/ModerationLabelPref.tsx:104 +msgid "Configured in <0>moderation settings</0>." +msgstr "<0>ê²€í† ì„¤ì •</0>ì—서 ì„¤ì •í•©ë‹ˆë‹¤." + +#: src/components/Prompt.tsx:152 +#: src/components/Prompt.tsx:155 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:231 #: src/view/com/modals/VerifyEmail.tsx:233 @@ -805,12 +799,6 @@ msgstr "{0} ì¹´í…Œê³ ë¦¬ì— ëŒ€í•œ 콘í…ì¸ í•„í„°ë§ ì„¤ì • 구성" msgid "Confirm" msgstr "확ì¸" -#: src/view/com/modals/Confirm.tsx:75 -#: src/view/com/modals/Confirm.tsx:78 -msgctxt "action" -msgid "Confirm" -msgstr "확ì¸" - #: src/view/com/modals/ChangeEmail.tsx:193 #: src/view/com/modals/ChangeEmail.tsx:195 msgid "Confirm Change" @@ -824,9 +812,13 @@ msgstr "콘í…ì¸ ì–¸ì–´ ì„¤ì • 확ì¸" msgid "Confirm delete account" msgstr "ê³„ì • ì‚ì œ 확ì¸" -#: src/view/com/modals/ContentFilteringSettings.tsx:156 -msgid "Confirm your age to enable adult content." -msgstr "ì„±ì¸ ì½˜í…ì¸ ë¥¼ ì‚¬ìš©í•˜ë ¤ë©´ 나ì´ë¥¼ 확ì¸í•˜ì„¸ìš”." +#: src/screens/Moderation/index.tsx:304 +msgid "Confirm your age:" +msgstr "나ì´ë¥¼ 확ì¸í•˜ì„¸ìš”:" + +#: src/screens/Moderation/index.tsx:295 +msgid "Confirm your birthdate" +msgstr "ìƒë…„ì›”ì¼ í™•ì¸" #: src/view/com/modals/ChangeEmail.tsx:157 #: src/view/com/modals/DeleteAccount.tsx:182 @@ -834,10 +826,6 @@ msgstr "ì„±ì¸ ì½˜í…ì¸ ë¥¼ ì‚¬ìš©í•˜ë ¤ë©´ 나ì´ë¥¼ 확ì¸í•˜ì„¸ìš”." msgid "Confirmation code" msgstr "í™•ì¸ ì½”ë“œ" -#: src/view/com/modals/Waitlist.tsx:120 -#~ msgid "Confirms signing up {email} to the waitlist" -#~ msgstr "{email}ì„(를) ëŒ€ê¸°ìž ëª…ë‹¨ì— ë“±ë¡í•©ë‹ˆë‹¤" - #: src/view/com/auth/create/CreateAccount.tsx:193 #: src/view/com/auth/login/LoginForm.tsx:278 msgid "Connecting..." @@ -847,25 +835,32 @@ msgstr "ì—°ê²° 중…" msgid "Contact support" msgstr "ì§€ì›ì— ì—°ë½í•˜ê¸°" -#: src/view/screens/Moderation.tsx:83 -msgid "Content filtering" -msgstr "콘í…ì¸ í•„í„°ë§" +#: src/components/moderation/LabelsOnMe.tsx:42 +msgid "content" +msgstr "콘í…ì¸ " + +#: src/lib/moderation/useGlobalLabelStrings.ts:18 +msgid "Content Blocked" +msgstr "콘í…ì¸ ì°¨ë‹¨ë¨" -#: src/view/com/modals/ContentFilteringSettings.tsx:44 -msgid "Content Filtering" -msgstr "콘í…ì¸ í•„í„°ë§" +#: src/screens/Moderation/index.tsx:288 +msgid "Content filters" +msgstr "콘í…ì¸ í•„í„°" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 #: src/view/screens/LanguageSettings.tsx:278 msgid "Content Languages" msgstr "콘í…ì¸ ì–¸ì–´" -#: src/view/com/modals/ModerationDetails.tsx:65 +#: src/components/moderation/ModerationDetailsDialog.tsx:76 +#: src/lib/moderation/useModerationCauseDescription.ts:75 msgid "Content Not Available" msgstr "콘í…ì¸ ë¥¼ ì‚¬ìš©í• ìˆ˜ ì—†ìŒ" -#: src/view/com/modals/ModerationDetails.tsx:33 -#: src/view/com/util/moderation/ScreenHider.tsx:78 +#: src/components/moderation/ModerationDetailsDialog.tsx:47 +#: src/components/moderation/ScreenHider.tsx:99 +#: src/lib/moderation/useGlobalLabelStrings.ts:22 +#: src/lib/moderation/useModerationCauseDescription.ts:38 msgid "Content Warning" msgstr "콘í…ì¸ ê²½ê³ " @@ -873,10 +868,14 @@ msgstr "콘í…ì¸ ê²½ê³ " msgid "Content warnings" msgstr "콘í…ì¸ ê²½ê³ " +#: src/components/Menu/index.web.tsx:84 +msgid "Context menu backdrop, click to close the menu." +msgstr "컨í…스트 메뉴 ë°°ê²½ì„ í´ë¦í•˜ì—¬ 메뉴를 닫습니다." + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:170 #: src/screens/Onboarding/StepFollowingFeed.tsx:153 #: src/screens/Onboarding/StepInterests/index.tsx:248 -#: src/screens/Onboarding/StepModeration/index.tsx:118 +#: src/screens/Onboarding/StepModeration/index.tsx:102 #: src/screens/Onboarding/StepTopicalFeeds.tsx:114 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 #: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 @@ -885,7 +884,7 @@ msgstr "계ì†" #: src/screens/Onboarding/StepFollowingFeed.tsx:150 #: src/screens/Onboarding/StepInterests/index.tsx:245 -#: src/screens/Onboarding/StepModeration/index.tsx:115 +#: src/screens/Onboarding/StepModeration/index.tsx:99 #: src/screens/Onboarding/StepTopicalFeeds.tsx:111 msgid "Continue to next step" msgstr "ë‹¤ìŒ ë‹¨ê³„ë¡œ 계ì†í•˜ê¸°" @@ -907,13 +906,13 @@ msgstr "요리" msgid "Copied" msgstr "복사ë¨" -#: src/view/screens/Settings/index.tsx:241 +#: src/view/screens/Settings/index.tsx:247 msgid "Copied build version to clipboard" msgstr "빌드 ë²„ì „ í´ë¦½ë³´ë“œì— 복사ë¨" #: src/view/com/modals/AddAppPasswords.tsx:76 #: src/view/com/modals/InviteCodes.tsx:152 -#: src/view/com/util/forms/PostDropdownBtn.tsx:161 +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 msgid "Copied to clipboard" msgstr "í´ë¦½ë³´ë“œì— 복사ë¨" @@ -925,48 +924,40 @@ msgstr "앱 비밀번호를 복사합니다" msgid "Copy" msgstr "복사" -#: src/view/screens/ProfileList.tsx:418 +#: src/view/screens/ProfileList.tsx:388 msgid "Copy link to list" msgstr "리스트 ë§í¬ 복사" -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 msgid "Copy link to post" msgstr "게시물 ë§í¬ 복사" -#: src/view/com/profile/ProfileHeader.tsx:295 -msgid "Copy link to profile" -msgstr "프로필 ë§í¬ 복사" - -#: src/view/com/util/forms/PostDropdownBtn.tsx:223 -#: src/view/com/util/forms/PostDropdownBtn.tsx:225 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:222 msgid "Copy post text" msgstr "게시물 í…스트 복사" -#: src/Navigation.tsx:234 +#: src/Navigation.tsx:246 #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" msgstr "ì €ìž‘ê¶Œ ì •ì±…" -#: src/view/screens/ProfileFeed.tsx:97 +#: src/view/screens/ProfileFeed.tsx:102 msgid "Could not load feed" msgstr "피드를 불러올 수 없습니다" -#: src/view/screens/ProfileList.tsx:893 +#: src/view/screens/ProfileList.tsx:907 msgid "Could not load list" msgstr "리스트를 불러올 수 없습니다" -#: src/view/com/auth/create/Step2.tsx:91 -#~ msgid "Country" -#~ msgstr "êµê°€" - #: src/view/com/auth/HomeLoggedOutCTA.tsx:62 #: src/view/com/auth/SplashScreen.tsx:71 #: src/view/com/auth/SplashScreen.web.tsx:81 msgid "Create a new account" msgstr "새 ê³„ì • 만들기" -#: src/view/screens/Settings/index.tsx:384 +#: src/view/screens/Settings/index.tsx:402 msgid "Create a new Bluesky account" msgstr "새 Bluesky ê³„ì •ì„ ë§Œë“니다" @@ -983,19 +974,15 @@ msgstr "앱 비밀번호 만들기" msgid "Create new account" msgstr "새 ê³„ì • 만들기" -#: src/view/screens/AppPasswords.tsx:249 -msgid "Created {0}" -msgstr "{0} ìƒì„±ë¨" +#: src/components/ReportDialog/SelectReportOptionView.tsx:93 +msgid "Create report for {0}" +msgstr "{0}ì— ëŒ€í•œ ì‹ ê³ ìž‘ì„±í•˜ê¸°" -#: src/view/screens/ProfileFeed.tsx:616 -msgid "Created by <0/>" -msgstr "<0/> ë‹˜ì´ ë§Œë“¦" - -#: src/view/screens/ProfileFeed.tsx:614 -msgid "Created by you" -msgstr "ë‚´ê°€ 만듦" +#: src/view/screens/AppPasswords.tsx:246 +msgid "Created {0}" +msgstr "{0}ì— ìƒì„±ë¨" -#: src/view/com/composer/Composer.tsx:455 +#: src/view/com/composer/Composer.tsx:464 msgid "Creates a card with a thumbnail. The card links to {url}" msgstr "미리보기 ì´ë¯¸ì§€ê°€ 있는 카드를 ë§Œë“니다. 카드가 {url}(으)로 ì—°ê²°ë©ë‹ˆë‹¤" @@ -1006,7 +993,7 @@ msgstr "문화" #: src/view/com/auth/server-input/index.tsx:95 #: src/view/com/auth/server-input/index.tsx:96 msgid "Custom" -msgstr "" +msgstr "ì‚¬ìš©ìž ì§€ì •" #: src/view/com/modals/ChangeHandle.tsx:389 msgid "Custom domain" @@ -1021,12 +1008,8 @@ msgstr "커뮤니티ì—서 구축한 맞춤 피드는 새로운 ê²½í—˜ì„ ì œê³µ msgid "Customize media from external sites." msgstr "외부 사ì´íЏ 미디어를 ì‚¬ìš©ìž ì§€ì •í•©ë‹ˆë‹¤." -#: src/view/screens/Settings.tsx:687 -#~ msgid "Danger Zone" -#~ msgstr "위험 구ì—" - -#: src/view/screens/Settings/index.tsx:485 -#: src/view/screens/Settings/index.tsx:511 +#: src/view/screens/Settings/index.tsx:503 +#: src/view/screens/Settings/index.tsx:529 msgid "Dark" msgstr "ì–´ë‘움" @@ -1034,15 +1017,25 @@ msgstr "ì–´ë‘움" msgid "Dark mode" msgstr "ì–´ë‘ìš´ 모드" -#: src/view/screens/Settings/index.tsx:498 +#: src/view/screens/Settings/index.tsx:516 msgid "Dark Theme" -msgstr "" +msgstr "ì–´ë‘ìš´ 테마" + +#: src/view/screens/Settings/index.tsx:835 +msgid "Debug Moderation" +msgstr "ê²€í† ë””ë²„ê·¸" #: src/view/screens/Debug.tsx:83 msgid "Debug panel" msgstr "디버그 패ë„" -#: src/view/screens/Settings/index.tsx:772 +#: src/view/com/util/forms/PostDropdownBtn.tsx:319 +#: src/view/screens/AppPasswords.tsx:268 +#: src/view/screens/ProfileList.tsx:613 +msgid "Delete" +msgstr "ì‚ì œ" + +#: src/view/screens/Settings/index.tsx:790 msgid "Delete account" msgstr "ê³„ì • ì‚ì œ" @@ -1050,13 +1043,15 @@ msgstr "ê³„ì • ì‚ì œ" msgid "Delete Account" msgstr "ê³„ì • ì‚ì œ" -#: src/view/screens/AppPasswords.tsx:222 -#: src/view/screens/AppPasswords.tsx:242 +#: src/view/screens/AppPasswords.tsx:239 msgid "Delete app password" msgstr "앱 비밀번호 ì‚ì œ" -#: src/view/screens/ProfileList.tsx:364 -#: src/view/screens/ProfileList.tsx:445 +#: src/view/screens/AppPasswords.tsx:263 +msgid "Delete app password?" +msgstr "앱 비밀번호를 ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" + +#: src/view/screens/ProfileList.tsx:415 msgid "Delete List" msgstr "리스트 ì‚ì œ" @@ -1064,28 +1059,28 @@ msgstr "리스트 ì‚ì œ" msgid "Delete my account" msgstr "ë‚´ ê³„ì • ì‚ì œ" -#: src/view/screens/Settings.tsx:706 -#~ msgid "Delete my account…" -#~ msgstr "ë‚´ ê³„ì • ì‚ì œâ€¦" - -#: src/view/screens/Settings/index.tsx:784 +#: src/view/screens/Settings/index.tsx:802 msgid "Delete My Account…" -msgstr "" +msgstr "ë‚´ ê³„ì • ì‚ì œâ€¦" -#: src/view/com/util/forms/PostDropdownBtn.tsx:317 -#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +#: src/view/com/util/forms/PostDropdownBtn.tsx:302 +#: src/view/com/util/forms/PostDropdownBtn.tsx:304 msgid "Delete post" msgstr "게시물 ì‚ì œ" -#: src/view/com/util/forms/PostDropdownBtn.tsx:321 +#: src/view/screens/ProfileList.tsx:608 +msgid "Delete this list?" +msgstr "ì´ ë¦¬ìŠ¤íŠ¸ë¥¼ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:314 msgid "Delete this post?" msgstr "ì´ ê²Œì‹œë¬¼ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" -#: src/view/com/util/post-embeds/QuoteEmbed.tsx:70 +#: src/view/com/util/post-embeds/QuoteEmbed.tsx:64 msgid "Deleted" msgstr "ì‚ì œë¨" -#: src/view/com/post-thread/PostThread.tsx:316 +#: src/view/com/post-thread/PostThread.tsx:317 msgid "Deleted post." msgstr "ì‚ì œëœ ê²Œì‹œë¬¼." @@ -1096,27 +1091,31 @@ msgstr "ì‚ì œëœ ê²Œì‹œë¬¼." msgid "Description" msgstr "설명" -#: src/view/screens/Settings.tsx:760 -#~ msgid "Developer Tools" -#~ msgstr "ê°œë°œìž ë„구" - -#: src/view/com/composer/Composer.tsx:218 +#: src/view/com/composer/Composer.tsx:217 msgid "Did you want to say anything?" msgstr "í•˜ê³ ì‹¶ì€ ë§ì´ 있나요?" -#: src/view/screens/Settings/index.tsx:504 +#: src/view/screens/Settings/index.tsx:522 msgid "Dim" -msgstr "" +msgstr "어둑함" -#: src/view/com/composer/Composer.tsx:151 +#: src/lib/moderation/useLabelBehaviorDescription.ts:32 +#: src/lib/moderation/useLabelBehaviorDescription.ts:42 +#: src/lib/moderation/useLabelBehaviorDescription.ts:68 +#: src/screens/Moderation/index.tsx:347 +msgid "Disabled" +msgstr "비활성화ë¨" + +#: src/view/com/composer/Composer.tsx:506 msgid "Discard" msgstr "ì‚ì œ" -#: src/view/com/composer/Composer.tsx:145 -msgid "Discard draft" +#: src/view/com/composer/Composer.tsx:503 +msgid "Discard draft?" msgstr "초안 ì‚ì œ" -#: src/view/screens/Moderation.tsx:226 +#: src/screens/Moderation/index.tsx:524 +#: src/screens/Moderation/index.tsx:528 msgid "Discourage apps from showing my account to logged-out users" msgstr "ì•±ì´ ë¡œê·¸ì•„ì›ƒí•œ 사용ìžì—게 ë‚´ ê³„ì •ì„ í‘œì‹œí•˜ì§€ 않ë„ë¡ ì„¤ì •í•˜ê¸°" @@ -1125,13 +1124,9 @@ msgstr "ì•±ì´ ë¡œê·¸ì•„ì›ƒí•œ 사용ìžì—게 ë‚´ ê³„ì •ì„ í‘œì‹œí•˜ì§€ ì•Šë„ msgid "Discover new custom feeds" msgstr "새로운 맞춤 피드 찾아보기" -#: src/view/screens/Feeds.tsx:473 -#~ msgid "Discover new feeds" -#~ msgstr "새 피드 발견하기" - #: src/view/screens/Feeds.tsx:689 msgid "Discover New Feeds" -msgstr "" +msgstr "새 피드 발견하기" #: src/view/com/modals/EditProfile.tsx:192 msgid "Display name" @@ -1141,33 +1136,20 @@ msgstr "표시 ì´ë¦„" msgid "Display Name" msgstr "표시 ì´ë¦„" +#: src/lib/moderation/useGlobalLabelStrings.ts:39 +msgid "Does not include nudity." +msgstr "ë…¸ì¶œì„ í¬í•¨í•˜ì§€ 않ìŒ." + #: src/view/com/modals/ChangeHandle.tsx:487 msgid "Domain verified!" msgstr "ë„ë©”ì¸ì„ 확ì¸í–ˆìŠµë‹ˆë‹¤." -#: src/view/com/auth/create/Step1.tsx:170 -#~ msgid "Don't have an invite code?" -#~ msgstr "초대 코드가 없나요?" - -#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 -#: src/view/com/modals/EditImage.tsx:333 -#: src/view/com/modals/ListAddRemoveUsers.tsx:144 -#: src/view/com/modals/SelfLabel.tsx:157 -#: src/view/com/modals/Threadgate.tsx:129 -#: src/view/com/modals/Threadgate.tsx:132 -#: src/view/com/modals/UserAddRemoveLists.tsx:95 -#: src/view/com/modals/UserAddRemoveLists.tsx:98 -#: src/view/screens/PreferencesThreads.tsx:162 -msgctxt "action" -msgid "Done" -msgstr "완료" - +#: src/components/dialogs/BirthDateSettings.tsx:112 +#: src/components/dialogs/BirthDateSettings.tsx:118 #: src/view/com/auth/server-input/index.tsx:165 #: src/view/com/auth/server-input/index.tsx:166 #: src/view/com/modals/AddAppPasswords.tsx:226 #: src/view/com/modals/AltImage.tsx:139 -#: src/view/com/modals/ContentFilteringSettings.tsx:88 -#: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 #: src/view/com/modals/InviteCodes.tsx:80 #: src/view/com/modals/InviteCodes.tsx:123 @@ -1178,6 +1160,19 @@ msgstr "완료" msgid "Done" msgstr "완료" +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:144 +#: src/view/com/modals/SelfLabel.tsx:157 +#: src/view/com/modals/Threadgate.tsx:129 +#: src/view/com/modals/Threadgate.tsx:132 +#: src/view/com/modals/UserAddRemoveLists.tsx:95 +#: src/view/com/modals/UserAddRemoveLists.tsx:98 +#: src/view/screens/PreferencesThreads.tsx:162 +msgctxt "action" +msgid "Done" +msgstr "완료" + #: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 msgid "Done{extraText}" msgstr "완료{extraText}" @@ -1186,20 +1181,20 @@ msgstr "완료{extraText}" msgid "Double tap to sign in" msgstr "ë‘ ë²ˆ íƒí•˜ì—¬ 로그ì¸í•©ë‹ˆë‹¤" -#: src/view/screens/Settings/index.tsx:755 +#: src/view/screens/Settings/index.tsx:773 msgid "Download Bluesky account data (repository)" -msgstr "" +msgstr "Bluesky ê³„ì • ë°ì´í„°ë¥¼ 다운로드합니다 (ì €ìž¥ì†Œ)" #: src/view/screens/Settings/ExportCarDialog.tsx:59 #: src/view/screens/Settings/ExportCarDialog.tsx:63 msgid "Download CAR file" -msgstr "" +msgstr "CAR íŒŒì¼ ë‹¤ìš´ë¡œë“œ" #: src/view/com/composer/text-input/TextInput.web.tsx:249 msgid "Drop to add images" msgstr "드ë¡í•˜ì—¬ ì´ë¯¸ì§€ 추가" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:111 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:116 msgid "Due to Apple policies, adult content can only be enabled on the web after completing sign up." msgstr "Apple ì •ì±…ìœ¼ë¡œ ì¸í•´ ì„±ì¸ ì½˜í…ì¸ ëŠ” ê°€ìž…ì„ ì™„ë£Œí•œ í›„ì— ì›¹ì—서만 사용 ì„¤ì •í• ìˆ˜ 있습니다." @@ -1211,6 +1206,10 @@ msgstr "예: 앨리스 ë¡œë²„ì¸ " msgid "e.g. Artist, dog-lover, and avid reader." msgstr "예: ì˜ˆìˆ ê°€, ê°œ ì• í˜¸ê°€, ë…서광." +#: src/lib/moderation/useGlobalLabelStrings.ts:43 +msgid "E.g. artistic nudes." +msgstr "예: ì˜ˆìˆ ì ì¸ ë…¸ì¶œ." + #: src/view/com/modals/CreateOrEditList.tsx:283 msgid "e.g. Great Posters" msgstr "예: ë©‹ì§„ í¬ìŠ¤í„°" @@ -1236,12 +1235,17 @@ msgctxt "action" msgid "Edit" msgstr "편집" +#: src/view/com/util/UserAvatar.tsx:295 +#: src/view/com/util/UserBanner.tsx:85 +msgid "Edit avatar" +msgstr "아바타 편집" + #: src/view/com/composer/photos/Gallery.tsx:144 #: src/view/com/modals/EditImage.tsx:207 msgid "Edit image" msgstr "ì´ë¯¸ì§€ 편집" -#: src/view/screens/ProfileList.tsx:433 +#: src/view/screens/ProfileList.tsx:403 msgid "Edit list details" msgstr "리스트 세부 ì •ë³´ 편집" @@ -1249,7 +1253,7 @@ msgstr "리스트 세부 ì •ë³´ 편집" msgid "Edit Moderation List" msgstr "ê²€í† ë¦¬ìŠ¤íŠ¸ 편집" -#: src/Navigation.tsx:244 +#: src/Navigation.tsx:256 #: src/view/screens/Feeds.tsx:434 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" @@ -1259,11 +1263,13 @@ msgstr "ë‚´ 피드 편집" msgid "Edit my profile" msgstr "ë‚´ 프로필 편집" -#: src/view/com/profile/ProfileHeader.tsx:418 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:172 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:161 msgid "Edit profile" msgstr "프로필 편집" -#: src/view/com/profile/ProfileHeader.tsx:423 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:175 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:164 msgid "Edit Profile" msgstr "프로필 편집" @@ -1312,7 +1318,7 @@ msgstr "ì´ë©”ì¼ ë³€ê²½ë¨" msgid "Email verified" msgstr "ì´ë©”ì¼ í™•ì¸ë¨" -#: src/view/screens/Settings/index.tsx:312 +#: src/view/screens/Settings/index.tsx:330 msgid "Email:" msgstr "ì´ë©”ì¼:" @@ -1320,12 +1326,12 @@ msgstr "ì´ë©”ì¼:" msgid "Enable {0} only" msgstr "{0}ë§Œ 사용" -#: src/view/com/modals/ContentFilteringSettings.tsx:167 -msgid "Enable Adult Content" +#: src/screens/Moderation/index.tsx:335 +msgid "Enable adult content" msgstr "ì„±ì¸ ì½˜í…ì¸ í™œì„±í™”" -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:76 -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:77 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:78 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:79 msgid "Enable adult content in your feeds" msgstr "피드ì—서 ì„±ì¸ ì½˜í…ì¸ ì‚¬ìš©" @@ -1341,7 +1347,11 @@ msgstr "미디어 í”Œë ˆì´ì–´ë¥¼ ì‚¬ìš©í• ì™¸ë¶€ 사ì´íЏ" msgid "Enable this setting to only see replies between people you follow." msgstr "ë‚´ê°€ 팔로우하는 사람들 ê°„ì˜ ë‹µê¸€ë§Œ 표시합니다." -#: src/view/screens/Profile.tsx:455 +#: src/screens/Moderation/index.tsx:345 +msgid "Enabled" +msgstr "활성화ë¨" + +#: src/screens/Profile/Sections/Feed.tsx:84 msgid "End of feed" msgstr "피드 ë" @@ -1352,7 +1362,7 @@ msgstr "ì´ ì•± ë¹„ë°€ë²ˆí˜¸ì˜ ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”" #: src/components/dialogs/MutedWords.tsx:100 #: src/components/dialogs/MutedWords.tsx:101 msgid "Enter a word or tag" -msgstr "" +msgstr "단어 ë˜ëŠ” 태그 ìž…ë ¥" #: src/view/com/modals/VerifyEmail.tsx:105 msgid "Enter Confirmation Code" @@ -1360,7 +1370,7 @@ msgstr "í™•ì¸ ì½”ë“œ ìž…ë ¥" #: src/view/com/modals/ChangePassword.tsx:151 msgid "Enter the code you received to change your password." -msgstr "" +msgstr "비밀번호를 ë³€ê²½í•˜ë ¤ë©´ ë°›ì€ ì½”ë“œë¥¼ ìž…ë ¥í•˜ì„¸ìš”." #: src/view/com/modals/ChangeHandle.tsx:371 msgid "Enter the domain you want to use" @@ -1368,17 +1378,13 @@ msgstr "ì‚¬ìš©í• ë„ë©”ì¸ ìž…ë ¥" #: src/view/com/auth/login/ForgotPasswordForm.tsx:107 msgid "Enter the email you used to create your account. We'll send you a \"reset code\" so you can set a new password." -msgstr "ê³„ì •ì„ ë§Œë“¤ 때 사용한 ì´ë©”ì¼ì„ ìž…ë ¥í•©ë‹ˆë‹¤. 새 비밀번호를 ì„¤ì •í• ìˆ˜ 있ë„ë¡ \"ìž¬ì„¤ì • 코드\"를 보내드립니다." +msgstr "ê³„ì •ì„ ë§Œë“¤ 때 사용한 ì´ë©”ì¼ì„ ìž…ë ¥í•˜ì„¸ìš”. 새 비밀번호를 ì„¤ì •í• ìˆ˜ 있ë„ë¡ \"ìž¬ì„¤ì • 코드\"를 보내드립니다." +#: src/components/dialogs/BirthDateSettings.tsx:102 #: src/view/com/auth/create/Step1.tsx:228 -#: src/view/com/modals/BirthDateSettings.tsx:74 msgid "Enter your birth date" msgstr "ìƒë…„ì›”ì¼ì„ ìž…ë ¥í•˜ì„¸ìš”" -#: src/view/com/modals/Waitlist.tsx:78 -#~ msgid "Enter your email" -#~ msgstr "ì´ë©”ì¼ì„ ìž…ë ¥í•˜ì„¸ìš”" - #: src/view/com/auth/create/Step1.tsx:172 msgid "Enter your email address" msgstr "ì´ë©”ì¼ ì£¼ì†Œë¥¼ ìž…ë ¥í•˜ì„¸ìš”" @@ -1391,17 +1397,13 @@ msgstr "새 ì´ë©”ì¼ì„ ìž…ë ¥í•˜ì„¸ìš”" msgid "Enter your new email address below." msgstr "ì•„ëž˜ì— ìƒˆ ì´ë©”ì¼ ì£¼ì†Œë¥¼ ìž…ë ¥í•˜ì„¸ìš”." -#: src/view/com/auth/create/Step2.tsx:188 -#~ msgid "Enter your phone number" -#~ msgstr "ì „í™”ë²ˆí˜¸ë¥¼ ìž…ë ¥í•˜ì„¸ìš”" - #: src/view/com/auth/login/Login.tsx:99 msgid "Enter your username and password" msgstr "ì‚¬ìš©ìž ì´ë¦„ ë° ë¹„ë°€ë²ˆí˜¸ ìž…ë ¥" #: src/view/com/auth/create/Step3.tsx:67 msgid "Error receiving captcha response." -msgstr "" +msgstr "캡차 ì‘ë‹µì„ ìˆ˜ì‹ í•˜ëŠ” ë™ì•ˆ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤." #: src/view/screens/Search/Search.tsx:110 msgid "Error:" @@ -1411,6 +1413,10 @@ msgstr "오류:" msgid "Everybody" msgstr "모ë‘" +#: src/lib/moderation/useReportOptions.ts:66 +msgid "Excessive mentions or replies" +msgstr "ê³¼ë„한 멘션 ë˜ëŠ” 답글" + #: src/view/com/modals/ChangeHandle.tsx:150 msgid "Exits handle change process" msgstr "핸들 변경 프로세스를 종료합니다" @@ -1424,10 +1430,6 @@ msgstr "ì´ë¯¸ì§€ 보기를 종료합니다" msgid "Exits inputting search query" msgstr "검색어 ìž…ë ¥ì„ ì¢…ë£Œí•©ë‹ˆë‹¤" -#: src/view/com/modals/Waitlist.tsx:138 -#~ msgid "Exits signing up for waitlist with {email}" -#~ msgstr "{email}ì„(를) ëŒ€ê¸°ìž ëª…ë‹¨ì— ë“±ë¡í•˜ëŠ” ê²ƒì„ ì¢…ë£Œí•©ë‹ˆë‹¤" - #: src/view/com/lightbox/Lightbox.web.tsx:163 msgid "Expand alt text" msgstr "대체 í…스트 확장" @@ -1437,14 +1439,22 @@ msgstr "대체 í…스트 확장" msgid "Expand or collapse the full post you are replying to" msgstr "ë‹µê¸€ì„ ë‹¬ê³ ìžˆëŠ” ì „ì²´ ê²Œì‹œë¬¼ì„ íŽ¼ì¹˜ê±°ë‚˜ ì ‘ìŠµë‹ˆë‹¤" -#: src/view/screens/Settings/index.tsx:753 +#: src/lib/moderation/useGlobalLabelStrings.ts:47 +msgid "Explicit or potentially disturbing media." +msgstr "노골ì ì´ê±°ë‚˜ 불쾌ê°ì„ 줄 수 있는 미디어." + +#: src/lib/moderation/useGlobalLabelStrings.ts:35 +msgid "Explicit sexual images." +msgstr "노골ì ì¸ ì„±ì ì´ë¯¸ì§€." + +#: src/view/screens/Settings/index.tsx:771 msgid "Export my data" -msgstr "" +msgstr "ë‚´ ë°ì´í„° 내보내기" #: src/view/screens/Settings/ExportCarDialog.tsx:44 -#: src/view/screens/Settings/index.tsx:764 +#: src/view/screens/Settings/index.tsx:782 msgid "Export My Data" -msgstr "" +msgstr "ë‚´ ë°ì´í„° 내보내기" #: src/view/com/modals/EmbedConsent.tsx:64 msgid "External Media" @@ -1455,13 +1465,13 @@ msgstr "외부 미디어" msgid "External media may allow websites to collect information about you and your device. No information is sent or requested until you press the \"play\" button." msgstr "외부 미디어는 웹사ì´íŠ¸ê°€ 나와 ë‚´ ê¸°ê¸°ì— ëŒ€í•œ ì •ë³´ë¥¼ 수집하ë„ë¡ í• ìˆ˜ 있습니다. \"재ìƒ\" ë²„íŠ¼ì„ ëˆ„ë¥´ê¸° ì „ê¹Œì§€ëŠ” ì–´ë– í•œ ì •ë³´ë„ ì „ì†¡ë˜ê±°ë‚˜ ìš”ì²ë˜ì§€ 않습니다." -#: src/Navigation.tsx:263 +#: src/Navigation.tsx:275 #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings/index.tsx:657 +#: src/view/screens/Settings/index.tsx:675 msgid "External Media Preferences" msgstr "외부 미디어 ì„¤ì •" -#: src/view/screens/Settings/index.tsx:648 +#: src/view/screens/Settings/index.tsx:666 msgid "External media settings" msgstr "외부 미디어 ì„¤ì •" @@ -1474,7 +1484,7 @@ msgstr "앱 비밀번호를 만들지 못했습니다." msgid "Failed to create the list. Check your internet connection and try again." msgstr "리스트를 만들지 못했습니다. ì¸í„°ë„· ì—°ê²°ì„ í™•ì¸í•œ 후 다시 시ë„하세요." -#: src/view/com/util/forms/PostDropdownBtn.tsx:128 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Failed to delete post, please try again" msgstr "ê²Œì‹œë¬¼ì„ ì‚ì œí•˜ì§€ 못했습니다. 다시 시ë„í•´ 주세요" @@ -1483,11 +1493,11 @@ msgstr "ê²Œì‹œë¬¼ì„ ì‚ì œí•˜ì§€ 못했습니다. 다시 시ë„í•´ 주세요" msgid "Failed to load recommended feeds" msgstr "추천 피드를 불러오지 못했습니다" -#: src/Navigation.tsx:194 +#: src/Navigation.tsx:196 msgid "Feed" msgstr "피드" -#: src/view/com/feeds/FeedSourceCard.tsx:231 +#: src/view/com/feeds/FeedSourceCard.tsx:218 msgid "Feed by {0}" msgstr "{0} ë‹˜ì˜ í”¼ë“œ" @@ -1495,20 +1505,16 @@ msgstr "{0} ë‹˜ì˜ í”¼ë“œ" msgid "Feed offline" msgstr "피드 오프ë¼ì¸" -#: src/view/com/feeds/FeedPage.tsx:143 -#~ msgid "Feed Preferences" -#~ msgstr "피드 ì„¤ì •" - #: src/view/shell/desktop/RightNav.tsx:61 #: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "피드백" -#: src/Navigation.tsx:452 +#: src/Navigation.tsx:464 #: src/view/screens/Feeds.tsx:419 #: src/view/screens/Feeds.tsx:524 -#: src/view/screens/Profile.tsx:184 -#: src/view/shell/bottom-bar/BottomBar.tsx:181 +#: src/view/screens/Profile.tsx:192 +#: src/view/shell/bottom-bar/BottomBar.tsx:183 #: src/view/shell/desktop/LeftNav.tsx:342 #: src/view/shell/Drawer.tsx:476 #: src/view/shell/Drawer.tsx:477 @@ -1521,11 +1527,15 @@ msgstr "피드는 콘í…ì¸ ë¥¼ íë ˆì´ì…˜í•˜ê¸° 위해 사용ìžì— ì˜í•´ ë§Œ #: src/view/screens/SavedFeeds.tsx:156 msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." -msgstr "피드는 사용ìžê°€ ì•½ê°„ì˜ ì½”ë”© ì „ë¬¸ ì§€ì‹ìœ¼ë¡œ êµ¬ì¶•í• ìˆ˜ 있는 맞춤 ì•Œê³ ë¦¬ì¦˜ìž…ë‹ˆë‹¤. <0/>ì—서 ìžì„¸í•œ ë‚´ìš©ì„ í™•ì¸í•˜ì„¸ìš”." +msgstr "피드는 사용ìžê°€ ì•½ê°„ì˜ ì½”ë”© ì „ë¬¸ ì§€ì‹ë§Œìœ¼ë¡œ êµ¬ì¶•í• ìˆ˜ 있는 맞춤 ì•Œê³ ë¦¬ì¦˜ìž…ë‹ˆë‹¤. <0/>ì—서 ìžì„¸í•œ ë‚´ìš©ì„ í™•ì¸í•˜ì„¸ìš”." #: src/screens/Onboarding/StepTopicalFeeds.tsx:76 msgid "Feeds can be topical as well!" -msgstr "í”¼ë“œë„ í™”ì œê°€ ë 수 있습니다!" +msgstr "ì£¼ì œ 기반 í”¼ë“œë„ ìžˆìŠµë‹ˆë‹¤!" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:66 +msgid "Filter from feeds" +msgstr "피드ì—서 í•„í„°ë§" #: src/screens/Onboarding/StepFinished.tsx:151 msgid "Finalizing" @@ -1545,21 +1555,17 @@ msgstr "Blueskyì—서 ì‚¬ìš©ìž ì°¾ê¸°" msgid "Find users with the search tool on the right" msgstr "ì˜¤ë¥¸ìª½ì˜ ê²€ìƒ‰ ë„구로 ì‚¬ìš©ìž ì°¾ê¸°" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:153 msgid "Finding similar accounts..." msgstr "ìœ ì‚¬í•œ ê³„ì •ì„ ì°¾ëŠ” 중…" #: src/view/screens/PreferencesFollowingFeed.tsx:111 msgid "Fine-tune the content you see on your Following feed." -msgstr "" - -#: src/view/screens/PreferencesHomeFeed.tsx:111 -#~ msgid "Fine-tune the content you see on your home screen." -#~ msgstr "홈 í™”ë©´ì— í‘œì‹œë˜ëŠ” 콘í…ì¸ ë¥¼ 미세 ì¡°ì •í•©ë‹ˆë‹¤." +msgstr "팔로우 중 í”¼ë“œì— í‘œì‹œë˜ëŠ” 콘í…ì¸ ë¥¼ 미세 ì¡°ì •í•©ë‹ˆë‹¤." #: src/view/screens/PreferencesThreads.tsx:60 msgid "Fine-tune the discussion threads." -msgstr "í† ë¡ ìŠ¤ë ˆë“œë¥¼ 미세 ì¡°ì •í•©ë‹ˆë‹¤." +msgstr "대화 ìŠ¤ë ˆë“œë¥¼ 미세 ì¡°ì •í•©ë‹ˆë‹¤." #: src/screens/Onboarding/index.tsx:38 msgid "Fitness" @@ -1579,22 +1585,27 @@ msgid "Flip vertically" msgstr "세로로 뒤집기" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:181 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:513 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:229 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 msgid "Follow" msgstr "팔로우" -#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/FollowButton.tsx:69 msgctxt "action" msgid "Follow" msgstr "팔로우" #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:58 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:122 -#: src/view/com/profile/ProfileHeader.tsx:504 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:214 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:125 msgid "Follow {0}" msgstr "{0} ë‹˜ì„ íŒ”ë¡œìš°" +#: src/view/com/profile/ProfileMenu.tsx:242 +#: src/view/com/profile/ProfileMenu.tsx:253 +msgid "Follow Account" +msgstr "ê³„ì • 팔로우" + #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:179 msgid "Follow All" msgstr "ëª¨ë‘ íŒ”ë¡œìš°" @@ -1605,9 +1616,9 @@ msgstr "ì„ íƒí•œ ê³„ì •ì„ íŒ”ë¡œìš°í•˜ê³ ë‹¤ìŒ ë‹¨ê³„ë¥¼ ê³„ì† ì§„í–‰í•©ë‹ˆ #: src/view/com/auth/onboarding/RecommendedFollows.tsx:64 msgid "Follow some users to get started. We can recommend you more users based on who you find interesting." -msgstr "ì¼ë¶€ 사용ìžë¥¼ 팔로우하여 시작하세요. 관심 있는 사용ìžë¥¼ 기반으로 ë” ë§Žì€ ì‚¬ìš©ìžë¥¼ 추천해 드릴 수 있습니다." +msgstr "ì‹œìž‘í•˜ë ¤ë©´ ì‚¬ìš©ìž ëª‡ ëª…ì„ íŒ”ë¡œìš°í•´ 보세요. 누구ì—게 ê´€ì‹¬ì´ ìžˆëŠ”ì§€ë¥¼ 기반으로 ë” ë§Žì€ ì‚¬ìš©ìžë¥¼ 추천해 드릴 수 있습니다." -#: src/view/com/profile/ProfileCard.tsx:194 +#: src/view/com/profile/ProfileCard.tsx:214 msgid "Followed by {0}" msgstr "{0} ë‹˜ì´ íŒ”ë¡œìš°í•¨" @@ -1627,29 +1638,29 @@ msgstr "ë‹˜ì´ ë‚˜ë¥¼ 팔로우했습니다" msgid "Followers" msgstr "팔로워" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:136 -#: src/view/com/profile/ProfileHeader.tsx:495 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:227 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:139 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "팔로우 중" -#: src/view/com/profile/ProfileHeader.tsx:149 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:89 msgid "Following {0}" -msgstr "{0} 팔로우 중" +msgstr "{0} ë‹˜ì„ íŒ”ë¡œìš°í–ˆìŠµë‹ˆë‹¤" -#: src/Navigation.tsx:250 +#: src/Navigation.tsx:262 #: src/view/com/home/HomeHeaderLayout.web.tsx:50 #: src/view/com/home/HomeHeaderLayoutMobile.tsx:84 #: src/view/screens/PreferencesFollowingFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 +#: src/view/screens/Settings/index.tsx:561 msgid "Following Feed Preferences" -msgstr "" +msgstr "팔로우 중 피드 ì„¤ì •" -#: src/view/com/profile/ProfileHeader.tsx:546 +#: src/screens/Profile/Header/Handle.tsx:24 msgid "Follows you" msgstr "나를 팔로우함" -#: src/view/com/profile/ProfileCard.tsx:141 +#: src/view/com/profile/ProfileCard.tsx:139 msgid "Follows You" msgstr "나를 팔로우함" @@ -1678,12 +1689,16 @@ msgstr "비밀번호 분실" msgid "Forgot Password" msgstr "비밀번호 분실" +#: src/lib/moderation/useReportOptions.ts:52 +msgid "Frequently Posts Unwanted Content" +msgstr "ìž¦ì€ ì›ì¹˜ 않는 콘í…ì¸ ê²Œì‹œ" + #: src/screens/Hashtag.tsx:108 #: src/screens/Hashtag.tsx:148 msgid "From @{sanitizedAuthor}" -msgstr "" +msgstr "@{sanitizedAuthor} ë‹˜ì˜ íƒœê·¸" -#: src/view/com/posts/FeedItem.tsx:189 +#: src/view/com/posts/FeedItem.tsx:183 msgctxt "from-feed" msgid "From <0/>" msgstr "<0/>ì—서" @@ -1697,20 +1712,29 @@ msgstr "갤러리" msgid "Get Started" msgstr "시작하기" +#: src/lib/moderation/useReportOptions.ts:37 +msgid "Glaring violations of law or terms of service" +msgstr "명백한 ë²•ë¥ ë˜ëŠ” 서비스 약관 위반 행위" + +#: src/components/moderation/ScreenHider.tsx:143 +#: src/components/moderation/ScreenHider.tsx:152 #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 -#: src/view/com/util/moderation/ScreenHider.tsx:123 #: src/view/shell/desktop/LeftNav.tsx:104 msgid "Go back" msgstr "뒤로" -#: src/view/screens/ProfileFeed.tsx:106 +#: src/screens/Profile/ErrorState.tsx:62 +#: src/screens/Profile/ErrorState.tsx:66 #: src/view/screens/ProfileFeed.tsx:111 -#: src/view/screens/ProfileList.tsx:902 -#: src/view/screens/ProfileList.tsx:907 +#: src/view/screens/ProfileFeed.tsx:116 +#: src/view/screens/ProfileList.tsx:916 +#: src/view/screens/ProfileList.tsx:921 msgid "Go Back" msgstr "뒤로" +#: src/components/ReportDialog/SelectReportOptionView.tsx:73 +#: src/components/ReportDialog/SubmitView.tsx:104 #: src/screens/Onboarding/Layout.tsx:104 #: src/screens/Onboarding/Layout.tsx:193 msgid "Go back to previous step" @@ -1729,21 +1753,25 @@ msgstr "@{queryMaybeHandle}(으)로 ì´ë™" msgid "Go to next" msgstr "다ìŒ" +#: src/lib/moderation/useGlobalLabelStrings.ts:46 +msgid "Graphic Media" +msgstr "그래픽 미디어" + #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "핸들" -#: src/Navigation.tsx:270 -msgid "Hashtag" -msgstr "" +#: src/lib/moderation/useReportOptions.ts:32 +msgid "Harassment, trolling, or intolerance" +msgstr "ê´´ë¡íž˜, ë¶„ìŸ ìœ ë°œ ë˜ëŠ” 차별" -#: src/components/RichText.tsx:188 -#~ msgid "Hashtag: {tag}" -#~ msgstr "" +#: src/Navigation.tsx:282 +msgid "Hashtag" +msgstr "해시태그" #: src/components/RichText.tsx:190 msgid "Hashtag: #{tag}" -msgstr "" +msgstr "해시태그: #{tag}" #: src/view/com/auth/create/CreateAccount.tsx:208 msgid "Having trouble?" @@ -1770,41 +1798,42 @@ msgstr "다ìŒì€ 사용ìžì˜ 관심사를 기반으로 한 몇 가지 ì£¼ì œë³ msgid "Here is your app password." msgstr "앱 비밀번호입니다." -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:41 -#: src/view/com/modals/ContentFilteringSettings.tsx:251 -#: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/com/util/moderation/PostHider.tsx:108 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:43 +#: src/components/moderation/PostHider.tsx:107 +#: src/lib/moderation/useLabelBehaviorDescription.ts:15 +#: src/lib/moderation/useLabelBehaviorDescription.ts:20 +#: src/lib/moderation/useLabelBehaviorDescription.ts:25 +#: src/lib/moderation/useLabelBehaviorDescription.ts:30 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:52 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:76 +#: src/view/com/util/forms/PostDropdownBtn.tsx:328 msgid "Hide" msgstr "숨기기" -#: src/view/com/modals/ContentFilteringSettings.tsx:224 -#: src/view/com/notifications/FeedItem.tsx:326 +#: src/view/com/notifications/FeedItem.tsx:325 msgctxt "action" msgid "Hide" msgstr "숨기기" #: src/view/com/util/forms/PostDropdownBtn.tsx:276 -#: src/view/com/util/forms/PostDropdownBtn.tsx:287 +#: src/view/com/util/forms/PostDropdownBtn.tsx:278 msgid "Hide post" msgstr "게시물 숨기기" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:67 +#: src/components/moderation/PostHider.tsx:64 msgid "Hide the content" msgstr "콘í…ì¸ ìˆ¨ê¸°ê¸°" -#: src/view/com/util/forms/PostDropdownBtn.tsx:280 +#: src/view/com/util/forms/PostDropdownBtn.tsx:325 msgid "Hide this post?" msgstr "ì´ ê²Œì‹œë¬¼ì„ ìˆ¨ê¸°ì‹œê² ìŠµë‹ˆê¹Œ?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:315 msgid "Hide user list" msgstr "ì‚¬ìš©ìž ë¦¬ìŠ¤íŠ¸ 숨기기" -#: src/view/com/profile/ProfileHeader.tsx:487 -msgid "Hides posts from {0} in your feed" -msgstr "피드ì—서 {0} ë‹˜ì˜ ê²Œì‹œë¬¼ì„ ìˆ¨ê¹ë‹ˆë‹¤" - #: src/view/com/posts/FeedErrorMessage.tsx:111 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." msgstr "피드 ì„œë²„ì— ì—°ê²°í•˜ëŠ” 중 ì–´ë–¤ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. 피드 ì†Œìœ ìžì—게 ì´ ë¬¸ì œì— ëŒ€í•´ ì•Œë ¤ì£¼ì„¸ìš”." @@ -1825,21 +1854,22 @@ msgstr "피드 서버ì—서 ìž˜ëª»ëœ ì‘ë‹µì„ ë³´ëƒˆìŠµë‹ˆë‹¤. 피드 ì†Œìœ ìž msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "ì´ í”¼ë“œë¥¼ 찾는 ë° ë¬¸ì œê°€ 있습니다. 피드가 ì‚ì œë˜ì—ˆì„ 수 있습니다." -#: src/Navigation.tsx:442 -#: src/view/shell/bottom-bar/BottomBar.tsx:137 +#: src/screens/Moderation/index.tsx:61 +msgid "Hmmmm, it seems we're having trouble loading this data. See below for more details. If this issue persists, please contact us." +msgstr "ì´ ë°ì´í„°ë¥¼ 불러오는 ë° ë¬¸ì œê°€ 있는 것 같습니다. ìžì„¸í•œ ë‚´ìš©ì€ ì•„ëž˜ë¥¼ 참조하세요. ì´ ë¬¸ì œê°€ ì§€ì†ë˜ë©´ 문ì˜í•´ 주세요." + +#: src/screens/Profile/ErrorState.tsx:31 +msgid "Hmmmm, we couldn't load that moderation service." +msgstr "ê²€í† ì„œë¹„ìŠ¤ë¥¼ 불러올 수 없습니다." + +#: src/Navigation.tsx:454 +#: src/view/shell/bottom-bar/BottomBar.tsx:139 #: src/view/shell/desktop/LeftNav.tsx:306 #: src/view/shell/Drawer.tsx:398 #: src/view/shell/Drawer.tsx:399 msgid "Home" msgstr "홈" -#: src/Navigation.tsx:247 -#: src/view/com/pager/FeedsTabBarMobile.tsx:123 -#: src/view/screens/PreferencesHomeFeed.tsx:104 -#: src/view/screens/Settings/index.tsx:543 -#~ msgid "Home Feed Preferences" -#~ msgstr "홈 피드 ì„¤ì •" - #: src/view/com/auth/create/Step1.tsx:75 #: src/view/com/auth/login/ForgotPasswordForm.tsx:120 msgid "Hosting provider" @@ -1869,9 +1899,21 @@ msgstr "대체 í…스트가 긴 경우 대체 í…스트 확장 ìƒíƒœë¥¼ ì „í™˜í msgid "If none are selected, suitable for all ages." msgstr "ì•„ë¬´ê²ƒë„ ì„ íƒí•˜ì§€ 않으면 ëª¨ë“ ì—°ë ¹ëŒ€ì— ì 합하다는 뜻입니다." +#: src/view/screens/ProfileList.tsx:610 +msgid "If you delete this list, you won't be able to recover it." +msgstr "ì´ ë¦¬ìŠ¤íŠ¸ë¥¼ ì‚ì œí•˜ë©´ 다시 ë³µêµ¬í• ìˆ˜ 없습니다." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:316 +msgid "If you remove this post, you won't be able to recover it." +msgstr "ì´ ê²Œì‹œë¬¼ì„ ì‚ì œí•˜ë©´ 다시 ë³µêµ¬í• ìˆ˜ 없습니다." + #: src/view/com/modals/ChangePassword.tsx:146 msgid "If you want to change your password, we will send you a code to verify that this is your account." -msgstr "" +msgstr "비밀번호를 ë³€ê²½í•˜ê³ ì‹¶ë‹¤ë©´ ë³¸ì¸ ê³„ì •ìž„ì„ í™•ì¸í• 수 있는 코드를 ë³´ë‚´ë“œë¦¬ê² ìŠµë‹ˆë‹¤." + +#: src/lib/moderation/useReportOptions.ts:36 +msgid "Illegal and Urgent" +msgstr "불법 ë° ê¸´ê¸‰ 사í•" #: src/view/com/util/images/Gallery.tsx:38 msgid "Image" @@ -1881,10 +1923,9 @@ msgstr "ì´ë¯¸ì§€" msgid "Image alt text" msgstr "ì´ë¯¸ì§€ 대체 í…스트" -#: src/view/com/util/UserAvatar.tsx:311 -#: src/view/com/util/UserBanner.tsx:118 -msgid "Image options" -msgstr "ì´ë¯¸ì§€ 옵션" +#: src/lib/moderation/useReportOptions.ts:47 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "ì‹ ì› ë˜ëŠ” 소ì†ì— 대한 ì‚¬ì¹ ë˜ëŠ” 허위 주장" #: src/view/com/auth/login/SetNewPasswordForm.tsx:138 msgid "Input code sent to your email for password reset" @@ -1914,10 +1955,6 @@ msgstr "새 비밀번호를 ìž…ë ¥í•©ë‹ˆë‹¤" msgid "Input password for account deletion" msgstr "ê³„ì •ì„ ì‚ì œí•˜ê¸° 위해 비밀번호를 ìž…ë ¥í•©ë‹ˆë‹¤" -#: src/view/com/auth/create/Step2.tsx:196 -#~ msgid "Input phone number for SMS verification" -#~ msgstr "SMS ì¸ì¦ì— ì‚¬ìš©í• ì „í™”ë²ˆí˜¸ë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤" - #: src/view/com/auth/login/LoginForm.tsx:230 msgid "Input the password tied to {identifier}" msgstr "{identifier}ì— ì—°ê²°ëœ ë¹„ë°€ë²ˆí˜¸ë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤" @@ -1926,14 +1963,6 @@ msgstr "{identifier}ì— ì—°ê²°ëœ ë¹„ë°€ë²ˆí˜¸ë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤" msgid "Input the username or email address you used at signup" msgstr "가입 시 사용한 ì‚¬ìš©ìž ì´ë¦„ ë˜ëŠ” ì´ë©”ì¼ ì£¼ì†Œë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤" -#: src/view/com/auth/create/Step2.tsx:271 -#~ msgid "Input the verification code we have texted to you" -#~ msgstr "ë¬¸ìž ë©”ì‹œì§€ë¡œ ì „ì†¡ëœ ì¸ì¦ 코드를 ìž…ë ¥í•©ë‹ˆë‹¤" - -#: src/view/com/modals/Waitlist.tsx:90 -#~ msgid "Input your email to get on the Bluesky waitlist" -#~ msgstr "Bluesky ëŒ€ê¸°ìž ëª…ë‹¨ì— ë“±ë¡í•˜ë ¤ë©´ ì´ë©”ì¼ì„ ìž…ë ¥í•©ë‹ˆë‹¤" - #: src/view/com/auth/login/LoginForm.tsx:229 msgid "Input your password" msgstr "비밀번호를 ìž…ë ¥í•©ë‹ˆë‹¤" @@ -1942,7 +1971,7 @@ msgstr "비밀번호를 ìž…ë ¥í•©ë‹ˆë‹¤" msgid "Input your user handle" msgstr "ì‚¬ìš©ìž í•¸ë“¤ì„ ìž…ë ¥í•©ë‹ˆë‹¤" -#: src/view/com/post-thread/PostThreadItem.tsx:226 +#: src/view/com/post-thread/PostThreadItem.tsx:225 msgid "Invalid or unsupported post record" msgstr "ìœ íš¨í•˜ì§€ 않거나 ì§€ì›ë˜ì§€ 않는 게시물 기ë¡" @@ -1950,10 +1979,6 @@ msgstr "ìœ íš¨í•˜ì§€ 않거나 ì§€ì›ë˜ì§€ 않는 게시물 기ë¡" msgid "Invalid username or password" msgstr "ìž˜ëª»ëœ ì‚¬ìš©ìž ì´ë¦„ ë˜ëŠ” 비밀번호" -#: src/view/screens/Settings.tsx:411 -#~ msgid "Invite" -#~ msgstr "초대" - #: src/view/com/modals/InviteCodes.tsx:93 msgid "Invite a Friend" msgstr "친구 초대하기" @@ -1971,10 +1996,6 @@ msgstr "초대 코드가 올바르지 않습니다. 코드를 올바르게 ìž…ë msgid "Invite codes: {0} available" msgstr "초대 코드: {0}ê°œ 사용 가능" -#: src/view/shell/Drawer.tsx:645 -#~ msgid "Invite codes: {invitesAvailable} available" -#~ msgstr "초대 코드: {invitesAvailable}ê°œ 사용 가능" - #: src/view/com/modals/InviteCodes.tsx:169 msgid "Invite codes: 1 available" msgstr "초대 코드: 1ê°œ 사용 가능" @@ -1988,37 +2009,56 @@ msgstr "ë‚´ê°€ 팔로우하는 ì‚¬ëžŒë“¤ì˜ ê²Œì‹œë¬¼ì´ ì˜¬ë¼ì˜¤ëŠ” 대로 표 msgid "Jobs" msgstr "채용" -#: src/view/com/modals/Waitlist.tsx:67 -#~ msgid "Join the waitlist" -#~ msgstr "ëŒ€ê¸°ìž ëª…ë‹¨ 등ë¡" - -#: src/view/com/auth/create/Step1.tsx:174 -#: src/view/com/auth/create/Step1.tsx:178 -#~ msgid "Join the waitlist." -#~ msgstr "ëŒ€ê¸°ìž ëª…ë‹¨ì— ë“±ë¡í•˜ì„¸ìš”." - -#: src/view/com/modals/Waitlist.tsx:128 -#~ msgid "Join Waitlist" -#~ msgstr "ëŒ€ê¸°ìž ëª…ë‹¨ 등ë¡" - #: src/screens/Onboarding/index.tsx:24 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} ë‹˜ì´ ë¼ë²¨ ì§€ì •í•¨." + +#: src/components/moderation/ContentHider.tsx:142 +msgid "Labeled by the author." +msgstr "작성ìžê°€ ë¼ë²¨ ì§€ì •í•¨." + +#: src/view/screens/Profile.tsx:186 +msgid "Labels" +msgstr "ë¼ë²¨" + +#: src/screens/Profile/Sections/Labels.tsx:161 +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:63 +msgid "Labels on your account" +msgstr "ë‚´ ê³„ì •ì˜ ë¼ë²¨" + +#: src/components/moderation/LabelsOnMeDialog.tsx:65 +msgid "Labels on your content" +msgstr "ë‚´ 콘í…ì¸ ì˜ ë¼ë²¨" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:104 msgid "Language selection" msgstr "언어 ì„ íƒ" -#: src/view/screens/Settings/index.tsx:594 +#: src/view/screens/Settings/index.tsx:612 msgid "Language settings" msgstr "언어 ì„¤ì •" -#: src/Navigation.tsx:142 +#: src/Navigation.tsx:144 #: src/view/screens/LanguageSettings.tsx:89 msgid "Language Settings" msgstr "언어 ì„¤ì •" -#: src/view/screens/Settings/index.tsx:603 +#: src/view/screens/Settings/index.tsx:621 msgid "Languages" msgstr "언어" @@ -2026,28 +2066,28 @@ msgstr "언어" msgid "Last step!" msgstr "마지막 단계예요!" -#: src/view/com/util/moderation/ContentHider.tsx:103 -msgid "Learn more" -msgstr "ë” ì•Œì•„ë³´ê¸°" - -#: src/view/com/util/moderation/PostAlerts.tsx:47 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:65 -#: src/view/com/util/moderation/ScreenHider.tsx:104 +#: src/components/moderation/ScreenHider.tsx:128 msgid "Learn More" msgstr "ë” ì•Œì•„ë³´ê¸°" -#: src/view/com/util/moderation/ContentHider.tsx:85 -#: src/view/com/util/moderation/PostAlerts.tsx:40 -#: src/view/com/util/moderation/PostHider.tsx:78 -#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 -#: src/view/com/util/moderation/ScreenHider.tsx:101 +#: src/components/moderation/ContentHider.tsx:65 +#: src/components/moderation/ContentHider.tsx:128 +msgid "Learn more about the moderation applied to this content." +msgstr "ì´ ì½˜í…ì¸ ì— ì ìš©ëœ ê²€í† ì„¤ì •ì— ëŒ€í•´ ìžì„¸ížˆ 알아보세요." + +#: src/components/moderation/PostHider.tsx:85 +#: src/components/moderation/ScreenHider.tsx:125 msgid "Learn more about this warning" msgstr "ì´ ê²½ê³ ì— ëŒ€í•´ ë” ì•Œì•„ë³´ê¸°" -#: src/view/screens/Moderation.tsx:262 +#: src/screens/Moderation/index.tsx:555 msgid "Learn more about what is public on Bluesky." msgstr "Blueskyì—서 공개ë˜ëŠ” í•ëª©ì— ëŒ€í•´ ìžì„¸ížˆ 알아보세요." +#: src/components/moderation/ContentHider.tsx:152 +msgid "Learn more." +msgstr "ë” ì•Œì•„ë³´ê¸°" + #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 msgid "Leave them all unchecked to see any language." msgstr "ëª¨ë“ ì–¸ì–´ë¥¼ ë³´ë ¤ë©´ ëª¨ë‘ ì„ íƒí•˜ì§€ ì•Šì€ ìƒíƒœë¡œ ë‘세요." @@ -2060,7 +2100,7 @@ msgstr "Bluesky ë– ë‚˜ê¸°" msgid "left to go." msgstr "명 남았습니다." -#: src/view/screens/Settings/index.tsx:278 +#: src/view/screens/Settings/index.tsx:292 msgid "Legacy storage cleared, you need to restart the app now." msgstr "ë ˆê±°ì‹œ ìŠ¤í† ë¦¬ì§€ê°€ 지워졌으며 지금 ì•±ì„ ë‹¤ì‹œ 시작해야 합니다." @@ -2073,37 +2113,42 @@ msgstr "비밀번호를 ìž¬ì„¤ì •í•´ 봅시다!" msgid "Let's go!" msgstr "출발!" -#: src/view/com/util/UserAvatar.tsx:248 -#: src/view/com/util/UserBanner.tsx:62 -msgid "Library" -msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬" - -#: src/view/screens/Settings/index.tsx:479 +#: src/view/screens/Settings/index.tsx:497 msgid "Light" msgstr "ë°ìŒ" -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Like" msgstr "좋아요" -#: src/view/screens/ProfileFeed.tsx:591 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:257 +#: src/view/screens/ProfileFeed.tsx:572 msgid "Like this feed" msgstr "ì´ í”¼ë“œì— ì¢‹ì•„ìš” 표시" -#: src/Navigation.tsx:199 +#: src/components/LikesDialog.tsx:87 +#: src/Navigation.tsx:201 +#: src/Navigation.tsx:206 msgid "Liked by" msgstr "좋아요 표시한 사용ìž" +#: src/screens/Profile/ProfileLabelerLikedBy.tsx:42 #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked By" msgstr "좋아요 표시한 사용ìž" -#: src/view/com/feeds/FeedSourceCard.tsx:279 +#: src/view/com/feeds/FeedSourceCard.tsx:268 msgid "Liked by {0} {1}" msgstr "{0}ëª…ì˜ ì‚¬ìš©ìžê°€ 좋아함" -#: src/view/screens/ProfileFeed.tsx:606 +#: src/components/LabelingServiceCard/index.tsx:72 +msgid "Liked by {count} {0}" +msgstr "{count}ëª…ì˜ ì‚¬ìš©ìžê°€ 좋아함" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:277 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:291 +#: src/view/screens/ProfileFeed.tsx:587 msgid "Liked by {likeCount} {0}" msgstr "{likeCount}ëª…ì˜ ì‚¬ìš©ìžê°€ 좋아함" @@ -2115,15 +2160,15 @@ msgstr "ë‹˜ì´ ë‚´ 맞춤 피드를 좋아합니다" msgid "liked your post" msgstr "ë‹˜ì´ ë‚´ ê²Œì‹œë¬¼ì„ ì¢‹ì•„í•©ë‹ˆë‹¤" -#: src/view/screens/Profile.tsx:183 +#: src/view/screens/Profile.tsx:191 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 "ì´ ê²Œì‹œë¬¼ì„ ì¢‹ì•„ìš” 표시합니다" -#: src/Navigation.tsx:168 +#: src/Navigation.tsx:170 msgid "List" msgstr "리스트" @@ -2131,15 +2176,15 @@ msgstr "리스트" msgid "List Avatar" msgstr "리스트 아바타" -#: src/view/screens/ProfileList.tsx:324 +#: src/view/screens/ProfileList.tsx:311 msgid "List blocked" msgstr "리스트 차단ë¨" -#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/com/feeds/FeedSourceCard.tsx:220 msgid "List by {0}" msgstr "{0} ë‹˜ì˜ ë¦¬ìŠ¤íŠ¸" -#: src/view/screens/ProfileList.tsx:378 +#: src/view/screens/ProfileList.tsx:355 msgid "List deleted" msgstr "리스트 ì‚ì œë¨" @@ -2151,24 +2196,25 @@ msgstr "리스트 뮤트ë¨" msgid "List Name" msgstr "리스트 ì´ë¦„" -#: src/view/screens/ProfileList.tsx:343 +#: src/view/screens/ProfileList.tsx:325 msgid "List unblocked" msgstr "리스트 차단 í•´ì œë¨" -#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:297 msgid "List unmuted" msgstr "리스트 언뮤트ë¨" -#: src/Navigation.tsx:112 -#: src/view/screens/Profile.tsx:185 +#: src/Navigation.tsx:114 +#: src/view/screens/Profile.tsx:187 +#: src/view/screens/Profile.tsx:193 #: src/view/shell/desktop/LeftNav.tsx:379 #: src/view/shell/Drawer.tsx:492 #: src/view/shell/Drawer.tsx:493 msgid "Lists" msgstr "리스트" -#: src/view/com/post-thread/PostThread.tsx:333 -#: src/view/com/post-thread/PostThread.tsx:341 +#: src/view/com/post-thread/PostThread.tsx:334 +#: src/view/com/post-thread/PostThread.tsx:342 msgid "Load more posts" msgstr "ë” ë§Žì€ ê²Œì‹œë¬¼ 불러오기" @@ -2176,10 +2222,10 @@ msgstr "ë” ë§Žì€ ê²Œì‹œë¬¼ 불러오기" msgid "Load new notifications" msgstr "새 알림 불러오기" +#: src/screens/Profile/Sections/Feed.tsx:70 #: src/view/com/feeds/FeedPage.tsx:115 -#: src/view/screens/Profile.tsx:440 #: src/view/screens/ProfileFeed.tsx:495 -#: src/view/screens/ProfileList.tsx:681 +#: src/view/screens/ProfileList.tsx:695 msgid "Load new posts" msgstr "새 게시물 불러오기" @@ -2187,11 +2233,7 @@ msgstr "새 게시물 불러오기" msgid "Loading..." msgstr "불러오는 중…" -#: src/view/com/modals/ServerInput.tsx:50 -#~ msgid "Local dev server" -#~ msgstr "로컬 개발 서버" - -#: src/Navigation.tsx:209 +#: src/Navigation.tsx:221 msgid "Log" msgstr "로그" @@ -2202,7 +2244,7 @@ msgstr "로그" msgid "Log out" msgstr "로그아웃" -#: src/view/screens/Moderation.tsx:155 +#: src/screens/Moderation/index.tsx:448 msgid "Logged-out visibility" msgstr "로그아웃 표시" @@ -2216,17 +2258,17 @@ msgstr "ì´ê³³ì´ ë‹¹ì‹ ì´ ê°€ê³ ìž í•˜ëŠ” ê³³ì¸ì§€ 확ì¸í•˜ì„¸ìš”!" #: src/components/dialogs/MutedWords.tsx:83 msgid "Manage your muted words and tags" -msgstr "" +msgstr "뮤트한 단어 ë° íƒœê·¸ 관리" #: src/view/com/auth/create/Step2.tsx:118 msgid "May not be longer than 253 characters" -msgstr "" +msgstr "253ìžë¥¼ ë„˜ì„ ìˆ˜ 없습니다" #: src/view/com/auth/create/Step2.tsx:109 msgid "May only contain letters and numbers" -msgstr "" +msgstr "문ìžì™€ 숫ìžë§Œ ìž…ë ¥í• ìˆ˜ 있습니다" -#: src/view/screens/Profile.tsx:182 +#: src/view/screens/Profile.tsx:190 msgid "Media" msgstr "미디어" @@ -2243,31 +2285,39 @@ msgstr "멘션한 사용ìž" msgid "Menu" msgstr "메뉴" -#: src/view/com/posts/FeedErrorMessage.tsx:197 +#: src/view/com/posts/FeedErrorMessage.tsx:192 msgid "Message from server: {0}" msgstr "서버ì—서 보낸 메시지: {0}" -#: src/Navigation.tsx:117 -#: src/view/screens/Moderation.tsx:66 -#: src/view/screens/Settings/index.tsx:625 +#: src/lib/moderation/useReportOptions.ts:45 +msgid "Misleading Account" +msgstr "ì˜¤í•´ì˜ ì†Œì§€ê°€ 있는 ê³„ì •" + +#: src/Navigation.tsx:119 +#: src/screens/Moderation/index.tsx:106 +#: src/view/screens/Settings/index.tsx:643 #: src/view/shell/desktop/LeftNav.tsx:397 #: src/view/shell/Drawer.tsx:511 #: src/view/shell/Drawer.tsx:512 msgid "Moderation" msgstr "ê²€í† " +#: src/components/moderation/ModerationDetailsDialog.tsx:113 +msgid "Moderation details" +msgstr "ê²€í† ì„¸ë¶€ ì •ë³´" + #: src/view/com/lists/ListCard.tsx:93 #: src/view/com/modals/UserAddRemoveLists.tsx:206 msgid "Moderation list by {0}" msgstr "{0} ë‹˜ì˜ ê²€í† ë¦¬ìŠ¤íŠ¸" -#: src/view/screens/ProfileList.tsx:775 +#: src/view/screens/ProfileList.tsx:789 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:773 +#: src/view/screens/ProfileList.tsx:787 msgid "Moderation list by you" msgstr "ë‚´ ê²€í† ë¦¬ìŠ¤íŠ¸" @@ -2279,96 +2329,93 @@ msgstr "ê²€í† ë¦¬ìŠ¤íŠ¸ ìƒì„±ë¨" msgid "Moderation list updated" msgstr "ê²€í† ë¦¬ìŠ¤íŠ¸ ì—…ë°ì´íЏë¨" -#: src/view/screens/Moderation.tsx:114 +#: src/screens/Moderation/index.tsx:246 msgid "Moderation lists" msgstr "ê²€í† ë¦¬ìŠ¤íŠ¸" -#: src/Navigation.tsx:122 +#: src/Navigation.tsx:124 #: src/view/screens/ModerationModlists.tsx:58 msgid "Moderation Lists" msgstr "ê²€í† ë¦¬ìŠ¤íŠ¸" -#: src/view/screens/Settings/index.tsx:619 +#: src/view/screens/Settings/index.tsx:637 msgid "Moderation settings" msgstr "ê²€í† ì„¤ì •" -#: src/view/com/modals/ModerationDetails.tsx:35 +#: src/Navigation.tsx:216 +msgid "Moderation states" +msgstr "ê²€í† ìƒíƒœ" + +#: src/screens/Moderation/index.tsx:218 +msgid "Moderation tools" +msgstr "ê²€í† ë„구" + +#: src/components/moderation/ModerationDetailsDialog.tsx:49 +#: src/lib/moderation/useModerationCauseDescription.ts:40 msgid "Moderator has chosen to set a general warning on the content." -msgstr "중재ìžê°€ 콘í…ì¸ ì— ì¼ë°˜ ê²½ê³ ë¥¼ ì„¤ì •í–ˆìŠµë‹ˆë‹¤." +msgstr "관리ìžê°€ 콘í…ì¸ ì— ì¼ë°˜ ê²½ê³ ë¥¼ ì„¤ì •í–ˆìŠµë‹ˆë‹¤." #: src/view/shell/desktop/Feeds.tsx:65 msgid "More feeds" msgstr "피드 ë” ë³´ê¸°" -#: src/view/com/profile/ProfileHeader.tsx:523 -#: src/view/screens/ProfileFeed.tsx:363 -#: src/view/screens/ProfileList.tsx:617 +#: src/view/screens/ProfileList.tsx:599 msgid "More options" msgstr "옵션 ë” ë³´ê¸°" -#: src/view/com/util/forms/PostDropdownBtn.tsx:315 -#~ msgid "More post options" -#~ msgstr "게시물 옵션 ë” ë³´ê¸°" - #: src/view/screens/PreferencesThreads.tsx:82 msgid "Most-liked replies first" msgstr "좋아요 ë§Žì€ ìˆœ" #: src/view/com/auth/create/Step2.tsx:122 msgid "Must be at least 3 characters" -msgstr "" +msgstr "최소 3ìž ì´ìƒì´ì–´ì•¼ 합니다" #: src/components/TagMenu/index.tsx:249 msgid "Mute" -msgstr "" +msgstr "뮤트" #: src/components/TagMenu/index.web.tsx:105 msgid "Mute {truncatedTag}" -msgstr "" +msgstr "{truncatedTag} 뮤트" -#: src/view/com/profile/ProfileHeader.tsx:327 +#: src/view/com/profile/ProfileMenu.tsx:279 +#: src/view/com/profile/ProfileMenu.tsx:286 msgid "Mute Account" msgstr "ê³„ì • 뮤트" -#: src/view/screens/ProfileList.tsx:544 +#: src/view/screens/ProfileList.tsx:518 msgid "Mute accounts" msgstr "ê³„ì • 뮤트" #: src/components/TagMenu/index.tsx:209 msgid "Mute all {displayTag} posts" -msgstr "" - -#: src/components/TagMenu/index.tsx:211 -#~ msgid "Mute all {tag} posts" -#~ msgstr "" +msgstr "ëª¨ë“ {displayTag} 게시물 뮤트" #: src/components/dialogs/MutedWords.tsx:149 msgid "Mute in tags only" -msgstr "" +msgstr "태그ì—서만 뮤트" #: src/components/dialogs/MutedWords.tsx:134 msgid "Mute in text & tags" -msgstr "" +msgstr "글 ë° íƒœê·¸ì—서 뮤트" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 +#: src/view/screens/ProfileList.tsx:624 msgid "Mute list" msgstr "리스트 뮤트" -#: src/view/screens/ProfileList.tsx:275 +#: src/view/screens/ProfileList.tsx:619 msgid "Mute these accounts?" msgstr "ì´ ê³„ì •ë“¤ì„ ë®¤íŠ¸í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" -#: src/view/screens/ProfileList.tsx:279 -msgid "Mute this List" -msgstr "ì´ ë¦¬ìŠ¤íŠ¸ 뮤트" - #: src/components/dialogs/MutedWords.tsx:127 msgid "Mute this word in post text and tags" -msgstr "" +msgstr "게시물 글 ë° íƒœê·¸ì—서 ì´ ë‹¨ì–´ 뮤트하기" #: src/components/dialogs/MutedWords.tsx:142 msgid "Mute this word in tags only" -msgstr "" +msgstr "태그ì—서만 ì´ ë‹¨ì–´ 뮤트하기" #: src/view/com/util/forms/PostDropdownBtn.tsx:251 #: src/view/com/util/forms/PostDropdownBtn.tsx:257 @@ -2378,17 +2425,17 @@ msgstr "ìŠ¤ë ˆë“œ 뮤트" #: src/view/com/util/forms/PostDropdownBtn.tsx:267 #: src/view/com/util/forms/PostDropdownBtn.tsx:269 msgid "Mute words & tags" -msgstr "" +msgstr "단어 ë° íƒœê·¸ 뮤트" #: src/view/com/lists/ListCard.tsx:102 msgid "Muted" msgstr "뮤트ë¨" -#: src/view/screens/Moderation.tsx:128 +#: src/screens/Moderation/index.tsx:258 msgid "Muted accounts" msgstr "뮤트한 ê³„ì •" -#: src/Navigation.tsx:127 +#: src/Navigation.tsx:129 #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "뮤트한 ê³„ì •" @@ -2397,15 +2444,20 @@ msgstr "뮤트한 ê³„ì •" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "ê³„ì •ì„ ë®¤íŠ¸í•˜ë©´ 피드와 알림ì—서 해당 ê³„ì •ì˜ ê²Œì‹œë¬¼ì´ ì‚¬ë¼ì§‘니다. 뮤트 목ë¡ì€ ì™„ì „ížˆ 비공개로 ìœ ì§€ë©ë‹ˆë‹¤." -#: src/view/screens/Moderation.tsx:100 +#: src/lib/moderation/useModerationCauseDescription.ts:85 +msgid "Muted by \"{0}\"" +msgstr "\"{0}\" ë‹˜ì´ ë®¤íŠ¸í•¨" + +#: src/screens/Moderation/index.tsx:234 msgid "Muted words & tags" -msgstr "" +msgstr "뮤트한 단어 ë° íƒœê·¸" -#: src/view/screens/ProfileList.tsx:277 +#: src/view/screens/ProfileList.tsx:621 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "뮤트 목ë¡ì€ 비공개입니다. 뮤트한 ê³„ì •ì€ ë‚˜ì™€ ìƒí˜¸ìž‘ìš©í• ìˆ˜ 있지만 해당 ê³„ì •ì˜ ê²Œì‹œë¬¼ì„ ë³´ê±°ë‚˜ 해당 ê³„ì •ìœ¼ë¡œë¶€í„° ì•Œë¦¼ì„ ë°›ì„ ìˆ˜ 없습니다." -#: src/view/com/modals/BirthDateSettings.tsx:56 +#: src/components/dialogs/BirthDateSettings.tsx:34 +#: src/components/dialogs/BirthDateSettings.tsx:86 msgid "My Birthday" msgstr "ë‚´ ìƒë…„ì›”ì¼" @@ -2417,13 +2469,13 @@ msgstr "ë‚´ 피드" msgid "My Profile" msgstr "ë‚´ 프로필" -#: src/view/screens/Settings/index.tsx:582 +#: src/view/screens/Settings/index.tsx:600 msgid "My Saved Feeds" msgstr "ë‚´ ì €ìž¥ëœ í”¼ë“œ" #: src/view/com/auth/server-input/index.tsx:118 msgid "my-server.com" -msgstr "" +msgstr "my-server.com" #: src/view/com/modals/AddAppPasswords.tsx:179 #: src/view/com/modals/CreateOrEditList.tsx:290 @@ -2434,6 +2486,12 @@ msgstr "ì´ë¦„" msgid "Name is required" msgstr "ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”" +#: src/lib/moderation/useReportOptions.ts:57 +#: src/lib/moderation/useReportOptions.ts:78 +#: src/lib/moderation/useReportOptions.ts:86 +msgid "Name or Description Violates Community Standards" +msgstr "ì´ë¦„ ë˜ëŠ” ì„¤ëª…ì´ ì»¤ë®¤ë‹ˆí‹° ê¸°ì¤€ì„ ìœ„ë°˜í•¨" + #: src/screens/Onboarding/index.tsx:25 msgid "Nature" msgstr "ìžì—°" @@ -2450,6 +2508,10 @@ msgstr "ë‹¤ìŒ í™”ë©´ìœ¼ë¡œ ì´ë™í•©ë‹ˆë‹¤" msgid "Navigates to your profile" msgstr "ë‚´ 프로필로 ì´ë™í•©ë‹ˆë‹¤" +#: src/components/ReportDialog/SelectReportOptionView.tsx:123 +msgid "Need to report a copyright violation?" +msgstr "ì €ìž‘ê¶Œ ìœ„ë°˜ì„ ì‹ ê³ í•´ì•¼ 하나요?" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" @@ -2458,15 +2520,11 @@ msgstr "{0}ì—서 ìž„ë² ë“œë¥¼ 불러오지 않습니다" #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:72 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." -msgstr "팔로워와 ë°ì´í„°ì— 대한 ì ‘ê·¼ ê¶Œí•œì„ ìžƒì§€ 않습니다." +msgstr "팔로워와 ë°ì´í„°ì— 대한 ì ‘ê·¼ ê¶Œí•œì„ ìžƒì§€ 마세요." #: src/screens/Onboarding/StepFinished.tsx:119 msgid "Never lose access to your followers or data." -msgstr "팔로워 ë˜ëŠ” ë°ì´í„°ì— 대한 ì ‘ê·¼ ê¶Œí•œì„ ìžƒì§€ 않습니다." - -#: src/components/dialogs/MutedWords.tsx:293 -msgid "Nevermind" -msgstr "" +msgstr "팔로워 ë˜ëŠ” ë°ì´í„°ì— 대한 ì ‘ê·¼ ê¶Œí•œì„ ìžƒì§€ 마세요." #: src/view/screens/Lists.tsx:76 msgctxt "action" @@ -2487,7 +2545,7 @@ msgstr "새 비밀번호" #: src/view/com/modals/ChangePassword.tsx:215 msgid "New Password" -msgstr "" +msgstr "새 비밀번호" #: src/view/com/feeds/FeedPage.tsx:126 msgctxt "action" @@ -2496,10 +2554,10 @@ msgstr "새 게시물" #: src/view/screens/Feeds.tsx:555 #: src/view/screens/Notifications.tsx:168 -#: src/view/screens/Profile.tsx:382 +#: src/view/screens/Profile.tsx:450 #: src/view/screens/ProfileFeed.tsx:433 -#: src/view/screens/ProfileList.tsx:196 -#: src/view/screens/ProfileList.tsx:224 +#: src/view/screens/ProfileList.tsx:199 +#: src/view/screens/ProfileList.tsx:227 #: src/view/shell/desktop/LeftNav.tsx:248 msgid "New post" msgstr "새 게시물" @@ -2551,12 +2609,12 @@ msgstr "ë‹¤ìŒ ì´ë¯¸ì§€" msgid "No" msgstr "아니요" -#: src/view/screens/ProfileFeed.tsx:584 -#: src/view/screens/ProfileList.tsx:755 +#: src/view/screens/ProfileFeed.tsx:561 +#: src/view/screens/ProfileList.tsx:769 msgid "No description" msgstr "설명 ì—†ìŒ" -#: src/view/com/profile/ProfileHeader.tsx:170 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:111 msgid "No longer following {0}" msgstr "ë” ì´ìƒ {0} ë‹˜ì„ íŒ”ë¡œìš°í•˜ì§€ 않ìŒ" @@ -2569,9 +2627,9 @@ msgstr "ì•„ì§ ì•Œë¦¼ì´ ì—†ìŠµë‹ˆë‹¤." msgid "No result" msgstr "ê²°ê³¼ ì—†ìŒ" -#: src/components/Lists.tsx:192 +#: src/components/Lists.tsx:191 msgid "No results found" -msgstr "" +msgstr "결과를 ì°¾ì„ ìˆ˜ ì—†ìŒ" #: src/view/screens/Feeds.tsx:495 msgid "No results found for \"{query}\"" @@ -2591,12 +2649,21 @@ msgstr "괜찮습니다" msgid "Nobody" msgstr "ì—†ìŒ" +#: src/components/LikedByList.tsx:102 +#: src/components/LikesDialog.tsx:99 +msgid "Nobody has liked this yet. Maybe you should be the first!" +msgstr "ì•„ì§ ì•„ë¬´ë„ ì¢‹ì•„ìš”ë¥¼ 누르지 않았습니다. 첫 번째가 ë˜ì–´ 보세요!" + +#: src/lib/moderation/useGlobalLabelStrings.ts:42 +msgid "Non-sexual Nudity" +msgstr "ì„ ì •ì ì´ì§€ ì•Šì€ ë…¸ì¶œ" + #: src/view/com/modals/SelfLabel.tsx:135 msgid "Not Applicable." msgstr "해당 ì—†ìŒ." -#: src/Navigation.tsx:107 -#: src/view/screens/Profile.tsx:106 +#: src/Navigation.tsx:109 +#: src/view/screens/Profile.tsx:97 msgid "Not Found" msgstr "ì°¾ì„ ìˆ˜ ì—†ìŒ" @@ -2605,14 +2672,19 @@ msgstr "ì°¾ì„ ìˆ˜ ì—†ìŒ" msgid "Not right now" msgstr "ë‚˜ì¤‘ì— í•˜ê¸°" -#: src/view/screens/Moderation.tsx:252 +#: src/view/com/profile/ProfileMenu.tsx:368 +#: src/view/com/util/forms/PostDropdownBtn.tsx:342 +msgid "Note about sharing" +msgstr "ê³µìœ ê´€ë ¨ ì°¸ê³ ì‚¬í•" + +#: src/screens/Moderation/index.tsx:546 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/Navigation.tsx:457 +#: src/Navigation.tsx:469 #: src/view/screens/Notifications.tsx:124 #: src/view/screens/Notifications.tsx:148 -#: src/view/shell/bottom-bar/BottomBar.tsx:205 +#: src/view/shell/bottom-bar/BottomBar.tsx:207 #: src/view/shell/desktop/LeftNav.tsx:361 #: src/view/shell/Drawer.tsx:435 #: src/view/shell/Drawer.tsx:436 @@ -2623,9 +2695,17 @@ msgstr "알림" msgid "Nudity" msgstr "노출" -#: src/view/com/util/ErrorBoundary.tsx:35 +#: src/lib/moderation/useReportOptions.ts:71 +msgid "Nudity or pornography not labeled as such" +msgstr "누드 ë˜ëŠ” ìŒëž€ë¬¼ë¡œ ì„¤ì •ë˜ì§€ ì•Šì€ ì½˜í…ì¸ " + +#: src/lib/moderation/useLabelBehaviorDescription.ts:11 +msgid "Off" +msgstr "ë„기" + +#: src/view/com/util/ErrorBoundary.tsx:49 msgid "Oh no!" -msgstr "안 ë¼!" +msgstr "ì´ëŸ°!" #: src/screens/Onboarding/StepInterests/index.tsx:128 msgid "Oh no! Something went wrong." @@ -2639,11 +2719,11 @@ msgstr "확ì¸" msgid "Oldest replies first" msgstr "ì˜¤ëž˜ëœ ìˆœ" -#: src/view/screens/Settings/index.tsx:234 +#: src/view/screens/Settings/index.tsx:240 msgid "Onboarding reset" msgstr "온보딩 ìž¬ì„¤ì •" -#: src/view/com/composer/Composer.tsx:382 +#: src/view/com/composer/Composer.tsx:391 msgid "One or more images is missing alt text." msgstr "하나 ì´ìƒì˜ ì´ë¯¸ì§€ì— 대체 í…스트가 누ë½ë˜ì—ˆìŠµë‹ˆë‹¤." @@ -2651,13 +2731,13 @@ msgstr "하나 ì´ìƒì˜ ì´ë¯¸ì§€ì— 대체 í…스트가 누ë½ë˜ì—ˆìŠµë‹ˆë‹¤. msgid "Only {0} can reply." msgstr "{0}ë§Œ ë‹µê¸€ì„ ë‹¬ 수 있습니다." -#: src/components/Lists.tsx:82 +#: src/components/Lists.tsx:81 msgid "Oops, something went wrong!" -msgstr "" +msgstr "ì´ëŸ°, ë”ê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤!" -#: src/components/Lists.tsx:188 -#: src/view/screens/AppPasswords.tsx:65 -#: src/view/screens/Profile.tsx:106 +#: src/components/Lists.tsx:187 +#: src/view/screens/AppPasswords.tsx:67 +#: src/view/screens/Profile.tsx:97 msgid "Oops!" msgstr "ì´ëŸ°!" @@ -2665,32 +2745,33 @@ msgstr "ì´ëŸ°!" msgid "Open" msgstr "공개성" -#: src/view/screens/Moderation.tsx:75 -msgid "Open content filtering settings" -msgstr "" - -#: src/view/com/composer/Composer.tsx:477 -#: src/view/com/composer/Composer.tsx:478 +#: src/view/com/composer/Composer.tsx:486 +#: src/view/com/composer/Composer.tsx:487 msgid "Open emoji picker" msgstr "ì´ëª¨í‹°ì½˜ ì„ íƒê¸° 열기" -#: src/view/screens/Settings/index.tsx:712 +#: src/view/screens/ProfileFeed.tsx:299 +msgid "Open feed options menu" +msgstr "피드 옵션 메뉴 열기" + +#: src/view/screens/Settings/index.tsx:730 msgid "Open links with in-app browser" -msgstr "ë§í¬ë¥¼ ì¸ì•± 브ë¼ìš°ì €ë¡œ 엽니다" +msgstr "ë§í¬ë¥¼ ì¸ì•± 브ë¼ìš°ì €ë¡œ 열기" -#: src/view/screens/Moderation.tsx:92 -msgid "Open muted words settings" -msgstr "" +#: src/screens/Moderation/index.tsx:230 +msgid "Open muted words and tags settings" +msgstr "뮤트한 단어 ë° íƒœê·¸ ì„¤ì • 열기" #: src/view/com/home/HomeHeaderLayoutMobile.tsx:50 msgid "Open navigation" msgstr "내비게ì´ì…˜ 열기" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:183 msgid "Open post options menu" -msgstr "" +msgstr "게시물 옵션 메뉴 열기" -#: src/view/screens/Settings/index.tsx:804 +#: src/view/screens/Settings/index.tsx:822 +#: src/view/screens/Settings/index.tsx:832 msgid "Open storybook page" msgstr "ìŠ¤í† ë¦¬ë¶ íŽ˜ì´ì§€ 열기" @@ -2702,11 +2783,11 @@ msgstr "{numItems}번째 ì˜µì…˜ì„ ì—½ë‹ˆë‹¤" msgid "Opens additional details for a debug entry" msgstr "디버그 í•ëª©ì— ëŒ€í•œ 추가 세부 ì •ë³´ë¥¼ 엽니다" -#: src/view/com/notifications/FeedItem.tsx:349 +#: src/view/com/notifications/FeedItem.tsx:348 msgid "Opens an expanded list of users in this notification" msgstr "ì´ ì•Œë¦¼ì—서 í™•ìž¥ëœ ì‚¬ìš©ìž ëª©ë¡ì„ 엽니다" -#: src/view/com/composer/photos/OpenCameraBtn.tsx:61 +#: src/view/com/composer/photos/OpenCameraBtn.tsx:78 msgid "Opens camera on device" msgstr "기기ì—서 ì¹´ë©”ë¼ë¥¼ 엽니다" @@ -2714,7 +2795,7 @@ msgstr "기기ì—서 ì¹´ë©”ë¼ë¥¼ 엽니다" msgid "Opens composer" msgstr "답글 작성 ìƒìžë¥¼ 엽니다" -#: src/view/screens/Settings/index.tsx:595 +#: src/view/screens/Settings/index.tsx:613 msgid "Opens configurable language settings" msgstr "구성 가능한 언어 ì„¤ì •ì„ ì—½ë‹ˆë‹¤" @@ -2722,31 +2803,15 @@ msgstr "구성 가능한 언어 ì„¤ì •ì„ ì—½ë‹ˆë‹¤" msgid "Opens device photo gallery" msgstr "ê¸°ê¸°ì˜ ì‚¬ì§„ 갤러리를 엽니다" -#: src/view/com/profile/ProfileHeader.tsx:420 -msgid "Opens editor for profile display name, avatar, background image, and description" -msgstr "프로필 표시 ì´ë¦„, 아바타, ë°°ê²½ ì´ë¯¸ì§€ ë° ì„¤ëª… 편집기를 엽니다" - -#: src/view/screens/Settings/index.tsx:649 +#: src/view/screens/Settings/index.tsx:667 msgid "Opens external embeds settings" msgstr "외부 ìž„ë² ë“œ ì„¤ì •ì„ ì—½ë‹ˆë‹¤" -#: src/view/com/profile/ProfileHeader.tsx:575 -msgid "Opens followers list" -msgstr "팔로워 목ë¡ì„ 엽니다" - -#: src/view/com/profile/ProfileHeader.tsx:594 -msgid "Opens following list" -msgstr "팔로우 중 목ë¡ì„ 엽니다" - -#: src/view/screens/Settings.tsx:412 -#~ msgid "Opens invite code list" -#~ msgstr "초대 코드 목ë¡ì„ 엽니다" - #: src/view/com/modals/InviteCodes.tsx:172 msgid "Opens list of invite codes" msgstr "초대 코드 목ë¡ì„ 엽니다" -#: src/view/screens/Settings/index.tsx:774 +#: src/view/screens/Settings/index.tsx:792 msgid "Opens modal for account deletion confirmation. Requires email code." msgstr "ê³„ì • ì‚ì œ 확ì¸ì„ 위한 대화 ìƒìžë¥¼ 엽니다. ì´ë©”ì¼ ì½”ë“œê°€ 필요합니다" @@ -2754,7 +2819,7 @@ msgstr "ê³„ì • ì‚ì œ 확ì¸ì„ 위한 대화 ìƒìžë¥¼ 엽니다. ì´ë©”ì¼ ì½” msgid "Opens modal for using custom domain" msgstr "ì‚¬ìš©ìž ì§€ì • ë„ë©”ì¸ì„ 사용하기 위한 대화 ìƒìžë¥¼ 엽니다" -#: src/view/screens/Settings/index.tsx:620 +#: src/view/screens/Settings/index.tsx:638 msgid "Opens moderation settings" msgstr "ê²€í† ì„¤ì •ì„ ì—½ë‹ˆë‹¤" @@ -2767,27 +2832,28 @@ msgstr "비밀번호 ìž¬ì„¤ì • ì–‘ì‹ì„ 엽니다" msgid "Opens screen to edit Saved Feeds" msgstr "ì €ìž¥ëœ í”¼ë“œë¥¼ íŽ¸ì§‘í• ìˆ˜ 있는 í™”ë©´ì„ ì—½ë‹ˆë‹¤" -#: src/view/screens/Settings/index.tsx:576 +#: src/view/screens/Settings/index.tsx:594 msgid "Opens screen with all saved feeds" msgstr "ëª¨ë“ ì €ìž¥ëœ í”¼ë“œ í™”ë©´ì„ ì—½ë‹ˆë‹¤" -#: src/view/screens/Settings/index.tsx:676 +#: src/view/screens/Settings/index.tsx:694 msgid "Opens the app password settings page" msgstr "비밀번호 ì„¤ì • 페ì´ì§€ë¥¼ 엽니다" -#: src/view/screens/Settings/index.tsx:535 +#: src/view/screens/Settings/index.tsx:553 msgid "Opens the home feed preferences" msgstr "홈 피드 ì„¤ì •ì„ ì—½ë‹ˆë‹¤" -#: src/view/screens/Settings/index.tsx:805 +#: src/view/screens/Settings/index.tsx:823 +#: src/view/screens/Settings/index.tsx:833 msgid "Opens the storybook page" msgstr "ìŠ¤í† ë¦¬ë¶ íŽ˜ì´ì§€ë¥¼ 엽니다" -#: src/view/screens/Settings/index.tsx:793 +#: src/view/screens/Settings/index.tsx:811 msgid "Opens the system log page" msgstr "시스템 로그 페ì´ì§€ë¥¼ 엽니다" -#: src/view/screens/Settings/index.tsx:556 +#: src/view/screens/Settings/index.tsx:574 msgid "Opens the threads preferences" msgstr "ìŠ¤ë ˆë“œ ì„¤ì •ì„ ì—½ë‹ˆë‹¤" @@ -2795,23 +2861,27 @@ msgstr "ìŠ¤ë ˆë“œ ì„¤ì •ì„ ì—½ë‹ˆë‹¤" msgid "Option {0} of {numItems}" msgstr "{numItems}ê°œ 중 {0}번째 옵션" +#: src/components/ReportDialog/SubmitView.tsx:162 +msgid "Optionally provide additional information below:" +msgstr "ì„ íƒ ì‚¬í•으로 ì•„ëž˜ì— ì¶”ê°€ ì •ë³´ë¥¼ ìž…ë ¥í•©ë‹ˆë‹¤:" + #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" msgstr "ë˜ëŠ” ë‹¤ìŒ ì˜µì…˜ì„ ê²°í•©í•˜ì„¸ìš”:" +#: src/lib/moderation/useReportOptions.ts:25 +msgid "Other" +msgstr "기타" + #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" msgstr "다른 ê³„ì •" -#: src/view/com/modals/ServerInput.tsx:88 -#~ msgid "Other service" -#~ msgstr "다른 서비스" - #: src/view/com/composer/select-language/SelectLangBtn.tsx:91 msgid "Other..." msgstr "기타…" -#: src/components/Lists.tsx:194 +#: src/components/Lists.tsx:193 #: src/view/screens/NotFound.tsx:45 msgid "Page not found" msgstr "페ì´ì§€ë¥¼ ì°¾ì„ ìˆ˜ ì—†ìŒ" @@ -2836,11 +2906,11 @@ msgstr "비밀번호 변경ë¨" msgid "Password updated!" msgstr "비밀번호 변경ë¨" -#: src/Navigation.tsx:162 +#: src/Navigation.tsx:164 msgid "People followed by @{0}" msgstr "@{0} ë‹˜ì´ íŒ”ë¡œìš°í•œ 사람들" -#: src/Navigation.tsx:155 +#: src/Navigation.tsx:157 msgid "People following @{0}" msgstr "@{0} ë‹˜ì„ íŒ”ë¡œìš°í•˜ëŠ” 사람들" @@ -2856,19 +2926,19 @@ msgstr "ì•¨ë²”ì— ì ‘ê·¼í• ìˆ˜ 있는 ê¶Œí•œì´ ê±°ë¶€ë˜ì—ˆìŠµë‹ˆë‹¤. ì‹œìŠ¤í… msgid "Pets" msgstr "ë°˜ë ¤ë™ë¬¼" -#: src/view/com/auth/create/Step2.tsx:183 -#~ msgid "Phone number" -#~ msgstr "ì „í™”ë²ˆí˜¸" - #: src/view/com/modals/SelfLabel.tsx:121 msgid "Pictures meant for adults." msgstr "성ì¸ìš© 사진." -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileList.tsx:563 msgid "Pin to home" msgstr "í™ˆì— ê³ ì •" +#: src/view/screens/ProfileFeed.tsx:294 +msgid "Pin to Home" +msgstr "í™ˆì— ê³ ì •" + #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" msgstr "ê³ ì •ëœ í”¼ë“œ" @@ -2896,7 +2966,7 @@ msgstr "비밀번호를 ìž…ë ¥í•˜ì„¸ìš”." #: src/view/com/auth/create/state.ts:131 msgid "Please complete the verification captcha." -msgstr "" +msgstr "ì¸ì¦ 캡차를 완료해 주세요." #: src/view/com/modals/ChangeEmail.tsx:67 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." @@ -2906,25 +2976,13 @@ msgstr "ì´ë©”ì¼ì„ 변경하기 ì „ì— ì´ë©”ì¼ì„ 확ì¸í•´ 주세요. ì´ëŠ msgid "Please enter a name for your app password. All spaces is not allowed." msgstr "앱 ë¹„ë°€ë²ˆí˜¸ì˜ ì´ë¦„ì„ ìž…ë ¥í•˜ì„¸ìš”. ëª¨ë“ ê³µë°± 문ìžëŠ” 허용ë˜ì§€ 않습니다." -#: src/view/com/auth/create/Step2.tsx:206 -#~ msgid "Please enter a phone number that can receive SMS text messages." -#~ msgstr "SMS ë¬¸ìž ë©”ì‹œì§€ë¥¼ ë°›ì„ ìˆ˜ 있는 íœ´ëŒ€í° ë²ˆí˜¸ë¥¼ ìž…ë ¥í•˜ì„¸ìš”." - #: src/view/com/modals/AddAppPasswords.tsx:145 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "ì´ ì•± ë¹„ë°€ë²ˆí˜¸ì— ëŒ€í•´ ê³ ìœ í•œ ì´ë¦„ì„ ìž…ë ¥í•˜ê±°ë‚˜ 무작위로 ìƒì„±ëœ ì´ë¦„ì„ ì‚¬ìš©í•©ë‹ˆë‹¤." #: src/components/dialogs/MutedWords.tsx:68 msgid "Please enter a valid word, tag, or phrase to mute" -msgstr "" - -#: src/view/com/auth/create/state.ts:170 -#~ msgid "Please enter the code you received by SMS." -#~ msgstr "SMS로 ë°›ì€ ì½”ë“œë¥¼ ìž…ë ¥í•˜ì„¸ìš”." - -#: src/view/com/auth/create/Step2.tsx:282 -#~ msgid "Please enter the verification code sent to {phoneNumberFormatted}." -#~ msgstr "{phoneNumberFormatted}(으)로 ë³´ë‚´ì§„ ì¸ì¦ 코드를 ìž…ë ¥í•˜ì„¸ìš”." +msgstr "ë®¤íŠ¸í• ë‹¨ì–´ë‚˜ 태그 ë˜ëŠ” 문구를 ìž…ë ¥í•˜ì„¸ìš”" #: src/view/com/auth/create/state.ts:103 msgid "Please enter your email." @@ -2934,16 +2992,15 @@ msgstr "ì´ë©”ì¼ì„ ìž…ë ¥í•˜ì„¸ìš”." msgid "Please enter your password as well:" msgstr "ë¹„ë°€ë²ˆí˜¸ë„ ìž…ë ¥í•´ 주세요:" -#: src/view/com/modals/AppealLabel.tsx:72 -#: src/view/com/modals/AppealLabel.tsx:75 -msgid "Please tell us why you think this content warning was incorrectly applied!" -msgstr "ì´ ì½˜í…ì¸ ê²½ê³ ê°€ 잘못 ì ìš©ë˜ì—ˆë‹¤ê³ ìƒê°í•˜ëŠ” ì´ìœ 를 ì•Œë ¤ì£¼ì„¸ìš”!" +#: src/components/moderation/LabelsOnMeDialog.tsx:222 +msgid "Please explain why you think this label was incorrectly applied by {0}" +msgstr "{0}ì´(ê°€) ì´ ë¼ë²¨ì„ 잘못 ì ìš©í–ˆë‹¤ê³ ìƒê°í•˜ëŠ” ì´ìœ 를 설명해 주세요" #: src/view/com/modals/VerifyEmail.tsx:101 msgid "Please Verify Your Email" msgstr "ì´ë©”ì¼ ì¸ì¦í•˜ê¸°" -#: src/view/com/composer/Composer.tsx:222 +#: src/view/com/composer/Composer.tsx:221 msgid "Please wait for your link card to finish loading" msgstr "ë§í¬ 카드를 ì™„ì „ížˆ 불러올 때까지 ê¸°ë‹¤ë ¤ì£¼ì„¸ìš”" @@ -2953,15 +3010,19 @@ msgstr "ì •ì¹˜" #: src/view/com/modals/SelfLabel.tsx:111 msgid "Porn" -msgstr "í¬ë¥´ë…¸" +msgstr "ìŒëž€ë¬¼" -#: src/view/com/composer/Composer.tsx:357 -#: src/view/com/composer/Composer.tsx:365 +#: src/lib/moderation/useGlobalLabelStrings.ts:34 +msgid "Pornography" +msgstr "ìŒëž€ë¬¼" + +#: src/view/com/composer/Composer.tsx:366 +#: src/view/com/composer/Composer.tsx:374 msgctxt "action" msgid "Post" msgstr "게시하기" -#: src/view/com/post-thread/PostThread.tsx:303 +#: src/view/com/post-thread/PostThread.tsx:304 msgctxt "description" msgid "Post" msgstr "게시물" @@ -2970,20 +3031,30 @@ msgstr "게시물" msgid "Post by {0}" msgstr "{0} ë‹˜ì˜ ê²Œì‹œë¬¼" -#: src/Navigation.tsx:174 -#: src/Navigation.tsx:181 -#: src/Navigation.tsx:188 +#: src/Navigation.tsx:176 +#: src/Navigation.tsx:183 +#: src/Navigation.tsx:190 msgid "Post by @{0}" msgstr "@{0} ë‹˜ì˜ ê²Œì‹œë¬¼" -#: src/view/com/util/forms/PostDropdownBtn.tsx:108 +#: src/view/com/util/forms/PostDropdownBtn.tsx:105 msgid "Post deleted" msgstr "게시물 ì‚ì œë¨" -#: src/view/com/post-thread/PostThread.tsx:462 +#: src/view/com/post-thread/PostThread.tsx:463 msgid "Post hidden" msgstr "게시물 숨김" +#: src/components/moderation/ModerationDetailsDialog.tsx:98 +#: src/lib/moderation/useModerationCauseDescription.ts:99 +msgid "Post Hidden by Muted Word" +msgstr "뮤트한 단어로 숨겨진 게시물" + +#: src/components/moderation/ModerationDetailsDialog.tsx:101 +#: src/lib/moderation/useModerationCauseDescription.ts:108 +msgid "Post Hidden by You" +msgstr "ë‚´ê°€ 숨긴 게시물" + #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" msgstr "게시물 언어" @@ -2992,21 +3063,21 @@ msgstr "게시물 언어" msgid "Post Languages" msgstr "게시물 언어" -#: src/view/com/post-thread/PostThread.tsx:514 +#: src/view/com/post-thread/PostThread.tsx:515 msgid "Post not found" msgstr "ê²Œì‹œë¬¼ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ" #: src/components/TagMenu/index.tsx:253 msgid "posts" -msgstr "" +msgstr "게시물" -#: src/view/screens/Profile.tsx:180 +#: src/view/screens/Profile.tsx:188 msgid "Posts" msgstr "게시물" #: src/components/dialogs/MutedWords.tsx:90 msgid "Posts can be muted based on their text, their tags, or both." -msgstr "" +msgstr "ê²Œì‹œë¬¼ì˜ ê¸€ ë° íƒœê·¸ì— ë”°ë¼ ê²Œì‹œë¬¼ì„ ë®¤íŠ¸í• ìˆ˜ 있습니다." #: src/view/com/posts/FeedErrorMessage.tsx:64 msgid "Posts hidden" @@ -3028,14 +3099,14 @@ msgstr "주 언어" msgid "Prioritize Your Follows" msgstr "ë‚´ 팔로우 ë¨¼ì € 표시" -#: src/view/screens/Settings/index.tsx:632 +#: src/view/screens/Settings/index.tsx:650 #: src/view/shell/desktop/RightNav.tsx:72 msgid "Privacy" msgstr "ê°œì¸ì •ë³´" -#: src/Navigation.tsx:219 +#: src/Navigation.tsx:231 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings/index.tsx:891 +#: src/view/screens/Settings/index.tsx:919 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "ê°œì¸ì •ë³´ 처리방침" @@ -3044,7 +3115,12 @@ msgstr "ê°œì¸ì •ë³´ 처리방침" msgid "Processing..." msgstr "처리 중…" -#: src/view/shell/bottom-bar/BottomBar.tsx:247 +#: src/view/screens/DebugMod.tsx:888 +#: src/view/screens/Profile.tsx:340 +msgid "profile" +msgstr "프로필" + +#: src/view/shell/bottom-bar/BottomBar.tsx:249 #: src/view/shell/desktop/LeftNav.tsx:415 #: src/view/shell/Drawer.tsx:70 #: src/view/shell/Drawer.tsx:546 @@ -3056,7 +3132,7 @@ msgstr "프로필" msgid "Profile updated" msgstr "프로필 ì—…ë°ì´íЏë¨" -#: src/view/screens/Settings/index.tsx:949 +#: src/view/screens/Settings/index.tsx:977 msgid "Protect your account by verifying your email." msgstr "ì´ë©”ì¼ì„ ì¸ì¦í•˜ì—¬ ê³„ì •ì„ ë³´í˜¸í•˜ì„¸ìš”." @@ -3072,11 +3148,11 @@ msgstr "ì¼ê´„ 뮤트하거나 ì°¨ë‹¨í• ìˆ˜ 있는 공개ì ì´ê³ ê³µìœ ê°€ëŠ msgid "Public, shareable lists which can drive feeds." msgstr "피드를 íƒìƒ‰í• 수 있는 공개ì ì´ê³ ê³µìœ ê°€ëŠ¥í•œ 목ë¡ìž…니다." -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish post" msgstr "게시물 게시하기" -#: src/view/com/composer/Composer.tsx:342 +#: src/view/com/composer/Composer.tsx:351 msgid "Publish reply" msgstr "답글 게시하기" @@ -3110,36 +3186,46 @@ msgstr "추천 피드" msgid "Recommended Users" msgstr "추천 사용ìž" -#: src/components/dialogs/MutedWords.tsx:298 +#: src/components/dialogs/MutedWords.tsx:287 +#: src/view/com/feeds/FeedSourceCard.tsx:283 #: src/view/com/modals/ListAddRemoveUsers.tsx:264 #: src/view/com/modals/SelfLabel.tsx:83 #: src/view/com/modals/UserAddRemoveLists.tsx:219 -#: src/view/com/util/UserAvatar.tsx:285 -#: src/view/com/util/UserBanner.tsx:91 +#: src/view/com/posts/FeedErrorMessage.tsx:204 msgid "Remove" msgstr "ì œê±°" -#: src/view/com/feeds/FeedSourceCard.tsx:108 -msgid "Remove {0} from my feeds?" -msgstr "{0}ì„(를) ë‚´ 피드ì—서 ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" - #: src/view/com/util/AccountDropdownBtn.tsx:22 msgid "Remove account" msgstr "ê³„ì • ì œê±°" -#: src/view/com/posts/FeedErrorMessage.tsx:131 -#: src/view/com/posts/FeedErrorMessage.tsx:166 +#: src/view/com/util/UserAvatar.tsx:351 +msgid "Remove Avatar" +msgstr "아바타 ì œê±°" + +#: src/view/com/util/UserBanner.tsx:145 +msgid "Remove Banner" +msgstr "배너 ì œê±°" + +#: src/view/com/posts/FeedErrorMessage.tsx:160 msgid "Remove feed" msgstr "피드 ì œê±°" -#: src/view/com/feeds/FeedSourceCard.tsx:107 -#: src/view/com/feeds/FeedSourceCard.tsx:169 -#: src/view/com/feeds/FeedSourceCard.tsx:174 -#: src/view/com/feeds/FeedSourceCard.tsx:245 -#: src/view/screens/ProfileFeed.tsx:273 +#: src/view/com/posts/FeedErrorMessage.tsx:201 +msgid "Remove feed?" +msgstr "피드를 ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +#: src/view/com/feeds/FeedSourceCard.tsx:233 +#: src/view/screens/ProfileFeed.tsx:334 +#: src/view/screens/ProfileFeed.tsx:340 msgid "Remove from my feeds" msgstr "ë‚´ 피드ì—서 ì œê±°" +#: src/view/com/feeds/FeedSourceCard.tsx:278 +msgid "Remove from my feeds?" +msgstr "ë‚´ 피드ì—서 ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" + #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" msgstr "ì´ë¯¸ì§€ ì œê±°" @@ -3148,37 +3234,36 @@ msgstr "ì´ë¯¸ì§€ ì œê±°" msgid "Remove image preview" msgstr "ì´ë¯¸ì§€ 미리보기 ì œê±°" -#: src/components/dialogs/MutedWords.tsx:343 +#: src/components/dialogs/MutedWords.tsx:330 msgid "Remove mute word from your list" -msgstr "" +msgstr "목ë¡ì—서 뮤트한 단어 ì œê±°" #: src/view/com/modals/Repost.tsx:47 msgid "Remove repost" msgstr "재게시를 취소합니다" -#: src/view/com/feeds/FeedSourceCard.tsx:175 -msgid "Remove this feed from my feeds?" -msgstr "ì´ í”¼ë“œë¥¼ ë‚´ 피드ì—서 ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" - -#: src/view/com/posts/FeedErrorMessage.tsx:132 -msgid "Remove this feed from your saved feeds?" -msgstr "ì´ í”¼ë“œë¥¼ ì €ìž¥ëœ í”¼ë“œì—서 ì œê±°í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" +#: src/view/com/posts/FeedErrorMessage.tsx:202 +msgid "Remove this feed from your saved feeds" +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:113 -#: src/view/com/feeds/FeedSourceCard.tsx:180 +#: src/view/com/feeds/FeedSourceCard.tsx:121 msgid "Removed from my feeds" msgstr "ë‚´ 피드ì—서 ì œê±°ë¨" +#: src/view/screens/ProfileFeed.tsx:208 +msgid "Removed from your feeds" +msgstr "ë‚´ 피드ì—서 ì œê±°ë¨" + #: src/view/com/composer/ExternalEmbed.tsx:71 msgid "Removes default thumbnail from {0}" msgstr "{0}ì—서 기본 미리보기 ì´ë¯¸ì§€ë¥¼ ì œê±°í•©ë‹ˆë‹¤" -#: src/view/screens/Profile.tsx:181 +#: src/view/screens/Profile.tsx:189 msgid "Replies" msgstr "답글" @@ -3186,7 +3271,7 @@ msgstr "답글" msgid "Replies to this thread are disabled" msgstr "ì´ ìŠ¤ë ˆë“œì— ëŒ€í•œ ë‹µê¸€ì´ ë¹„í™œì„±í™”ë©ë‹ˆë‹¤." -#: src/view/com/composer/Composer.tsx:355 +#: src/view/com/composer/Composer.tsx:364 msgctxt "action" msgid "Reply" msgstr "답글" @@ -3195,34 +3280,51 @@ msgstr "답글" msgid "Reply Filters" msgstr "답글 í•„í„°" -#: src/view/com/post/Post.tsx:167 -#: src/view/com/posts/FeedItem.tsx:287 +#: src/view/com/post/Post.tsx:169 +#: src/view/com/posts/FeedItem.tsx:283 msgctxt "description" msgid "Reply to <0/>" msgstr "<0/> 님ì—게 보내는 답글" -#: src/view/com/modals/report/Modal.tsx:166 -msgid "Report {collectionName}" -msgstr "{collectionName} ì‹ ê³ " - -#: src/view/com/profile/ProfileHeader.tsx:361 +#: src/view/com/profile/ProfileMenu.tsx:319 +#: src/view/com/profile/ProfileMenu.tsx:322 msgid "Report Account" msgstr "ê³„ì • ì‹ ê³ " -#: src/view/screens/ProfileFeed.tsx:293 +#: src/view/screens/ProfileFeed.tsx:351 +#: src/view/screens/ProfileFeed.tsx:353 msgid "Report feed" msgstr "피드 ì‹ ê³ " -#: src/view/screens/ProfileList.tsx:459 +#: src/view/screens/ProfileList.tsx:429 msgid "Report List" msgstr "리스트 ì‹ ê³ " -#: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:301 -#: src/view/com/util/forms/PostDropdownBtn.tsx:309 +#: src/view/com/util/forms/PostDropdownBtn.tsx:292 +#: src/view/com/util/forms/PostDropdownBtn.tsx:294 msgid "Report post" msgstr "게시물 ì‹ ê³ " +#: src/components/ReportDialog/SelectReportOptionView.tsx:42 +msgid "Report this content" +msgstr "ì´ ì½˜í…ì¸ ì‹ ê³ í•˜ê¸°" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:55 +msgid "Report this feed" +msgstr "ì´ í”¼ë“œ ì‹ ê³ í•˜ê¸°" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:52 +msgid "Report this list" +msgstr "ì´ ë¦¬ìŠ¤íŠ¸ ì‹ ê³ í•˜ê¸°" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:49 +msgid "Report this post" +msgstr "ì´ ê²Œì‹œë¬¼ ì‹ ê³ í•˜ê¸°" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:46 +msgid "Report this user" +msgstr "ì´ ì‚¬ìš©ìž ì‹ ê³ í•˜ê¸°" + #: src/view/com/modals/Repost.tsx:43 #: src/view/com/modals/Repost.tsx:48 #: src/view/com/modals/Repost.tsx:53 @@ -3244,11 +3346,11 @@ msgstr "재게시 ë˜ëŠ” 게시물 ì¸ìš©" msgid "Reposted By" msgstr "재게시한 사용ìž" -#: src/view/com/posts/FeedItem.tsx:207 +#: src/view/com/posts/FeedItem.tsx:201 msgid "Reposted by {0}" msgstr "{0} ë‹˜ì´ ìž¬ê²Œì‹œí•¨" -#: src/view/com/posts/FeedItem.tsx:224 +#: src/view/com/posts/FeedItem.tsx:218 msgid "Reposted by <0/>" msgstr "<0/> ë‹˜ì´ ìž¬ê²Œì‹œí•¨" @@ -3256,7 +3358,7 @@ msgstr "<0/> ë‹˜ì´ ìž¬ê²Œì‹œí•¨" 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 "ì´ ê²Œì‹œë¬¼ì˜ ìž¬ê²Œì‹œ" @@ -3265,16 +3367,12 @@ msgstr "ì´ ê²Œì‹œë¬¼ì˜ ìž¬ê²Œì‹œ" msgid "Request Change" msgstr "변경 ìš”ì²" -#: src/view/com/auth/create/Step2.tsx:219 -#~ msgid "Request code" -#~ msgstr "코드 ìš”ì²" - #: src/view/com/modals/ChangePassword.tsx:239 #: src/view/com/modals/ChangePassword.tsx:241 msgid "Request Code" -msgstr "" +msgstr "코드 ìš”ì²" -#: src/view/screens/Settings/index.tsx:456 +#: src/view/screens/Settings/index.tsx:474 msgid "Require alt text before posting" msgstr "게시하기 ì „ 대체 í…스트 필수" @@ -3289,13 +3387,13 @@ msgstr "ìž¬ì„¤ì • 코드" #: src/view/com/modals/ChangePassword.tsx:190 msgid "Reset Code" -msgstr "" +msgstr "ìž¬ì„¤ì • 코드" -#: src/view/screens/Settings/index.tsx:824 +#: src/view/screens/Settings/index.tsx:852 msgid "Reset onboarding" msgstr "온보딩 초기화" -#: src/view/screens/Settings/index.tsx:827 +#: src/view/screens/Settings/index.tsx:855 msgid "Reset onboarding state" msgstr "온보딩 ìƒíƒœ 초기화" @@ -3303,19 +3401,19 @@ msgstr "온보딩 ìƒíƒœ 초기화" msgid "Reset password" msgstr "비밀번호 ìž¬ì„¤ì •" -#: src/view/screens/Settings/index.tsx:814 +#: src/view/screens/Settings/index.tsx:842 msgid "Reset preferences" msgstr "ì„¤ì • 초기화" -#: src/view/screens/Settings/index.tsx:817 +#: src/view/screens/Settings/index.tsx:845 msgid "Reset preferences state" msgstr "ì„¤ì • ìƒíƒœ 초기화" -#: src/view/screens/Settings/index.tsx:825 +#: src/view/screens/Settings/index.tsx:853 msgid "Resets the onboarding state" msgstr "온보딩 ìƒíƒœ 초기화" -#: src/view/screens/Settings/index.tsx:815 +#: src/view/screens/Settings/index.tsx:843 msgid "Resets the preferences state" msgstr "ì„¤ì • ìƒíƒœ 초기화" @@ -3339,17 +3437,16 @@ msgstr "오류가 ë°œìƒí•œ 마지막 ìž‘ì—…ì„ ë‹¤ì‹œ 시ë„합니다" msgid "Retry" msgstr "다시 시ë„" -#: src/view/com/auth/create/Step2.tsx:247 -#~ msgid "Retry." -#~ msgstr "다시 시ë„하기" - -#: src/view/screens/ProfileList.tsx:903 +#: src/view/screens/ProfileList.tsx:917 msgid "Return to previous page" msgstr "ì´ì „ 페ì´ì§€ë¡œ ëŒì•„갑니다" -#: src/view/shell/desktop/RightNav.tsx:55 -#~ msgid "SANDBOX. Posts and accounts are not permanent." -#~ msgstr "샌드박스. 글과 ê³„ì •ì€ ì˜êµ¬ì ì´ì§€ 않습니다." +#: src/components/dialogs/BirthDateSettings.tsx:118 +#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/CreateOrEditList.tsx:337 +#: src/view/com/modals/EditProfile.tsx:224 +msgid "Save" +msgstr "ì €ìž¥" #: src/view/com/lightbox/Lightbox.tsx:132 #: src/view/com/modals/CreateOrEditList.tsx:345 @@ -3357,19 +3454,14 @@ msgctxt "action" msgid "Save" msgstr "ì €ìž¥" -#: src/view/com/modals/BirthDateSettings.tsx:94 -#: src/view/com/modals/BirthDateSettings.tsx:97 -#: src/view/com/modals/ChangeHandle.tsx:173 -#: src/view/com/modals/CreateOrEditList.tsx:337 -#: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:346 -msgid "Save" -msgstr "ì €ìž¥" - #: src/view/com/modals/AltImage.tsx:130 msgid "Save alt text" msgstr "대체 í…스트 ì €ìž¥" +#: src/components/dialogs/BirthDateSettings.tsx:112 +msgid "Save birthday" +msgstr "ìƒë…„ì›”ì¼ ì €ìž¥" + #: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "변경 ì‚¬í• ì €ìž¥" @@ -3382,10 +3474,19 @@ msgstr "핸들 변경 ì €ìž¥" msgid "Save image crop" msgstr "ì´ë¯¸ì§€ ìžë¥´ê¸° ì €ìž¥" +#: src/view/screens/ProfileFeed.tsx:335 +#: src/view/screens/ProfileFeed.tsx:341 +msgid "Save to my feeds" +msgstr "ë‚´ í”¼ë“œì— ì €ìž¥" + #: src/view/screens/SavedFeeds.tsx:122 msgid "Saved Feeds" msgstr "ì €ìž¥ëœ í”¼ë“œ" +#: src/view/screens/ProfileFeed.tsx:212 +msgid "Saved to your feeds" +msgstr "ë‚´ í”¼ë“œì— ì €ìž¥ë¨" + #: src/view/com/modals/EditProfile.tsx:225 msgid "Saves any changes to your profile" msgstr "í”„ë¡œí•„ì— ëŒ€í•œ ëª¨ë“ ë³€ê²½ 사í•ì„ ì €ìž¥í•©ë‹ˆë‹¤" @@ -3398,11 +3499,11 @@ msgstr "í•¸ë“¤ì„ {handle}(으)로 변경합니다" msgid "Science" msgstr "과학" -#: src/view/screens/ProfileList.tsx:859 +#: src/view/screens/ProfileList.tsx:873 msgid "Scroll to top" msgstr "맨 위로 스í¬ë¡¤" -#: src/Navigation.tsx:447 +#: src/Navigation.tsx:459 #: src/view/com/auth/LoggedOut.tsx:122 #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:67 @@ -3410,7 +3511,7 @@ msgstr "맨 위로 스í¬ë¡¤" #: src/view/screens/Search/Search.tsx:419 #: src/view/screens/Search/Search.tsx:668 #: src/view/screens/Search/Search.tsx:686 -#: src/view/shell/bottom-bar/BottomBar.tsx:159 +#: src/view/shell/bottom-bar/BottomBar.tsx:161 #: src/view/shell/desktop/LeftNav.tsx:324 #: src/view/shell/desktop/Search.tsx:214 #: src/view/shell/desktop/Search.tsx:223 @@ -3426,19 +3527,11 @@ msgstr "\"{query}\"ì— ëŒ€í•œ 검색 ê²°ê³¼" #: src/components/TagMenu/index.tsx:145 msgid "Search for all posts by @{authorHandle} with tag {displayTag}" -msgstr "" - -#: src/components/TagMenu/index.tsx:145 -#~ msgid "Search for all posts by @{authorHandle} with tag {tag}" -#~ msgstr "" +msgstr "{displayTag} 태그를 사용한 @{authorHandle} ë‹˜ì˜ ëª¨ë“ ê²Œì‹œë¬¼ 검색" #: src/components/TagMenu/index.tsx:94 msgid "Search for all posts with tag {displayTag}" -msgstr "" - -#: src/components/TagMenu/index.tsx:90 -#~ msgid "Search for all posts with tag {tag}" -#~ msgstr "" +msgstr "{displayTag} 태그를 사용한 ëª¨ë“ ê²Œì‹œë¬¼ 검색" #: src/view/com/auth/LoggedOut.tsx:104 #: src/view/com/auth/LoggedOut.tsx:105 @@ -3452,27 +3545,19 @@ msgstr "보안 단계 í•„ìš”" #: src/components/TagMenu/index.web.tsx:66 msgid "See {truncatedTag} posts" -msgstr "" +msgstr "{truncatedTag} 게시물 보기" #: src/components/TagMenu/index.web.tsx:83 msgid "See {truncatedTag} posts by user" -msgstr "" +msgstr "ì´ ì‚¬ìš©ìžì˜ {truncatedTag} 게시물 보기" #: src/components/TagMenu/index.tsx:128 msgid "See <0>{displayTag}</0> posts" -msgstr "" +msgstr "<0>{displayTag}</0> 게시물 보기" #: src/components/TagMenu/index.tsx:187 msgid "See <0>{displayTag}</0> posts by this user" -msgstr "" - -#: src/components/TagMenu/index.tsx:128 -#~ msgid "See <0>{tag}</0> posts" -#~ msgstr "" - -#: src/components/TagMenu/index.tsx:189 -#~ msgid "See <0>{tag}</0> posts by this user" -#~ msgstr "" +msgstr "ì´ ì‚¬ìš©ìžì˜ <0>{displayTag}</0> 게시물 보기" #: src/view/screens/SavedFeeds.tsx:163 msgid "See this guide" @@ -3486,14 +3571,14 @@ msgstr "See what's next" msgid "Select {item}" msgstr "{item} ì„ íƒ" -#: src/view/com/modals/ServerInput.tsx:75 -#~ msgid "Select Bluesky Social" -#~ msgstr "Bluesky Social ì„ íƒ" - #: src/view/com/auth/login/Login.tsx:117 msgid "Select from an existing account" msgstr "기존 ê³„ì •ì—서 ì„ íƒ" +#: src/components/ReportDialog/SelectLabelerView.tsx:30 +msgid "Select moderation service" +msgstr "ê²€í† ì„œë¹„ìŠ¤ ì„ íƒí•˜ê¸°" + #: src/view/com/util/Selector.tsx:107 msgid "Select option {i} of {numItems}" msgstr "{numItems}ê°œ 중 {i}번째 ì˜µì…˜ì„ ì„ íƒí•©ë‹ˆë‹¤" @@ -3507,15 +3592,19 @@ msgstr "서비스 ì„ íƒ" msgid "Select some accounts below to follow" msgstr "아래ì—서 íŒ”ë¡œìš°í• ê³„ì •ì„ ì„ íƒí•˜ì„¸ìš”" +#: src/components/ReportDialog/SubmitView.tsx:135 +msgid "Select the moderation service(s) to report to" +msgstr "ì‹ ê³ í• ê²€í† ì„œë¹„ìŠ¤ë¥¼ ì„ íƒí•©ë‹ˆë‹¤." + #: src/view/com/auth/server-input/index.tsx:82 msgid "Select the service that hosts your data." -msgstr "" +msgstr "ë°ì´í„°ë¥¼ í˜¸ìŠ¤íŒ…í• ì„œë¹„ìŠ¤ë¥¼ ì„ íƒí•˜ì„¸ìš”." #: src/screens/Onboarding/StepTopicalFeeds.tsx:96 msgid "Select topical feeds to follow from the list below" msgstr "아래 목ë¡ì—서 íŒ”ë¡œìš°í• í™”ì œ 피드를 ì„ íƒí•˜ì„¸ìš”" -#: src/screens/Onboarding/StepModeration/index.tsx:75 +#: src/screens/Onboarding/StepModeration/index.tsx:62 msgid "Select what you want to see (or not see), and we’ll handle the rest." msgstr "ë³´ê³ ì‹¶ê±°ë‚˜ ë³´ê³ ì‹¶ì§€ ì•Šì€ í•ëª©ì„ ì„ íƒí•˜ë©´ 나머지는 알아서 처리해 드립니다." @@ -3531,10 +3620,6 @@ msgstr "ì•±ì— í‘œì‹œë˜ëŠ” 기본 í…스트 언어를 ì„ íƒí•©ë‹ˆë‹¤." msgid "Select your interests from the options below" msgstr "아래 옵션ì—서 관심사를 ì„ íƒí•˜ì„¸ìš”" -#: src/view/com/auth/create/Step2.tsx:155 -#~ msgid "Select your phone's country" -#~ msgstr "ì „í™”ë²ˆí˜¸ êµê°€ ì„ íƒ" - #: src/view/screens/LanguageSettings.tsx:190 msgid "Select your preferred language for translations in your feed." msgstr "피드ì—서 번ì—ì„ ìœ„í•´ ì„ í˜¸í•˜ëŠ” 언어를 ì„ íƒí•©ë‹ˆë‹¤." @@ -3566,47 +3651,46 @@ msgstr "ì´ë©”ì¼ ë³´ë‚´ê¸°" msgid "Send feedback" msgstr "피드백 보내기" -#: src/view/com/modals/report/SendReportButton.tsx:45 -msgid "Send Report" +#: src/components/ReportDialog/SubmitView.tsx:214 +#: src/components/ReportDialog/SubmitView.tsx:218 +msgid "Send report" msgstr "ì‹ ê³ ë³´ë‚´ê¸°" +#: src/components/ReportDialog/SelectLabelerView.tsx:44 +msgid "Send report to {0}" +msgstr "{0} 님ì—게 ì‹ ê³ ë³´ë‚´ê¸°" + #: src/view/com/modals/DeleteAccount.tsx:133 msgid "Sends email with confirmation code for account deletion" msgstr "ê³„ì • ì‚ì œë¥¼ 위한 í™•ì¸ ì½”ë“œê°€ í¬í•¨ëœ ì´ë©”ì¼ì„ ì „ì†¡í•©ë‹ˆë‹¤" #: src/view/com/auth/server-input/index.tsx:110 msgid "Server address" -msgstr "" +msgstr "서버 주소" -#: src/view/com/modals/ContentFilteringSettings.tsx:311 -msgid "Set {value} for {labelGroup} content moderation policy" -msgstr "{labelGroup} 콘í…ì¸ ê´€ë¦¬ ì •ì±…ì— ëŒ€í•´ {value}ì„(를) ì„¤ì •í•©ë‹ˆë‹¤" +#: src/screens/Moderation/index.tsx:307 +msgid "Set birthdate" +msgstr "ìƒë…„ì›”ì¼ ì„¤ì •" -#: src/view/com/modals/ContentFilteringSettings.tsx:160 -#: src/view/com/modals/ContentFilteringSettings.tsx:179 -msgctxt "action" -msgid "Set Age" -msgstr "ë‚˜ì´ ì„¤ì •" - -#: src/view/screens/Settings/index.tsx:488 +#: src/view/screens/Settings/index.tsx:506 msgid "Set color theme to dark" msgstr "ìƒ‰ìƒ í…Œë§ˆë¥¼ ì–´ë‘움으로 ì„¤ì •í•©ë‹ˆë‹¤" -#: src/view/screens/Settings/index.tsx:481 +#: src/view/screens/Settings/index.tsx:499 msgid "Set color theme to light" msgstr "ìƒ‰ìƒ í…Œë§ˆë¥¼ ë°ìŒìœ¼ë¡œ ì„¤ì •í•©ë‹ˆë‹¤" -#: src/view/screens/Settings/index.tsx:475 +#: src/view/screens/Settings/index.tsx:493 msgid "Set color theme to system setting" msgstr "ìƒ‰ìƒ í…Œë§ˆë¥¼ 시스템 ì„¤ì •ì— ë§žì¶¥ë‹ˆë‹¤" -#: src/view/screens/Settings/index.tsx:514 +#: src/view/screens/Settings/index.tsx:532 msgid "Set dark theme to the dark theme" -msgstr "" +msgstr "ì–´ë‘ìš´ 테마를 ì™„ì „ížˆ 어둡게 ì„¤ì •í•©ë‹ˆë‹¤" -#: src/view/screens/Settings/index.tsx:507 +#: src/view/screens/Settings/index.tsx:525 msgid "Set dark theme to the dim theme" -msgstr "" +msgstr "ì–´ë‘ìš´ 테마를 ì‚´ì§ ë°ê²Œ ì„¤ì •í•©ë‹ˆë‹¤" #: src/view/com/auth/login/SetNewPasswordForm.tsx:104 msgid "Set new password" @@ -3632,13 +3716,9 @@ msgstr "피드ì—서 ëª¨ë“ ìž¬ê²Œì‹œë¥¼ ìˆ¨ê¸°ë ¤ë©´ ì´ ì„¤ì •ì„ \"아니요\ msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "ìŠ¤ë ˆë“œ ë³´ê¸°ì— ë‹µê¸€ì„ í‘œì‹œí•˜ë ¤ë©´ ì´ ì„¤ì •ì„ \"예\"로 ì„¤ì •í•©ë‹ˆë‹¤. ì´ëŠ” 실험ì ì¸ ê¸°ëŠ¥ìž…ë‹ˆë‹¤." -#: src/view/screens/PreferencesHomeFeed.tsx:261 -#~ 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:261 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:50 msgid "Set up your account" @@ -3661,8 +3741,8 @@ msgstr "비밀번호 ìž¬ì„¤ì •ì„ ìœ„í•œ 호스팅 ì œê³µìžë¥¼ ì„¤ì •í•©ë‹ˆë‹¤" msgid "Sets server for the Bluesky client" msgstr "Bluesky í´ë¼ì´ì–¸íŠ¸ë¥¼ 위한 서버를 ì„¤ì •í•©ë‹ˆë‹¤" -#: src/Navigation.tsx:137 -#: src/view/screens/Settings/index.tsx:294 +#: src/Navigation.tsx:139 +#: src/view/screens/Settings/index.tsx:312 #: src/view/shell/desktop/LeftNav.tsx:433 #: src/view/shell/Drawer.tsx:567 #: src/view/shell/Drawer.tsx:568 @@ -3673,28 +3753,39 @@ msgstr "ì„¤ì •" msgid "Sexual activity or erotic nudity." msgstr "성행위 ë˜ëŠ” ì„ ì •ì ì¸ ë…¸ì¶œ." +#: src/lib/moderation/useGlobalLabelStrings.ts:38 +msgid "Sexually Suggestive" +msgstr "외설ì " + #: src/view/com/lightbox/Lightbox.tsx:141 msgctxt "action" msgid "Share" msgstr "ê³µìœ " -#: src/view/com/profile/ProfileHeader.tsx:295 -#: src/view/com/util/forms/PostDropdownBtn.tsx:231 +#: src/view/com/profile/ProfileMenu.tsx:215 +#: src/view/com/profile/ProfileMenu.tsx:224 +#: src/view/com/util/forms/PostDropdownBtn.tsx:228 #: src/view/com/util/forms/PostDropdownBtn.tsx:237 -#: src/view/com/util/post-ctrls/PostCtrls.tsx:215 -#: src/view/screens/ProfileList.tsx:418 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:218 +#: src/view/screens/ProfileList.tsx:388 msgid "Share" msgstr "ê³µìœ " -#: src/view/screens/ProfileFeed.tsx:305 +#: src/view/com/profile/ProfileMenu.tsx:373 +#: src/view/com/util/forms/PostDropdownBtn.tsx:347 +msgid "Share anyway" +msgstr "ë¬´ì‹œí•˜ê³ ê³µìœ " + +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileFeed.tsx:363 msgid "Share feed" msgstr "피드 ê³µìœ " -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:43 -#: src/view/com/modals/ContentFilteringSettings.tsx:266 -#: src/view/com/util/moderation/ContentHider.tsx:107 -#: src/view/com/util/moderation/PostHider.tsx:108 -#: src/view/screens/Settings/index.tsx:344 +#: src/components/moderation/ContentHider.tsx:115 +#: src/components/moderation/GlobalModerationLabelPref.tsx:45 +#: src/components/moderation/PostHider.tsx:107 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:54 +#: src/view/screens/Settings/index.tsx:362 msgid "Show" msgstr "표시" @@ -3702,21 +3793,31 @@ msgstr "표시" msgid "Show all replies" msgstr "ëª¨ë“ ë‹µê¸€ 표시" -#: src/view/com/util/moderation/ScreenHider.tsx:132 +#: src/components/moderation/ScreenHider.tsx:161 +#: src/components/moderation/ScreenHider.tsx:164 msgid "Show anyway" msgstr "ë¬´ì‹œí•˜ê³ í‘œì‹œ" +#: src/lib/moderation/useLabelBehaviorDescription.ts:27 +#: src/lib/moderation/useLabelBehaviorDescription.ts:63 +msgid "Show badge" +msgstr "ë°°ì§€ 표시" + +#: src/lib/moderation/useLabelBehaviorDescription.ts:61 +msgid "Show badge and filter from feeds" +msgstr "ë°°ì§€ 표시 ë° í”¼ë“œì—서 í•„í„°ë§" + #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" msgstr "{0} ìž„ë² ë“œ 표시" -#: src/view/com/profile/ProfileHeader.tsx:459 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:193 msgid "Show follows similar to {0}" msgstr "{0} 님과 비슷한 팔로우 표시" -#: src/view/com/post-thread/PostThreadItem.tsx:538 -#: src/view/com/post/Post.tsx:198 -#: src/view/com/posts/FeedItem.tsx:363 +#: src/view/com/post-thread/PostThreadItem.tsx:509 +#: src/view/com/post/Post.tsx:204 +#: src/view/com/posts/FeedItem.tsx:358 msgid "Show More" msgstr "ë” ë³´ê¸°" @@ -3730,15 +3831,15 @@ msgstr "ì¸ìš© 게시물 표시" #: src/screens/Onboarding/StepFollowingFeed.tsx:118 msgid "Show quote-posts in Following feed" -msgstr "팔로우 ì¤‘ì¸ í”¼ë“œì— ì¸ìš© 게시물 표시" +msgstr "팔로우 중 í”¼ë“œì— ì¸ìš© 게시물 표시" #: src/screens/Onboarding/StepFollowingFeed.tsx:134 msgid "Show quotes in Following" -msgstr "팔로우 ì¤‘ì¸ í”¼ë“œì— ì¸ìš© 표시" +msgstr "팔로우 중 í”¼ë“œì— ì¸ìš© 표시" #: src/screens/Onboarding/StepFollowingFeed.tsx:94 msgid "Show re-posts in Following feed" -msgstr "팔로우 ì¤‘ì¸ í”¼ë“œì— ìž¬ê²Œì‹œ 표시" +msgstr "팔로우 중 í”¼ë“œì— ìž¬ê²Œì‹œ 표시" #: src/view/screens/PreferencesFollowingFeed.tsx:119 msgid "Show Replies" @@ -3750,11 +3851,11 @@ msgstr "ë‚´ê°€ 팔로우하는 ì‚¬ëžŒë“¤ì˜ ë‹µê¸€ì„ ë‹¤ë¥¸ ëª¨ë“ ë‹µê¸€ë³´ë‹¤ #: src/screens/Onboarding/StepFollowingFeed.tsx:86 msgid "Show replies in Following" -msgstr "팔로우 ì¤‘ì¸ í”¼ë“œì— ë‹µê¸€ 표시" +msgstr "팔로우 중 í”¼ë“œì— ë‹µê¸€ 표시" #: src/screens/Onboarding/StepFollowingFeed.tsx:70 msgid "Show replies in Following feed" -msgstr "팔로우 ì¤‘ì¸ í”¼ë“œì— ë‹µê¸€ 표시" +msgstr "팔로우 중 í”¼ë“œì— ë‹µê¸€ 표시" #: src/view/screens/PreferencesFollowingFeed.tsx:70 msgid "Show replies with at least {value} {0}" @@ -3766,32 +3867,35 @@ msgstr "재게시 표시" #: src/screens/Onboarding/StepFollowingFeed.tsx:110 msgid "Show reposts in Following" -msgstr "팔로우 ì¤‘ì¸ í”¼ë“œì— ìž¬ê²Œì‹œ 표시" +msgstr "팔로우 중 í”¼ë“œì— ìž¬ê²Œì‹œ 표시" -#: src/view/com/util/moderation/ContentHider.tsx:67 -#: src/view/com/util/moderation/PostHider.tsx:61 +#: src/components/moderation/ContentHider.tsx:68 +#: src/components/moderation/PostHider.tsx:64 msgid "Show the content" msgstr "콘í…ì¸ í‘œì‹œ" -#: src/view/com/notifications/FeedItem.tsx:347 +#: src/view/com/notifications/FeedItem.tsx:346 msgid "Show users" msgstr "ì‚¬ìš©ìž í‘œì‹œ" -#: src/view/com/profile/ProfileHeader.tsx:462 -msgid "Shows a list of users similar to this user." -msgstr "ì´ ì‚¬ìš©ìžì™€ ìœ ì‚¬í•œ ì‚¬ìš©ìž ëª©ë¡ì„ 표시합니다" +#: src/lib/moderation/useLabelBehaviorDescription.ts:58 +msgid "Show warning" +msgstr "ê²½ê³ í‘œì‹œ" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:124 -#: src/view/com/profile/ProfileHeader.tsx:506 +#: src/lib/moderation/useLabelBehaviorDescription.ts:56 +msgid "Show warning and filter from feeds" +msgstr "ê²½ê³ í‘œì‹œ ë° í”¼ë“œì—서 í•„í„°ë§" + +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:127 msgid "Shows posts from {0} in your feed" msgstr "í”¼ë“œì— {0} ë‹˜ì˜ ê²Œì‹œë¬¼ì„ í‘œì‹œí•©ë‹ˆë‹¤" #: src/view/com/auth/HomeLoggedOutCTA.tsx:70 #: src/view/com/auth/login/Login.tsx:98 #: src/view/com/auth/SplashScreen.tsx:79 -#: src/view/shell/bottom-bar/BottomBar.tsx:285 -#: src/view/shell/bottom-bar/BottomBar.tsx:286 +#: src/view/shell/bottom-bar/BottomBar.tsx:287 #: src/view/shell/bottom-bar/BottomBar.tsx:288 +#: src/view/shell/bottom-bar/BottomBar.tsx:290 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:179 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:181 @@ -3821,14 +3925,14 @@ msgstr "로그ì¸" #: src/view/com/modals/SwitchAccount.tsx:64 #: src/view/com/modals/SwitchAccount.tsx:69 -#: src/view/screens/Settings/index.tsx:100 -#: src/view/screens/Settings/index.tsx:103 +#: src/view/screens/Settings/index.tsx:104 +#: src/view/screens/Settings/index.tsx:107 msgid "Sign out" msgstr "로그아웃" -#: src/view/shell/bottom-bar/BottomBar.tsx:275 -#: src/view/shell/bottom-bar/BottomBar.tsx:276 +#: src/view/shell/bottom-bar/BottomBar.tsx:277 #: src/view/shell/bottom-bar/BottomBar.tsx:278 +#: src/view/shell/bottom-bar/BottomBar.tsx:280 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:169 #: src/view/shell/bottom-bar/BottomBarWeb.tsx:171 @@ -3842,11 +3946,12 @@ msgstr "가입하기" msgid "Sign up or sign in to join the conversation" msgstr "가입 ë˜ëŠ” 로그ì¸í•˜ì—¬ ëŒ€í™”ì— ì°¸ì—¬í•˜ì„¸ìš”" -#: src/view/com/util/moderation/ScreenHider.tsx:76 +#: src/components/moderation/ScreenHider.tsx:97 +#: src/lib/moderation/useGlobalLabelStrings.ts:28 msgid "Sign-in Required" msgstr "ë¡œê·¸ì¸ í•„ìš”" -#: src/view/screens/Settings/index.tsx:355 +#: src/view/screens/Settings/index.tsx:373 msgid "Signed in as" msgstr "로그ì¸í•œ ê³„ì •" @@ -3868,27 +3973,21 @@ msgstr "건너뛰기" msgid "Skip this flow" msgstr "ì´ ë‹¨ê³„ 건너뛰기" -#: src/view/com/auth/create/Step2.tsx:82 -#~ msgid "SMS verification" -#~ msgstr "SMS ì¸ì¦" - #: src/screens/Onboarding/index.tsx:40 msgid "Software Dev" msgstr "소프트웨어 개발" -#: src/view/com/modals/ProfilePreview.tsx:62 -#~ msgid "Something went wrong and we're not sure what." -#~ msgstr "ë¬¸ì œê°€ ë°œìƒí–ˆì§€ë§Œ ì›ì¸ì„ 알 수 없습니다." +#: src/components/ReportDialog/index.tsx:50 +#: src/screens/Moderation/index.tsx:116 +#: src/screens/Profile/Sections/Labels.tsx:88 +msgid "Something went wrong, please try again." +msgstr "ë”ê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤. 다시 시ë„í•´ 주세요." -#: src/components/Lists.tsx:203 +#: src/components/Lists.tsx:202 msgid "Something went wrong!" -msgstr "" +msgstr "ë”ê°€ 잘못ë˜ì—ˆìŠµë‹ˆë‹¤!" -#: src/view/com/modals/Waitlist.tsx:51 -#~ msgid "Something went wrong. Check your email and try again." -#~ msgstr "ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì´ë©”ì¼ì„ 확ì¸í•œ 후 다시 시ë„하세요." - -#: src/App.native.tsx:66 +#: src/App.native.tsx:71 msgid "Sorry! Your session expired. Please log in again." msgstr "죄송합니다. ì„¸ì…˜ì´ ë§Œë£Œë˜ì—ˆìŠµë‹ˆë‹¤. 다시 로그ì¸í•´ 주세요." @@ -3900,6 +3999,18 @@ msgstr "답글 ì •ë ¬" msgid "Sort replies to the same post by:" msgstr "ë™ì¼í•œ ê²Œì‹œë¬¼ì— ëŒ€í•œ ë‹µê¸€ì„ ì •ë ¬í•˜ëŠ” 기준입니다." +#: src/components/moderation/LabelsOnMeDialog.tsx:147 +msgid "Source:" +msgstr "출처:" + +#: src/lib/moderation/useReportOptions.ts:65 +msgid "Spam" +msgstr "스팸" + +#: src/lib/moderation/useReportOptions.ts:53 +msgid "Spam; excessive mentions or replies" +msgstr "스팸, ê³¼ë„한 멘션 ë˜ëŠ” 답글" + #: src/screens/Onboarding/index.tsx:30 msgid "Sports" msgstr "스í¬ì¸ " @@ -3908,11 +4019,7 @@ msgstr "스í¬ì¸ " msgid "Square" msgstr "ì •ì‚¬ê°í˜•" -#: src/view/com/modals/ServerInput.tsx:62 -#~ msgid "Staging" -#~ msgstr "스테ì´ì§•" - -#: src/view/screens/Settings/index.tsx:871 +#: src/view/screens/Settings/index.tsx:899 msgid "Status page" msgstr "ìƒíƒœ 페ì´ì§€" @@ -3920,29 +4027,42 @@ msgstr "ìƒíƒœ 페ì´ì§€" msgid "Step {0} of {numSteps}" msgstr "{numSteps}단계 중 {0}단계" -#: src/view/screens/Settings/index.tsx:274 +#: src/view/screens/Settings/index.tsx:288 msgid "Storage cleared, you need to restart the app now." msgstr "ìŠ¤í† ë¦¬ì§€ê°€ 지워졌으며 지금 ì•±ì„ ë‹¤ì‹œ 시작해야 합니다." -#: src/Navigation.tsx:204 -#: src/view/screens/Settings/index.tsx:807 +#: src/Navigation.tsx:211 +#: src/view/screens/Settings/index.tsx:825 msgid "Storybook" msgstr "ìŠ¤í† ë¦¬ë¶" -#: src/view/com/modals/AppealLabel.tsx:101 +#: src/components/moderation/LabelsOnMeDialog.tsx:256 +#: src/components/moderation/LabelsOnMeDialog.tsx:257 msgid "Submit" msgstr "확ì¸" -#: src/view/screens/ProfileList.tsx:608 +#: src/view/screens/ProfileList.tsx:590 msgid "Subscribe" msgstr "구ë…" +#: src/screens/Profile/Sections/Labels.tsx:199 +msgid "Subscribe to @{0} to use these labels:" +msgstr "ì´ ë¼ë²¨ì„ ì‚¬ìš©í•˜ë ¤ë©´ @{0} ë‹˜ì„ êµ¬ë…하세요:" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:222 +msgid "Subscribe to Labeler" +msgstr "ë¼ë²¨ëŸ¬ 구ë…" + #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:173 #: src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx:308 msgid "Subscribe to the {0} feed" msgstr "{0} 피드 구ë…하기" -#: src/view/screens/ProfileList.tsx:604 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:185 +msgid "Subscribe to this labeler" +msgstr "ì´ ë¼ë²¨ëŸ¬ 구ë…하기" + +#: src/view/screens/ProfileList.tsx:586 msgid "Subscribe to this list" msgstr "ì´ ë¦¬ìŠ¤íŠ¸ 구ë…하기" @@ -3958,49 +4078,41 @@ msgstr "나를 위한 추천" msgid "Suggestive" msgstr "외설ì " -#: src/Navigation.tsx:214 +#: src/Navigation.tsx:226 #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 msgid "Support" msgstr "ì§€ì›" -#: src/view/com/modals/ProfilePreview.tsx:110 -#~ msgid "Swipe up to see more" -#~ msgstr "위로 스와ì´í”„하여 ë” ë³´ê¸°" - #: src/view/com/modals/SwitchAccount.tsx:117 msgid "Switch Account" msgstr "ê³„ì • ì „í™˜" #: src/view/com/modals/SwitchAccount.tsx:97 -#: src/view/screens/Settings/index.tsx:130 +#: src/view/screens/Settings/index.tsx:134 msgid "Switch to {0}" msgstr "{0}(으)로 ì „í™˜" #: src/view/com/modals/SwitchAccount.tsx:98 -#: src/view/screens/Settings/index.tsx:131 +#: src/view/screens/Settings/index.tsx:135 msgid "Switches the account you are logged in to" msgstr "로그ì¸í•œ ê³„ì •ì„ ì „í™˜í•©ë‹ˆë‹¤" -#: src/view/screens/Settings/index.tsx:472 +#: src/view/screens/Settings/index.tsx:490 msgid "System" msgstr "시스템" -#: src/view/screens/Settings/index.tsx:795 +#: src/view/screens/Settings/index.tsx:813 msgid "System log" msgstr "시스템 로그" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/components/dialogs/MutedWords.tsx:324 msgid "tag" -msgstr "" +msgstr "태그" #: src/components/TagMenu/index.tsx:78 msgid "Tag menu: {displayTag}" -msgstr "" - -#: src/components/TagMenu/index.tsx:74 -#~ msgid "Tag menu: {tag}" -#~ msgstr "" +msgstr "태그 메뉴: {displayTag}" #: src/view/com/modals/crop-image/CropImage.web.tsx:112 msgid "Tall" @@ -4018,29 +4130,43 @@ msgstr "ê¸°ìˆ " msgid "Terms" msgstr "ì´ìš©ì•½ê´€" -#: src/Navigation.tsx:224 -#: src/view/screens/Settings/index.tsx:885 +#: src/Navigation.tsx:236 +#: src/view/screens/Settings/index.tsx:913 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" msgstr "서비스 ì´ìš©ì•½ê´€" -#: src/components/dialogs/MutedWords.tsx:337 +#: src/lib/moderation/useReportOptions.ts:58 +#: src/lib/moderation/useReportOptions.ts:79 +#: src/lib/moderation/useReportOptions.ts:87 +msgid "Terms used violate community standards" +msgstr "커뮤니티 ê¸°ì¤€ì„ ìœ„ë°˜í•˜ëŠ” 용어 사용" + +#: src/components/dialogs/MutedWords.tsx:324 msgid "text" -msgstr "" +msgstr "글" -#: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:51 +#: src/components/moderation/LabelsOnMeDialog.tsx:220 msgid "Text input field" msgstr "í…스트 ìž…ë ¥ 필드" +#: src/components/ReportDialog/SubmitView.tsx:78 +msgid "Thank you. Your report has been sent." +msgstr "ê°ì‚¬í•©ë‹ˆë‹¤. ì‹ ê³ ë¥¼ ì „ì†¡í–ˆìŠµë‹ˆë‹¤." + #: src/view/com/auth/create/CreateAccount.tsx:94 msgid "That handle is already taken." -msgstr "" +msgstr "ì´ í•¸ë“¤ì€ ì´ë¯¸ 사용 중입니다." -#: src/view/com/profile/ProfileHeader.tsx:263 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:274 +#: src/view/com/profile/ProfileMenu.tsx:349 msgid "The account will be able to interact with you after unblocking." -msgstr "ì°¨ë‹¨ì„ í•´ì œí•˜ë©´ 해당 ê³„ì •ì´ ë‚˜ì™€ ìƒí˜¸ìž‘ìš©í• ìˆ˜ 있게 ë©ë‹ˆë‹¤." +msgstr "ì°¨ë‹¨ì„ í•´ì œí•˜ë©´ ì´ ê³„ì •ì´ ë‚˜ì™€ ìƒí˜¸ìž‘ìš©í• ìˆ˜ 있게 ë©ë‹ˆë‹¤." + +#: src/components/moderation/ModerationDetailsDialog.tsx:128 +msgid "the author" +msgstr "작성ìž" #: src/view/screens/CommunityGuidelines.tsx:36 msgid "The Community Guidelines have been moved to <0/>" @@ -4050,11 +4176,19 @@ msgstr "커뮤니티 ê°€ì´ë“œë¼ì¸ì„ <0/>(으)로 ì´ë™í–ˆìŠµë‹ˆë‹¤" msgid "The Copyright Policy has been moved to <0/>" msgstr "ì €ìž‘ê¶Œ ì •ì±…ì„ <0/>(으)로 ì´ë™í–ˆìŠµë‹ˆë‹¤" +#: src/components/moderation/LabelsOnMeDialog.tsx:49 +msgid "The following labels were applied to your account." +msgstr "ë‚´ ê³„ì •ì— ë‹¤ìŒ ë¼ë²¨ì´ ì ìš©ë˜ì—ˆìŠµë‹ˆë‹¤." + +#: src/components/moderation/LabelsOnMeDialog.tsx:50 +msgid "The following labels were applied to your content." +msgstr "ë‚´ 콘í…ì¸ ì— ë‹¤ìŒ ë¼ë²¨ì´ ì ìš©ë˜ì—ˆìŠµë‹ˆë‹¤." + #: src/screens/Onboarding/Layout.tsx:60 msgid "The following steps will help customize your Bluesky experience." msgstr "ë‹¤ìŒ ë‹¨ê³„ëŠ” Bluesky í™˜ê²½ì„ ë§žì¶¤ ì„¤ì •í•˜ëŠ” ë° ë„ì›€ì´ ë©ë‹ˆë‹¤." -#: src/view/com/post-thread/PostThread.tsx:517 +#: src/view/com/post-thread/PostThread.tsx:518 msgid "The post may have been deleted." msgstr "ê²Œì‹œë¬¼ì´ ì‚ì œë˜ì—ˆì„ 수 있습니다." @@ -4074,20 +4208,21 @@ msgstr "서비스 ì´ìš©ì•½ê´€ì„ 다ìŒìœ¼ë¡œ ì´ë™í–ˆìŠµë‹ˆë‹¤:" msgid "There are many feeds to try:" msgstr "시ë„í•´ ë³¼ 만한 피드:" -#: src/view/screens/ProfileFeed.tsx:550 +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:113 +#: src/view/screens/ProfileFeed.tsx:543 msgid "There was an an issue contacting the server, please check your internet connection and try again." msgstr "ì„œë²„ì— ì—°ê²°í•˜ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì¸í„°ë„· ì—°ê²°ì„ í™•ì¸í•œ 후 다시 시ë„하세요." -#: src/view/com/posts/FeedErrorMessage.tsx:139 +#: src/view/com/posts/FeedErrorMessage.tsx:138 msgid "There was an an issue removing this feed. Please check your internet connection and try again." msgstr "ì´ í”¼ë“œë¥¼ ì‚ì œí•˜ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì¸í„°ë„· ì—°ê²°ì„ í™•ì¸í•œ 후 다시 시ë„하세요." -#: src/view/screens/ProfileFeed.tsx:210 +#: src/view/screens/ProfileFeed.tsx:217 msgid "There was an an issue updating your feeds, please check your internet connection and try again." msgstr "피드를 ì—…ë°ì´íŠ¸í•˜ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì¸í„°ë„· ì—°ê²°ì„ í™•ì¸í•œ 후 다시 시ë„하세요." -#: src/view/screens/ProfileFeed.tsx:237 -#: src/view/screens/ProfileList.tsx:267 +#: src/view/screens/ProfileFeed.tsx:244 +#: src/view/screens/ProfileList.tsx:275 #: src/view/screens/SavedFeeds.tsx:209 #: src/view/screens/SavedFeeds.tsx:231 #: src/view/screens/SavedFeeds.tsx:252 @@ -4096,9 +4231,8 @@ msgstr "ì„œë²„ì— ì—°ê²°í•˜ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:57 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:66 -#: src/view/com/feeds/FeedSourceCard.tsx:115 -#: src/view/com/feeds/FeedSourceCard.tsx:129 -#: src/view/com/feeds/FeedSourceCard.tsx:183 +#: src/view/com/feeds/FeedSourceCard.tsx:110 +#: src/view/com/feeds/FeedSourceCard.tsx:123 msgid "There was an issue contacting your server" msgstr "ì„œë²„ì— ì—°ê²°í•˜ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤" @@ -4106,7 +4240,7 @@ msgstr "ì„œë²„ì— ì—°ê²°í•˜ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤" msgid "There was an issue fetching notifications. Tap here to try again." msgstr "ì•Œë¦¼ì„ ê°€ì ¸ì˜¤ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì´ê³³ì„ íƒí•˜ì—¬ 다시 시ë„하세요." -#: src/view/com/posts/Feed.tsx:265 +#: src/view/com/posts/Feed.tsx:279 msgid "There was an issue fetching posts. Tap here to try again." msgstr "ê²Œì‹œë¬¼ì„ ê°€ì ¸ì˜¤ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì´ê³³ì„ íƒí•˜ì—¬ 다시 시ë„하세요." @@ -4119,34 +4253,40 @@ msgstr "리스트를 ê°€ì ¸ì˜¤ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì´ê³³ì„ msgid "There was an issue fetching your lists. Tap here to try again." msgstr "리스트를 ê°€ì ¸ì˜¤ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì´ê³³ì„ íƒí•˜ì—¬ 다시 시ë„하세요." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:63 -#: src/view/com/modals/ContentFilteringSettings.tsx:126 +#: src/components/ReportDialog/SubmitView.tsx:83 +msgid "There was an issue sending your report. Please check your internet connection." +msgstr "ì‹ ê³ ë¥¼ ì „ì†¡í•˜ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì¸í„°ë„· ì—°ê²°ì„ í™•ì¸í•´ 주세요." + +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:65 msgid "There was an issue syncing your preferences with the server" msgstr "ì„¤ì •ì„ ì„œë²„ì™€ ë™ê¸°í™”하는 ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤" -#: src/view/screens/AppPasswords.tsx:66 +#: src/view/screens/AppPasswords.tsx:68 msgid "There was an issue with fetching your app passwords" msgstr "앱 비밀번호를 ê°€ì ¸ì˜¤ëŠ” ë™ì•ˆ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤" -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:93 -#: src/view/com/post-thread/PostThreadFollowBtn.tsx:105 -#: src/view/com/profile/ProfileHeader.tsx:157 -#: src/view/com/profile/ProfileHeader.tsx:178 -#: src/view/com/profile/ProfileHeader.tsx:217 -#: src/view/com/profile/ProfileHeader.tsx:230 -#: src/view/com/profile/ProfileHeader.tsx:250 -#: src/view/com/profile/ProfileHeader.tsx:272 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:98 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:120 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:134 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:96 +#: src/view/com/post-thread/PostThreadFollowBtn.tsx:108 +#: src/view/com/profile/ProfileMenu.tsx:106 +#: src/view/com/profile/ProfileMenu.tsx:117 +#: src/view/com/profile/ProfileMenu.tsx:132 +#: src/view/com/profile/ProfileMenu.tsx:143 +#: src/view/com/profile/ProfileMenu.tsx:157 +#: src/view/com/profile/ProfileMenu.tsx:170 msgid "There was an issue! {0}" msgstr "ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤! {0}" #: src/view/screens/ProfileList.tsx:288 -#: src/view/screens/ProfileList.tsx:307 -#: src/view/screens/ProfileList.tsx:329 -#: src/view/screens/ProfileList.tsx:348 +#: src/view/screens/ProfileList.tsx:302 +#: src/view/screens/ProfileList.tsx:316 +#: src/view/screens/ProfileList.tsx:330 msgid "There was an issue. Please check your internet connection and try again." msgstr "ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì¸í„°ë„· ì—°ê²°ì„ í™•ì¸í•œ 후 다시 시ë„하세요." -#: src/view/com/util/ErrorBoundary.tsx:36 +#: src/view/com/util/ErrorBoundary.tsx:51 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" msgstr "ì• í”Œë¦¬ì¼€ì´ì…˜ì— 예기치 ì•Šì€ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì´ëŸ° ì¼ì´ ë°œìƒí•˜ë©´ ì €í¬ì—게 ì•Œë ¤ì£¼ì„¸ìš”!" @@ -4154,27 +4294,36 @@ msgstr "ì• í”Œë¦¬ì¼€ì´ì…˜ì— 예기치 ì•Šì€ ë¬¸ì œê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤. ì´ msgid "There's been a rush of new users to Bluesky! We'll activate your account as soon as we can." msgstr "Blueskyì— ì‹ ê·œ 사용ìžê°€ ëª°ë¦¬ê³ ìžˆìŠµë‹ˆë‹¤! 최대한 빨리 ê³„ì •ì„ í™œì„±í™”í•´ ë“œë¦¬ê² ìŠµë‹ˆë‹¤." -#: src/view/com/auth/create/Step2.tsx:55 -#~ msgid "There's something wrong with this number. Please choose your country and enter your full phone number!" -#~ msgstr "ìž˜ëª»ëœ ë²ˆí˜¸ìž…ë‹ˆë‹¤. êµê°€ë¥¼ ì„ íƒí•˜ê³ ì „ì²´ ì „í™”ë²ˆí˜¸ë¥¼ ìž…ë ¥í•˜ì„¸ìš”." - #: src/screens/Onboarding/StepSuggestedAccounts/index.tsx:138 msgid "These are popular accounts you might like:" msgstr "ë‚´ê°€ ì¢‹ì•„í• ë§Œí•œ ì¸ê¸° ê³„ì •ìž…ë‹ˆë‹¤:" -#: src/view/com/util/moderation/ScreenHider.tsx:88 +#: src/components/moderation/ScreenHider.tsx:116 msgid "This {screenDescription} has been flagged:" -msgstr "ì´ {screenDescription}ì— í”Œëž˜ê·¸ê°€ ì§€ì •ë˜ì—ˆìŠµë‹ˆë‹¤:" +msgstr "ì´ {screenDescription}ì— ë‹¤ìŒ í”Œëž˜ê·¸ê°€ ì§€ì •ë˜ì—ˆìŠµë‹ˆë‹¤:" -#: src/view/com/util/moderation/ScreenHider.tsx:83 +#: src/components/moderation/ScreenHider.tsx:111 msgid "This account has requested that users sign in to view their profile." msgstr "ì´ ê³„ì •ì˜ í”„ë¡œí•„ì„ ë³´ë ¤ë©´ 로그ì¸í•´ì•¼ 합니다." +#: src/components/moderation/LabelsOnMeDialog.tsx:205 +msgid "This appeal will be sent to <0>{0}</0>." +msgstr "ì´ ì´ì˜ì‹ ì²ì€ <0>{0}</0>ì—게 보내집니다." + +#: src/lib/moderation/useGlobalLabelStrings.ts:19 +msgid "This content has been hidden by the moderators." +msgstr "ì´ ì½˜í…ì¸ ëŠ” 관리ìžì— ì˜í•´ 숨겨졌습니다." + +#: src/lib/moderation/useGlobalLabelStrings.ts:24 +msgid "This content has received a general warning from moderators." +msgstr "ì´ ì½˜í…ì¸ ëŠ” 관리ìžë¡œë¶€í„° ì¼ë°˜ ê²½ê³ ë¥¼ 받았습니다." + #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" msgstr "ì´ ì½˜í…ì¸ ëŠ” {0}ì—서 호스팅ë©ë‹ˆë‹¤. 외부 미디어를 ì‚¬ìš©í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" -#: src/view/com/modals/ModerationDetails.tsx:67 +#: src/components/moderation/ModerationDetailsDialog.tsx:78 +#: src/lib/moderation/useModerationCauseDescription.ts:77 msgid "This content is not available because one of the users involved has blocked the other." msgstr "ê´€ë ¨ ì‚¬ìš©ìž ì¤‘ 한 ëª…ì´ ë‹¤ë¥¸ 사용ìžë¥¼ 차단했기 ë•Œë¬¸ì— ì´ ì½˜í…ì¸ ë¥¼ ì‚¬ìš©í• ìˆ˜ 없습니다." @@ -4184,15 +4333,15 @@ msgstr "ì´ ì½˜í…ì¸ ëŠ” Bluesky ê³„ì •ì´ ì—†ìœ¼ë©´ ë³¼ 수 없습니다." #: src/view/screens/Settings/ExportCarDialog.tsx:75 msgid "This feature is in beta. You can read more about repository exports in <0>this blogpost.</0>" -msgstr "" +msgstr "ì´ ê¸°ëŠ¥ì€ ë² íƒ€ ë²„ì „ìž…ë‹ˆë‹¤. ì €ìž¥ì†Œ ë‚´ë³´ë‚´ê¸°ì— ëŒ€í•œ ìžì„¸í•œ ë‚´ìš©ì€ <0>ì´ ë¸”ë¡œê·¸ 글</0>ì—서 확ì¸í• 수 있습니다." #: src/view/com/posts/FeedErrorMessage.tsx:114 msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." msgstr "ì´ í”¼ë“œëŠ” 현재 íŠ¸ëž˜í”½ì´ ë§Žì•„ ì¼ì‹œì 으로 ì‚¬ìš©í• ìˆ˜ 없습니다. ë‚˜ì¤‘ì— ë‹¤ì‹œ 시ë„í•´ 주세요." -#: src/view/screens/Profile.tsx:420 +#: src/screens/Profile/Sections/Feed.tsx:50 #: src/view/screens/ProfileFeed.tsx:476 -#: src/view/screens/ProfileList.tsx:661 +#: src/view/screens/ProfileList.tsx:675 msgid "This feed is empty!" msgstr "ì´ í”¼ë“œëŠ” 비어 있습니다." @@ -4200,7 +4349,7 @@ msgstr "ì´ í”¼ë“œëŠ” 비어 있습니다." msgid "This feed is empty! You may need to follow more users or tune your language settings." msgstr "ì´ í”¼ë“œëŠ” 비어 있습니다. ë” ë§Žì€ ì‚¬ìš©ìžë¥¼ 팔로우하거나 언어 ì„¤ì •ì„ ì¡°ì •í•´ 보세요." -#: src/view/com/modals/BirthDateSettings.tsx:61 +#: src/components/dialogs/BirthDateSettings.tsx:89 msgid "This information is not shared with other users." msgstr "ì´ ì •ë³´ëŠ” 다른 사용ìžì™€ ê³µìœ ë˜ì§€ 않습니다." @@ -4208,14 +4357,26 @@ msgstr "ì´ ì •ë³´ëŠ” 다른 사용ìžì™€ ê³µìœ ë˜ì§€ 않습니다." msgid "This is important in case you ever need to change your email or reset your password." msgstr "ì´ëŠ” ì´ë©”ì¼ì„ 변경하거나 비밀번호를 ìž¬ì„¤ì •í•´ì•¼ í• ë•Œ 중요한 ì •ë³´ìž…ë‹ˆë‹¤." +#: src/components/moderation/ModerationDetailsDialog.tsx:125 +msgid "This label was applied by {0}." +msgstr "ì´ ë¼ë²¨ì€ {0}ì´(ê°€) ì 용했습니다." + +#: src/screens/Profile/Sections/Labels.tsx:186 +msgid "This labeler hasn't declared what labels it publishes, and may not be active." +msgstr "ì´ ë¼ë²¨ëŸ¬ëŠ” ë¼ë²¨ì„ 게시하지 않았으며 활성화ë˜ì–´ 있지 ì•Šì„ ìˆ˜ 있습니다." + #: src/view/com/modals/LinkWarning.tsx:58 msgid "This link is taking you to the following website:" msgstr "ì´ ë§í¬ë¥¼ í´ë¦í•˜ë©´ ë‹¤ìŒ ì›¹ì‚¬ì´íŠ¸ë¡œ ì´ë™í•©ë‹ˆë‹¤:" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:853 msgid "This list is empty!" msgstr "ì´ ë¦¬ìŠ¤íŠ¸ëŠ” 비어 있습니다." +#: src/screens/Profile/ErrorState.tsx:40 +msgid "This moderation service is unavailable. See below for more details. If this issue persists, contact us." +msgstr "ì´ ê²€í† ì„œë¹„ìŠ¤ëŠ” ì‚¬ìš©í• ìˆ˜ 없습니다. ìžì„¸í•œ ë‚´ìš©ì€ ì•„ëž˜ë¥¼ 참조하세요. ì´ ë¬¸ì œê°€ ì§€ì†ë˜ë©´ 문ì˜í•´ 주세요." + #: src/view/com/modals/AddAppPasswords.tsx:106 msgid "This name is already in use" msgstr "ì´ ì´ë¦„ì€ ì´ë¯¸ 사용 중입니다" @@ -4224,36 +4385,45 @@ msgstr "ì´ ì´ë¦„ì€ ì´ë¯¸ 사용 중입니다" msgid "This post has been deleted." msgstr "ì´ ê²Œì‹œë¬¼ì€ ì‚ì œë˜ì—ˆìŠµë‹ˆë‹¤." -#: src/view/com/modals/ModerationDetails.tsx:62 +#: src/view/com/util/forms/PostDropdownBtn.tsx:344 +msgid "This post is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "ì´ ê²Œì‹œë¬¼ì€ ë¡œê·¸ì¸í•œ 사용ìžì—게만 표시ë©ë‹ˆë‹¤. 로그ì¸í•˜ì§€ ì•Šì€ ì‚¬ìš©ìžì—게는 표시ë˜ì§€ 않습니다." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:326 +msgid "This post will be hidden from feeds." +msgstr "ì´ ê²Œì‹œë¬¼ì„ í”¼ë“œì—서 숨ê¹ë‹ˆë‹¤." + +#: src/view/com/profile/ProfileMenu.tsx:370 +msgid "This profile is only visible to logged-in users. It won't be visible to people who aren't logged in." +msgstr "ì´ í”„ë¡œí•„ì€ ë¡œê·¸ì¸í•œ 사용ìžì—게만 표시ë©ë‹ˆë‹¤. 로그ì¸í•˜ì§€ ì•Šì€ ì‚¬ìš©ìžì—게는 표시ë˜ì§€ 않습니다." + +#: src/components/moderation/ModerationDetailsDialog.tsx:73 +#: src/lib/moderation/useModerationCauseDescription.ts:68 msgid "This user has blocked you. You cannot view their content." msgstr "ì´ ì‚¬ìš©ìžëŠ” 나를 차단했습니다. ì´ ì‚¬ìš©ìžì˜ 콘í…ì¸ ë¥¼ ë³¼ 수 없습니다." -#: src/view/com/modals/ModerationDetails.tsx:42 -msgid "This user is included in the <0/> list which you have blocked." -msgstr "ì´ ì‚¬ìš©ìžëŠ” 차단한 <0/> ë¦¬ìŠ¤íŠ¸ì— í¬í•¨ë˜ì–´ 있습니다." +#: src/lib/moderation/useGlobalLabelStrings.ts:30 +msgid "This user has requested that their content only be shown to signed-in users." +msgstr "ì´ ì‚¬ìš©ìžëŠ” ìžì‹ ì˜ ì½˜í…ì¸ ê°€ 로그ì¸í•œ 사용ìžì—게만 표시ë˜ë„ë¡ ìš”ì²í–ˆìŠµë‹ˆë‹¤." -#: src/view/com/modals/ModerationDetails.tsx:74 -msgid "This user is included in the <0/> list which you have muted." -msgstr "" +#: src/components/moderation/ModerationDetailsDialog.tsx:56 +msgid "This user is included in the <0>{0}</0> list which you have blocked." +msgstr "ì´ ì‚¬ìš©ìžëŠ” ë‚´ê°€ 차단한 <0>{0}</0> ë¦¬ìŠ¤íŠ¸ì— í¬í•¨ë˜ì–´ 있습니다." -#: src/view/com/modals/ModerationDetails.tsx:74 -#~ msgid "This user is included the <0/> list which you have muted." -#~ msgstr "ì´ ì‚¬ìš©ìžëŠ” 뮤트한 <0/> ë¦¬ìŠ¤íŠ¸ì— í¬í•¨ë˜ì–´ 있습니다." +#: src/components/moderation/ModerationDetailsDialog.tsx:85 +msgid "This user is included in the <0>{0}</0> list which you have muted." +msgstr "ì´ ì‚¬ìš©ìžëŠ” ë‚´ê°€ 뮤트한 <0>{0}</0> ë¦¬ìŠ¤íŠ¸ì— í¬í•¨ë˜ì–´ 있습니다." #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "ì´ ê²½ê³ ëŠ” 미디어가 ì²¨ë¶€ëœ ê²Œì‹œë¬¼ì—ë§Œ ì‚¬ìš©í• ìˆ˜ 있습니다." -#: src/components/dialogs/MutedWords.tsx:285 +#: src/components/dialogs/MutedWords.tsx:284 msgid "This will delete {0} from your muted words. You can always add it back later." -msgstr "" - -#: src/view/com/util/forms/PostDropdownBtn.tsx:282 -msgid "This will hide this post from your feeds." -msgstr "피드ì—서 ì´ ê²Œì‹œë¬¼ì„ ìˆ¨ê¹ë‹ˆë‹¤." +msgstr "뮤트한 단어ì—서 {0}ì´(ê°€) ì‚ì œë©ë‹ˆë‹¤. ë‚˜ì¤‘ì— ì–¸ì œë“ ì§€ 다시 ì¶”ê°€í• ìˆ˜ 있습니다." #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings/index.tsx:565 +#: src/view/screens/Settings/index.tsx:583 msgid "Thread Preferences" msgstr "ìŠ¤ë ˆë“œ ì„¤ì •" @@ -4261,26 +4431,30 @@ msgstr "ìŠ¤ë ˆë“œ ì„¤ì •" msgid "Threaded Mode" msgstr "ìŠ¤ë ˆë“œ 모드" -#: src/Navigation.tsx:257 +#: src/Navigation.tsx:269 msgid "Threads Preferences" msgstr "ìŠ¤ë ˆë“œ ì„¤ì •" #: src/components/dialogs/MutedWords.tsx:113 msgid "Toggle between muted word options." -msgstr "" +msgstr "뮤트한 단어 옵션 사ì´ë¥¼ ì „í™˜í•©ë‹ˆë‹¤." #: src/view/com/util/forms/DropdownButton.tsx:246 msgid "Toggle dropdown" msgstr "드ë¡ë‹¤ìš´ 열기 ë° ë‹«ê¸°" +#: src/screens/Moderation/index.tsx:338 +msgid "Toggle to enable or disable adult content" +msgstr "ì„±ì¸ ì½˜í…ì¸ í™œì„±í™” ë˜ëŠ” 비활성화 ì „í™˜" + #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" msgstr "변형" -#: src/view/com/post-thread/PostThreadItem.tsx:685 -#: src/view/com/post-thread/PostThreadItem.tsx:687 -#: src/view/com/util/forms/PostDropdownBtn.tsx:215 -#: src/view/com/util/forms/PostDropdownBtn.tsx:217 +#: src/view/com/post-thread/PostThreadItem.tsx:646 +#: src/view/com/post-thread/PostThreadItem.tsx:648 +#: src/view/com/util/forms/PostDropdownBtn.tsx:212 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Translate" msgstr "번ì—" @@ -4289,11 +4463,11 @@ msgctxt "action" msgid "Try again" msgstr "다시 시ë„" -#: src/view/screens/ProfileList.tsx:506 +#: src/view/screens/ProfileList.tsx:478 msgid "Un-block list" msgstr "리스트 차단 í•´ì œ" -#: src/view/screens/ProfileList.tsx:491 +#: src/view/screens/ProfileList.tsx:461 msgid "Un-mute list" msgstr "리스트 언뮤트" @@ -4305,21 +4479,28 @@ msgstr "리스트 언뮤트" msgid "Unable to contact your service. Please check your Internet connection." msgstr "ì„œë¹„ìŠ¤ì— ì—°ê²°í• ìˆ˜ 없습니다. ì¸í„°ë„· ì—°ê²°ì„ í™•ì¸í•˜ì„¸ìš”." -#: src/view/com/profile/ProfileHeader.tsx:433 -#: src/view/screens/ProfileList.tsx:590 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:174 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:361 +#: src/view/screens/ProfileList.tsx:572 msgid "Unblock" msgstr "차단 í•´ì œ" -#: src/view/com/profile/ProfileHeader.tsx:436 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:179 msgctxt "action" msgid "Unblock" msgstr "차단 í•´ì œ" -#: src/view/com/profile/ProfileHeader.tsx:261 -#: src/view/com/profile/ProfileHeader.tsx:345 +#: src/view/com/profile/ProfileMenu.tsx:299 +#: src/view/com/profile/ProfileMenu.tsx:305 msgid "Unblock Account" msgstr "ê³„ì • 차단 í•´ì œ" +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:272 +#: src/view/com/profile/ProfileMenu.tsx:343 +msgid "Unblock Account?" +msgstr "ê³„ì •ì„ ì°¨ë‹¨ í•´ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" + #: src/view/com/modals/Repost.tsx:42 #: src/view/com/modals/Repost.tsx:55 #: src/view/com/util/post-ctrls/RepostButton.tsx:60 @@ -4327,70 +4508,84 @@ msgstr "ê³„ì • 차단 í•´ì œ" msgid "Undo repost" msgstr "재게시 취소" -#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/profile/FollowButton.tsx:60 msgctxt "action" msgid "Unfollow" msgstr "언팔로우" -#: src/view/com/profile/ProfileHeader.tsx:485 +#: src/screens/Profile/Header/ProfileHeaderStandard.tsx:213 msgid "Unfollow {0}" msgstr "{0} ë‹˜ì„ ì–¸íŒ”ë¡œìš°" +#: src/view/com/profile/ProfileMenu.tsx:241 +#: src/view/com/profile/ProfileMenu.tsx:251 +msgid "Unfollow Account" +msgstr "ê³„ì • 언팔로우" + #: src/view/com/auth/create/state.ts:262 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "아쉽지만 ê³„ì •ì„ ë§Œë“¤ 수 있는 ìš”ê±´ì„ ì¶©ì¡±í•˜ì§€ 못했습니다." -#: src/view/com/util/post-ctrls/PostCtrls.tsx:182 +#: src/view/com/util/post-ctrls/PostCtrls.tsx:185 msgid "Unlike" msgstr "좋아요 취소" +#: src/view/screens/ProfileFeed.tsx:572 +msgid "Unlike this feed" +msgstr "ì´ í”¼ë“œ 좋아요 취소" + #: src/components/TagMenu/index.tsx:249 -#: src/view/screens/ProfileList.tsx:597 +#: src/view/screens/ProfileList.tsx:579 msgid "Unmute" msgstr "언뮤트" #: src/components/TagMenu/index.web.tsx:104 msgid "Unmute {truncatedTag}" -msgstr "" +msgstr "{truncatedTag} 언뮤트" -#: src/view/com/profile/ProfileHeader.tsx:326 +#: src/view/com/profile/ProfileMenu.tsx:278 +#: src/view/com/profile/ProfileMenu.tsx:284 msgid "Unmute Account" msgstr "ê³„ì • 언뮤트" #: src/components/TagMenu/index.tsx:208 msgid "Unmute all {displayTag} posts" -msgstr "" - -#: src/components/TagMenu/index.tsx:210 -#~ msgid "Unmute all {tag} posts" -#~ msgstr "" +msgstr "ëª¨ë“ {tag} 게시물 언뮤트" #: src/view/com/util/forms/PostDropdownBtn.tsx:251 #: src/view/com/util/forms/PostDropdownBtn.tsx:256 msgid "Unmute thread" msgstr "ìŠ¤ë ˆë“œ 언뮤트" -#: src/view/screens/ProfileFeed.tsx:354 -#: src/view/screens/ProfileList.tsx:581 +#: src/view/screens/ProfileFeed.tsx:294 +#: src/view/screens/ProfileList.tsx:563 msgid "Unpin" msgstr "ê³ ì • í•´ì œ" -#: src/view/screens/ProfileList.tsx:474 +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Unpin from home" +msgstr "홈ì—서 ê³ ì • í•´ì œ" + +#: src/view/screens/ProfileList.tsx:444 msgid "Unpin moderation list" msgstr "ê²€í† ë¦¬ìŠ¤íŠ¸ ê³ ì • í•´ì œ" -#: src/view/screens/ProfileFeed.tsx:346 -msgid "Unsave" -msgstr "ì €ìž¥ í•´ì œ" +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:220 +msgid "Unsubscribe" +msgstr "êµ¬ë… ì·¨ì†Œ" + +#: src/screens/Profile/Header/ProfileHeaderLabeler.tsx:184 +msgid "Unsubscribe from this labeler" +msgstr "ì´ ë¼ë²¨ëŸ¬ êµ¬ë… ì·¨ì†Œí•˜ê¸°" + +#: src/lib/moderation/useReportOptions.ts:70 +msgid "Unwanted Sexual Content" +msgstr "ì›ì¹˜ 않는 성ì 콘í…ì¸ " #: src/view/com/modals/UserAddRemoveLists.tsx:70 msgid "Update {displayName} in Lists" msgstr "리스트ì—서 {displayName} ì—…ë°ì´íЏ" -#: src/lib/hooks/useOTAUpdate.ts:15 -msgid "Update Available" -msgstr "ì—…ë°ì´íЏ 사용 가능" - #: src/view/com/auth/login/SetNewPasswordForm.tsx:204 msgid "Updating..." msgstr "ì—…ë°ì´íЏ 중…" @@ -4399,7 +4594,26 @@ msgstr "ì—…ë°ì´íЏ 중…" msgid "Upload a text file to:" msgstr "í…스트 íŒŒì¼ ì—…ë¡œë“œ 경로:" -#: src/view/screens/AppPasswords.tsx:195 +#: src/view/com/util/UserAvatar.tsx:319 +#: src/view/com/util/UserAvatar.tsx:322 +#: src/view/com/util/UserBanner.tsx:113 +#: src/view/com/util/UserBanner.tsx:116 +msgid "Upload from Camera" +msgstr "ì¹´ë©”ë¼ì—서 업로드" + +#: src/view/com/util/UserAvatar.tsx:336 +#: src/view/com/util/UserBanner.tsx:130 +msgid "Upload from Files" +msgstr "파ì¼ì—서 업로드" + +#: src/view/com/util/UserAvatar.tsx:330 +#: src/view/com/util/UserAvatar.tsx:334 +#: src/view/com/util/UserBanner.tsx:124 +#: src/view/com/util/UserBanner.tsx:128 +msgid "Upload from Library" +msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬ì—서 업로드" + +#: src/view/screens/AppPasswords.tsx:197 msgid "Use app passwords to login to other Bluesky clients without giving full access to your account or password." msgstr "앱 비밀번호를 사용하면 ê³„ì •ì´ë‚˜ ë¹„ë°€ë²ˆí˜¸ì— ëŒ€í•œ ì „ì²´ ì ‘ê·¼ ê¶Œí•œì„ ì œê³µí•˜ì§€ ì•Šê³ ë„ ë‹¤ë¥¸ Bluesky í´ë¼ì´ì–¸íŠ¸ì— ë¡œê·¸ì¸í• 수 있습니다." @@ -4421,25 +4635,30 @@ msgstr "ë‚´ 기본 브ë¼ìš°ì € 사용" msgid "Use this to sign into the other app along with your handle." msgstr "ì´ ë¹„ë°€ë²ˆí˜¸ì™€ í•¸ë“¤ì„ ì‚¬ìš©í•˜ì—¬ 다른 ì•±ì— ë¡œê·¸ì¸í•˜ì„¸ìš”." -#: src/view/com/modals/ServerInput.tsx:105 -#~ msgid "Use your domain as your Bluesky client service provider" -#~ msgstr "ë‚´ ë„ë©”ì¸ì„ Bluesky í´ë¼ì´ì–¸íЏ 서비스 공급ìžë¡œ 사용합니다" - #: src/view/com/modals/InviteCodes.tsx:200 msgid "Used by:" msgstr "사용 ê³„ì •:" -#: src/view/com/modals/ModerationDetails.tsx:54 +#: src/components/moderation/ModerationDetailsDialog.tsx:65 +#: src/lib/moderation/useModerationCauseDescription.ts:56 msgid "User Blocked" msgstr "ì‚¬ìš©ìž ì°¨ë‹¨ë¨" -#: src/view/com/modals/ModerationDetails.tsx:40 +#: src/lib/moderation/useModerationCauseDescription.ts:48 +msgid "User Blocked by \"{0}\"" +msgstr " \"{0}\"ì—서 ì°¨ë‹¨ëœ ì‚¬ìš©ìž" + +#: src/components/moderation/ModerationDetailsDialog.tsx:54 msgid "User Blocked by List" msgstr "리스트로 ì‚¬ìš©ìž ì°¨ë‹¨ë¨" -#: src/view/com/modals/ModerationDetails.tsx:60 +#: src/lib/moderation/useModerationCauseDescription.ts:66 +msgid "User Blocking You" +msgstr "나를 차단한 사용ìž" + +#: src/components/moderation/ModerationDetailsDialog.tsx:71 msgid "User Blocks You" -msgstr "사용ìžê°€ 나를 차단함" +msgstr "나를 차단한 사용ìž" #: src/view/com/auth/create/Step2.tsx:79 msgid "User handle" @@ -4450,13 +4669,13 @@ msgstr "ì‚¬ìš©ìž í•¸ë“¤" msgid "User list by {0}" msgstr "{0} ë‹˜ì˜ ì‚¬ìš©ìž ë¦¬ìŠ¤íŠ¸" -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:777 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:761 +#: src/view/screens/ProfileList.tsx:775 msgid "User list by you" msgstr "ë‚´ ì‚¬ìš©ìž ë¦¬ìŠ¤íŠ¸" @@ -4477,7 +4696,7 @@ msgstr "ì‚¬ìš©ìž ë¦¬ìŠ¤íŠ¸" msgid "Username or email address" msgstr "ì‚¬ìš©ìž ì´ë¦„ ë˜ëŠ” ì´ë©”ì¼ ì£¼ì†Œ" -#: src/view/screens/ProfileList.tsx:797 +#: src/view/screens/ProfileList.tsx:811 msgid "Users" msgstr "사용ìž" @@ -4489,19 +4708,19 @@ msgstr "<0/> ë‹˜ì´ íŒ”ë¡œìš°í•œ 사용ìž" msgid "Users in \"{0}\"" msgstr "\"{0}\"ì— ìžˆëŠ” 사용ìž" -#: src/view/com/auth/create/Step2.tsx:243 -#~ msgid "Verification code" -#~ msgstr "ì¸ì¦ 코드" +#: src/components/LikesDialog.tsx:85 +msgid "Users that have liked this content or profile" +msgstr "ì´ ì½˜í…ì¸ ë˜ëŠ” í”„ë¡œí•„ì„ ì¢‹ì•„í•˜ëŠ” 사용ìž" -#: src/view/screens/Settings/index.tsx:910 +#: src/view/screens/Settings/index.tsx:938 msgid "Verify email" msgstr "ì´ë©”ì¼ ì¸ì¦" -#: src/view/screens/Settings/index.tsx:935 +#: src/view/screens/Settings/index.tsx:963 msgid "Verify my email" msgstr "ë‚´ ì´ë©”ì¼ ì¸ì¦í•˜ê¸°" -#: src/view/screens/Settings/index.tsx:944 +#: src/view/screens/Settings/index.tsx:972 msgid "Verify My Email" msgstr "ë‚´ ì´ë©”ì¼ ì¸ì¦í•˜ê¸°" @@ -4518,7 +4737,7 @@ msgstr "ì´ë©”ì¼ ì¸ì¦í•˜ê¸°" msgid "Video Games" msgstr "비디오 게임" -#: src/view/com/profile/ProfileHeader.tsx:662 +#: src/screens/Profile/Header/Shell.tsx:110 msgid "View {0}'s avatar" msgstr "{0} ë‹˜ì˜ ì•„ë°”íƒ€ë¥¼ 봅니다" @@ -4526,11 +4745,23 @@ msgstr "{0} ë‹˜ì˜ ì•„ë°”íƒ€ë¥¼ 봅니다" msgid "View debug entry" msgstr "디버그 í•목 보기" -#: src/view/com/posts/FeedSlice.tsx:103 +#: src/components/ReportDialog/SelectReportOptionView.tsx:132 +msgid "View details" +msgstr "세부 ì •ë³´ 보기" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:127 +msgid "View details for reporting a copyright violation" +msgstr "ì €ìž‘ê¶Œ 위반 ì‹ ê³ ì— ëŒ€í•œ 세부 ì •ë³´ 보기" + +#: src/view/com/posts/FeedSlice.tsx:99 msgid "View full thread" msgstr "ì „ì²´ ìŠ¤ë ˆë“œ 보기" -#: src/view/com/posts/FeedErrorMessage.tsx:172 +#: src/components/moderation/LabelsOnMe.tsx:51 +msgid "View information about these labels" +msgstr "ì´ ë¼ë²¨ì— 대한 ì •ë³´ 보기" + +#: src/view/com/posts/FeedErrorMessage.tsx:166 msgid "View profile" msgstr "프로필 보기" @@ -4538,22 +4769,40 @@ msgstr "프로필 보기" msgid "View the avatar" msgstr "아바타 보기" +#: src/components/LabelingServiceCard/index.tsx:140 +msgid "View the labeling service provided by @{0}" +msgstr "{0} ë‹˜ì´ ì œê³µí•˜ëŠ” ë¼ë²¨ë§ 서비스 보기" + +#: src/view/screens/ProfileFeed.tsx:584 +msgid "View users who like this feed" +msgstr "ì´ í”¼ë“œë¥¼ 좋아하는 ì‚¬ìš©ìž ë³´ê¸°" + #: src/view/com/modals/LinkWarning.tsx:75 msgid "Visit Site" msgstr "사ì´íЏ 방문" -#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:42 -#: src/view/com/modals/ContentFilteringSettings.tsx:259 +#: src/components/moderation/GlobalModerationLabelPref.tsx:44 +#: src/lib/moderation/useLabelBehaviorDescription.ts:17 +#: src/lib/moderation/useLabelBehaviorDescription.ts:22 +#: src/screens/Onboarding/StepModeration/ModerationOption.tsx:53 msgid "Warn" msgstr "ê²½ê³ " +#: src/lib/moderation/useLabelBehaviorDescription.ts:48 +msgid "Warn content" +msgstr "콘í…ì¸ ê²½ê³ " + +#: src/lib/moderation/useLabelBehaviorDescription.ts:46 +msgid "Warn content and filter from feeds" +msgstr "콘í…ì¸ ê²½ê³ ë° í”¼ë“œì—서 í•„í„°ë§" + #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:134 msgid "We also think you'll like \"For You\" by Skygaze:" msgstr "Skygazeì˜ \"For You\"를 사용해 ë³¼ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤:" #: src/screens/Hashtag.tsx:132 msgid "We couldn't find any results for that hashtag." -msgstr "" +msgstr "해당 í•´ì‹œíƒœê·¸ì— ëŒ€í•œ 결과를 ì°¾ì„ ìˆ˜ 없습니다." #: src/screens/Deactivated.tsx:133 msgid "We estimate {estimatedTime} until your account is ready." @@ -4569,12 +4818,16 @@ msgstr "팔로우한 사용ìžì˜ ê²Œì‹œë¬¼ì´ ë¶€ì¡±í•©ë‹ˆë‹¤. ëŒ€ì‹ <0/>ì˜ ì #: 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 "" +msgstr "ê²Œì‹œë¬¼ì´ í‘œì‹œë˜ì§€ ì•Šì„ ìˆ˜ 있으므로 ë§Žì€ ê²Œì‹œë¬¼ì— ìžì£¼ 등장하는 단어는 피하는 ê²ƒì´ ì¢‹ìŠµë‹ˆë‹¤." #: src/screens/Onboarding/StepAlgoFeeds/index.tsx:124 msgid "We recommend our \"Discover\" feed:" msgstr "\"Discover\" 피드를 권장합니다:" +#: src/screens/Moderation/index.tsx:391 +msgid "We were unable to load your configured labelers at this time." +msgstr "현재 êµ¬ì„±ëœ ë¼ë²¨ëŸ¬ë¥¼ 불러올 수 없습니다." + #: src/screens/Onboarding/StepInterests/index.tsx:133 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 "연결하지 못했습니다. ê³„ì • ì„¤ì •ì„ ê³„ì†í•˜ë ¤ë©´ 다시 시ë„í•´ 주세요. ê³„ì† ì‹¤íŒ¨í•˜ë©´ ì´ ê³¼ì •ì„ ê±´ë„ˆë›¸ 수 있습니다." @@ -4583,49 +4836,45 @@ msgstr "연결하지 못했습니다. ê³„ì • ì„¤ì •ì„ ê³„ì†í•˜ë ¤ë©´ 다시 ì‹ msgid "We will let you know when your account is ready." msgstr "ê³„ì •ì´ ì¤€ë¹„ë˜ë©´ ì•Œë ¤ë“œë¦¬ê² ìŠµë‹ˆë‹¤." -#: src/view/com/modals/AppealLabel.tsx:48 -msgid "We'll look into your appeal promptly." -msgstr "ì´ì˜ì‹ ì²ì„ 즉시 ê²€í† í•˜ê² ìŠµë‹ˆë‹¤." - #: src/screens/Onboarding/StepInterests/index.tsx:138 msgid "We'll use this to help customize your experience." msgstr "ì´ë¥¼ 통해 ì‚¬ìš©ìž í™˜ê²½ì„ ë§žì¶¤ ì„¤ì •í• ìˆ˜ 있습니다." #: src/view/com/auth/create/CreateAccount.tsx:134 msgid "We're so excited to have you join us!" -msgstr "ë‹¹ì‹ ê³¼ 함께하게 ë˜ì–´ ì •ë§ ê¸°ì˜ë„¤ìš”!" +msgstr "함께하게 ë˜ì–´ ì •ë§ ê¸°ë»ìš”!" -#: src/view/screens/ProfileList.tsx:86 +#: src/view/screens/ProfileList.tsx:89 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:230 msgid "We're sorry, but we weren't able to load your muted words at this time. Please try again." -msgstr "" +msgstr "죄송하지만 현재 뮤트한 단어를 불러올 수 없습니다. 다시 시ë„í•´ 주세요." #: src/view/screens/Search/Search.tsx:254 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "죄송하지만 ê²€ìƒ‰ì„ ì™„ë£Œí• ìˆ˜ 없습니다. 몇 ë¶„ í›„ì— ë‹¤ì‹œ 시ë„í•´ 주세요." -#: src/components/Lists.tsx:211 +#: src/components/Lists.tsx:210 #: 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:319 +msgid "We're sorry! You can only subscribe to ten labelers, and you've reached your limit of ten." +msgstr "죄송합니다. ë¼ë²¨ëŸ¬ëŠ” 10개까지만 구ë…í• ìˆ˜ 있으며 10ê°œì— ë„달했습니다." + #: src/view/com/auth/onboarding/WelcomeMobile.tsx:46 msgid "Welcome to <0>Bluesky</0>" msgstr "<0>Bluesky</0>ì— ì˜¤ì‹ ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤" #: src/screens/Onboarding/StepInterests/index.tsx:130 msgid "What are your interests?" -msgstr "관심사가 어떻게 ë˜ë‚˜ìš”?" - -#: src/view/com/modals/report/Modal.tsx:169 -msgid "What is the issue with this {collectionName}?" -msgstr "ì´ {collectionName}ì— ì–´ë–¤ ë¬¸ì œê°€ 있나요?" +msgstr "ì–´ë–¤ 관심사가 ìžˆìœ¼ì‹ ê°€ìš”?" #: src/view/com/auth/SplashScreen.tsx:59 -#: src/view/com/composer/Composer.tsx:286 +#: src/view/com/composer/Composer.tsx:295 msgid "What's up?" msgstr "무슨 ì¼ì´ ì¼ì–´ë‚˜ê³ 있나요?" @@ -4642,15 +4891,39 @@ msgstr "ì•Œê³ ë¦¬ì¦˜ í”¼ë“œì— ì–´ë–¤ 언어를 í‘œì‹œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" msgid "Who can reply" msgstr "ë‹µê¸€ì„ ë‹¬ 수 있는 사람" +#: src/components/ReportDialog/SelectLabelerView.tsx:33 +msgid "Who do you want to send this report to?" +msgstr "ì´ ì‹ ê³ ë¥¼ 누구ì—게 ë³´ë‚´ì‹œê² ìŠµë‹ˆê¹Œ?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:43 +msgid "Why should this content be reviewed?" +msgstr "ì´ ì½˜í…ì¸ ë¥¼ ê²€í† í•´ì•¼ 하는 ì´ìœ 는 무엇ì¸ê°€ìš”?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:56 +msgid "Why should this feed be reviewed?" +msgstr "ì´ í”¼ë“œë¥¼ ê²€í† í•´ì•¼ 하는 ì´ìœ 는 무엇ì¸ê°€ìš”?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:53 +msgid "Why should this list be reviewed?" +msgstr "ì´ ë¦¬ìŠ¤íŠ¸ë¥¼ ê²€í† í•´ì•¼ 하는 ì´ìœ 는 무엇ì¸ê°€ìš”?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:50 +msgid "Why should this post be reviewed?" +msgstr "ì´ ê²Œì‹œë¬¼ì„ ê²€í† í•´ì•¼ 하는 ì´ìœ 는 무엇ì¸ê°€ìš”?" + +#: src/components/ReportDialog/SelectReportOptionView.tsx:47 +msgid "Why should this user be reviewed?" +msgstr "ì´ ì‚¬ìš©ìžë¥¼ ê²€í† í•´ì•¼ 하는 ì´ìœ 는 무엇ì¸ê°€ìš”?" + #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" msgstr "가로" -#: src/view/com/composer/Composer.tsx:422 +#: src/view/com/composer/Composer.tsx:431 msgid "Write post" msgstr "게시물 작성" -#: src/view/com/composer/Composer.tsx:285 +#: src/view/com/composer/Composer.tsx:294 #: src/view/com/composer/Prompt.tsx:33 msgid "Write your reply" msgstr "답글 작성하기" @@ -4659,10 +4932,6 @@ msgstr "답글 작성하기" msgid "Writers" msgstr "작가" -#: src/view/com/auth/create/Step2.tsx:263 -#~ msgid "XXXXXX" -#~ msgstr "XXXXXX" - #: src/view/com/composer/select-language/SuggestedLanguage.tsx:77 #: src/view/screens/PreferencesFollowingFeed.tsx:129 #: src/view/screens/PreferencesFollowingFeed.tsx:201 @@ -4707,11 +4976,13 @@ msgstr "ì €ìž¥ëœ í”¼ë“œê°€ 없습니다!" msgid "You don't have any saved feeds." msgstr "ì €ìž¥ëœ í”¼ë“œê°€ 없습니다." -#: src/view/com/post-thread/PostThread.tsx:465 +#: src/view/com/post-thread/PostThread.tsx:466 msgid "You have blocked the author or you have been blocked by the author." msgstr "작성ìžë¥¼ 차단했거나 작성ìžê°€ 나를 차단했습니다." -#: src/view/com/modals/ModerationDetails.tsx:56 +#: src/components/moderation/ModerationDetailsDialog.tsx:67 +#: src/lib/moderation/useModerationCauseDescription.ts:50 +#: src/lib/moderation/useModerationCauseDescription.ts:58 msgid "You have blocked this user. You cannot view their content." msgstr "ì´ ì‚¬ìš©ìžë¥¼ 차단했습니다. 해당 사용ìžì˜ 콘í…ì¸ ë¥¼ ë³¼ 수 없습니다." @@ -4720,11 +4991,24 @@ msgstr "ì´ ì‚¬ìš©ìžë¥¼ 차단했습니다. 해당 사용ìžì˜ 콘í…ì¸ ë¥¼ ë³ #: src/view/com/modals/ChangePassword.tsx:87 #: src/view/com/modals/ChangePassword.tsx:121 msgid "You have entered an invalid code. It should look like XXXXX-XXXXX." -msgstr "" +msgstr "ìž˜ëª»ëœ ì½”ë“œë¥¼ ìž…ë ¥í–ˆìŠµë‹ˆë‹¤. XXXXX-XXXXX와 ê°™ì€ í˜•ì‹ì´ì–´ì•¼ 합니다." + +#: src/lib/moderation/useModerationCauseDescription.ts:109 +msgid "You have hidden this post" +msgstr "ë‚´ê°€ ì´ ê²Œì‹œë¬¼ì„ ìˆ¨ê²¼ìŠµë‹ˆë‹¤" -#: src/view/com/modals/ModerationDetails.tsx:87 -msgid "You have muted this user." -msgstr "ì´ ì‚¬ìš©ìžë¥¼ 뮤트했습니다." +#: src/components/moderation/ModerationDetailsDialog.tsx:102 +msgid "You have hidden this post." +msgstr "ë‚´ê°€ ì´ ê²Œì‹œë¬¼ì„ ìˆ¨ê²¼ìŠµë‹ˆë‹¤." + +#: src/components/moderation/ModerationDetailsDialog.tsx:95 +#: src/lib/moderation/useModerationCauseDescription.ts:92 +msgid "You have muted this account." +msgstr "ë‚´ê°€ ì´ ê³„ì •ì„ ë®¤íŠ¸í–ˆìŠµë‹ˆë‹¤." + +#: src/lib/moderation/useModerationCauseDescription.ts:86 +msgid "You have muted this user" +msgstr "ë‚´ê°€ ì´ ì‚¬ìš©ìžë¥¼ 뮤트했습니다" #: src/view/com/feeds/ProfileFeedgens.tsx:136 msgid "You have no feeds." @@ -4739,7 +5023,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:87 +#: src/view/screens/AppPasswords.tsx:89 msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "ì•„ì§ ì•± 비밀번호를 ìƒì„±í•˜ì§€ 않았습니다. 아래 ë²„íŠ¼ì„ ëˆŒëŸ¬ ìƒì„±í• 수 있습니다." @@ -4749,21 +5033,25 @@ msgstr "ì•„ì§ ì–´ë–¤ ê³„ì •ë„ ë®¤íŠ¸í•˜ì§€ 않았습니다. ê³„ì •ì„ ë®¤íŠ¸í• #: src/components/dialogs/MutedWords.tsx:250 msgid "You haven't muted any words or tags yet" -msgstr "" +msgstr "ì•„ì§ ì–´ë–¤ 단어나 íƒœê·¸ë„ ë®¤íŠ¸í•˜ì§€ 않았습니다" -#: src/view/com/modals/ContentFilteringSettings.tsx:175 -msgid "You must be 18 or older to enable adult content." -msgstr "ì„±ì¸ ì½˜í…ì¸ ë¥¼ í™œì„±í™”í•˜ë ¤ë©´ 18세 ì´ìƒì´ì–´ì•¼ 합니다." +#: src/components/moderation/LabelsOnMeDialog.tsx:69 +msgid "You may appeal these labels if you feel they were placed in error." +msgstr "ì´ ë¼ë²¨ì´ 잘못 ì§€ì •ë˜ì—ˆë‹¤ê³ ìƒê°ë˜ë©´ ì´ì˜ì‹ ì²í• 수 있습니다." -#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:103 +#: src/screens/Onboarding/StepModeration/AdultContentEnabledPref.tsx:108 msgid "You must be 18 years or older to enable adult content" msgstr "ì„±ì¸ ì½˜í…ì¸ ë¥¼ ì‚¬ìš©í•˜ë ¤ë©´ ë§Œ 18세 ì´ìƒì´ì–´ì•¼ 합니다." -#: src/view/com/util/forms/PostDropdownBtn.tsx:147 +#: src/components/ReportDialog/SubmitView.tsx:205 +msgid "You must select at least one labeler for a report" +msgstr "ì‹ ê³ í•˜ë ¤ë©´ 하나 ì´ìƒì˜ ë¼ë²¨ì„ ì„ íƒí•´ì•¼ 합니다." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:144 msgid "You will no longer receive notifications for this thread" msgstr "ì´ ìŠ¤ë ˆë“œì— ëŒ€í•œ ì•Œë¦¼ì„ ë” ì´ìƒ 받지 않습니다" -#: src/view/com/util/forms/PostDropdownBtn.tsx:150 +#: src/view/com/util/forms/PostDropdownBtn.tsx:147 msgid "You will now receive notifications for this thread" msgstr "ì´ì œ ì´ ìŠ¤ë ˆë“œì— ëŒ€í•œ ì•Œë¦¼ì„ ë°›ìŠµë‹ˆë‹¤" @@ -4771,7 +5059,7 @@ msgstr "ì´ì œ ì´ ìŠ¤ë ˆë“œì— ëŒ€í•œ ì•Œë¦¼ì„ ë°›ìŠµë‹ˆë‹¤" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "\"ìž¬ì„¤ì • 코드\"ê°€ í¬í•¨ëœ ì´ë©”ì¼ì„ 받게 ë˜ë©´ ì—¬ê¸°ì— í•´ë‹¹ 코드를 ìž…ë ¥í•œ ë‹¤ìŒ ìƒˆ 비밀번호를 ìž…ë ¥í•©ë‹ˆë‹¤." -#: src/screens/Onboarding/StepModeration/index.tsx:72 +#: src/screens/Onboarding/StepModeration/index.tsx:59 msgid "You're in control" msgstr "ì§ì ‘ ì œì–´í•˜ì„¸ìš”" @@ -4785,6 +5073,11 @@ msgstr "대기 중입니다" msgid "You're ready to go!" msgstr "준비가 ë났습니다!" +#: src/components/moderation/ModerationDetailsDialog.tsx:99 +#: src/lib/moderation/useModerationCauseDescription.ts:101 +msgid "You've chosen to hide a word or tag within this post." +msgstr "ì´ ê¸€ì—서 단어 ë˜ëŠ” 태그를 숨기ë„ë¡ ì„¤ì •í–ˆìŠµë‹ˆë‹¤." + #: src/view/com/posts/FollowingEndOfFeed.tsx:48 msgid "You've reached the end of your feed! Find some more accounts to follow." msgstr "피드 ëì— ë„달했습니다! íŒ”ë¡œìš°í• ê³„ì •ì„ ë” ì°¾ì•„ë³´ì„¸ìš”." @@ -4799,7 +5092,7 @@ msgstr "ê³„ì •ì„ ì‚ì œí–ˆìŠµë‹ˆë‹¤" #: src/view/screens/Settings/ExportCarDialog.tsx:47 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 "" +msgstr "ëª¨ë“ ê³µê°œ ë°ì´í„° ë ˆì½”ë“œê°€ í¬í•¨ëœ ê³„ì • ì €ìž¥ì†Œë¥¼ \"CAR\" 파ì¼ë¡œ ë‹¤ìš´ë¡œë“œí• ìˆ˜ 있습니다. ì´ íŒŒì¼ì—는 ì´ë¯¸ì§€ì™€ ê°™ì€ ë¯¸ë””ì–´ ìž„ë² ë“œë‚˜ 별ë„로 ê°€ì ¸ì™€ì•¼ 하는 비공개 ë°ì´í„°ëŠ” í¬í•¨ë˜ì§€ 않습니다." #: src/view/com/auth/create/Step1.tsx:215 msgid "Your birth date" @@ -4819,10 +5112,6 @@ msgstr "기본 피드는 \"팔로우 중\"입니다" msgid "Your email appears to be invalid." msgstr "ì´ë©”ì¼ì´ ìž˜ëª»ëœ ê²ƒ 같습니다." -#: src/view/com/modals/Waitlist.tsx:109 -#~ msgid "Your email has been saved! We'll be in touch soon." -#~ msgstr "ì´ë©”ì¼ì´ ì €ìž¥ë˜ì—ˆìŠµë‹ˆë‹¤! 가까운 ì‹œì¼ ë‚´ì— ì—°ë½ë“œë¦¬ê² 습니다." - #: src/view/com/modals/ChangeEmail.tsx:125 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "ì´ë©”ì¼ì´ 변경ë˜ì—ˆì§€ë§Œ ì¸ì¦ë˜ì§€ 않았습니다. ë‹¤ìŒ ë‹¨ê³„ë¡œ 새 ì´ë©”ì¼ì„ ì¸ì¦í•´ 주세요." @@ -4833,7 +5122,7 @@ msgstr "ì´ë©”ì¼ì´ ì•„ì§ ì¸ì¦ë˜ì§€ 않았습니다. ì´ëŠ” 중요한 ë³´ì• #: src/view/com/posts/FollowingEmptyState.tsx:47 msgid "Your following feed is empty! Follow more users to see what's happening." -msgstr "팔로우 ì¤‘ì¸ í”¼ë“œê°€ 비어 있습니다! ë” ë§Žì€ ì‚¬ìš©ìžë¥¼ 팔로우하여 무슨 ì¼ì´ ì¼ì–´ë‚˜ê³ 있는지 확ì¸í•˜ì„¸ìš”." +msgstr "팔로우 중 피드가 비어 있습니다! ë” ë§Žì€ ì‚¬ìš©ìžë¥¼ 팔로우하여 무슨 ì¼ì´ ì¼ì–´ë‚˜ê³ 있는지 확ì¸í•˜ì„¸ìš”." #: src/view/com/auth/create/Step2.tsx:83 msgid "Your full handle will be" @@ -4843,21 +5132,15 @@ msgstr "ë‚´ ì „ì²´ 핸들:" msgid "Your full handle will be <0>@{0}</0>" msgstr "ë‚´ ì „ì²´ 핸들: <0>@{0}</0>" -#: src/view/screens/Settings.tsx:430 -#: src/view/shell/desktop/RightNav.tsx:137 -#: src/view/shell/Drawer.tsx:660 -#~ msgid "Your invite codes are hidden when logged in using an App Password" -#~ msgstr "앱 비밀번호를 사용하여 로그ì¸í•˜ë©´ 초대 코드가 숨겨집니다" - #: src/components/dialogs/MutedWords.tsx:221 msgid "Your muted words" -msgstr "" +msgstr "뮤트한 단어" #: src/view/com/modals/ChangePassword.tsx:155 msgid "Your password has been changed successfully!" -msgstr "" +msgstr "비밀번호를 성공ì 으로 변경했습니다." -#: src/view/com/composer/Composer.tsx:274 +#: src/view/com/composer/Composer.tsx:283 msgid "Your post has been published" msgstr "ê²Œì‹œë¬¼ì„ ê²Œì‹œí–ˆìŠµë‹ˆë‹¤" @@ -4868,11 +5151,11 @@ msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "게시물, 좋아요, 차단 목ë¡ì€ 공개ë©ë‹ˆë‹¤. 뮤트 목ë¡ì€ 공개ë˜ì§€ 않습니다." #: src/view/com/modals/SwitchAccount.tsx:84 -#: src/view/screens/Settings/index.tsx:118 +#: src/view/screens/Settings/index.tsx:122 msgid "Your profile" msgstr "ë‚´ 프로필" -#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Composer.tsx:282 msgid "Your reply has been published" msgstr "ë‚´ ë‹µê¸€ì„ ê²Œì‹œí–ˆìŠµë‹ˆë‹¤" diff --git a/src/screens/Hashtag.tsx b/src/screens/Hashtag.tsx index 776cc585e..46452f087 100644 --- a/src/screens/Hashtag.tsx +++ b/src/screens/Hashtag.tsx @@ -128,8 +128,8 @@ export default function HashtagScreen({ isError={isError} isEmpty={posts.length < 1} onRetry={refetch} - notFoundType="results" - empty={_(msg`We couldn't find any results for that hashtag.`)} + emptyTitle="results" + emptyMessage={_(msg`We couldn't find any results for that hashtag.`)} /> {!isLoading && posts.length > 0 && ( <List<PostView> diff --git a/src/screens/Moderation/index.tsx b/src/screens/Moderation/index.tsx index 26fa9ec77..d73823fad 100644 --- a/src/screens/Moderation/index.tsx +++ b/src/screens/Moderation/index.tsx @@ -205,19 +205,111 @@ export function ModerationScreenInner({ ) return ( - <View> - <ScrollView - contentContainerStyle={[ - a.border_0, + <ScrollView + contentContainerStyle={[ + a.border_0, + a.pt_2xl, + a.px_lg, + gtMobile && a.px_2xl, + ]}> + <Text + style={[a.text_md, a.font_bold, a.pb_md, t.atoms.text_contrast_high]}> + <Trans>Moderation tools</Trans> + </Text> + + <View + style={[ + a.w_full, + a.rounded_md, + a.overflow_hidden, + t.atoms.bg_contrast_25, + ]}> + <Button + testID="mutedWordsBtn" + label={_(msg`Open muted words and tags settings`)} + onPress={() => mutedWordsDialogControl.open()}> + {state => ( + <SubItem + title={_(msg`Muted words & tags`)} + icon={Filter} + style={[ + (state.hovered || state.pressed) && [t.atoms.bg_contrast_50], + ]} + /> + )} + </Button> + <Divider /> + <Link testID="moderationlistsBtn" to="/moderation/modlists"> + {state => ( + <SubItem + title={_(msg`Moderation lists`)} + icon={Group} + style={[ + (state.hovered || state.pressed) && [t.atoms.bg_contrast_50], + ]} + /> + )} + </Link> + <Divider /> + <Link testID="mutedAccountsBtn" to="/moderation/muted-accounts"> + {state => ( + <SubItem + title={_(msg`Muted accounts`)} + icon={Person} + style={[ + (state.hovered || state.pressed) && [t.atoms.bg_contrast_50], + ]} + /> + )} + </Link> + <Divider /> + <Link testID="blockedAccountsBtn" to="/moderation/blocked-accounts"> + {state => ( + <SubItem + title={_(msg`Blocked accounts`)} + icon={CircleBanSign} + style={[ + (state.hovered || state.pressed) && [t.atoms.bg_contrast_50], + ]} + /> + )} + </Link> + </View> + + <Text + style={[ a.pt_2xl, - a.px_lg, - gtMobile && a.px_2xl, + a.pb_md, + a.text_md, + a.font_bold, + t.atoms.text_contrast_high, ]}> - <Text - style={[a.text_md, a.font_bold, a.pb_md, t.atoms.text_contrast_high]}> - <Trans>Moderation tools</Trans> - </Text> + <Trans>Content filters</Trans> + </Text> + <View style={[a.gap_md]}> + {ageNotSet && ( + <> + <Button + label={_(msg`Confirm your birthdate`)} + size="small" + variant="solid" + color="secondary" + onPress={() => { + birthdateDialogControl.open() + }} + style={[a.justify_between, a.rounded_md, a.px_lg, a.py_lg]}> + <ButtonText> + <Trans>Confirm your age:</Trans> + </ButtonText> + <ButtonText> + <Trans>Set birthdate</Trans> + </ButtonText> + </Button> + + <BirthDateSettingsDialog control={birthdateDialogControl} /> + </> + )} <View style={[ a.w_full, @@ -225,234 +317,137 @@ export function ModerationScreenInner({ a.overflow_hidden, t.atoms.bg_contrast_25, ]}> - <Button - testID="mutedWordsBtn" - label={_(msg`Open muted words and tags settings`)} - onPress={() => mutedWordsDialogControl.open()}> - {state => ( - <SubItem - title={_(msg`Muted words & tags`)} - icon={Filter} - style={[ - (state.hovered || state.pressed) && [t.atoms.bg_contrast_50], - ]} - /> - )} - </Button> - <Divider /> - <Link testID="moderationlistsBtn" to="/moderation/modlists"> - {state => ( - <SubItem - title={_(msg`Moderation lists`)} - icon={Group} - style={[ - (state.hovered || state.pressed) && [t.atoms.bg_contrast_50], - ]} - /> - )} - </Link> - <Divider /> - <Link testID="mutedAccountsBtn" to="/moderation/muted-accounts"> - {state => ( - <SubItem - title={_(msg`Muted accounts`)} - icon={Person} - style={[ - (state.hovered || state.pressed) && [t.atoms.bg_contrast_50], - ]} - /> - )} - </Link> - <Divider /> - <Link testID="blockedAccountsBtn" to="/moderation/blocked-accounts"> - {state => ( - <SubItem - title={_(msg`Blocked accounts`)} - icon={CircleBanSign} + {!ageNotSet && !isUnderage && ( + <> + <View style={[ - (state.hovered || state.pressed) && [t.atoms.bg_contrast_50], - ]} - /> - )} - </Link> - </View> - - <Text - style={[ - a.pt_2xl, - a.pb_md, - a.text_md, - a.font_bold, - t.atoms.text_contrast_high, - ]}> - <Trans>Content filters</Trans> - </Text> - - <View style={[a.gap_md]}> - {ageNotSet && ( + a.py_lg, + a.px_lg, + a.flex_row, + a.align_center, + a.justify_between, + ]}> + <Text style={[a.font_semibold, t.atoms.text_contrast_high]}> + <Trans>Enable adult content</Trans> + </Text> + <Toggle.Item + label={_(msg`Toggle to enable or disable adult content`)} + name="adultContent" + value={adultContentEnabled} + onChange={onToggleAdultContentEnabled}> + <View style={[a.flex_row, a.align_center, a.gap_sm]}> + <Text style={[t.atoms.text_contrast_medium]}> + {adultContentEnabled ? ( + <Trans>Enabled</Trans> + ) : ( + <Trans>Disabled</Trans> + )} + </Text> + <Toggle.Switch /> + </View> + </Toggle.Item> + </View> + <Divider /> + </> + )} + {!isUnderage && adultContentEnabled && ( <> - <Button - label={_(msg`Confirm your birthdate`)} - size="small" - variant="solid" - color="secondary" - onPress={() => { - birthdateDialogControl.open() - }} - style={[a.justify_between, a.rounded_md, a.px_lg, a.py_lg]}> - <ButtonText> - <Trans>Confirm your age:</Trans> - </ButtonText> - <ButtonText> - <Trans>Set birthdate</Trans> - </ButtonText> - </Button> - - <BirthDateSettingsDialog - control={birthdateDialogControl} - preferences={preferences} + <GlobalModerationLabelPref labelValueDefinition={LABELS.porn} /> + <Divider /> + <GlobalModerationLabelPref labelValueDefinition={LABELS.sexual} /> + <Divider /> + <GlobalModerationLabelPref + labelValueDefinition={LABELS['graphic-media']} /> + <Divider /> </> )} - <View - style={[ - a.w_full, - a.rounded_md, - a.overflow_hidden, - t.atoms.bg_contrast_25, - ]}> - {!ageNotSet && !isUnderage && ( - <> - <View - style={[ - a.py_lg, - a.px_lg, - a.flex_row, - a.align_center, - a.justify_between, - ]}> - <Text style={[a.font_semibold, t.atoms.text_contrast_high]}> - <Trans>Enable adult content</Trans> - </Text> - <Toggle.Item - label={_(msg`Toggle to enable or disable adult content`)} - name="adultContent" - value={adultContentEnabled} - onChange={onToggleAdultContentEnabled}> - <View style={[a.flex_row, a.align_center, a.gap_sm]}> - <Text style={[t.atoms.text_contrast_medium]}> - {adultContentEnabled ? ( - <Trans>Enabled</Trans> - ) : ( - <Trans>Disabled</Trans> - )} - </Text> - <Toggle.Switch /> - </View> - </Toggle.Item> - </View> - <Divider /> - </> - )} - {!isUnderage && adultContentEnabled && ( - <> - <GlobalModerationLabelPref labelValueDefinition={LABELS.porn} /> - <Divider /> - <GlobalModerationLabelPref - labelValueDefinition={LABELS.sexual} - /> - <Divider /> - <GlobalModerationLabelPref - labelValueDefinition={LABELS['graphic-media']} - /> - <Divider /> - </> - )} - <GlobalModerationLabelPref labelValueDefinition={LABELS.nudity} /> - </View> + <GlobalModerationLabelPref labelValueDefinition={LABELS.nudity} /> </View> + </View> - <Text - style={[ - a.text_md, - a.font_bold, - a.pt_2xl, - a.pb_md, - t.atoms.text_contrast_high, - ]}> - <Trans>Advanced</Trans> - </Text> + <Text + style={[ + a.text_md, + a.font_bold, + a.pt_2xl, + a.pb_md, + t.atoms.text_contrast_high, + ]}> + <Trans>Advanced</Trans> + </Text> - {isLabelersLoading ? ( - <Loader /> - ) : labelersError || !labelers ? ( - <View style={[a.p_lg, a.rounded_sm, t.atoms.bg_contrast_25]}> - <Text> - <Trans> - We were unable to load your configured labelers at this time. - </Trans> - </Text> - </View> - ) : ( - <View style={[a.rounded_sm, t.atoms.bg_contrast_25]}> - {labelers.map((labeler, i) => { - return ( - <React.Fragment key={labeler.creator.did}> - {i !== 0 && <Divider />} - <LabelingService.Link labeler={labeler}> - {state => ( - <LabelingService.Outer - style={[ - i === 0 && { - borderTopLeftRadius: a.rounded_sm.borderRadius, - borderTopRightRadius: a.rounded_sm.borderRadius, - }, - i === labelers.length - 1 && { - borderBottomLeftRadius: a.rounded_sm.borderRadius, - borderBottomRightRadius: a.rounded_sm.borderRadius, - }, - (state.hovered || state.pressed) && [ - t.atoms.bg_contrast_50, - ], - ]}> - <LabelingService.Avatar /> - <LabelingService.Content> - <LabelingService.Title - value={getLabelingServiceTitle({ - displayName: labeler.creator.displayName, - handle: labeler.creator.handle, - })} - /> - <LabelingService.Description - value={labeler.creator.description} - handle={labeler.creator.handle} - /> - </LabelingService.Content> - </LabelingService.Outer> - )} - </LabelingService.Link> - </React.Fragment> - ) - })} - </View> - )} + {isLabelersLoading ? ( + <View style={[a.w_full, a.align_center, a.p_lg]}> + <Loader size="xl" /> + </View> + ) : labelersError || !labelers ? ( + <View style={[a.p_lg, a.rounded_sm, t.atoms.bg_contrast_25]}> + <Text> + <Trans> + We were unable to load your configured labelers at this time. + </Trans> + </Text> + </View> + ) : ( + <View style={[a.rounded_sm, t.atoms.bg_contrast_25]}> + {labelers.map((labeler, i) => { + return ( + <React.Fragment key={labeler.creator.did}> + {i !== 0 && <Divider />} + <LabelingService.Link labeler={labeler}> + {state => ( + <LabelingService.Outer + style={[ + i === 0 && { + borderTopLeftRadius: a.rounded_sm.borderRadius, + borderTopRightRadius: a.rounded_sm.borderRadius, + }, + i === labelers.length - 1 && { + borderBottomLeftRadius: a.rounded_sm.borderRadius, + borderBottomRightRadius: a.rounded_sm.borderRadius, + }, + (state.hovered || state.pressed) && [ + t.atoms.bg_contrast_50, + ], + ]}> + <LabelingService.Avatar avatar={labeler.creator.avatar} /> + <LabelingService.Content> + <LabelingService.Title + value={getLabelingServiceTitle({ + displayName: labeler.creator.displayName, + handle: labeler.creator.handle, + })} + /> + <LabelingService.Description + value={labeler.creator.description} + handle={labeler.creator.handle} + /> + </LabelingService.Content> + </LabelingService.Outer> + )} + </LabelingService.Link> + </React.Fragment> + ) + })} + </View> + )} - <Text - style={[ - a.text_md, - a.font_bold, - a.pt_2xl, - a.pb_md, - t.atoms.text_contrast_high, - ]}> - <Trans>Logged-out visibility</Trans> - </Text> + <Text + style={[ + a.text_md, + a.font_bold, + a.pt_2xl, + a.pb_md, + t.atoms.text_contrast_high, + ]}> + <Trans>Logged-out visibility</Trans> + </Text> - <PwiOptOut /> + <PwiOptOut /> - <View style={{height: 200}} /> - </ScrollView> - </View> + <View style={{height: 200}} /> + </ScrollView> ) } @@ -520,11 +515,12 @@ function PwiOptOut() { value={isOptedOut} onChange={onToggleOptOut} name="logged_out_visibility" + style={a.flex_1} label={_( msg`Discourage apps from showing my account to logged-out users`, )}> <Toggle.Switch /> - <Toggle.Label style={[a.text_md]}> + <Toggle.Label style={[a.text_md, a.flex_1]}> <Trans> Discourage apps from showing my account to logged-out users </Trans> diff --git a/src/screens/Profile/Header/Shell.tsx b/src/screens/Profile/Header/Shell.tsx index 1348b394c..c470cb286 100644 --- a/src/screens/Profile/Header/Shell.tsx +++ b/src/screens/Profile/Header/Shell.tsx @@ -159,6 +159,6 @@ const styles = StyleSheet.create({ borderWidth: 2, }, aviLabeler: { - borderRadius: 12, + borderRadius: 10, }, }) diff --git a/src/screens/Profile/Sections/Labels.tsx b/src/screens/Profile/Sections/Labels.tsx index 07beb9529..08db4a861 100644 --- a/src/screens/Profile/Sections/Labels.tsx +++ b/src/screens/Profile/Sections/Labels.tsx @@ -48,7 +48,6 @@ export const ProfileLabelsSection = React.forwardRef< }, ref, ) { - const t = useTheme() const {_} = useLingui() const {height: minHeight} = useSafeAreaFrame() @@ -66,37 +65,26 @@ export const ProfileLabelsSection = React.forwardRef< })) return ( - <CenteredView> - <View - style={[ - a.border_l, - a.border_r, - a.border_t, - t.atoms.border_contrast_low, - { - minHeight, - }, - ]}> - {isLabelerLoading ? ( - <View style={[a.w_full, a.align_center]}> - <Loader size="xl" /> - </View> - ) : labelerError || !labelerInfo ? ( - <ErrorState - error={ - labelerError?.toString() || - _(msg`Something went wrong, please try again.`) - } - /> - ) : ( - <ProfileLabelsSectionInner - moderationOpts={moderationOpts} - labelerInfo={labelerInfo} - scrollElRef={scrollElRef} - headerHeight={headerHeight} - /> - )} - </View> + <CenteredView style={{flex: 1, minHeight}} sideBorders> + {isLabelerLoading ? ( + <View style={[a.w_full, a.align_center]}> + <Loader size="xl" /> + </View> + ) : labelerError || !labelerInfo ? ( + <ErrorState + error={ + labelerError?.toString() || + _(msg`Something went wrong, please try again.`) + } + /> + ) : ( + <ProfileLabelsSectionInner + moderationOpts={moderationOpts} + labelerInfo={labelerInfo} + scrollElRef={scrollElRef} + headerHeight={headerHeight} + /> + )} </CenteredView> ) }) @@ -149,13 +137,7 @@ export function ProfileLabelsSectionInner({ }} contentOffset={{x: 0, y: headerHeight * -1}} onScroll={scrollHandler}> - <View - style={[ - a.pt_xl, - a.px_lg, - isNative && a.border_t, - t.atoms.border_contrast_low, - ]}> + <View style={[a.pt_xl, a.px_lg, a.border_t, t.atoms.border_contrast_low]}> <View> <Text style={[t.atoms.text_contrast_high, a.leading_snug, a.text_sm]}> <Trans> diff --git a/src/state/queries/actor-autocomplete.ts b/src/state/queries/actor-autocomplete.ts index f14b3d65f..e6bf04ba3 100644 --- a/src/state/queries/actor-autocomplete.ts +++ b/src/state/queries/actor-autocomplete.ts @@ -101,13 +101,7 @@ function computeSuggestions( } for (const item of searched) { if (!items.find(item2 => item2.handle === item.handle)) { - items.push({ - did: item.did, - handle: item.handle, - displayName: item.displayName, - avatar: item.avatar, - labels: item.labels, - }) + items.push(item) } } return items.filter(profile => { diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts index cfc5c5bbe..f9cd59cda 100644 --- a/src/state/queries/preferences/index.ts +++ b/src/state/queries/preferences/index.ts @@ -5,6 +5,7 @@ import { BskyFeedViewPreference, ModerationOpts, AppBskyActorDefs, + BSKY_LABELER_DID, } from '@atproto/api' import {track} from '#/lib/analytics/analytics' @@ -19,6 +20,7 @@ import { DEFAULT_THREAD_VIEW_PREFS, DEFAULT_LOGGED_OUT_PREFERENCES, } from '#/state/queries/preferences/const' +import {DEFAULT_LOGGED_OUT_LABEL_PREFERENCES} from '#/state/queries/preferences/moderation' import {STALE} from '#/state/queries' import {useHiddenPosts, useLabelDefinitions} from '#/state/preferences' import {saveLabelers} from '#/state/session/agent-config' @@ -95,7 +97,18 @@ export function useModerationOpts() { } return { userDid: currentAccount?.did, - prefs: {...prefs.data.moderationPrefs, hiddenPosts: hiddenPosts || []}, + prefs: { + ...prefs.data.moderationPrefs, + labelers: prefs.data.moderationPrefs.labelers.length + ? prefs.data.moderationPrefs.labelers + : [ + { + did: BSKY_LABELER_DID, + labels: DEFAULT_LOGGED_OUT_LABEL_PREFERENCES, + }, + ], + hiddenPosts: hiddenPosts || [], + }, labelDefs, } }, [override, currentAccount, labelDefs, prefs.data, hiddenPosts]) diff --git a/src/state/shell/composer.tsx b/src/state/shell/composer.tsx index a09e8fba9..5b4e50543 100644 --- a/src/state/shell/composer.tsx +++ b/src/state/shell/composer.tsx @@ -3,6 +3,7 @@ import { AppBskyEmbedRecord, AppBskyRichtextFacet, ModerationDecision, + AppBskyActorDefs, } from '@atproto/api' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' @@ -10,11 +11,7 @@ export interface ComposerOptsPostRef { uri: string cid: string text: string - author: { - handle: string - displayName?: string - avatar?: string - } + author: AppBskyActorDefs.ProfileViewBasic embed?: AppBskyEmbedRecord.ViewRecord['embed'] moderation?: ModerationDecision } diff --git a/src/view/com/auth/login/ChooseAccountForm.tsx b/src/view/com/auth/login/ChooseAccountForm.tsx index 32cd8315d..d3b075fdb 100644 --- a/src/view/com/auth/login/ChooseAccountForm.tsx +++ b/src/view/com/auth/login/ChooseAccountForm.tsx @@ -45,7 +45,11 @@ function AccountItem({ accessibilityHint={_(msg`Double tap to sign in`)}> <View style={[pal.borderDark, styles.groupContent, styles.noTopBorder]}> <View style={s.p10}> - <UserAvatar avatar={profile?.avatar} size={30} /> + <UserAvatar + avatar={profile?.avatar} + size={30} + type={profile?.associated?.labeler ? 'labeler' : 'user'} + /> </View> <Text style={styles.accountText}> <Text type="lg-bold" style={pal.text}> diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 0a2692d06..ab7551b60 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -415,7 +415,11 @@ export const ComposePost = observer(function ComposePost({ styles.textInputLayout, isNative && styles.textInputLayoutMobile, ]}> - <UserAvatar avatar={currentProfile?.avatar} size={50} /> + <UserAvatar + avatar={currentProfile?.avatar} + size={50} + type={currentProfile?.associated?.labeler ? 'labeler' : 'user'} + /> <TextInput ref={textInput} richtext={richtext} diff --git a/src/view/com/composer/ComposerReplyTo.tsx b/src/view/com/composer/ComposerReplyTo.tsx index 4832bca02..0c1b87d04 100644 --- a/src/view/com/composer/ComposerReplyTo.tsx +++ b/src/view/com/composer/ComposerReplyTo.tsx @@ -87,6 +87,7 @@ export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) { avatar={replyTo.author.avatar} size={50} moderation={replyTo.moderation?.ui('avatar')} + type={replyTo.author.associated?.labeler ? 'labeler' : 'user'} /> <View style={styles.replyToPost}> <Text type="xl-medium" style={[pal.text]}> diff --git a/src/view/com/composer/Prompt.tsx b/src/view/com/composer/Prompt.tsx index 632bb2634..16d1b6fb9 100644 --- a/src/view/com/composer/Prompt.tsx +++ b/src/view/com/composer/Prompt.tsx @@ -23,7 +23,11 @@ export function ComposePrompt({onPressCompose}: {onPressCompose: () => void}) { accessibilityRole="button" accessibilityLabel={_(msg`Compose reply`)} accessibilityHint={_(msg`Opens composer`)}> - <UserAvatar avatar={profile?.avatar} size={38} /> + <UserAvatar + avatar={profile?.avatar} + size={38} + type={profile?.associated?.labeler ? 'labeler' : 'user'} + /> <Text type="xl" style={[ diff --git a/src/view/com/composer/text-input/mobile/Autocomplete.tsx b/src/view/com/composer/text-input/mobile/Autocomplete.tsx index c400aa48d..9c8f8f916 100644 --- a/src/view/com/composer/text-input/mobile/Autocomplete.tsx +++ b/src/view/com/composer/text-input/mobile/Autocomplete.tsx @@ -78,7 +78,11 @@ export function Autocomplete({ accessibilityLabel={`Select ${item.handle}`} accessibilityHint=""> <View style={styles.avatarAndHandle}> - <UserAvatar avatar={item.avatar ?? null} size={24} /> + <UserAvatar + avatar={item.avatar ?? null} + size={24} + type={item.associated?.labeler ? 'labeler' : 'user'} + /> <Text type="md-medium" style={pal.text}> {displayName} </Text> diff --git a/src/view/com/composer/text-input/web/Autocomplete.tsx b/src/view/com/composer/text-input/web/Autocomplete.tsx index 76058fed3..29b8f0bc6 100644 --- a/src/view/com/composer/text-input/web/Autocomplete.tsx +++ b/src/view/com/composer/text-input/web/Autocomplete.tsx @@ -175,7 +175,11 @@ const MentionList = forwardRef<MentionListRef, SuggestionProps>( }} accessibilityRole="button"> <View style={styles.avatarAndDisplayName}> - <UserAvatar avatar={item.avatar ?? null} size={26} /> + <UserAvatar + avatar={item.avatar ?? null} + size={26} + type={item.associated?.labeler ? 'labeler' : 'user'} + /> <Text style={pal.text} numberOfLines={1}> {displayName} </Text> diff --git a/src/view/com/modals/ListAddRemoveUsers.tsx b/src/view/com/modals/ListAddRemoveUsers.tsx index 27c33f806..4715348dd 100644 --- a/src/view/com/modals/ListAddRemoveUsers.tsx +++ b/src/view/com/modals/ListAddRemoveUsers.tsx @@ -231,7 +231,11 @@ function UserResult({ width: 54, paddingLeft: 4, }}> - <UserAvatar size={40} avatar={profile.avatar} /> + <UserAvatar + size={40} + avatar={profile.avatar} + type={profile.associated?.labeler ? 'labeler' : 'user'} + /> </View> <View style={{ diff --git a/src/view/com/modals/SwitchAccount.tsx b/src/view/com/modals/SwitchAccount.tsx index c034c4b52..0658805bd 100644 --- a/src/view/com/modals/SwitchAccount.tsx +++ b/src/view/com/modals/SwitchAccount.tsx @@ -45,7 +45,11 @@ function SwitchAccountCard({account}: {account: SessionAccount}) { const contents = ( <View style={[pal.view, styles.linkCard]}> <View style={styles.avi}> - <UserAvatar size={40} avatar={profile?.avatar} /> + <UserAvatar + size={40} + avatar={profile?.avatar} + type={profile?.associated?.labeler ? 'labeler' : 'user'} + /> </View> <View style={[s.flex1]}> <Text type="md-bold" style={pal.text} numberOfLines={1}> diff --git a/src/view/com/modals/UserAddRemoveLists.tsx b/src/view/com/modals/UserAddRemoveLists.tsx index 8452f2513..8a61b1a70 100644 --- a/src/view/com/modals/UserAddRemoveLists.tsx +++ b/src/view/com/modals/UserAddRemoveLists.tsx @@ -180,7 +180,7 @@ function ListItem({ }, ]}> <View style={styles.listItemAvi}> - <UserAvatar size={40} avatar={list.avatar} /> + <UserAvatar size={40} avatar={list.avatar} type="list" /> </View> <View style={styles.listItemContent}> <Text diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index b16554790..78b1677c3 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -14,6 +14,7 @@ import { ModerationDecision, moderateProfile, AppBskyEmbedRecordWithMedia, + AppBskyActorDefs, } from '@atproto/api' import {AtUri} from '@atproto/api' import { @@ -55,6 +56,7 @@ interface Author { displayName?: string avatar?: string moderation: ModerationDecision + associated?: AppBskyActorDefs.ProfileAssociated } let FeedItem = ({ @@ -100,6 +102,7 @@ let FeedItem = ({ displayName: item.notification.author.displayName, avatar: item.notification.author.avatar, moderation: moderateProfile(item.notification.author, moderationOpts), + associated: item.notification.author.associated, }, ...(item.additional?.map(({author}) => { return { @@ -109,6 +112,7 @@ let FeedItem = ({ displayName: author.displayName, avatar: author.avatar, moderation: moderateProfile(author, moderationOpts), + associated: author.associated, } }) || []), ] @@ -337,6 +341,7 @@ function CondensedAuthorsList({ handle={authors[0].handle} avatar={authors[0].avatar} moderation={authors[0].moderation.ui('avatar')} + type={authors[0].associated?.labeler ? 'labeler' : 'user'} /> </View> ) @@ -355,6 +360,7 @@ function CondensedAuthorsList({ size={35} avatar={author.avatar} moderation={author.moderation.ui('avatar')} + type={author.associated?.labeler ? 'labeler' : 'user'} /> </View> ))} @@ -413,6 +419,7 @@ function ExpandedAuthorsList({ size={35} avatar={author.avatar} moderation={author.moderation.ui('avatar')} + type={author.associated?.labeler ? 'labeler' : 'user'} /> </View> <View style={s.flex1}> diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx index bac7018c3..8042e7bd5 100644 --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -1,25 +1,14 @@ import React, {useEffect, useRef} from 'react' -import { - ActivityIndicator, - Pressable, - StyleSheet, - TouchableOpacity, - View, -} from 'react-native' +import {StyleSheet, useWindowDimensions, View} from 'react-native' import {AppBskyFeedDefs} from '@atproto/api' -import {CenteredView} from '../util/Views' -import {LoadingScreen} from '../util/LoadingScreen' +import {Trans, msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + import {List, ListMethods} from '../util/List' -import { - FontAwesomeIcon, - FontAwesomeIconStyle, -} from '@fortawesome/react-native-fontawesome' import {PostThreadItem} from './PostThreadItem' import {ComposePrompt} from '../composer/Prompt' import {ViewHeader} from '../util/ViewHeader' -import {ErrorMessage} from '../util/error/ErrorMessage' import {Text} from '../util/text/Text' -import {s} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {useSetTitle} from 'lib/hooks/useSetTitle' import { @@ -30,21 +19,18 @@ import { usePostThreadQuery, sortThread, } from '#/state/queries/post-thread' -import {useNavigation} from '@react-navigation/native' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {NavigationProp} from 'lib/routes/types' import {sanitizeDisplayName} from 'lib/strings/display-names' -import {cleanError} from '#/lib/strings/errors' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' import { - UsePreferencesQueryResponse, useModerationOpts, usePreferencesQuery, } from '#/state/queries/preferences' import {useSession} from '#/state/session' import {isAndroid, isNative, isWeb} from '#/platform/detection' import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' +import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' +import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' +import {cleanError} from 'lib/strings/errors' // FlatList maintainVisibleContentPosition breaks if too many items // are prepended. This seems to be an optimal number based on *shrug*. @@ -58,9 +44,7 @@ const MAINTAIN_VISIBLE_CONTENT_POSITION = { const TOP_COMPONENT = {_reactKey: '__top_component__'} const REPLY_PROMPT = {_reactKey: '__reply__'} -const CHILD_SPINNER = {_reactKey: '__child_spinner__'} const LOAD_MORE = {_reactKey: '__load_more__'} -const BOTTOM_COMPONENT = {_reactKey: '__bottom_component__'} type YieldedItem = ThreadPost | ThreadBlocked | ThreadNotFound type RowItem = @@ -68,9 +52,7 @@ type RowItem = // TODO: TS doesn't actually enforce it's one of these, it only enforces matching shape. | typeof TOP_COMPONENT | typeof REPLY_PROMPT - | typeof CHILD_SPINNER | typeof LOAD_MORE - | typeof BOTTOM_COMPONENT type ThreadSkeletonParts = { parents: YieldedItem[] @@ -78,6 +60,10 @@ type ThreadSkeletonParts = { replies: YieldedItem[] } +const keyExtractor = (item: RowItem) => { + return item._reactKey +} + export function PostThread({ uri, onCanReply, @@ -85,17 +71,30 @@ export function PostThread({ }: { uri: string | undefined onCanReply: (canReply: boolean) => void - onPressReply: () => void + onPressReply: () => unknown }) { + const {hasSession} = useSession() + const {_} = useLingui() + const pal = usePalette('default') + const {isMobile, isTabletOrMobile} = useWebMediaQueries() + const initialNumToRender = useInitialNumToRender() + const {height: windowHeight} = useWindowDimensions() + + const {data: preferences} = usePreferencesQuery() const { - isLoading, - isError, - error, + isFetching, + isError: isThreadError, + error: threadError, refetch, data: thread, } = usePostThreadQuery(uri) - const {data: preferences} = usePreferencesQuery() + const treeView = React.useMemo( + () => + !!preferences?.threadViewPrefs?.lab_treeViewEnabled && + hasBranchingReplies(thread), + [preferences?.threadViewPrefs, thread], + ) const rootPost = thread?.type === 'post' ? thread.post : undefined const rootPostRecord = thread?.type === 'post' ? thread.record : undefined @@ -105,7 +104,6 @@ export function PostThread({ rootPost && moderationOpts ? moderatePost(rootPost, moderationOpts) : undefined - return !!mod ?.ui('contentList') .blurs.find( @@ -114,6 +112,14 @@ export function PostThread({ ) }, [rootPost, moderationOpts]) + // Values used for proper rendering of parents + const ref = useRef<ListMethods>(null) + const highlightedPostRef = useRef<View | null>(null) + const [maxParents, setMaxParents] = React.useState( + isWeb ? Infinity : PARENTS_CHUNK_SIZE, + ) + const [maxReplies, setMaxReplies] = React.useState(50) + useSetTitle( rootPost && !isNoPwi ? `${sanitizeDisplayName( @@ -121,62 +127,6 @@ export function PostThread({ )}: "${rootPostRecord!.text}"` : '', ) - useEffect(() => { - if (rootPost) { - onCanReply(!rootPost.viewer?.replyDisabled) - } - }, [rootPost, onCanReply]) - - if (isError || AppBskyFeedDefs.isNotFoundPost(thread)) { - return ( - <PostThreadError - error={error} - notFound={AppBskyFeedDefs.isNotFoundPost(thread)} - onRefresh={refetch} - /> - ) - } - if (AppBskyFeedDefs.isBlockedPost(thread)) { - return <PostThreadBlocked /> - } - if (!thread || isLoading || !preferences) { - return <LoadingScreen /> - } - return ( - <PostThreadLoaded - thread={thread} - threadViewPrefs={preferences.threadViewPrefs} - onRefresh={refetch} - onPressReply={onPressReply} - /> - ) -} - -function PostThreadLoaded({ - thread, - threadViewPrefs, - onRefresh, - onPressReply, -}: { - thread: ThreadNode - threadViewPrefs: UsePreferencesQueryResponse['threadViewPrefs'] - onRefresh: () => void - onPressReply: () => void -}) { - const {hasSession} = useSession() - const {_} = useLingui() - const pal = usePalette('default') - const {isMobile, isTabletOrMobile} = useWebMediaQueries() - const ref = useRef<ListMethods>(null) - const highlightedPostRef = useRef<View | null>(null) - const [maxParents, setMaxParents] = React.useState( - isWeb ? Infinity : PARENTS_CHUNK_SIZE, - ) - const [maxReplies, setMaxReplies] = React.useState(100) - const treeView = React.useMemo( - () => !!threadViewPrefs.lab_treeViewEnabled && hasBranchingReplies(thread), - [threadViewPrefs, thread], - ) // On native, this is going to start out `true`. We'll toggle it to `false` after the initial render if flushed. // This ensures that the first render contains no parents--even if they are already available in the cache. @@ -184,18 +134,56 @@ function PostThreadLoaded({ // On the web this is not necessary because we can synchronously adjust the scroll in onContentSizeChange instead. const [deferParents, setDeferParents] = React.useState(isNative) - const skeleton = React.useMemo( - () => - createThreadSkeleton( - sortThread(thread, threadViewPrefs), - hasSession, - treeView, - ), - [thread, threadViewPrefs, hasSession, treeView], - ) + const skeleton = React.useMemo(() => { + const threadViewPrefs = preferences?.threadViewPrefs + if (!threadViewPrefs || !thread) return null + + return createThreadSkeleton( + sortThread(thread, threadViewPrefs), + hasSession, + treeView, + ) + }, [thread, preferences?.threadViewPrefs, hasSession, treeView]) + + const error = React.useMemo(() => { + if (AppBskyFeedDefs.isNotFoundPost(thread)) { + return { + title: _(msg`Post not found`), + message: _(msg`The post may have been deleted.`), + } + } else if (skeleton?.highlightedPost.type === 'blocked') { + return { + title: _(msg`Post hidden`), + message: _( + msg`You have blocked the author or you have been blocked by the author.`, + ), + } + } else if (threadError?.message.startsWith('Post not found')) { + return { + title: _(msg`Post not found`), + message: _(msg`The post may have been deleted.`), + } + } else if (isThreadError) { + return { + message: threadError ? cleanError(threadError) : undefined, + } + } + + return null + }, [thread, skeleton?.highlightedPost, isThreadError, _, threadError]) + + useEffect(() => { + if (error) { + onCanReply(false) + } else if (rootPost) { + onCanReply(!rootPost.viewer?.replyDisabled) + } + }, [rootPost, onCanReply, error]) // construct content const posts = React.useMemo(() => { + if (!skeleton) return [] + const {parents, highlightedPost, replies} = skeleton let arr: RowItem[] = [] if (highlightedPost.type === 'post') { @@ -231,17 +219,11 @@ function PostThreadLoaded({ if (!highlightedPost.post.viewer?.replyDisabled) { arr.push(REPLY_PROMPT) } - if (highlightedPost.ctx.isChildLoading) { - arr.push(CHILD_SPINNER) - } else { - for (let i = 0; i < replies.length; i++) { - arr.push(replies[i]) - if (i === maxReplies) { - arr.push(LOAD_MORE) - break - } + for (let i = 0; i < replies.length; i++) { + arr.push(replies[i]) + if (i === maxReplies) { + break } - arr.push(BOTTOM_COMPONENT) } } return arr @@ -256,7 +238,7 @@ function PostThreadLoaded({ return } // wait for loading to finish - if (thread.type === 'post' && !!thread.parent) { + if (thread?.type === 'post' && !!thread.parent) { function onMeasure(pageY: number) { ref.current?.scrollToOffset({ animated: false, @@ -280,10 +262,10 @@ function PostThreadLoaded({ // To work around this, we prepend rows after scroll bumps against the top and rests. const needsBumpMaxParents = React.useRef(false) const onStartReached = React.useCallback(() => { - if (maxParents < skeleton.parents.length) { + if (skeleton?.parents && maxParents < skeleton.parents.length) { needsBumpMaxParents.current = true } - }, [maxParents, skeleton.parents.length]) + }, [maxParents, skeleton?.parents]) const bumpMaxParentsIfNeeded = React.useCallback(() => { if (!isNative) { return @@ -296,6 +278,11 @@ function PostThreadLoaded({ const onMomentumScrollEnd = bumpMaxParentsIfNeeded const onScrollToTop = bumpMaxParentsIfNeeded + const onEndReached = React.useCallback(() => { + if (isFetching || posts.length < maxReplies) return + setMaxReplies(prev => prev + 50) + }, [isFetching, maxReplies, posts.length]) + const renderItem = React.useCallback( ({item, index}: {item: RowItem; index: number}) => { if (item === TOP_COMPONENT) { @@ -326,46 +313,6 @@ function PostThreadLoaded({ </Text> </View> ) - } else if (item === LOAD_MORE) { - return ( - <Pressable - onPress={() => setMaxReplies(n => n + 50)} - style={[pal.border, pal.view, styles.itemContainer]} - accessibilityLabel={_(msg`Load more posts`)} - accessibilityHint=""> - <View - style={[ - pal.viewLight, - {paddingHorizontal: 18, paddingVertical: 14, borderRadius: 6}, - ]}> - <Text type="lg-medium" style={pal.text}> - <Trans>Load more posts</Trans> - </Text> - </View> - </Pressable> - ) - } else if (item === BOTTOM_COMPONENT) { - // HACK - // due to some complexities with how flatlist works, this is the easiest way - // I could find to get a border positioned directly under the last item - // -prf - return ( - <View - // @ts-ignore web-only - style={{ - // Leave enough space below that the scroll doesn't jump - height: isNative ? 600 : '100vh', - borderTopWidth: 1, - borderColor: pal.colors.border, - }} - /> - ) - } else if (item === CHILD_SPINNER) { - return ( - <View style={[pal.border, styles.childSpinner]}> - <ActivityIndicator /> - </View> - ) } else if (isThreadPost(item)) { const prev = isThreadPost(posts[index - 1]) ? (posts[index - 1] as ThreadPost) @@ -374,7 +321,9 @@ function PostThreadLoaded({ ? (posts[index - 1] as ThreadPost) : undefined const hasUnrevealedParents = - index === 0 && maxParents < skeleton.parents.length + index === 0 && + skeleton?.parents && + maxParents < skeleton.parents.length return ( <View ref={item.ctx.isHighlightedPost ? highlightedPostRef : undefined} @@ -391,9 +340,9 @@ function PostThreadLoaded({ showChildReplyLine={item.ctx.showChildReplyLine} showParentReplyLine={item.ctx.showParentReplyLine} hasPrecedingItem={ - !!prev?.ctx.showChildReplyLine || hasUnrevealedParents + !!prev?.ctx.showChildReplyLine || !!hasUnrevealedParents } - onPostReply={onRefresh} + onPostReply={refetch} /> </View> ) @@ -403,142 +352,62 @@ function PostThreadLoaded({ [ hasSession, isTabletOrMobile, + _, isMobile, onPressReply, pal.border, pal.viewLight, pal.textLight, - pal.view, - pal.text, - pal.colors.border, posts, - onRefresh, + skeleton?.parents, + maxParents, deferParents, treeView, - skeleton.parents.length, - maxParents, - _, + refetch, ], ) return ( - <List - ref={ref} - data={posts} - keyExtractor={item => item._reactKey} - renderItem={renderItem} - onContentSizeChange={isNative ? undefined : onContentSizeChangeWeb} - onStartReached={onStartReached} - onMomentumScrollEnd={onMomentumScrollEnd} - onScrollToTop={onScrollToTop} - maintainVisibleContentPosition={ - isNative ? MAINTAIN_VISIBLE_CONTENT_POSITION : undefined - } - style={s.hContentRegion} - // @ts-ignore our .web version only -prf - desktopFixedHeight - removeClippedSubviews={isAndroid ? false : undefined} - windowSize={11} - /> - ) -} - -function PostThreadBlocked() { - const {_} = useLingui() - const pal = usePalette('default') - const navigation = useNavigation<NavigationProp>() - - const onPressBack = React.useCallback(() => { - if (navigation.canGoBack()) { - navigation.goBack() - } else { - navigation.navigate('Home') - } - }, [navigation]) - - return ( - <CenteredView> - <View style={[pal.view, pal.border, styles.notFoundContainer]}> - <Text type="title-lg" style={[pal.text, s.mb5]}> - <Trans>Post hidden</Trans> - </Text> - <Text type="md" style={[pal.text, s.mb10]}> - <Trans> - You have blocked the author or you have been blocked by the author. - </Trans> - </Text> - <TouchableOpacity - onPress={onPressBack} - accessibilityRole="button" - accessibilityLabel={_(msg`Back`)} - accessibilityHint=""> - <Text type="2xl" style={pal.link}> - <FontAwesomeIcon - icon="angle-left" - style={[pal.link as FontAwesomeIconStyle, s.mr5]} - size={14} + <> + <ListMaybePlaceholder + isLoading={!preferences || !thread} + isError={!!error} + onRetry={refetch} + errorTitle={error?.title} + errorMessage={error?.message} + /> + {!error && thread && ( + <List + ref={ref} + data={posts} + renderItem={renderItem} + keyExtractor={keyExtractor} + onContentSizeChange={isNative ? undefined : onContentSizeChangeWeb} + onStartReached={onStartReached} + onEndReached={onEndReached} + onEndReachedThreshold={2} + onMomentumScrollEnd={onMomentumScrollEnd} + onScrollToTop={onScrollToTop} + maintainVisibleContentPosition={ + isNative ? MAINTAIN_VISIBLE_CONTENT_POSITION : undefined + } + // @ts-ignore our .web version only -prf + desktopFixedHeight + removeClippedSubviews={isAndroid ? false : undefined} + ListFooterComponent={ + <ListFooter + isFetching={isFetching} + onRetry={refetch} + // 300 is based on the minimum height of a post. This is enough extra height for the `maintainVisPos` to + // work without causing weird jumps on web or glitches on native + height={windowHeight - 200} /> - <Trans context="action">Back</Trans> - </Text> - </TouchableOpacity> - </View> - </CenteredView> - ) -} - -function PostThreadError({ - onRefresh, - notFound, - error, -}: { - onRefresh: () => void - notFound: boolean - error: Error | null -}) { - const {_} = useLingui() - const pal = usePalette('default') - const navigation = useNavigation<NavigationProp>() - - const onPressBack = React.useCallback(() => { - if (navigation.canGoBack()) { - navigation.goBack() - } else { - navigation.navigate('Home') - } - }, [navigation]) - - if (notFound) { - return ( - <CenteredView> - <View style={[pal.view, pal.border, styles.notFoundContainer]}> - <Text type="title-lg" style={[pal.text, s.mb5]}> - <Trans>Post not found</Trans> - </Text> - <Text type="md" style={[pal.text, s.mb10]}> - <Trans>The post may have been deleted.</Trans> - </Text> - <TouchableOpacity - onPress={onPressBack} - accessibilityRole="button" - accessibilityLabel={_(msg`Back`)} - accessibilityHint=""> - <Text type="2xl" style={pal.link}> - <FontAwesomeIcon - icon="angle-left" - style={[pal.link as FontAwesomeIconStyle, s.mr5]} - size={14} - /> - <Trans>Back</Trans> - </Text> - </TouchableOpacity> - </View> - </CenteredView> - ) - } - return ( - <CenteredView> - <ErrorMessage message={cleanError(error)} onPressTryAgain={onRefresh} /> - </CenteredView> + } + initialNumToRender={initialNumToRender} + windowSize={11} + /> + )} + </> ) } @@ -558,7 +427,9 @@ function createThreadSkeleton( node: ThreadNode, hasSession: boolean, treeView: boolean, -): ThreadSkeletonParts { +): ThreadSkeletonParts | null { + if (!node) return null + return { parents: Array.from(flattenThreadParents(node, hasSession)), highlightedPost: node, @@ -615,7 +486,10 @@ function hasPwiOptOut(node: ThreadPost) { return !!node.post.author.labels?.find(l => l.val === '!no-unauthenticated') } -function hasBranchingReplies(node: ThreadNode) { +function hasBranchingReplies(node?: ThreadNode) { + if (!node) { + return false + } if (node.type !== 'post') { return false } @@ -629,20 +503,9 @@ function hasBranchingReplies(node: ThreadNode) { } const styles = StyleSheet.create({ - notFoundContainer: { - margin: 10, - paddingHorizontal: 18, - paddingVertical: 14, - borderRadius: 6, - }, itemContainer: { borderTopWidth: 1, paddingHorizontal: 18, paddingVertical: 18, }, - childSpinner: { - borderTopWidth: 1, - paddingTop: 40, - paddingBottom: 200, - }, }) diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index d790ab4b5..6555bdf73 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -205,11 +205,7 @@ let PostThreadItemLoaded = ({ uri: post.uri, cid: post.cid, text: record.text, - author: { - handle: post.author.handle, - displayName: post.author.displayName, - avatar: post.author.avatar, - }, + author: post.author, embed: post.embed, moderation, }, @@ -256,6 +252,7 @@ let PostThreadItemLoaded = ({ handle={post.author.handle} avatar={post.author.avatar} moderation={moderation.ui('avatar')} + type={post.author.associated?.labeler ? 'labeler' : 'user'} /> </View> <View style={styles.layoutContent}> @@ -452,6 +449,7 @@ let PostThreadItemLoaded = ({ handle={post.author.handle} avatar={post.author.avatar} moderation={moderation.ui('avatar')} + type={post.author.associated?.labeler ? 'labeler' : 'user'} /> {showChildReplyLine && ( diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx index c7bd4ba2f..47e46eb0c 100644 --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -118,11 +118,7 @@ function PostInner({ uri: post.uri, cid: post.cid, text: record.text, - author: { - handle: post.author.handle, - displayName: post.author.displayName, - avatar: post.author.avatar, - }, + author: post.author, embed: post.embed, moderation, }, @@ -144,6 +140,7 @@ function PostInner({ handle={post.author.handle} avatar={post.author.avatar} moderation={moderation.ui('avatar')} + type={post.author.associated?.labeler ? 'labeler' : 'user'} /> </View> <View style={styles.layoutContent}> diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 0706ddb9b..0fbcc4a13 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -126,11 +126,7 @@ let FeedItemInner = ({ uri: post.uri, cid: post.cid, text: record.text || '', - author: { - handle: post.author.handle, - displayName: post.author.displayName, - avatar: post.author.avatar, - }, + author: post.author, embed: post.embed, moderation, }, @@ -243,6 +239,7 @@ let FeedItemInner = ({ handle={post.author.handle} avatar={post.author.avatar} moderation={moderation.ui('avatar')} + type={post.author.associated?.labeler ? 'labeler' : 'user'} /> {isThreadParent && ( <View diff --git a/src/view/com/profile/ProfileCard.tsx b/src/view/com/profile/ProfileCard.tsx index d909bda85..235139fff 100644 --- a/src/view/com/profile/ProfileCard.tsx +++ b/src/view/com/profile/ProfileCard.tsx @@ -49,6 +49,7 @@ export function ProfileCard({ const pal = usePalette('default') const profile = useProfileShadow(profileUnshadowed) const moderationOpts = useModerationOpts() + const isLabeler = profile?.associated?.labeler if (!moderationOpts) { return null } @@ -79,6 +80,7 @@ export function ProfileCard({ size={40} avatar={profile.avatar} moderation={moderation.ui('avatar')} + type={isLabeler ? 'labeler' : 'user'} /> </View> <View style={styles.layoutContent}> @@ -101,7 +103,7 @@ export function ProfileCard({ /> {!!profile.viewer?.followedBy && <View style={s.flexRow} />} </View> - {renderButton ? ( + {renderButton && !isLabeler ? ( <View style={styles.layoutButton}>{renderButton(profile)}</View> ) : undefined} </View> @@ -223,6 +225,7 @@ function FollowersList({ avatar={f.avatar} size={32} moderation={mod.ui('avatar')} + type={f.associated?.labeler ? 'labeler' : 'user'} /> </View> </View> diff --git a/src/view/com/profile/ProfileFollowers.tsx b/src/view/com/profile/ProfileFollowers.tsx index 411ae6c17..b11a33f27 100644 --- a/src/view/com/profile/ProfileFollowers.tsx +++ b/src/view/com/profile/ProfileFollowers.tsx @@ -1,39 +1,66 @@ import React from 'react' -import {ActivityIndicator, StyleSheet, View} from 'react-native' import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import {CenteredView} from '../util/Views' -import {LoadingScreen} from '../util/LoadingScreen' import {List} from '../util/List' -import {ErrorMessage} from '../util/error/ErrorMessage' import {ProfileCardWithFollowBtn} from './ProfileCard' import {useProfileFollowersQuery} from '#/state/queries/profile-followers' import {useResolveDidQuery} from '#/state/queries/resolve-uri' import {logger} from '#/logger' import {cleanError} from '#/lib/strings/errors' +import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' +import { + ListFooter, + ListHeaderDesktop, + ListMaybePlaceholder, +} from '#/components/Lists' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {useSession} from 'state/session' +import {View} from 'react-native' + +function renderItem({item}: {item: ActorDefs.ProfileViewBasic}) { + return <ProfileCardWithFollowBtn key={item.did} profile={item} /> +} + +function keyExtractor(item: ActorDefs.ProfileViewBasic) { + return item.did +} export function ProfileFollowers({name}: {name: string}) { + const {_} = useLingui() + const initialNumToRender = useInitialNumToRender() + const {currentAccount} = useSession() + const [isPTRing, setIsPTRing] = React.useState(false) const { data: resolvedDid, + isLoading: isDidLoading, error: resolveError, - isFetching: isFetchingDid, } = useResolveDidQuery(name) const { data, + isLoading: isFollowersLoading, isFetching, - isFetched, isFetchingNextPage, hasNextPage, fetchNextPage, - isError, error, refetch, } = useProfileFollowersQuery(resolvedDid) + const isError = React.useMemo( + () => !!resolveError || !!error, + [resolveError, error], + ) + + const isMe = React.useMemo(() => { + return resolvedDid === currentAccount?.did + }, [resolvedDid, currentAccount?.did]) + const followers = React.useMemo(() => { if (data?.pages) { return data.pages.flatMap(page => page.followers) } + return [] }, [data]) const onRefresh = React.useCallback(async () => { @@ -47,7 +74,7 @@ export function ProfileFollowers({name}: {name: string}) { }, [refetch, setIsPTRing]) const onEndReached = async () => { - if (isFetching || !hasNextPage || isError) return + if (isFetching || !hasNextPage || !!error) return try { await fetchNextPage() } catch (err) { @@ -55,57 +82,38 @@ export function ProfileFollowers({name}: {name: string}) { } } - const renderItem = React.useCallback( - ({item}: {item: ActorDefs.ProfileViewBasic}) => ( - <ProfileCardWithFollowBtn key={item.did} profile={item} /> - ), - [], - ) - - if (isFetchingDid || !isFetched) { - return <LoadingScreen /> - } - - // error - // = - if (resolveError || isError) { - return ( - <CenteredView> - <ErrorMessage - message={cleanError(resolveError || error)} - onPressTryAgain={onRefresh} - /> - </CenteredView> - ) - } - - // loaded - // = return ( - <List - data={followers} - keyExtractor={item => item.did} - refreshing={isPTRing} - onRefresh={onRefresh} - onEndReached={onEndReached} - renderItem={renderItem} - initialNumToRender={15} - // FIXME(dan) - // eslint-disable-next-line react/no-unstable-nested-components - ListFooterComponent={() => ( - <View style={styles.footer}> - {(isFetching || isFetchingNextPage) && <ActivityIndicator />} - </View> + <View style={{flex: 1}}> + <ListMaybePlaceholder + isLoading={isDidLoading || isFollowersLoading} + isEmpty={followers.length < 1} + isError={isError} + emptyType="results" + emptyMessage={ + isMe + ? _(msg`You do not have any followers.`) + : _(msg`This user doesn't have any followers.`) + } + errorMessage={cleanError(resolveError || error)} + onRetry={isError ? refetch : undefined} + /> + {followers.length > 0 && ( + <List + data={followers} + renderItem={renderItem} + keyExtractor={keyExtractor} + refreshing={isPTRing} + onRefresh={onRefresh} + onEndReached={onEndReached} + onEndReachedThreshold={4} + ListHeaderComponent={<ListHeaderDesktop title={_(msg`Followers`)} />} + ListFooterComponent={<ListFooter isFetching={isFetchingNextPage} />} + // @ts-ignore our .web version only -prf + desktopFixedHeight + initialNumToRender={initialNumToRender} + windowSize={11} + /> )} - // @ts-ignore our .web version only -prf - desktopFixedHeight - /> + </View> ) } - -const styles = StyleSheet.create({ - footer: { - height: 200, - paddingTop: 20, - }, -}) diff --git a/src/view/com/profile/ProfileFollows.tsx b/src/view/com/profile/ProfileFollows.tsx index bd4af1081..d99e2b840 100644 --- a/src/view/com/profile/ProfileFollows.tsx +++ b/src/view/com/profile/ProfileFollows.tsx @@ -1,39 +1,65 @@ import React from 'react' -import {ActivityIndicator, StyleSheet, View} from 'react-native' import {AppBskyActorDefs as ActorDefs} from '@atproto/api' -import {CenteredView} from '../util/Views' -import {LoadingScreen} from '../util/LoadingScreen' import {List} from '../util/List' -import {ErrorMessage} from '../util/error/ErrorMessage' import {ProfileCardWithFollowBtn} from './ProfileCard' import {useProfileFollowsQuery} from '#/state/queries/profile-follows' import {useResolveDidQuery} from '#/state/queries/resolve-uri' import {logger} from '#/logger' import {cleanError} from '#/lib/strings/errors' +import { + ListFooter, + ListHeaderDesktop, + ListMaybePlaceholder, +} from '#/components/Lists' +import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender' +import {useSession} from 'state/session' +import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +function renderItem({item}: {item: ActorDefs.ProfileViewBasic}) { + return <ProfileCardWithFollowBtn key={item.did} profile={item} /> +} + +function keyExtractor(item: ActorDefs.ProfileViewBasic) { + return item.did +} export function ProfileFollows({name}: {name: string}) { + const {_} = useLingui() + const initialNumToRender = useInitialNumToRender() + const {currentAccount} = useSession() + const [isPTRing, setIsPTRing] = React.useState(false) const { data: resolvedDid, + isLoading: isDidLoading, error: resolveError, - isFetching: isFetchingDid, } = useResolveDidQuery(name) const { data, + isLoading: isFollowsLoading, isFetching, - isFetched, isFetchingNextPage, hasNextPage, fetchNextPage, - isError, error, refetch, } = useProfileFollowsQuery(resolvedDid) + const isError = React.useMemo( + () => !!resolveError || !!error, + [resolveError, error], + ) + + const isMe = React.useMemo(() => { + return resolvedDid === currentAccount?.did + }, [resolvedDid, currentAccount?.did]) + const follows = React.useMemo(() => { if (data?.pages) { return data.pages.flatMap(page => page.follows) } + return [] }, [data]) const onRefresh = React.useCallback(async () => { @@ -47,7 +73,7 @@ export function ProfileFollows({name}: {name: string}) { }, [refetch, setIsPTRing]) const onEndReached = async () => { - if (isFetching || !hasNextPage || isError) return + if (isFetching || !hasNextPage || !!error) return try { await fetchNextPage() } catch (err) { @@ -55,57 +81,38 @@ export function ProfileFollows({name}: {name: string}) { } } - const renderItem = React.useCallback( - ({item}: {item: ActorDefs.ProfileViewBasic}) => ( - <ProfileCardWithFollowBtn key={item.did} profile={item} /> - ), - [], - ) - - if (isFetchingDid || !isFetched) { - return <LoadingScreen /> - } - - // error - // = - if (resolveError || isError) { - return ( - <CenteredView> - <ErrorMessage - message={cleanError(resolveError || error)} - onPressTryAgain={onRefresh} - /> - </CenteredView> - ) - } - - // loaded - // = return ( - <List - data={follows} - keyExtractor={item => item.did} - refreshing={isPTRing} - onRefresh={onRefresh} - onEndReached={onEndReached} - renderItem={renderItem} - initialNumToRender={15} - // FIXME(dan) - // eslint-disable-next-line react/no-unstable-nested-components - ListFooterComponent={() => ( - <View style={styles.footer}> - {(isFetching || isFetchingNextPage) && <ActivityIndicator />} - </View> + <> + <ListMaybePlaceholder + isLoading={isDidLoading || isFollowsLoading} + isEmpty={follows.length < 1} + isError={isError} + emptyType="results" + emptyMessage={ + isMe + ? _(msg`You are not following anyone.`) + : _(msg`This user isn't following anyone.`) + } + errorMessage={cleanError(resolveError || error)} + onRetry={isError ? refetch : undefined} + /> + {follows.length > 0 && ( + <List + data={follows} + renderItem={renderItem} + keyExtractor={keyExtractor} + refreshing={isPTRing} + onRefresh={onRefresh} + onEndReached={onEndReached} + onEndReachedThreshold={4} + ListHeaderComponent={<ListHeaderDesktop title={_(msg`Following`)} />} + ListFooterComponent={<ListFooter isFetching={isFetchingNextPage} />} + // @ts-ignore our .web version only -prf + desktopFixedHeight + initialNumToRender={initialNumToRender} + windowSize={11} + /> )} - // @ts-ignore our .web version only -prf - desktopFixedHeight - /> + </> ) } - -const styles = StyleSheet.create({ - footer: { - height: 200, - paddingTop: 20, - }, -}) diff --git a/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx b/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx index fda95c489..3602cdb9a 100644 --- a/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx +++ b/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx @@ -99,9 +99,11 @@ export function ProfileHeaderSuggestedFollows({ <SuggestedFollowSkeleton /> </> ) : data ? ( - data.suggestions.map(profile => ( - <SuggestedFollow key={profile.did} profile={profile} /> - )) + data.suggestions + .filter(s => (s.associated?.labeler ? false : true)) + .map(profile => ( + <SuggestedFollow key={profile.did} profile={profile} /> + )) ) : ( <View /> )} diff --git a/src/view/com/util/PostMeta.tsx b/src/view/com/util/PostMeta.tsx index 53dc20e71..529fc54e0 100644 --- a/src/view/com/util/PostMeta.tsx +++ b/src/view/com/util/PostMeta.tsx @@ -11,16 +11,11 @@ import {sanitizeHandle} from 'lib/strings/handles' import {isAndroid, isWeb} from 'platform/detection' import {TimeElapsed} from './TimeElapsed' import {makeProfileLink} from 'lib/routes/links' -import {ModerationDecision, ModerationUI} from '@atproto/api' +import {AppBskyActorDefs, ModerationDecision, ModerationUI} from '@atproto/api' import {usePrefetchProfileQuery} from '#/state/queries/profile' interface PostMetaOpts { - author: { - avatar?: string - did: string - handle: string - displayName?: string | undefined - } + author: AppBskyActorDefs.ProfileViewBasic moderation: ModerationDecision | undefined authorHasWarning: boolean postHref: string @@ -47,6 +42,7 @@ let PostMeta = (opts: PostMetaOpts): React.ReactNode => { avatar={opts.author.avatar} size={opts.avatarSize || 16} moderation={opts.avatarModeration} + type={opts.author.associated?.labeler ? 'labeler' : 'user'} /> </View> )} diff --git a/src/view/com/util/UserAvatar.tsx b/src/view/com/util/UserAvatar.tsx index 39bc72303..8656c3f51 100644 --- a/src/view/com/util/UserAvatar.tsx +++ b/src/view/com/util/UserAvatar.tsx @@ -110,8 +110,12 @@ let DefaultAvatar = ({ viewBox="0 0 32 32" fill="none" stroke="none"> - <Path - d="M28 0H4C1.79086 0 0 1.79086 0 4V28C0 30.2091 1.79086 32 4 32H28C30.2091 32 32 30.2091 32 28V4C32 1.79086 30.2091 0 28 0Z" + <Rect + x="0" + y="0" + width="32" + height="32" + rx="3" fill={tokens.color.temp_purple} /> <Path diff --git a/src/view/screens/PostThread.tsx b/src/view/screens/PostThread.tsx index aa09ab9ed..ba1fa130e 100644 --- a/src/view/screens/PostThread.tsx +++ b/src/view/screens/PostThread.tsx @@ -59,11 +59,7 @@ export function PostThreadScreen({route}: Props) { uri: thread.post.uri, cid: thread.post.cid, text: thread.record.text, - author: { - handle: thread.post.author.handle, - displayName: thread.post.author.displayName, - avatar: thread.post.author.avatar, - }, + author: thread.post.author, embed: thread.post.embed, }, onPost: () => diff --git a/src/view/screens/ProfileFollowers.tsx b/src/view/screens/ProfileFollowers.tsx index 2cad08cb5..6f8ecc2e8 100644 --- a/src/view/screens/ProfileFollowers.tsx +++ b/src/view/screens/ProfileFollowers.tsx @@ -21,7 +21,7 @@ export const ProfileFollowersScreen = ({route}: Props) => { ) return ( - <View> + <View style={{flex: 1}}> <ViewHeader title={_(msg`Followers`)} /> <ProfileFollowersComponent name={name} /> </View> diff --git a/src/view/screens/ProfileFollows.tsx b/src/view/screens/ProfileFollows.tsx index 80502b98b..bdab20153 100644 --- a/src/view/screens/ProfileFollows.tsx +++ b/src/view/screens/ProfileFollows.tsx @@ -21,7 +21,7 @@ export const ProfileFollowsScreen = ({route}: Props) => { ) return ( - <View> + <View style={{flex: 1}}> <ViewHeader title={_(msg`Following`)} /> <ProfileFollowsComponent name={name} /> </View> diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index b3ff0e2e3..d39f37ed7 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -141,6 +141,7 @@ function SearchScreenSuggestedFollows() { friends.slice(0, 4).map(friend => getSuggestedFollowsByActor(friend.did).then(foafsRes => { for (const user of foafsRes.suggestions) { + if (user.associated?.labeler) continue friendsOfFriends.set(user.did, user) } }), diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx index b817ee04d..465007777 100644 --- a/src/view/screens/Settings/index.tsx +++ b/src/view/screens/Settings/index.tsx @@ -40,10 +40,7 @@ import { } from '#/state/preferences' import {useSession, useSessionApi, SessionAccount} from '#/state/session' import {useProfileQuery} from '#/state/queries/profile' -import { - useClearPreferencesMutation, - usePreferencesQuery, -} from '#/state/queries/preferences' +import {useClearPreferencesMutation} from '#/state/queries/preferences' // TODO import {useInviteCodesQuery} from '#/state/queries/invites' import {clear as clearStorage} from '#/state/persisted/store' import {clearLegacyStorage} from '#/state/persisted/legacy' @@ -85,7 +82,11 @@ function SettingsAccountCard({account}: {account: SessionAccount}) { const contents = ( <View style={[pal.view, styles.linkCard]}> <View style={styles.avi}> - <UserAvatar size={40} avatar={profile?.avatar} /> + <UserAvatar + size={40} + avatar={profile?.avatar} + type={profile?.associated?.labeler ? 'labeler' : 'user'} + /> </View> <View style={[s.flex1]}> <Text type="md-bold" style={pal.text}> @@ -156,7 +157,6 @@ export function SettingsScreen({}: Props) { const {screen, track} = useAnalytics() const {openModal} = useModalControls() const {isSwitchingAccounts, accounts, currentAccount} = useSession() - const {data: preferences} = usePreferencesQuery() const {mutate: clearPreferences} = useClearPreferencesMutation() // TODO // const {data: invites} = useInviteCodesQuery() @@ -295,10 +295,7 @@ export function SettingsScreen({}: Props) { return ( <View style={s.hContentRegion} testID="settingsScreen"> <ExportCarDialog control={exportCarControl} /> - <BirthDateSettingsDialog - control={birthdayControl} - preferences={preferences} - /> + <BirthDateSettingsDialog control={birthdayControl} /> <SimpleViewHeader showBackButton={isMobile} diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx index 23a15d6bd..1bf5647f6 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -75,6 +75,7 @@ let DrawerProfileCard = ({ avatar={profile?.avatar} // See https://github.com/bluesky-social/social-app/pull/1801: usePlainRNImage={true} + type={profile?.associated?.labeler ? 'labeler' : 'user'} /> <Text type="title-lg" diff --git a/src/view/shell/bottom-bar/BottomBar.tsx b/src/view/shell/bottom-bar/BottomBar.tsx index 115faa296..8a19a0b4f 100644 --- a/src/view/shell/bottom-bar/BottomBar.tsx +++ b/src/view/shell/bottom-bar/BottomBar.tsx @@ -229,6 +229,7 @@ export function BottomBar({navigation}: BottomTabBarProps) { size={27} // See https://github.com/bluesky-social/social-app/pull/1801: usePlainRNImage={true} + type={profile?.associated?.labeler ? 'labeler' : 'user'} /> </View> ) : ( @@ -238,6 +239,7 @@ export function BottomBar({navigation}: BottomTabBarProps) { size={28} // See https://github.com/bluesky-social/social-app/pull/1801: usePlainRNImage={true} + type={profile?.associated?.labeler ? 'labeler' : 'user'} /> </View> )} diff --git a/src/view/shell/desktop/LeftNav.tsx b/src/view/shell/desktop/LeftNav.tsx index c56ba941e..097ca2fbf 100644 --- a/src/view/shell/desktop/LeftNav.tsx +++ b/src/view/shell/desktop/LeftNav.tsx @@ -64,7 +64,11 @@ function ProfileCard() { style={[styles.profileCard, !isDesktop && styles.profileCardTablet]} title={_(msg`My Profile`)} asAnchor> - <UserAvatar avatar={profile.avatar} size={size} /> + <UserAvatar + avatar={profile.avatar} + size={size} + type={profile?.associated?.labeler ? 'labeler' : 'user'} + /> </Link> ) : ( <View style={[styles.profileCard, !isDesktop && styles.profileCardTablet]}> diff --git a/src/view/shell/desktop/Search.tsx b/src/view/shell/desktop/Search.tsx index 8933324ee..0c5bd452f 100644 --- a/src/view/shell/desktop/Search.tsx +++ b/src/view/shell/desktop/Search.tsx @@ -112,6 +112,7 @@ export function SearchProfileCard({ size={40} avatar={profile.avatar} moderation={moderation.ui('avatar')} + type={profile.associated?.labeler ? 'labeler' : 'user'} /> <View style={{flex: 1}}> <Text |