У меня есть эта коллекция, скажем, «Местоположение», как показано ниже:
public class Location : BaseDocument
{
public string Name {get;set;}
}
, прежде чем я использовал внешние json файлы для класса для самостоятельного перевода меток и данных, и я могу добавить столько языков как я хочу, и это работает как шарм.
, но затем я столкнулся с проблемой, когда пользователь пытается найти Location
в арабском c, например, учитывая, что сохраненное имя находится в Engli sh и у меня был тупик подхода!
Первый подход
я подумал о добавлении двумерного массива для каждой переводимой коллекции, которая содержит пару языков и локализована таким образом, я могу отображать и искать документы на обоих языках
, поэтому мой класс будет выглядеть так
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" : "مستودع"
}
так, что подход лучше с точки зрения производительности? Мне нравится второй, потому что сначала я получаю возможность отделить перевод от внешнего источника и минимизировать сложность документа. Мне по-прежнему нужен совет от вас, «какой подход лучше с точки зрения производительности»?
Спасибо