Я новичок в системе реагирования, и я пытаюсь получить текущую локаль с устройства пользователя. На данный момент у меня есть 2 версии моего приложения: французская и английская. Он отлично работает, когда я меняю резервный язык, у меня есть две версии приложения. Но мне не удается изменить язык прямо с устройства.
Мы можем изменить вручную, но если мы установили французский язык на устройстве, мы не сможем получить французский язык напрямую.
import i18next from 'i18next';
import {initReactI18next} from 'react-i18next';
const languageDetector = {
type: 'languageDetector',
async: true,
detect: cb => cb('en'),
init: () => {},
cacheUserLanguage: () => {},
};
i18next
.use(languageDetector)
.use(initReactI18next)
.init({
fallbackLng: 'en',
debug: true,
resources: {
en: {
translation: {
hello: 'Hello world',
change: 'Change language',
},
},
sv: {
translation: {
hello: 'Hallo!',
change: 'Goedemorgen',
},
},
},
});
export default i18next;
App.js
import React from 'react';
import { Text, View, TouchableOpacity } from 'react-native';
import { useTranslation } from 'react-i18next';
import './src/Traslations'
export default function App() {
const { t, i18n } = useTranslation();
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text style={{ fontSize: 20, marginBottom: 20 }}>{t('hello')}</Text>
<Text style={{ fontSize: 20, marginBottom: 20 }}>{t('change')}</Text>
<TouchableOpacity style={{backgroundColor: 'pink'}} onPress={() => i18n.changeLanguage(i18n.language === 'nl' ? 'en' : 'nl')}>
<Text>{t('change')}</Text>
</TouchableOpacity>
</View>
);
}
device-lang
... и автоматически обновлялоapp-lang
... это вы имеете в виду? - person Hend El-Sahli   schedule 31.05.2021I18n/index.js
- person Hend El-Sahli   schedule 31.05.2021i18n
код, в котором вы обнаруживаете изменения языка и устанавливаете свойfallback
lang ... - person Hend El-Sahli   schedule 31.05.2021