asp.net-core - Piranha CMS 本地化

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

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

敬请谅解,

卡雷尔

最佳答案

由于 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; }
}

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

就像我之前提到的,Piranha CMS 中确实没有内置的多语言支持功能,但将来可能会添加。 GitHub 上有一个针对它的功能请求,但近期没有开发计划。

问候

关于asp.net-core - Piranha CMS 本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49669479/

相关文章:

c# - Entity Framework : update user fails

windows - MFC 本地化不适用于 Windows 7 的 MUI 安装

xcode - 复制 Xcode 中的所有字符串?

localization - IOs7 多 Storyboard本地化问题

content-management-system - 有没有任何cms/社交网络平台可以促进多个社区的创建?

php - 在 CMS 中插入表单 - <选项> 和页面

javascript - 如果没有编程经验,我应该使用哪种 CMS 来管理小型 Internet 站点?

asp.net-core - 如何正确重定向到 asp.net core 中的页面

.net - ASP.NET 5 Web API 支持社交登录、个人帐户、帐户管理、授权屏幕和 ASP.NET 身份。它存在吗?

c# - 如何从 ASP.NET Core 中的密码重置 token 中检索用户?