Improve ML translation by removing HTML tags

This commit is contained in:
Zhiyuan Zheng 2022-06-10 19:41:39 +02:00
parent 72eee3600f
commit 7adc09f624
1 changed files with 12 additions and 8 deletions

View File

@ -30,35 +30,41 @@ const TimelineTranslate = React.memo(
const { t } = useTranslation('componentTimeline') const { t } = useTranslation('componentTimeline')
const { colors } = useTheme() const { colors } = useTheme()
let text = status.spoiler_text const text = status.spoiler_text
? [status.spoiler_text, status.content] ? [status.spoiler_text, status.content]
: [status.content] : [status.content]
for (const i in text) { for (const i in text) {
for (const emoji of status.emojis) { for (const emoji of status.emojis) {
text[i] = text[i].replaceAll(`:${emoji.shortcode}:`, '') text[i] = text[i].replaceAll(`:${emoji.shortcode}:`, ' ')
} }
text[i] = text[i]
.replace(/(<([^>]+)>)/gi, ' ')
.replace(/@.*? /gi, ' ')
.replace(/#.*? /gi, ' ')
.replace(/http(s):\/\/.*? /gi, ' ')
} }
const [detectedLanguage, setDetectedLanguage] = useState<string>('') const [detectedLanguage, setDetectedLanguage] = useState<string>('')
useEffect(() => { useEffect(() => {
const detect = async () => { const detect = async () => {
const result = await detectLanguage(text.join(`\n`)) const result = await detectLanguage(text.join(`\n\n`))
setDetectedLanguage(result.detected.slice(0, 2)) setDetectedLanguage(result.detected.slice(0, 2))
} }
detect() detect()
}, []) }, [])
const settingsLanguage = useSelector(getSettingsLanguage) const settingsLanguage = useSelector(getSettingsLanguage)
const targetLanguage = settingsLanguage || Localization.locale || 'en'
const [enabled, setEnabled] = useState(false) const [enabled, setEnabled] = useState(false)
const { refetch, data, isLoading, isSuccess, isError } = useTranslateQuery({ const { refetch, data, isLoading, isSuccess, isError } = useTranslateQuery({
source: detectedLanguage, source: detectedLanguage,
target: Localization.locale || settingsLanguage || 'en', target: targetLanguage,
text, text,
options: { enabled } options: { enabled }
}) })
console.log('detectedLanguage', detectedLanguage)
if (!detectedLanguage) { if (!detectedLanguage) {
return null return null
} }
@ -118,9 +124,7 @@ const TimelineTranslate = React.memo(
</CustomText> </CustomText>
<CustomText> <CustomText>
{__DEV__ {__DEV__
? ` Source: ${detectedLanguage}; Target: ${ ? ` Source: ${detectedLanguage}; Target: ${targetLanguage}`
Localization.locale || settingsLanguage || 'en'
}`
: undefined} : undefined}
</CustomText> </CustomText>
{isLoading ? ( {isLoading ? (