【问题标题】:Piranha CMS localisationPiranha CMS 本地化
【发布时间】:2018-09-15 02:32:31
【问题描述】:

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

亲切的regsrds,

卡雷尔

【问题讨论】:

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


    【解决方案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 上有一个功能请求,但在不久的将来没有计划开发它。

    问候

    【讨论】:

    • 谢谢@Håkan Edling。我正在尝试不同的路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 2013-11-26
    • 2019-04-23
    • 2015-03-23
    相关资源
    最近更新 更多