食人鱼CMS本地化

时间:2018-04-05 09:59:48

标签: asp.net-core localization content-management-system piranha-cms

如何本地化优秀的Piranha Headless CMS解决方案? 我希望能够允许用户选择语言并根据该选择显示内容。我只是想显示两组页面,没有全球化。

亲切的注册,

卡雷尔

1 个答案:

答案 0 :(得分:1)

由于此时CMS本身并不是多语言,因此您最好的选择是添加两个不同的网站,每种语言一个。在您网站的主机名字段中,您可以将其设置为:

mydomain.com      // For the default site
mydomain.com/lang // For the translated site

这样做的缺点当然是必须管理两个不同的站点地图。

另一种选择是创建TranslationRegion,您可以在其中翻译页面的所有基本字段,例如:

public class PageLocalization {
    [Field]
    public StringField Title { get; set; }
    [Field]
    public StringField NavigationTitle { get; set; }
    [Field]
    public StringField Keywords { get; set; }
    [Field]
    public TextField Description { get; set; }
}

您还可以为HTML内容创建可重用的区域,如下所示:

public class HtmlLocalization {
    [Field]
    public HtmlField Body { get; set; }
    [Field]
    public HtmlField TranslatedBody { get; set; }
}

然后在构建页面类型时使用这些。

[PageType(Title = "My Page")]
public class MyPage : Page<MyPage> {
    [Region]
    public PageLocalization PageLocalization { get; set; }
    [Region]
    public HtmlLocalization MainContent { get; set; }
}

使用此解决方案,您只需要一个站点和一个站点地图,但视图必须处理在根据所选语言呈现站点时要使用的字段。

正如我之前提到的,Piranha CMS中没有内置功能可用于多语言支持,但未来可能会添加它。 GitHub上有一个功能请求,但在不久的将来,它没有计划用于开发。

此致