Редактор правил многоязычных кодовых эффектов
Как отобразить редактор правил CodeEffects на другом языке (скажем, на арабском).
Я использую пользовательский класс в качестве исходного объекта для модели правил и передаю его в viewbag в представление, там я отображаю редактор правил, используя это. Я не назвал ни одного исходного XML-документа или справки XML-документа. редактор правил выбирает английскую версию по умолчанию.
@{
Html.CodeEffects().RuleEditor()
.Id("ruleEditor")
.SaveAction("SaveGroup", "Campaign")
.DeleteAction("DeleteGroup", "Campaign")
.LoadAction("LoadGroup", "Campaign")
.Mode(RuleType.Evaluation)
.ToolBarRules(ViewBag.ToolBarRules)
.Rule(ViewBag.Rule)
.Render();
}
До сих пор в официальной документации CodeEffects я сталкивался с этой справкой XML и многоязычной поддержкой в Code Effects, но я не мог ее правильно понять
Как я могу загрузить пользовательский файл справки XML и исходный файл XML со страницы cshtml, используя синтаксис бритвы
Любая помощь будет оценена.
1 ответ
Как правило, вы просто создаете свою собственную версию XML справки на своем языке и передаете ее редактору на сервере с помощью свойства редактора HelpXmlFile во время инициализации редактора.
Вам также необходимо иметь собственную версию исходного XML со всеми отображаемыми именами, переведенными на ваш язык, если вы хотите, чтобы ваши поля, методы в правилах и действия правил отображались на вашем языке на клиенте. Вы можете передать этот исходный xml в редактор, используя его свойство SourceXmlFile.
Вызовите метод editor.GetHelpXml(), чтобы получить версию XML справки для перевода по умолчанию; вызовите editor.GetSourceXML() для получения исходного XML-кода вашего исходного объекта для перевода (конечно, перед вызовом этого метода передайте исходный класс редактору).
РЕДАКТИРОВАТЬ:
Как я уже говорил ранее, вам нужно использовать собственную версию XML справки, которая устанавливает языковые метки для всех статических элементов пользовательского интерфейса, таких как кнопки, строка справки и т. Д. Для этого создайте экземпляр по умолчанию класса RuleEditor и вызовите его метод GetHelpXml (). Это дает вам строку стандартного английского xml документа. Переведите все значения его узлов на свой язык, сохраните их и передайте этот новый xml в редактор, используя одну из перегрузок его метода расширения Help(). Подробности можно найти здесь.
Я предполагаю, что вам также нужно, чтобы все свойства, методы внутри правила и действия правил отображались на вашем языке. У вас есть два варианта здесь:
Если в вашем проекте используется только один язык, просто используйте FieldAttribute, MethodAttribute и / или ActionAttribute, чтобы установить их свойства DisplayName в значения на вашем языке. Подробности здесь, здесь и здесь.
Если в вашем проекте используется несколько языков, создайте экземпляр класса RuleEditor, задайте для его свойства SourceType тип вашего исходного класса и вызовите его метод GetSourceXml(), который возвращает строку документа XML, представляющую ваш исходный класс. Создайте копию этого документа для каждого языка, используемого вашим проектом, переведите все значения атрибутов "displayName" на соответствующий язык, сохраните эти файлы и передайте нужный метод методу RuleModel. Create () при запуске редактора в сервер. Подробности здесь.