From 311020285d4d3a5cd478f0547de67c17f63e4fef Mon Sep 17 00:00:00 2001 From: Zhiyuan Zheng Date: Tue, 8 Feb 2022 22:19:24 +0100 Subject: [PATCH] Improved translation response --- package.json | 2 +- src/api/tooot.ts | 4 +++- src/components/Timeline/Shared/Translate.tsx | 21 ++++++++++++++------ src/i18n/en/components/timeline.json | 4 +++- src/utils/queryHooks/translate.ts | 18 ++++++++++++----- 5 files changed, 35 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 4684fad2..5c0627f1 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "native": "220206", "major": 3, "minor": 4, - "patch": 0, + "patch": 1, "expo": "44.0.0" }, "description": "tooot app for Mastodon", diff --git a/src/api/tooot.ts b/src/api/tooot.ts index 8017944a..a2d206b5 100644 --- a/src/api/tooot.ts +++ b/src/api/tooot.ts @@ -53,7 +53,9 @@ const apiTooot = async ({ Accept: '*/*', ...headers }, - ...(body && { data: body }) + ...(body && { data: body }), + validateStatus: status => + url.includes('translate') ? status < 500 : status === 200 }) .then(response => { return Promise.resolve({ diff --git a/src/components/Timeline/Shared/Translate.tsx b/src/components/Timeline/Shared/Translate.tsx index 0a4ce2ca..b078b1b8 100644 --- a/src/components/Timeline/Shared/Translate.tsx +++ b/src/components/Timeline/Shared/Translate.tsx @@ -32,6 +32,9 @@ const TimelineTranslate = React.memo( const settingsLanguage = useSelector(getSettingsLanguage) + if (Localization.locale.includes(tootLanguage)) { + return null + } if (settingsLanguage?.includes(tootLanguage)) { return null } @@ -88,13 +91,19 @@ const TimelineTranslate = React.memo( {isError ? t('shared.translate.failed') : isSuccess - ? t('shared.translate.succeed', { - provider: data?.provider, - source: data?.sourceLanguage - }) + ? typeof data?.error === 'string' + ? t(`shared.translate.${data.error}`) + : t('shared.translate.succeed', { + provider: data?.provider, + source: data?.sourceLanguage + }) : t('shared.translate.default')} + + {__DEV__ - ? ` Source: ${status.language}; Target: ${settingsLanguage}` + ? ` Source: ${status.language}; Target: ${ + Localization.locale || settingsLanguage || 'en' + }` : undefined} {isLoading ? ( @@ -105,7 +114,7 @@ const TimelineTranslate = React.memo( /> ) : null} - {data + {data && data.error === undefined ? data.text.map((d, i) => (