diff options
author | Samuel Newman <mozzius@protonmail.com> | 2025-08-11 18:37:39 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-11 08:37:39 -0700 |
commit | bb949e4f44c4ed1e19c7bddc5779515b419a7022 (patch) | |
tree | 9cb70c6573ee6c4224de38b625f91483e52a5983 /src/view/com/post-thread/PostThreadItem.tsx | |
parent | 2a6172cbaf2db0eda2a7cd2afaeef4b60aadf3ba (diff) | |
download | voidsky-bb949e4f44c4ed1e19c7bddc5779515b419a7022.tar.zst |
Fix translations on Android using PROCESS_TEXT intent (#8486)
* use intents to translate text on android * clean up config plugins * restore day night plugin just to be safe * leave a comment for why we can't open translate directly * add todo * fix lockfile lint
Diffstat (limited to 'src/view/com/post-thread/PostThreadItem.tsx')
-rw-r--r-- | src/view/com/post-thread/PostThreadItem.tsx | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 54eea0493..97a1aa8ed 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -19,8 +19,8 @@ import {useLingui} from '@lingui/react' import {useActorStatus} from '#/lib/actor-status' import {MAX_POST_LINES} from '#/lib/constants' import {useOpenComposer} from '#/lib/hooks/useOpenComposer' -import {useOpenLink} from '#/lib/hooks/useOpenLink' import {usePalette} from '#/lib/hooks/usePalette' +import {useTranslate} from '#/lib/hooks/useTranslate' import {makeProfileLink} from '#/lib/routes/links' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' @@ -273,10 +273,6 @@ let PostThreadItemLoaded = ({ const showFollowButton = currentAccount?.did !== post.author.did && !onlyFollowersCanReply - const translatorUrl = getTranslatorLink( - record?.text || '', - langPrefs.primaryLanguage, - ) const needsTranslation = useMemo( () => Boolean( @@ -477,8 +473,8 @@ let PostThreadItemLoaded = ({ </ContentHider> <ExpandedPostDetails post={post} + record={record} isThreadAuthor={isThreadAuthor} - translatorUrl={translatorUrl} needsTranslation={needsTranslation} /> {post.repostCount !== 0 || @@ -824,26 +820,26 @@ function PostOuterWrapper({ function ExpandedPostDetails({ post, + record, isThreadAuthor, needsTranslation, - translatorUrl, }: { post: AppBskyFeedDefs.PostView + record: AppBskyFeedPost.Record isThreadAuthor: boolean needsTranslation: boolean - translatorUrl: string }) { const t = useTheme() const pal = usePalette('default') const {_, i18n} = useLingui() - const openLink = useOpenLink() + const translate = useTranslate() const isRootPost = !('reply' in post.record) const langPrefs = useLanguagePrefs() const onTranslatePress = useCallback( (e: GestureResponderEvent) => { e.preventDefault() - openLink(translatorUrl, true) + translate(record.text || '', langPrefs.primaryLanguage) if ( bsky.dangerousIsType<AppBskyFeedPost.Record>( @@ -864,7 +860,7 @@ function ExpandedPostDetails({ return false }, - [openLink, translatorUrl, langPrefs, post], + [translate, record.text, langPrefs, post], ) return ( @@ -884,7 +880,9 @@ function ExpandedPostDetails({ </Text> <InlineLinkText - to={translatorUrl} + // overridden to open an intent on android, but keep + // as anchor tag for accessibility + to={getTranslatorLink(record.text, langPrefs.primaryLanguage)} label={_(msg`Translate`)} style={[a.text_sm, pal.link]} onPress={onTranslatePress}> |