![](/img/trans.png)
[英]React native how to store language in AsyncStorage and change the app language?
[英]Change Language as a user preferance in React Native App
我正在使用React Native創建一個應用程序,並且需要能夠“即時”更改應用程序的語言。 我在這里關注了示例: https : //github.com/appfoundry/react-native-multi-language-sample 。 完成此操作后,我已經成功設置了Redux和所有附帶的庫。
我遇到的問題是,我試圖從警報彈出窗口而不是選擇器中觸發我的操作,而我在實際分派操作時遇到了問題。
如果有人可以告訴我如何使用警報來更改用戶語言,那將是很棒的。
謝謝!
我曾嘗試過一種可能會幫助您的情況。
我使用react-native-i18n
( https://github.com/AlexanderZaytsev/react-native-i18n )並創建了一個包含所有翻譯內容的文件。 像這樣:
I18n.translations = {
en: {
helloWorld: 'Hello World!',
loginButton: 'Login',
}
}
然后,將其導入到我的組件中,該組件包含應翻譯的文本,並像這樣使用它:
<View>
<Text>{I18n.t('helloWorld'}</Text>
</View>
我將用戶語言存儲在數據庫中,並在用戶登錄我的應用程序時得到它並在我的reducer中進行設置。 首先,我從I18n.currentLocale()
方法獲取語言。
在我的組件中,我從減速器獲取用戶語言,並將其設置為I18n config: I18n.locale = this.props.language;
在此組件中,我有一個選擇器,因此用戶可以選擇其語言。 我觸發一個操作來更新我的數據庫以及reducer,並使用componentWillReceiveProps()
生命周期來更新I18n.locale
值
componentWillReceiveProps(nextProps) {
I18n.locale = nextProps.language;
}
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.