我有这个收藏品,让我们说“地点”如下:
public class Location : BaseDocument
{
public string Name {get;set;}
}在我使用每个类的外部json文件来翻译标签和数据之前,它是self的,我可以添加任意多种语言,这就像一种魅力。
但是,当用户试图用阿拉伯语搜索Location时,我遇到了一个问题,例如,给出存储的名称是英文的,而我的方法是死胡同!
优先逼近
我想为每个可翻译的集合添加一个二维数组,其中包含一对语言,它是本地化的文本,这样我就可以用两种语言显示和搜索文档
所以我的课会像这样
public class Location : BaseDocument
{
public string Name {get;set;}
public string[][] LocalizedTags { get;set; }
}因此,我存储的文档如下所示:
{
"_id" : ObjectId('12312332132'),
"Name": "Abandoned Warehouse AX-2",
"LocalizedTags" : [
"EN" : "abandoned",
"EN" : "warehouse",
"AR" : "مهجور",
"AR" : "مستودع",
]
}第二次逼近
还是应该继续使用外部翻译json文件来显示目的,而只是为了查询目的而合并标记?就像这样:
public class Location : BaseDocument
{
public string Name {get; set;}
public string QueryableText {get;set;}
}我储存的文件..。
{
"_id" : ObjectId('12312332132'),
"Name": "Abandoned Warehouse AX-2",
"QueryableText" : "abandoned;warehouse;مهجور;مستودع"
}保存我的本地翻译json文件
location.en.json
{
"abandoned" : "abandoned",
"warehouse" : "warehouse"
}
location.ar.json
{
"abandoned" : "مهجور",
"warehouse" : "مستودع"
}那么,哪种方法在性能上更好呢?我喜欢第二个,因为我首先要把翻译分开,尽量减少文档的复杂性,我仍然需要你们的建议‘哪种方法性能更好?’?
谢谢
发布于 2020-08-11 00:05:11
well..after深挖
它实际上取决于应用程序
如果应用程序是多组织的,那么应用程序应该在数据库中存储翻译(第一种方法)。
2-如果应用程序特定于一个组织,那么app有一种更好的方法将翻译存储在单独的本地文件中(第二种方法)
https://stackoverflow.com/questions/61018341
复制相似问题