【问题标题】:Changing language with React Native and django-modeltranslation使用 React Native 和 django-modeltranslation 更改语言
【发布时间】:2021-03-13 13:07:57
【问题描述】:

我想为移动应用添加选项以更改语言。我在后端使用 django,将 RN 用作移动设备。所以我安装了django-modeltranslation 并添加了我想要翻译的模型。在移动设备上,我显示可用的语言。当用户点击特定语言时,我想获得翻译数据。我有很大的问题来创建逻辑如何做到这一点。我问的不是代码,只是一些提示和想法

编辑: 例如:我将 django-modeltranslation 的翻译添加到我的模型中(即带有字段标题、描述等的 GameTask)。在我的settings.py 中,我声明了语言('en'、'de'、'uk' 等)并在数据库中添加了翻译(对于 GameTask 的每个字段,我添加了 title(en)、title(de) 等)。当我在settings.py 中更改语言时,移动设备上的值也在发生变化(因此按预期工作)。所以我没有在应用程序文件中存储任何翻译文本,只是在数据库中(静态错误和信息除外)。现在我只想使用所选语言从手机发送信息并在后端激活该语言以返回特定语言的内容

【问题讨论】:

    标签: django react-native django-rest-framework


    【解决方案1】:

    如果你想让你的应用程序完全支持多语言,你需要两件事。

    • 您的应用的翻译系统
    • 您的 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 请求时,请包含一个额外的标题或发布包含所选语言键的数据。您可以在 django 后端获取和使用该密钥。

    【讨论】:

      猜你喜欢
      • 2017-12-04
      • 2020-03-23
      • 1970-01-01
      • 2016-03-23
      • 2021-06-25
      • 2020-06-23
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多