当用户选择另一种语言时,如何处理下拉数据和获取的英语数据?

问题描述 投票:0回答:1

我正在使用i18n-js向我的应用程序中添加一种以上的语言。我关心的是如何处理静态数据(例如货币,经验水平,...等),这些数据是用英语编写的,当用户从下拉列表中选择一项时,该下拉列表将使用该静态数据,并应以英语格式将其发送到后端,如果用户选择了另一种语言,如何处理以英语格式提取的数据。

定期将相同类型的数据以不同的语言保存到后端是否正常。

我已经尝试将所有静态数据添加到我的语言文件中,并且当用户选择特定语言时,它将从语言文件中获取对应的数据。

这里是来自语言文件的代码示例:

英文文件

export default en = {
     educationDropDownList: [
        {
            label: `Secondary School`,
            value: `Secondary School`
        },
        {
            label: `Deploma`,
            value: `Deploma`
        },
        {
            label: `Bachelor's degree`,
            value: `Bachelor's degree`
        },
        {
            label: `Master's degree`,
            value: `Master's degree`
        },
        {
            label: `Doctoral degree`,
            value: `Doctoral degree`,
        }

    ]
}

阿拉伯文文件

export default ar = {
    educationDropDownList: [
        {
            label: `مدرسة ثانوية`,
            value: `مدرسة ثانوية`
        },
        {
            label: `شهادة دبلوم`,
            value: `شهادة دبلوم`
        },
        {
            label: `درجة البكالوريوس`,
            value: `درجة البكالوريوس`
        },
        {
            label: `درجة الماجيستير`,
            value: `درجة الماجيستير`
        },
        {
            label: `درجة الدكتوراه`,
            value: `درجة الدكتوراه`,
        }

    ]
}

我在这里有两种情况。首先,如何处理将所选数据发送到具有不同语言格式的后端,以及如何接收所选数据并以正确的语言格式查看它。

reactjs react-native localization internationalization i18next
1个回答
1
投票

使用不同的语言会使事情变得混乱。坚持与您一起发展。换句话说,i18n从链接到键的语言文件中提取语言。例如(https://i18njs.com/#language_files):

{
  "values":{
    "Yes": "はい",
    "No": "いいえ",
    "Ok": "Ok",
    "Cancel": "キャンセル"
  }
}

无论软件使用哪种语言,都将在键上运行并且忽略值。在浏览器上显示值时,下拉列表会显示键包含的任何值,例如:如果语言设置为日语,则i18n(“ Yes”)会给您带来はい。

一般动态地填充您的阿拉伯文和英文馆藏,例如:

export default genericdropdown = {
    educationDropDownList: [
        {
            label: i18n("Yes"),
            value: "Yes"
        },
        {
            label: i18n("No"),
            value: "No"
        }, ...

也许我误会了你,但希望对你有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.