2

我试图创建一个用于更改语言的选择器。但是即使用户选择了不同的语言,有些文本仍然没有被翻译。我试过了

import * as RNLocalize from 'react-native-localize';
import I18n from 'i18n-js';
import memoize from 'lodash.memoize'; 

import en from './en';
import am from './am';
import or from './or';
import tg from './tg';


const locales = RNLocalize.getLocales();
if (Array.isArray(locales)) {
  I18n.locale = locales[0].languageTag;
}

I18n.translations = {
  default: en,
  'en-US': en,
  en,
  am,
  or,
  tg,

};

I18n.fallbacks = true;
export default I18n;

我用来切换语言的代码是

onChangeLanguage(languageSelected){
  this.setState({
    languageSelected
  })
  I18n.locale = languageSelected 
}

反应原生选择器是:

<Picker
  mode="dropdown"
  iosHeader={''} 
  style={{ width: width,height:80,}}
  selectedValue={this.props.language}
  onValueChange={this.props.onChangeLanguage.bind(this)}
>
  {listLanguage.map((languageItem, i) => {
      return <Picker.Item key={i} value={languageItem.key} label= {languageItem.label} />
  })}
</Picker>

有没有人告诉我如何在语言更改(选择)时重新启动应用程序?谢谢

4

1 回答 1

0

语言更改后无需重新启动您的应用程序。在 React 中,如果应用程序依赖于 state 或 props 的变化,它会重新渲染。你可以在这里查看我的答案:React Native, how to update view after language change

于 2021-01-06T07:09:47.720 回答