Я делаю класс "переводчик", для свойств других объектов (классов).Этот класс будет использоваться во многих местах и действительно может быть решен (жестко запрограммирован) до времени компиляции.Как автоматизировать этот процесс?
Например, это классы сущностей
public class Teacher
{
public int Id {get;set;}
public string Name {get; set;} //Lorem
public List<Student> Students {get; set;}
public Teacher() => Students = new List<Student>();
}
public class Student
{
public int Id {get; set;}
public int Name {get; set;} //Ipsum
public string Cls {get; set;} // will store grade/class/standard the student is in, in this case class 10
}
. Так они использовались, когда не было перевода:
var k = string.Format("Teacher {0} has tought student {1} who is in class {2}.",teacher.Name, teacher.Students[0].Name, teacher.Students[1].Cls)
Пример выходных данных для этого:
Учитель Лорем научил ученика Ипсума, который находится в классе 10.
Созданный класс переводчика выглядит следующим образом:
public class Translator
{
public int Id {get; set;}
public string Teacher_Id {get; set;} // doesn't matter
public string Teacher_Name {get; set;} //teacher or mentor
public string Teacher_Student {get; set;} //student or mentored
public string Student_Id {get; set;} //doesn't matter
public string Student_Name {get; set;} // student or menties
public string Student_Cls {get; set;} // class or standard
}
А код для перевода строки будет выглядеть так:
var k = string.Format("{3} {0} has {4} {5} {1} who is in {6} {2}.",teacher.Name, teacher.Students[0].Name, teacher.Students[1].Cls, translator.Teacher_Name, translator.Teacher_Student, translator.Student_Name, translator.Student_Cls)
В разных регионах / школах существуют разные соглашения для классов и учителей.
- Учитель Лорем обучил ученика Ипсума, который находится в 10-м классе.
- У наставника Лорема есть наставник Ипсум, который находится в стандарте 10.
У меня есть список всех имен переменных, которые будут там, есть класс переводчика (в ICollection или json), единственная проблема заключается в его создании во время компиляции.
Мне бы очень хотелось узнать, возможно ли это таким образом, и есть ли другие лучшие подходы к этому.Мы используем Vue для внешнего интерфейса и даем пользователям возможность создавать / настраивать свой собственный язык.У меня есть альтернативный подход, я просто думаю, что если это возможно, то это будет намного быстрее и чище.