1

如何以不同的语言(比如说阿拉伯语)呈现 CodeEffects 规则编辑器。

我使用自定义类作为规则模型的源对象,并将其在视图包中传递给视图,我正在使用它渲染规则编辑器。我没有明确调用任何源 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,但我无法正确理解

如何使用剃刀语法从 cshtml 页面加载自定义帮助 xml 和源 xml 文件

任何帮助,将不胜感激。

4

1 回答 1

0

通常,您只需使用您的语言创建自己的帮助 XML 版本,然后在编辑器初始化期间使用编辑器的 HelpXmlFile 属性将其传递给服务器上的编辑器。

如果您希望您的字段、规则内方法和规则操作在客户端上以您的语言显示,您还需要拥有您自己的源 XML 版本,其中所有显示名称都以您的语言翻译。您可以使用其 SourceXmlFile 属性将该源 xml 传递给编辑器。

调用 editor.GetHelpXml() 方法获取待翻译帮助 XML 的默认版本;调用 editor.GetSourceXML() 以获取要翻译的源对象的 Source XML(当然,在调用该方法之前先将源类传递给编辑器。)

编辑:

正如我之前所说,您需要使用您自己的自定义版本的帮助 XML,它设置所有静态 UI 元素(如按钮、帮助字符串等)的语言特定标签。为此,创建 RuleEditor 类的默认实例并调用它的 GetHelpXml() 方法。这为您提供了默认英文 xml 文档的字符串。将其所有节点值翻译成您的语言,保存并使用其 Help() 扩展方法的重载之一将新的 xml 传递给编辑器。详细信息可以在这里找到。

我假设您还需要以您的语言显示所有属性、规则内方法和规则操作。您在这里有两个选择:

  1. 如果您的项目仅使用一种语言,则只需使用 FieldAttribute、MethodAttribute 和/或 ActionAttribute 将它们的 DisplayName 属性设置为您的语言中的值。详细信息在这里这里这里

  2. 如果您的项目使用多种语言,则创建 RuleEditor 类的实例,将其 SourceType 属性设置为源类的类型并调用其 GetSourceXml() 方法,该方法返回代表您的源类的 XML 文档字符串。为您的项目使用的每种语言创建该文档的副本,将“displayName”属性的所有值翻译为对应语言,保存这些文件并在您启动编辑器时将所需的文件传递给 RuleModel.Create() 方法服务器。详情在这里

于 2018-03-04T13:45:42.013 回答