diff --git a/src/components/Post/Translated/index.tsx b/src/components/Post/Translated/index.tsx index 2ad5c74477..fb05fd9d3a 100644 --- a/src/components/Post/Translated/index.tsx +++ b/src/components/Post/Translated/index.tsx @@ -5,9 +5,13 @@ import {Trans, useLingui} from '@lingui/react/macro' import {HITSLOP_30} from '#/lib/constants' import {useGoogleTranslate} from '#/lib/hooks/useGoogleTranslate' -import {guessLanguage, useTranslate} from '#/lib/translation' +import {useTranslate} from '#/lib/translation' import {type TranslationFunction} from '#/lib/translation' -import {codeToLanguageName, languageName} from '#/locale/helpers' +import { + codeToLanguageName, + isPostInLanguage, + languageName, +} from '#/locale/helpers' import {LANGUAGES} from '#/locale/languages' import {useLanguagePrefs} from '#/state/preferences' import {atoms as a, native, useTheme, web} from '#/alf' @@ -36,8 +40,10 @@ export function TranslatedPost({ key: post.uri, }) - const postLanguage = useMemo(() => guessLanguage(postText), [postText]) - const needsTranslation = postLanguage !== langPrefs.primaryLanguage + const needsTranslation = useMemo(() => { + if (hideTranslateLink) return false + return !isPostInLanguage(post, [langPrefs.primaryLanguage]) + }, [hideTranslateLink, post, langPrefs.primaryLanguage]) switch (translationState.status) { case 'loading': @@ -49,7 +55,7 @@ export function TranslatedPost({ translate={translate} postText={postText} sourceLanguage={ - translationState.sourceLanguage ?? postLanguage ?? null // Fallback primarily for iOS + translationState.sourceLanguage ?? null // Fallback primarily for iOS } translatedText={translationState.translatedText} /> @@ -65,12 +71,10 @@ export function TranslatedPost({ ) default: return ( - !hideTranslateLink && needsTranslation && ( ) @@ -96,12 +100,10 @@ function TranslationLoading() { function TranslationLink({ postText, primaryLanguage, - sourceLanguage, translate, }: { postText: string primaryLanguage: string - sourceLanguage: string | null translate: TranslationFunction }) { const t = useTheme() @@ -115,11 +117,11 @@ function TranslationLink({ }) ax.metric('translate', { - sourceLanguages: sourceLanguage ? [sourceLanguage] : [], + sourceLanguages: [], // todo: get from post maybe? targetLanguage: primaryLanguage, textLength: postText.length, }) - }, [ax, postText, primaryLanguage, translate, sourceLanguage]) + }, [ax, postText, primaryLanguage, translate]) return (