Add multilanguage support

This commit is contained in:
Maarten 2024-08-12 16:48:41 +02:00
parent f8cbcb2908
commit fc53bb14a0
15 changed files with 489 additions and 92 deletions

View file

@ -3,6 +3,7 @@ import { SafeAreaView, ScrollView, StyleSheet, Switch, TouchableOpacity, } from
import { useNavigation } from '@react-navigation/native';
import { DateTimePickerAndroid, DateTimePickerEvent } from '@react-native-community/datetimepicker';
import { useSelector } from 'react-redux';
import { useTranslation } from 'react-i18next';
import { Colors } from '@/lib/constants/Colors';
import { useColorScheme } from '@/lib/hooks/useColorScheme';
@ -19,6 +20,7 @@ export default function CategoryScreen() {
const colorScheme = useColorScheme() ?? 'light';
const navigation = useNavigation();
const { token } = useToken();
const { t } = useTranslation();
const session = useSelector( (state: any) => state.data.session );
const [ sessionSet, setSessionSet ] = useState( false );
@ -34,7 +36,7 @@ export default function CategoryScreen() {
// Set page title
useEffect( () => {
// Set page title
navigation.setOptions( { title: ( 'Notificaties' ) } );
navigation.setOptions( { title: ( t( "notifications" ) ) } );
}, [] );
// Set session data
@ -80,8 +82,8 @@ export default function CategoryScreen() {
onChange,
mode: 'time',
is24Hour: true,
positiveButton: { label: 'Kies' },
negativeButton: { label: 'Sluiten' },
positiveButton: { label: t( "choose" ) },
negativeButton: { label: t( "close" ) },
} );
}
}
@ -97,14 +99,14 @@ export default function CategoryScreen() {
if (currentEdit === 'dayBefore') {
const minDate = new Date( `1970-01-01T16:00` );
if (minDate > selectedDate) {
Message.error( 'Meldingen voor 16:00 worden niet ondersteund' );
Message.error( t( "notifications-before-16-00" ) );
return;
}
} else {
const minDate = new Date( `1970-01-01T09:00` );
if (minDate < selectedDate) {
Message.error( 'Meldingen na 09:00 worden niet ondersteund' );
Message.error( t( "notifications-after-09-00" ) );
return;
}
@ -141,7 +143,7 @@ export default function CategoryScreen() {
if (response.success) {
store.dispatch( setSession( response.session ) );
} else {
Message.error( 'Er ging iets mis. Probeer het later opnieuw.' );
Message.error( t( "something-went-wrong" ) );
}
} )
}
@ -159,19 +161,19 @@ export default function CategoryScreen() {
style={styles.listSwitch}
onValueChange={() => toggleDate( 'dayBefore' )}
/>
<ThemedText type="defaultSemiBold">Dag van te voren</ThemedText>
<ThemedText type="defaultSemiBold">{t( "day-before" )}</ThemedText>
</ThemedView>
{isDayBeforeEnabled ?
(
<TouchableOpacity style={styles.listEdit} onPress={() => selectTime( 'dayBefore' )}>
<ThemedText style={styles.listEditText}>Om {dayBefore}</ThemedText>
<ThemedText style={styles.listEditText}>{t( "at" )} {dayBefore}</ThemedText>
<ThemedIcon size={18} name="chevron-forward" style={styles.listEditIcon}/>
</TouchableOpacity>
) :
(
<ThemedText style={styles.listEdit}>
<ThemedText style={styles.listEditText}>Uit</ThemedText>
<ThemedText style={styles.listEditText}>{t( "off" )}</ThemedText>
</ThemedText>
)
}
@ -188,19 +190,19 @@ export default function CategoryScreen() {
style={styles.listSwitch}
onValueChange={() => toggleDate( 'sameDay' )}
/>
<ThemedText type="defaultSemiBold">Op de ophaaldag</ThemedText>
<ThemedText type="defaultSemiBold">{t( "same-day" )}</ThemedText>
</ThemedView>
{isSameDayEnabled ?
(
<TouchableOpacity style={styles.listEdit} onPress={() => selectTime( 'sameDay' )}>
<ThemedText style={styles.listEditText}>Om {sameDay}</ThemedText>
<ThemedText style={styles.listEditText}>{t( "at" )} {sameDay}</ThemedText>
<ThemedIcon size={18} name="chevron-forward" style={styles.listEditIcon}/>
</TouchableOpacity>
) :
(
<ThemedView style={styles.listEdit}>
<ThemedText style={styles.listEditText}>Uit</ThemedText>
<ThemedText style={styles.listEditText}>{t( "off" )}</ThemedText>
</ThemedView>
)
}