From 49fdcf78370945ff0246922245dc76242c446b74 Mon Sep 17 00:00:00 2001 From: Lim Chee Aun Date: Sun, 1 Oct 2023 14:39:44 +0800 Subject: [PATCH] Show Translate button when different lang inside alt modal --- src/components/media-alt-modal.jsx | 25 +++++++++++++++++++++++-- src/components/status.jsx | 2 +- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/components/media-alt-modal.jsx b/src/components/media-alt-modal.jsx index 09f94db4..aa2cc042 100644 --- a/src/components/media-alt-modal.jsx +++ b/src/components/media-alt-modal.jsx @@ -1,11 +1,28 @@ import { Menu, MenuItem } from '@szhsin/react-menu'; import { useState } from 'preact/hooks'; +import { useSnapshot } from 'valtio'; + +import getTranslateTargetLanguage from '../utils/get-translate-target-language'; +import localeMatch from '../utils/locale-match'; +import states from '../utils/states'; import Icon from './icon'; import TranslationBlock from './translation-block'; export default function MediaAltModal({ alt, lang, onClose }) { + const snapStates = useSnapshot(states); const [forceTranslate, setForceTranslate] = useState(false); + const targetLanguage = getTranslateTargetLanguage(true); + const contentTranslationHideLanguages = + snapStates.settings.contentTranslationHideLanguages || []; + const differentLanguage = + !!lang && + lang !== targetLanguage && + !localeMatch([lang], [targetLanguage]) && + !contentTranslationHideLanguages.find( + (l) => lang === l || localeMatch([lang], [l]), + ); + return (
{!!onClose && ( @@ -44,8 +61,12 @@ export default function MediaAltModal({ alt, lang, onClose }) { > {alt}

- {forceTranslate && ( - + {(differentLanguage || forceTranslate) && ( + )}
diff --git a/src/components/status.jsx b/src/components/status.jsx index 61d737eb..5fd40b3b 100644 --- a/src/components/status.jsx +++ b/src/components/status.jsx @@ -484,7 +484,7 @@ function Status({ }; const differentLanguage = - language && + !!language && language !== targetLanguage && !localeMatch([language], [targetLanguage]) && !contentTranslationHideLanguages.find(