diff --git a/react/features/base/conference/reducer.ts b/react/features/base/conference/reducer.ts index 349743be7087..24796d47a777 100644 --- a/react/features/base/conference/reducer.ts +++ b/react/features/base/conference/reducer.ts @@ -147,6 +147,7 @@ export interface IJitsiConference { setSenderVideoConstraint: Function; setStartMutedPolicy: Function; setSubject: Function; + setTranscriptionLanguage: Function; startRecording: Function; startVerification: Function; stopRecording: Function; diff --git a/react/features/settings/actions.web.ts b/react/features/settings/actions.web.ts index 954a521e6c28..061b179715ca 100644 --- a/react/features/settings/actions.web.ts +++ b/react/features/settings/actions.web.ts @@ -9,6 +9,7 @@ import { setStartMutedPolicy, setStartReactionsMuted } from '../base/conference/actions'; +import { getConferenceState } from '../base/conference/functions'; import { hangup } from '../base/connection/actions.web'; import { openDialog } from '../base/dialog/actions'; import i18next from '../base/i18n/i18next'; @@ -128,7 +129,8 @@ function setVideoSettingsVisibility(value: boolean) { */ export function submitMoreTab(newState: any) { return (dispatch: IStore['dispatch'], getState: IStore['getState']) => { - const currentState = getMoreTabProps(getState()); + const state = getState(); + const currentState = getMoreTabProps(state); const showPrejoinPage = newState.showPrejoinPage; @@ -148,6 +150,10 @@ export function submitMoreTab(newState: any) { if (newState.currentLanguage !== currentState.currentLanguage) { i18next.changeLanguage(newState.currentLanguage); + + const { conference } = getConferenceState(state); + + conference?.setTranscriptionLanguage(newState.currentLanguage); } }; } diff --git a/react/features/settings/components/native/LanguageSelectView.tsx b/react/features/settings/components/native/LanguageSelectView.tsx index 3f2bc0cc1a08..75206593ebd2 100644 --- a/react/features/settings/components/native/LanguageSelectView.tsx +++ b/react/features/settings/components/native/LanguageSelectView.tsx @@ -2,7 +2,9 @@ import { useNavigation } from '@react-navigation/native'; import React, { useCallback, useLayoutEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { ScrollView, Text, TouchableHighlight, View, ViewStyle } from 'react-native'; +import { useSelector } from 'react-redux'; +import { IReduxState } from '../../../app/types'; import i18next, { DEFAULT_LANGUAGE, LANGUAGES } from '../../../base/i18n/i18next'; import { IconArrowLeft } from '../../../base/icons/svg'; import JitsiScreen from '../../../base/modal/components/JitsiScreen'; @@ -16,12 +18,14 @@ import styles from './styles'; const LanguageSelectView = ({ isInWelcomePage }: { isInWelcomePage?: boolean; }) => { const { t } = useTranslation(); const navigation = useNavigation(); + const { conference } = useSelector((state: IReduxState) => state['features/base/conference']); const { language: currentLanguage = DEFAULT_LANGUAGE } = i18next; const setLanguage = useCallback(language => () => { i18next.changeLanguage(language); + conference?.setTranscriptionLanguage(language); navigate(screen.settings.main); - }, [ i18next ]); + }, [ conference, i18next ]); const headerLeft = () => (