From 5c9c11fafdd2396039b60f83e1356eed7f477b38 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Sat, 31 May 2025 15:34:52 +0800 Subject: [PATCH] translator: disable translator if the system language is the same with the book language (#1290) Closes #1288 --- .../src/app/reader/components/TranslationToggler.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/readest-app/src/app/reader/components/TranslationToggler.tsx b/apps/readest-app/src/app/reader/components/TranslationToggler.tsx index 12eb927d..991a236d 100644 --- a/apps/readest-app/src/app/reader/components/TranslationToggler.tsx +++ b/apps/readest-app/src/app/reader/components/TranslationToggler.tsx @@ -8,6 +8,7 @@ import { useBookDataStore } from '@/store/bookDataStore'; import { saveViewSettings } from '../utils/viewSettingsHelper'; import { isSameLang } from '@/utils/lang'; import Button from '@/components/Button'; +import { getLocale } from '@/utils/misc'; const TranslationToggler = ({ bookKey }: { bookKey: string }) => { const _ = useTranslation(); @@ -19,6 +20,9 @@ const TranslationToggler = ({ bookKey }: { bookKey: string }) => { const viewSettings = getViewSettings(bookKey)!; const [translationEnabled, setTranslationEnabled] = useState(viewSettings.translationEnabled!); + const primaryLanguage = bookData?.book?.primaryLanguage; + const targetLanguage = viewSettings.translateTargetLang; + useEffect(() => { if (translationEnabled === viewSettings.translationEnabled) return; if (appService?.isMobile) { @@ -38,7 +42,8 @@ const TranslationToggler = ({ bookKey }: { bookKey: string }) => { disabled={ !bookData || bookData.book?.format === 'PDF' || - isSameLang(bookData.book?.primaryLanguage, viewSettings.translateTargetLang!) + isSameLang(primaryLanguage, targetLanguage) || + (!targetLanguage && isSameLang(primaryLanguage, getLocale())) } onClick={() => setTranslationEnabled(!translationEnabled)} tooltip={translationEnabled ? _('Disable Translation') : _('Enable Translation')}