translator: disable translator if the system language is the same with the book language (#1290)

Closes #1288
This commit is contained in:
Huang Xin
2025-05-31 15:34:52 +08:00
committed by GitHub
parent 77fa57438e
commit 5c9c11fafd
@@ -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')}