这应该能修复问题1
This commit is contained in:
xmflsct 2022-11-04 23:38:29 +01:00
parent 4b1d628c5e
commit 0d9992107c
3 changed files with 21 additions and 24 deletions

View File

@ -1,4 +1,5 @@
import { ActionSheetProvider } from '@expo/react-native-action-sheet' import { ActionSheetProvider } from '@expo/react-native-action-sheet'
import getLanguage from '@helpers/getLanguage'
import queryClient from '@helpers/queryClient' import queryClient from '@helpers/queryClient'
import i18n from '@root/i18n/i18n' import i18n from '@root/i18n/i18n'
import Screens from '@root/Screens' import Screens from '@root/Screens'
@ -12,7 +13,7 @@ import timezone from '@root/startup/timezone'
import { persistor, store } from '@root/store' import { persistor, store } from '@root/store'
import * as Sentry from '@sentry/react-native' import * as Sentry from '@sentry/react-native'
import AccessibilityManager from '@utils/accessibility/AccessibilityManager' import AccessibilityManager from '@utils/accessibility/AccessibilityManager'
import { changeLanguage, getSettingsLanguage } from '@utils/slices/settingsSlice' import { changeLanguage } from '@utils/slices/settingsSlice'
import ThemeManager from '@utils/styles/ThemeManager' import ThemeManager from '@utils/styles/ThemeManager'
import * as Localization from 'expo-localization' import * as Localization from 'expo-localization'
import * as SplashScreen from 'expo-splash-screen' import * as SplashScreen from 'expo-splash-screen'
@ -83,10 +84,7 @@ const App: React.FC = () => {
if (bootstrapped) { if (bootstrapped) {
log('log', 'App', 'loading actual app :)') log('log', 'App', 'loading actual app :)')
log('log', 'App', `Locale: ${Localization.locale}`) log('log', 'App', `Locale: ${Localization.locale}`)
const language = const language = getLanguage()
Platform.OS === 'ios'
? Localization.locale
: getSettingsLanguage(store.getState())
if (!language) { if (!language) {
if (Platform.OS !== 'ios') { if (Platform.OS !== 'ios') {
store.dispatch(changeLanguage('en')) store.dispatch(changeLanguage('en'))

View File

@ -1,8 +1,8 @@
import analytics from '@components/analytics' import analytics from '@components/analytics'
import { ParseHTML } from '@components/Parse' import { ParseHTML } from '@components/Parse'
import CustomText from '@components/Text' import CustomText from '@components/Text'
import getLanguage from '@helpers/getLanguage'
import { useTranslateQuery } from '@utils/queryHooks/translate' import { useTranslateQuery } from '@utils/queryHooks/translate'
import { getSettingsLanguage } from '@utils/slices/settingsSlice'
import { StyleConstants } from '@utils/styles/constants' import { StyleConstants } from '@utils/styles/constants'
import { useTheme } from '@utils/styles/ThemeManager' import { useTheme } from '@utils/styles/ThemeManager'
import * as Localization from 'expo-localization' import * as Localization from 'expo-localization'
@ -11,14 +11,10 @@ import { useTranslation } from 'react-i18next'
import { Pressable } from 'react-native' import { Pressable } from 'react-native'
import { Circle } from 'react-native-animated-spinkit' import { Circle } from 'react-native-animated-spinkit'
import detectLanguage from 'react-native-language-detection' import detectLanguage from 'react-native-language-detection'
import { useSelector } from 'react-redux'
export interface Props { export interface Props {
highlighted: boolean highlighted: boolean
status: Pick< status: Pick<Mastodon.Status, 'language' | 'spoiler_text' | 'content' | 'emojis'>
Mastodon.Status,
'language' | 'spoiler_text' | 'content' | 'emojis'
>
} }
const TimelineTranslate = React.memo( const TimelineTranslate = React.memo(
@ -30,9 +26,7 @@ const TimelineTranslate = React.memo(
const { t } = useTranslation('componentTimeline') const { t } = useTranslation('componentTimeline')
const { colors } = useTheme() const { colors } = useTheme()
const text = status.spoiler_text const text = status.spoiler_text ? [status.spoiler_text, status.content] : [status.content]
? [status.spoiler_text, 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) {
@ -56,7 +50,7 @@ const TimelineTranslate = React.memo(
detect() detect()
}, []) }, [])
const settingsLanguage = useSelector(getSettingsLanguage) const settingsLanguage = getLanguage()
const targetLanguage = settingsLanguage?.startsWith('en') const targetLanguage = settingsLanguage?.startsWith('en')
? Localization.locale || settingsLanguage || 'en' ? Localization.locale || settingsLanguage || 'en'
: settingsLanguage || Localization.locale || 'en' : settingsLanguage || Localization.locale || 'en'
@ -107,12 +101,7 @@ const TimelineTranslate = React.memo(
<CustomText <CustomText
fontStyle='M' fontStyle='M'
style={{ style={{
color: color: isLoading || isSuccess ? colors.secondary : isError ? colors.red : colors.blue
isLoading || isSuccess
? colors.secondary
: isError
? colors.red
: colors.blue
}} }}
> >
{isError {isError
@ -127,9 +116,7 @@ const TimelineTranslate = React.memo(
: t('shared.translate.default')} : t('shared.translate.default')}
</CustomText> </CustomText>
<CustomText> <CustomText>
{__DEV__ {__DEV__ ? ` Source: ${detectedLanguage}; Target: ${targetLanguage}` : undefined}
? ` Source: ${detectedLanguage}; Target: ${targetLanguage}`
: undefined}
</CustomText> </CustomText>
{isLoading ? ( {isLoading ? (
<Circle <Circle

View File

@ -0,0 +1,12 @@
import { store } from '@root/store'
import { getSettingsLanguage } from '@utils/slices/settingsSlice'
import * as Localization from 'expo-localization'
import { Platform } from "react-native"
const getLanguage = (): string => {
return Platform.OS === 'ios'
? Localization.locale
: getSettingsLanguage(store.getState())
}
export default getLanguage