From 80136859c84194f3b27e00de15ebfaad77da42aa Mon Sep 17 00:00:00 2001 From: Ansh Nanda Date: Sun, 5 Nov 2023 16:43:05 -0800 Subject: [PATCH] first pass of automated replacement of text messages --- src/view/com/auth/SplashScreen.tsx | 9 +++++-- src/view/com/auth/SplashScreen.web.tsx | 5 +++- src/view/com/auth/create/Step2.tsx | 5 +++- src/view/com/auth/login/Login.tsx | 5 +++- .../onboarding/RecommendedFollowsItem.tsx | 5 +++- .../com/auth/onboarding/WelcomeMobile.tsx | 27 ++++++++++++------- src/view/com/composer/Composer.tsx | 9 +++++-- src/view/com/lists/ListsList.tsx | 5 +++- src/view/com/modals/AddAppPasswords.tsx | 5 +++- src/view/com/modals/BirthDateSettings.tsx | 5 +++- .../com/modals/ContentFilteringSettings.tsx | 9 +++++-- src/view/com/modals/CreateOrEditList.tsx | 13 ++++++--- src/view/com/modals/EditImage.tsx | 5 +++- src/view/com/modals/EditProfile.tsx | 21 +++++++++++---- src/view/com/modals/InviteCodes.tsx | 5 +++- src/view/com/modals/Repost.tsx | 5 +++- src/view/com/modals/SelfLabel.tsx | 5 +++- src/view/com/modals/ServerInput.tsx | 17 +++++++++--- .../ContentLanguagesSettings.tsx | 11 +++++--- .../lang-settings/PostLanguagesSettings.tsx | 7 +++-- .../com/modals/report/InputIssueDetails.tsx | 5 +++- src/view/com/modals/report/Modal.tsx | 9 +++++-- .../com/modals/report/SendReportButton.tsx | 5 +++- src/view/com/notifications/FeedItem.tsx | 5 +++- src/view/com/post-thread/PostThreadItem.tsx | 11 +++++--- src/view/com/search/HeaderWithInput.tsx | 5 +++- src/view/screens/PreferencesHomeFeed.tsx | 5 +++- src/view/screens/PreferencesThreads.tsx | 5 +++- src/view/screens/Profile.tsx | 7 ++++- src/view/screens/ProfileList.tsx | 13 ++++++--- 30 files changed, 190 insertions(+), 58 deletions(-) diff --git a/src/view/com/auth/SplashScreen.tsx b/src/view/com/auth/SplashScreen.tsx index 67453f111a..ff1e56360d 100644 --- a/src/view/com/auth/SplashScreen.tsx +++ b/src/view/com/auth/SplashScreen.tsx @@ -5,6 +5,7 @@ import {ErrorBoundary} from 'view/com/util/ErrorBoundary' import {s, colors} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {CenteredView} from '../util/Views' +import {Trans} from '@lingui/macro' export const SplashScreen = ({ onPressSignin, @@ -19,7 +20,9 @@ export const SplashScreen = ({ - Bluesky + + Bluesky + See what's next @@ -43,7 +46,9 @@ export const SplashScreen = ({ accessibilityRole="button" accessibilityLabel="Sign in" accessibilityHint="Opens flow to sign into your existing Bluesky account"> - Sign In + + Sign In + diff --git a/src/view/com/auth/SplashScreen.web.tsx b/src/view/com/auth/SplashScreen.web.tsx index cef9618efa..f10dc4f98b 100644 --- a/src/view/com/auth/SplashScreen.web.tsx +++ b/src/view/com/auth/SplashScreen.web.tsx @@ -8,6 +8,7 @@ import {usePalette} from 'lib/hooks/usePalette' import {CenteredView} from '../util/Views' import {isWeb} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {Trans} from '@lingui/macro' export const SplashScreen = ({ onPressSignin, @@ -54,7 +55,9 @@ export const SplashScreen = ({ onPress={onPressSignin} // TODO: web accessibility accessibilityRole="button"> - Sign In + + Sign In + diff --git a/src/view/com/auth/create/Step2.tsx b/src/view/com/auth/create/Step2.tsx index 60e1975648..ee7ecd0d34 100644 --- a/src/view/com/auth/create/Step2.tsx +++ b/src/view/com/auth/create/Step2.tsx @@ -12,6 +12,7 @@ import {Policies} from './Policies' import {ErrorMessage} from 'view/com/util/error/ErrorMessage' import {useStores} from 'state/index' import {isWeb} from 'platform/detection' +import {Trans} from '@lingui/macro' /** STEP 2: Your account * @field Invite code or waitlist @@ -64,7 +65,9 @@ export const Step2 = observer(function Step2Impl({ accessibilityLabel="Join the waitlist." accessibilityHint=""> - Join the waitlist. + + Join the waitlist. + diff --git a/src/view/com/auth/login/Login.tsx b/src/view/com/auth/login/Login.tsx index acc05b6ca3..a3d9ee6914 100644 --- a/src/view/com/auth/login/Login.tsx +++ b/src/view/com/auth/login/Login.tsx @@ -31,6 +31,7 @@ import {useTheme} from 'lib/ThemeContext' import {cleanError} from 'lib/strings/errors' import {isWeb} from 'platform/detection' import {logger} from '#/logger' +import {Trans} from '@lingui/macro' enum Forms { Login, @@ -469,7 +470,9 @@ const LoginForm = ({ accessibilityRole="button" accessibilityLabel="Forgot password" accessibilityHint="Opens password reset form"> - Forgot + + Forgot + diff --git a/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx b/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx index 2b26918d02..7d3378f425 100644 --- a/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx +++ b/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx @@ -14,6 +14,7 @@ import {Text} from 'view/com/util/text/Text' import Animated, {FadeInRight} from 'react-native-reanimated' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {useAnalytics} from 'lib/analytics/analytics' +import {Trans} from '@lingui/macro' type Props = { item: SuggestedActor @@ -114,7 +115,9 @@ export const ProfileCard = observer(function ProfileCardImpl({ {addingMoreSuggestions ? ( - Finding similar accounts... + + Finding similar accounts... + ) : null} diff --git a/src/view/com/auth/onboarding/WelcomeMobile.tsx b/src/view/com/auth/onboarding/WelcomeMobile.tsx index 1f0a64370a..ef70a1fe32 100644 --- a/src/view/com/auth/onboarding/WelcomeMobile.tsx +++ b/src/view/com/auth/onboarding/WelcomeMobile.tsx @@ -7,6 +7,7 @@ import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {Button} from 'view/com/util/forms/Button' import {observer} from 'mobx-react-lite' import {ViewHeader} from 'view/com/util/ViewHeader' +import {Trans} from '@lingui/macro' type Props = { next: () => void @@ -32,7 +33,9 @@ export const WelcomeMobile = observer(function WelcomeMobileImpl({ accessibilityRole="button" style={[s.flexRow, s.alignCenter]} onPress={skip}> - Skip + + Skip + Welcome to{' '} - Bluesky + + Bluesky + - Bluesky is public. + Bluesky is public. - Your posts, likes, and blocks are public. Mutes are private. + + Your posts, likes, and blocks are public. Mutes are private. + @@ -63,10 +70,10 @@ export const WelcomeMobile = observer(function WelcomeMobileImpl({ - Bluesky is open. + Bluesky is open. - Never lose access to your followers and data. + Never lose access to your followers and data. @@ -74,11 +81,13 @@ export const WelcomeMobile = observer(function WelcomeMobileImpl({ - Bluesky is flexible. + Bluesky is flexible. - Choose the algorithms that power your experience with custom - feeds. + + Choose the algorithms that power your experience with custom + feeds. + diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index e44a0ce010..6dada80dad 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -49,6 +49,7 @@ import {LabelsBtn} from './labels/LabelsBtn' import {SelectLangBtn} from './select-language/SelectLangBtn' import {EmojiPickerButton} from './text-input/web/EmojiPicker.web' import {insertMentionAt} from 'lib/strings/mention-manip' +import {Trans} from '@lingui/macro' type Props = ComposerOpts export const ComposePost = observer(function ComposePost({ @@ -267,7 +268,9 @@ export const ComposePost = observer(function ComposePost({ accessibilityRole="button" accessibilityLabel="Cancel" accessibilityHint="Closes post composer and discards post draft"> - Cancel + + Cancel + {isProcessing ? ( @@ -308,7 +311,9 @@ export const ComposePost = observer(function ComposePost({ ) : ( - Post + + Post + )} diff --git a/src/view/com/lists/ListsList.tsx b/src/view/com/lists/ListsList.tsx index e42b65752b..2992e1a749 100644 --- a/src/view/com/lists/ListsList.tsx +++ b/src/view/com/lists/ListsList.tsx @@ -20,6 +20,7 @@ import {usePalette} from 'lib/hooks/usePalette' import {FlatList} from '../util/Views.web' import {s} from 'lib/styles' import {logger} from '#/logger' +import {Trans} from '@lingui/macro' const LOADING = {_reactKey: '__loading__'} const EMPTY = {_reactKey: '__empty__'} @@ -107,7 +108,9 @@ export const ListsList = observer(function ListsListImpl({ - You have no lists. + + You have no lists. + ) } else if (item === ERROR_ITEM) { diff --git a/src/view/com/modals/AddAppPasswords.tsx b/src/view/com/modals/AddAppPasswords.tsx index 29763620fc..b8e5e999e9 100644 --- a/src/view/com/modals/AddAppPasswords.tsx +++ b/src/view/com/modals/AddAppPasswords.tsx @@ -13,6 +13,7 @@ import { import Clipboard from '@react-native-clipboard/clipboard' import * as Toast from '../util/Toast' import {logger} from '#/logger' +import {Trans} from '@lingui/macro' export const snapPoints = ['70%'] @@ -167,7 +168,9 @@ export function Component({}: {}) { {appPassword} {wasCopied ? ( - Copied + + Copied + ) : ( - Save + + Save + )} diff --git a/src/view/com/modals/ContentFilteringSettings.tsx b/src/view/com/modals/ContentFilteringSettings.tsx index 9075d02729..f66c0ce79c 100644 --- a/src/view/com/modals/ContentFilteringSettings.tsx +++ b/src/view/com/modals/ContentFilteringSettings.tsx @@ -16,6 +16,7 @@ import {isIOS} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import * as Toast from '../util/Toast' import {logger} from '#/logger' +import {Trans} from '@lingui/macro' export const snapPoints = ['90%'] @@ -35,7 +36,9 @@ export const Component = observer( return ( - Content Filtering + + Content Filtering + - Done + + Done + diff --git a/src/view/com/modals/CreateOrEditList.tsx b/src/view/com/modals/CreateOrEditList.tsx index 1ea12695f6..43bfa8f178 100644 --- a/src/view/com/modals/CreateOrEditList.tsx +++ b/src/view/com/modals/CreateOrEditList.tsx @@ -24,6 +24,7 @@ import {useTheme} from 'lib/ThemeContext' import {useAnalytics} from 'lib/analytics/analytics' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {cleanError, isNetworkError} from 'lib/strings/errors' +import {Trans} from '@lingui/macro' const MAX_NAME = 64 // todo const MAX_DESCRIPTION = 300 // todo @@ -168,7 +169,9 @@ export function Component({ )} - List Avatar + + List Avatar + - Save + + Save + )} @@ -250,7 +255,9 @@ export function Component({ accessibilityHint="" onAccessibilityEscape={onPressCancel}> - Cancel + + Cancel + diff --git a/src/view/com/modals/EditImage.tsx b/src/view/com/modals/EditImage.tsx index dcb6668c70..d967615ff3 100644 --- a/src/view/com/modals/EditImage.tsx +++ b/src/view/com/modals/EditImage.tsx @@ -19,6 +19,7 @@ import {Slider} from '@miblanchard/react-native-slider' import {MaterialIcons} from '@expo/vector-icons' import {observer} from 'mobx-react-lite' import {getKeys} from 'lib/type-assertions' +import {Trans} from '@lingui/macro' export const snapPoints = ['80%'] @@ -200,7 +201,9 @@ export const Component = observer(function EditImageImpl({ paddingHorizontal: isMobile ? 16 : undefined, }, ]}> - Edit image + + Edit image + - Edit my profile + + Edit my profile + - Display Name + + Display Name + - Description + + Description + - Save Changes + + Save Changes + )} @@ -235,7 +244,9 @@ export function Component({ accessibilityHint="" onAccessibilityEscape={onPressCancel}> - Cancel + + Cancel + )} diff --git a/src/view/com/modals/InviteCodes.tsx b/src/view/com/modals/InviteCodes.tsx index 09cfd4de79..92412d4411 100644 --- a/src/view/com/modals/InviteCodes.tsx +++ b/src/view/com/modals/InviteCodes.tsx @@ -14,6 +14,7 @@ import {ScrollView} from './util' import {usePalette} from 'lib/hooks/usePalette' import {isWeb} from 'platform/detection' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {Trans} from '@lingui/macro' export const snapPoints = ['70%'] @@ -124,7 +125,9 @@ const InviteCode = observer(function InviteCodeImpl({ {!used && store.invitedUsers.isInviteCopied(code) && ( - Copied + + Copied + )} {!used && ( - Cancel + + Cancel + diff --git a/src/view/com/modals/SelfLabel.tsx b/src/view/com/modals/SelfLabel.tsx index 820f2895be..2e188c9758 100644 --- a/src/view/com/modals/SelfLabel.tsx +++ b/src/view/com/modals/SelfLabel.tsx @@ -10,6 +10,7 @@ import {isWeb} from 'platform/detection' import {Button} from '../util/forms/Button' import {SelectableBtn} from '../util/forms/SelectableBtn' import {ScrollView} from 'view/com/modals/util' +import {Trans} from '@lingui/macro' const ADULT_CONTENT_LABELS = ['sexual', 'nudity', 'porn'] @@ -149,7 +150,9 @@ export const Component = observer(function Component({ accessibilityRole="button" accessibilityLabel="Confirm" accessibilityHint=""> - Done + + Done + diff --git a/src/view/com/modals/ServerInput.tsx b/src/view/com/modals/ServerInput.tsx index 13b21fe22f..7ab0601f97 100644 --- a/src/view/com/modals/ServerInput.tsx +++ b/src/view/com/modals/ServerInput.tsx @@ -12,6 +12,7 @@ import {usePalette} from 'lib/hooks/usePalette' import {useTheme} from 'lib/ThemeContext' import {LOCAL_DEV_SERVICE, STAGING_SERVICE, PROD_SERVICE} from 'state/index' import {LOGIN_INCLUDE_DEV_SERVERS} from 'lib/build-flags' +import {Trans} from '@lingui/macro' export const snapPoints = ['80%'] @@ -43,7 +44,9 @@ export function Component({onSelect}: {onSelect: (url: string) => void}) { style={styles.btn} onPress={() => doSelect(LOCAL_DEV_SERVICE)} accessibilityRole="button"> - Local dev server + + Local dev server + void}) { style={styles.btn} onPress={() => doSelect(STAGING_SERVICE)} accessibilityRole="button"> - Staging + + Staging + void}) { accessibilityRole="button" accessibilityLabel="Select Bluesky Social" accessibilityHint="Sets Bluesky Social as your service provider"> - Bluesky.Social + + Bluesky.Social + void}) { - Other service + + Other service + - Content Languages + + Content Languages + - Which languages would you like to see in your algorithmic feeds? + + Which languages would you like to see in your algorithmic feeds? + - Leave them all unchecked to see any language. + Leave them all unchecked to see any language. {languages.map(lang => ( diff --git a/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx b/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx index d74d884cc0..de0e056c95 100644 --- a/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx +++ b/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx @@ -10,6 +10,7 @@ import {deviceLocales} from 'platform/detection' import {LANGUAGES, LANGUAGES_MAP_CODE2} from '../../../../locale/languages' import {ConfirmLanguagesButton} from './ConfirmLanguagesButton' import {ToggleButton} from 'view/com/util/forms/ToggleButton' +import {Trans} from '@lingui/macro' export const snapPoints = ['100%'] @@ -64,9 +65,11 @@ export const Component = observer(function PostLanguagesSettingsImpl() { maxHeight: '90vh', }, ]}> - Post Languages + + Post Languages + - Which languages are used in this post? + Which languages are used in this post? {languages.map(lang => { diff --git a/src/view/com/modals/report/InputIssueDetails.tsx b/src/view/com/modals/report/InputIssueDetails.tsx index 70a8f7b243..49bcb8a3db 100644 --- a/src/view/com/modals/report/InputIssueDetails.tsx +++ b/src/view/com/modals/report/InputIssueDetails.tsx @@ -8,6 +8,7 @@ import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {s} from 'lib/styles' import {SendReportButton} from './SendReportButton' +import {Trans} from '@lingui/macro' export function InputIssueDetails({ details, @@ -38,7 +39,9 @@ export function InputIssueDetails({ accessibilityLabel="Add details" accessibilityHint="Add more details to your report"> - Back + + Back + - Report {collectionName} + + Report {collectionName} + What is the issue with this {collectionName}? @@ -184,7 +187,9 @@ const SelectIssue = ({ accessibilityRole="button" accessibilityLabel="Add details" accessibilityHint="Add more details to your report"> - Add details to report + + Add details to report + ) : undefined} diff --git a/src/view/com/modals/report/SendReportButton.tsx b/src/view/com/modals/report/SendReportButton.tsx index 82fb65f20c..7c9fa5e5e4 100644 --- a/src/view/com/modals/report/SendReportButton.tsx +++ b/src/view/com/modals/report/SendReportButton.tsx @@ -8,6 +8,7 @@ import { } from 'react-native' import {Text} from '../../util/text/Text' import {s, gradients, colors} from 'lib/styles' +import {Trans} from '@lingui/macro' export function SendReportButton({ onPress, @@ -38,7 +39,9 @@ export function SendReportButton({ start={{x: 0, y: 0}} end={{x: 1, y: 1}} style={[styles.btn]}> - Send Report + + Send Report + ) diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index c38ab3fd50..658660e879 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -40,6 +40,7 @@ import {formatCount} from '../util/numeric/format' import {makeProfileLink} from 'lib/routes/links' import {TimeElapsed} from '../util/TimeElapsed' import {isWeb} from 'platform/detection' +import {Trans} from '@lingui/macro' const MAX_AUTHORS = 5 @@ -232,7 +233,9 @@ export const FeedItem = observer(function FeedItemImpl({ /> {authors.length > 1 ? ( <> - and + + and + {formatCount(authors.length - 1)}{' '} {pluralize(authors.length - 1, 'other')} diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 351a467062..3543af8d22 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -37,6 +37,7 @@ import {makeProfileLink} from 'lib/routes/links' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {MAX_POST_LINES} from 'lib/constants' import {logger} from '#/logger' +import {Trans} from '@lingui/macro' export const PostThreadItem = observer(function PostThreadItem({ item, @@ -171,7 +172,9 @@ export const PostThreadItem = observer(function PostThreadItem({ icon={['far', 'trash-can']} style={pal.icon as FontAwesomeIconStyle} /> - This post has been deleted. + + This post has been deleted. + ) } @@ -645,9 +648,11 @@ function ExpandedPostDetails({ {niceDate(post.indexedAt)} {needsTranslation && ( <> - + - Translate + + Translate + )} diff --git a/src/view/com/search/HeaderWithInput.tsx b/src/view/com/search/HeaderWithInput.tsx index 6bd1b2f00b..4fcb719b07 100644 --- a/src/view/com/search/HeaderWithInput.tsx +++ b/src/view/com/search/HeaderWithInput.tsx @@ -12,6 +12,7 @@ import {useStores} from 'state/index' import {useAnalytics} from 'lib/analytics/analytics' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {HITSLOP_10} from 'lib/constants' +import {Trans} from '@lingui/macro' interface Props { isInputFocused: boolean @@ -120,7 +121,9 @@ export function HeaderWithInput({ - Cancel + + Cancel + ) : undefined} diff --git a/src/view/screens/PreferencesHomeFeed.tsx b/src/view/screens/PreferencesHomeFeed.tsx index 21c15931ff..4676be56c2 100644 --- a/src/view/screens/PreferencesHomeFeed.tsx +++ b/src/view/screens/PreferencesHomeFeed.tsx @@ -14,6 +14,7 @@ import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {ViewHeader} from 'view/com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' import debounce from 'lodash.debounce' +import {Trans} from '@lingui/macro' function RepliesThresholdInput({enabled}: {enabled: boolean}) { const store = useStores() @@ -206,7 +207,9 @@ export const PreferencesHomeFeed = observer(function PreferencesHomeFeedImpl({ accessibilityRole="button" accessibilityLabel="Confirm" accessibilityHint=""> - Done + + Done + diff --git a/src/view/screens/PreferencesThreads.tsx b/src/view/screens/PreferencesThreads.tsx index af98a1833e..c90c697ace 100644 --- a/src/view/screens/PreferencesThreads.tsx +++ b/src/view/screens/PreferencesThreads.tsx @@ -12,6 +12,7 @@ import {RadioGroup} from 'view/com/util/forms/RadioGroup' import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {ViewHeader} from 'view/com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' +import {Trans} from '@lingui/macro' type Props = NativeStackScreenProps export const PreferencesThreads = observer(function PreferencesThreadsImpl({ @@ -120,7 +121,9 @@ export const PreferencesThreads = observer(function PreferencesThreadsImpl({ accessibilityRole="button" accessibilityLabel="Confirm" accessibilityHint=""> - Done + + Done + diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index f183ebbc2b..993d7b3e47 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -30,6 +30,7 @@ import {FeedSourceModel} from 'state/models/content/feed-source' import {useSetTitle} from 'lib/hooks/useSetTitle' import {combinedDisplayName} from 'lib/strings/display-names' import {logger} from '#/logger' +import {Trans} from '@lingui/macro' type Props = NativeStackScreenProps export const ProfileScreen = withAuthRequired( @@ -204,7 +205,11 @@ export const ProfileScreen = withAuthRequired( // if section is posts or posts & replies } else { if (item === ProfileUiModel.END_ITEM) { - return - end of feed - + return ( + + - end of feed - + + ) } else if (item === ProfileUiModel.LOADING_ITEM) { return } else if (item._reactKey === '__error__') { diff --git a/src/view/screens/ProfileList.tsx b/src/view/screens/ProfileList.tsx index cfe9c41825..6bc9eeddb8 100644 --- a/src/view/screens/ProfileList.tsx +++ b/src/view/screens/ProfileList.tsx @@ -44,6 +44,7 @@ import {makeProfileLink, makeListLink} from 'lib/routes/links' import {ComposeIcon2} from 'lib/icons' import {ListItems} from 'view/com/lists/ListItems' import {logger} from '#/logger' +import {Trans} from '@lingui/macro' const SECTION_TITLES_CURATE = ['Posts', 'About'] const SECTION_TITLES_MOD = ['About'] @@ -525,7 +526,9 @@ const Header = observer(function HeaderImpl({ accessibilityLabel="Subscribe to this list" accessibilityHint=""> - Subscribe + + Subscribe + ) @@ -683,7 +686,9 @@ const AboutSection = React.forwardRef( paddingBottom: isMobile ? 14 : 18, }, ]}> - Users + + Users + {isOwner && ( ( color={pal.colors.link} size={16} /> - Add + + Add + )}