diff --git a/src/components/status.jsx b/src/components/status.jsx index 628e203d..1831e195 100644 --- a/src/components/status.jsx +++ b/src/components/status.jsx @@ -222,6 +222,8 @@ function Status({ const [forceTranslate, setForceTranslate] = useState(false); const targetLanguage = getTranslateTargetLanguage(true); + const contentTranslationHideLanguages = + snapStates.settings.contentTranslationHideLanguages || []; if (!snapStates.settings.contentTranslation) enableTranslate = false; const [showEdited, setShowEdited] = useState(false); @@ -907,7 +909,10 @@ function Status({ !!content.trim() && language && language !== targetLanguage && - !match([language], [targetLanguage])) || + !match([language], [targetLanguage]) && + !contentTranslationHideLanguages.find( + (l) => language === l || match([language], [l]), + )) || forceTranslate) && ( +

+ + Hide "Translate" button for + {snapStates.settings.contentTranslationHideLanguages + .length > 0 && ( + <> + {' '} + ( + { + snapStates.settings.contentTranslationHideLanguages + .length + } + ) + + )} + : + +

+ {targetLanguages.map((lang) => ( + + ))} +
+

Note: This feature uses an external API to translate, diff --git a/src/utils/states.js b/src/utils/states.js index fbe3aff4..40839b84 100644 --- a/src/utils/states.js +++ b/src/utils/states.js @@ -48,6 +48,8 @@ const states = proxy({ store.account.get('settings-contentTranslation') ?? true, contentTranslationTargetLanguage: store.account.get('settings-contentTranslationTargetLanguage') || null, + contentTranslationHideLanguages: + store.account.get('settings-contentTranslationHideLanguages') || [], }, }); @@ -76,6 +78,12 @@ subscribe(states, (changes) => { console.log('SET', value); store.account.set('settings-contentTranslationTargetLanguage', value); } + if (/^settings\.contentTranslationHideLanguages/i.test(path.join('.'))) { + store.account.set( + 'settings-contentTranslationHideLanguages', + states.settings.contentTranslationHideLanguages, + ); + } if (path?.[0] === 'shortcuts') { store.account.set('shortcuts', states.shortcuts); }