【发布时间】:2018-04-11 14:51:44
【问题描述】:
我正在开发 2sxc 应用程序,该应用程序将用于多种语言。有很多内容类型字段具有标签(名称)和值(内容)。我知道如何为值(内容)使用多语言选项,而且效果很好。 我想知道是否有任何方法可以翻译 Razor 视图中内容类型字段的标签。可以选择使用 2sxc 后端翻译该名称,但我无法找到如何在我的视图(cshtml 文件)中编写该名称的方法。
【问题讨论】:
标签: dotnetnuke 2sxc
我正在开发 2sxc 应用程序,该应用程序将用于多种语言。有很多内容类型字段具有标签(名称)和值(内容)。我知道如何为值(内容)使用多语言选项,而且效果很好。 我想知道是否有任何方法可以翻译 Razor 视图中内容类型字段的标签。可以选择使用 2sxc 后端翻译该名称,但我无法找到如何在我的视图(cshtml 文件)中编写该名称的方法。
【问题讨论】:
标签: dotnetnuke 2sxc
最好的方法是检查类型。所以基本上每个实体在使用AsEntity(...).Type 时都会为您提供一个类型对象。这具有AttributeDefinition 类型的属性,该属性具有Name(正式名称)和元数据。
对于您想要做的,您是否要选择正确名称的属性,然后在元数据中查找将为您提供翻译名称的项目。这有点复杂,但直截了当。
这里是伪代码:
function getTranslatedName(IEntity entity, string field)
{
var attribs = entity.Attributes.First(a => a.Name == field);
var basicMeta = attrib.Metadata
.FirstOrDefault(d => d.Type.StaticName == "@All");
return basicMeta?.GetBestValue("Name");
}
【讨论】: