多语言代码效果规则编辑器
multilingual codeeffects rule editor
如何以不同的语言(比如阿拉伯语)呈现 CodeEffects 规则编辑器。
我正在使用自定义 class 作为规则模型的源对象,并将其在 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 官方文档中遇到过这个 Help XML and Multilingual Support in Code Effects 但我无法正确理解它
如何使用 razor 语法从 cshtml 页面加载自定义帮助 xml 和源 xml 文件
如有任何帮助,我们将不胜感激。
一般来说,您只需用您的语言创建自己的帮助版本 XML,然后在编辑器初始化期间使用编辑器的 HelpXmlFile 属性 将其传递给服务器上的编辑器。
如果您希望字段、in-rule 方法和规则操作以您的语言显示,您还需要拥有自己版本的源 XML,所有显示名称都翻译成您的语言在客户端上。您可以使用其 SourceXmlFile 属性.
将该源 xml 传递给编辑器
调用editor.GetHelpXml()方法获取待翻译帮助XML的默认版本;调用 editor.GetSourceXML() 获取要翻译的源对象的 Source XML(当然,在调用该方法之前,先将源 class 传递给编辑器。)
编辑:
正如我之前所说,您需要使用您自己的自定义版本的帮助 XML,它设置所有静态 UI 元素的 language-specific 标签,例如按钮、帮助字符串、等等。为此,创建 RuleEditor class 的默认实例并调用其 GetHelpXml() 方法。这为您提供了默认英文 xml 文档的字符串。将其所有节点值翻译成您的语言,保存并使用其 Help() 扩展方法的重载之一将新的 xml 传递给编辑器。详情可见here.
我假设您还需要以您的语言显示所有属性、in-rule 方法和规则操作。您在这里有两个选择:
如果您的项目只使用一种语言,那么只需使用 FieldAttribute、MethodAttribute and/or ActionAttribute 将它们的 DisplayName 属性设置为您的语言的值。详情为 here, here, and here.
如果您的项目使用多种语言,则创建 RuleEditor 的实例 class,将其 SourceType 属性 设置为您的源类型 class 并调用它的 GetSourceXml() 方法 returns XML 文档的一个字符串代表你的来源 class。为项目使用的每种语言创建该文档的副本,将 "displayName" 属性的所有值翻译成相应的语言,保存这些文件并将所需的文件传递给 RuleModel.Create() 方法在服务器上初始化编辑器。详情为 here.
如何以不同的语言(比如阿拉伯语)呈现 CodeEffects 规则编辑器。
我正在使用自定义 class 作为规则模型的源对象,并将其在 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 官方文档中遇到过这个 Help XML and Multilingual Support in Code Effects 但我无法正确理解它
如何使用 razor 语法从 cshtml 页面加载自定义帮助 xml 和源 xml 文件
如有任何帮助,我们将不胜感激。
一般来说,您只需用您的语言创建自己的帮助版本 XML,然后在编辑器初始化期间使用编辑器的 HelpXmlFile 属性 将其传递给服务器上的编辑器。
如果您希望字段、in-rule 方法和规则操作以您的语言显示,您还需要拥有自己版本的源 XML,所有显示名称都翻译成您的语言在客户端上。您可以使用其 SourceXmlFile 属性.
将该源 xml 传递给编辑器调用editor.GetHelpXml()方法获取待翻译帮助XML的默认版本;调用 editor.GetSourceXML() 获取要翻译的源对象的 Source XML(当然,在调用该方法之前,先将源 class 传递给编辑器。)
编辑:
正如我之前所说,您需要使用您自己的自定义版本的帮助 XML,它设置所有静态 UI 元素的 language-specific 标签,例如按钮、帮助字符串、等等。为此,创建 RuleEditor class 的默认实例并调用其 GetHelpXml() 方法。这为您提供了默认英文 xml 文档的字符串。将其所有节点值翻译成您的语言,保存并使用其 Help() 扩展方法的重载之一将新的 xml 传递给编辑器。详情可见here.
我假设您还需要以您的语言显示所有属性、in-rule 方法和规则操作。您在这里有两个选择:
如果您的项目只使用一种语言,那么只需使用 FieldAttribute、MethodAttribute and/or ActionAttribute 将它们的 DisplayName 属性设置为您的语言的值。详情为 here, here, and here.
如果您的项目使用多种语言,则创建 RuleEditor 的实例 class,将其 SourceType 属性 设置为您的源类型 class 并调用它的 GetSourceXml() 方法 returns XML 文档的一个字符串代表你的来源 class。为项目使用的每种语言创建该文档的副本,将 "displayName" 属性的所有值翻译成相应的语言,保存这些文件并将所需的文件传递给 RuleModel.Create() 方法在服务器上初始化编辑器。详情为 here.