簡體   English   中英

使用 React Native 和 django-modeltranslation 更改語言

[英]Changing language with React Native and django-modeltranslation

我想向移動應用程序添加選項以更改語言。 我在后端使用 django 並在移動設備上使用 RN。 所以我安裝了django-modeltranslation並添加了我想要翻譯的 model。 在移動設備上,我顯示可用的語言。 當用戶點擊特定語言時,我想獲得翻譯數據。 我有很大的問題來創建邏輯如何做到這一點。 我不是在問代碼,只是一些提示和想法

編輯:例如:我添加了從django-modeltranslation到我的 model 的翻譯(即帶有字段標題、描述等的 GameTask)。 在我的settings.py ,我聲明了語言('en'、'de'、'uk'等)並在數據庫中添加了翻譯(對於 GameTask 的每個字段,我添加了 title(en)、title(de) 等)。 當我更改settings.py中的語言時,移動設備上的值也會發生變化(因此按預期工作)。 所以我沒有在應用程序文件中存儲任何翻譯文本,只是在數據庫中(static 錯誤和信息除外)。 現在我只想使用所選語言從手機發送信息並在后端激活該語言以返回特定語言的內容

如果你想完全讓你的應用程序多語言,你需要兩件事。

  • 您的應用程序的翻譯系統
  • api 的翻譯系統。

首先,使用預構建的上下文 api 或創建自己的上下文以支持在應用程序內更改語言。 像這樣的東西: https://medium.com/@ally_20818/multi-language-text-with-react-native-react-context-b76d5677346d

當用戶更改語言時,將語言名稱或密鑰存儲在 async-storage 或其他數據庫中。

根據選擇的語言更改 react-native 側的文本。

當您撥打 api 電話時,請同時發送所選語言。 在 api 端獲取所選語言,並根據語言返回適當的文本。

更新:

由於您沒有在 react-native 端存儲任何文本,因此您只需添加一個選擇器( react-native-picker/ picker 是本地選擇器)並將所選語言鍵(在您的情況下為 en、de、uk 等)存儲在像react-native-async-storage這樣的數據庫。 當您使用 react-native 發出 api 請求時,請包含額外的 header 或發布包含所選語言密鑰的數據。 您可以在 django 后端獲取並使用該密鑰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM