我正在使用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: `درجة الدكتوراه`,
}
]
}
我在这里有两种情况。首先,如何处理将所选数据发送到具有不同语言格式的后端,以及如何接收所选数据并以正确的语言格式查看它。
使用不同的语言会使事情变得混乱。坚持与您一起发展。换句话说,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"
}, ...
也许我误会了你,但希望对你有帮助。