mirror of
				https://github.com/tooot-app/app
				synced 2025-06-05 22:19:13 +02:00 
			
		
		
		
	Improved translation response
This commit is contained in:
		| @@ -4,7 +4,7 @@ | |||||||
|     "native": "220206", |     "native": "220206", | ||||||
|     "major": 3, |     "major": 3, | ||||||
|     "minor": 4, |     "minor": 4, | ||||||
|     "patch": 0, |     "patch": 1, | ||||||
|     "expo": "44.0.0" |     "expo": "44.0.0" | ||||||
|   }, |   }, | ||||||
|   "description": "tooot app for Mastodon", |   "description": "tooot app for Mastodon", | ||||||
|   | |||||||
| @@ -53,7 +53,9 @@ const apiTooot = async <T = unknown>({ | |||||||
|       Accept: '*/*', |       Accept: '*/*', | ||||||
|       ...headers |       ...headers | ||||||
|     }, |     }, | ||||||
|     ...(body && { data: body }) |     ...(body && { data: body }), | ||||||
|  |     validateStatus: status => | ||||||
|  |       url.includes('translate') ? status < 500 : status === 200 | ||||||
|   }) |   }) | ||||||
|     .then(response => { |     .then(response => { | ||||||
|       return Promise.resolve({ |       return Promise.resolve({ | ||||||
|   | |||||||
| @@ -32,6 +32,9 @@ const TimelineTranslate = React.memo( | |||||||
|  |  | ||||||
|     const settingsLanguage = useSelector(getSettingsLanguage) |     const settingsLanguage = useSelector(getSettingsLanguage) | ||||||
|  |  | ||||||
|  |     if (Localization.locale.includes(tootLanguage)) { | ||||||
|  |       return null | ||||||
|  |     } | ||||||
|     if (settingsLanguage?.includes(tootLanguage)) { |     if (settingsLanguage?.includes(tootLanguage)) { | ||||||
|       return null |       return null | ||||||
|     } |     } | ||||||
| @@ -88,13 +91,19 @@ const TimelineTranslate = React.memo( | |||||||
|             {isError |             {isError | ||||||
|               ? t('shared.translate.failed') |               ? t('shared.translate.failed') | ||||||
|               : isSuccess |               : isSuccess | ||||||
|               ? t('shared.translate.succeed', { |               ? typeof data?.error === 'string' | ||||||
|  |                 ? t(`shared.translate.${data.error}`) | ||||||
|  |                 : t('shared.translate.succeed', { | ||||||
|                     provider: data?.provider, |                     provider: data?.provider, | ||||||
|                     source: data?.sourceLanguage |                     source: data?.sourceLanguage | ||||||
|                   }) |                   }) | ||||||
|               : t('shared.translate.default')} |               : t('shared.translate.default')} | ||||||
|  |           </Text> | ||||||
|  |           <Text> | ||||||
|             {__DEV__ |             {__DEV__ | ||||||
|               ? ` Source: ${status.language}; Target: ${settingsLanguage}` |               ? ` Source: ${status.language}; Target: ${ | ||||||
|  |                   Localization.locale || settingsLanguage || 'en' | ||||||
|  |                 }` | ||||||
|               : undefined} |               : undefined} | ||||||
|           </Text> |           </Text> | ||||||
|           {isLoading ? ( |           {isLoading ? ( | ||||||
| @@ -105,7 +114,7 @@ const TimelineTranslate = React.memo( | |||||||
|             /> |             /> | ||||||
|           ) : null} |           ) : null} | ||||||
|         </Pressable> |         </Pressable> | ||||||
|         {data |         {data && data.error === undefined | ||||||
|           ? data.text.map((d, i) => ( |           ? data.text.map((d, i) => ( | ||||||
|               <ParseHTML |               <ParseHTML | ||||||
|                 key={i} |                 key={i} | ||||||
|   | |||||||
| @@ -81,7 +81,9 @@ | |||||||
|     "translate": { |     "translate": { | ||||||
|       "default": "Translate", |       "default": "Translate", | ||||||
|       "succeed": "Translated by {{provider}} from {{source}}", |       "succeed": "Translated by {{provider}} from {{source}}", | ||||||
|       "failed": "Translation failed" |       "failed": "Translation failed", | ||||||
|  |       "source_not_supported": "toot's language is not supported", | ||||||
|  |       "target_not_supported": "The target language is not supported" | ||||||
|     }, |     }, | ||||||
|     "header": { |     "header": { | ||||||
|       "shared": { |       "shared": { | ||||||
|   | |||||||
| @@ -3,11 +3,19 @@ import haptics from '@components/haptics' | |||||||
| import { AxiosError } from 'axios' | import { AxiosError } from 'axios' | ||||||
| import { QueryFunctionContext, useQuery, UseQueryOptions } from 'react-query' | import { QueryFunctionContext, useQuery, UseQueryOptions } from 'react-query' | ||||||
|  |  | ||||||
| type Translations = { | type Translations = | ||||||
|  |   | { | ||||||
|  |       error: undefined | ||||||
|       provider: string |       provider: string | ||||||
|       sourceLanguage: string |       sourceLanguage: string | ||||||
|       text: string[] |       text: string[] | ||||||
| } |     } | ||||||
|  |   | { | ||||||
|  |       error: string | ||||||
|  |       provider: undefined | ||||||
|  |       sourceLanguage: undefined | ||||||
|  |       text: undefined | ||||||
|  |     } | ||||||
|  |  | ||||||
| export type QueryKeyTranslate = [ | export type QueryKeyTranslate = [ | ||||||
|   'Translate', |   'Translate', | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user