C# 使用Umbraco实现多语言功能的几个问题?

C# 使用Umbraco实现多语言功能的几个问题?,c#,asp.net,web,umbraco,C#,Asp.net,Web,Umbraco,我正在努力实现Umbraco CMS 7.5版中的多语言功能,目前我看到了两种可能的解决方案: 1-仅使用一个根路径 我认为作为这个解决方案的补充,最好的软件包是“Vorto”,我所要做的就是创建新的数据类型,扩展Vorto数据类型,并且我可以直接开始编辑文档类型上的文本 2-使用多个根路径 其思想是为每种语言复制主根路径 ->我在网上学习了很多教程,但它们都与以前版本的Umbraco有关,我发现的解决方案似乎与当前版本不兼容。。。 复制根路径并将语言与根文件夹关联后,下一步是什么 我还有几个问

我正在努力实现Umbraco CMS 7.5版中的多语言功能,目前我看到了两种可能的解决方案:

1-仅使用一个根路径

我认为作为这个解决方案的补充,最好的软件包是“Vorto”,我所要做的就是创建新的数据类型,扩展Vorto数据类型,并且我可以直接开始编辑文档类型上的文本

2-使用多个根路径

其思想是为每种语言复制主根路径

->我在网上学习了很多教程,但它们都与以前版本的Umbraco有关,我发现的解决方案似乎与当前版本不兼容。。。 复制根路径并将语言与根文件夹关联后,下一步是什么

我还有几个问题:

  • 你有比上面2个更好的解决方案吗
  • 翁布拉科如何了解客户语言?它是否采用HTTP请求中标题“Accept language”中的第一种语言
  • 如何扩展默认路由以添加语言作为第一部分,例如:

  • 提前谢谢你

    这两种方案各有优缺点,在翁布拉科社区/解决方案中都广泛使用。我更喜欢第二种解决方案,尤其是在较大的网站上,它使您能够限制对不同语言编辑器的访问,例如,并不是每个网站都有1-1内容结构的要求

    这里有一个关于这个主题的翁布拉科电视插曲:

    总之:

    • 您需要创建根语言节点的副本
    • 然后为它设置文化
    • 使用字典项翻译每种语言的静态内容
    • 创建简单语言选择器,选择相关站点或仅重定向到所选语言根目录
    关于你的问题:

    广告1.我没有:)

    Ad.2.它正在选择在节点上设置的区域性,因此可能会强制执行。除此之外,它使用标准的.NET区域性检测,所以是的,它使用“accept language”头

    Ad.3.有一个键“umbrachidetoplevelnodefrompath”,可用于在url路径中包含顶级根。阅读更多:


    尽管如此,如果您更喜欢使用选项1,还有一篇关于它的很棒的文章,其中还有示例代码:。我现在也要玩它了!:)

    这两种方案各有优缺点,在翁布拉科社区/解决方案中都广泛使用。我更喜欢第二种解决方案,尤其是在较大的网站上,它使您能够限制对不同语言编辑器的访问,例如,并不是每个网站都有1-1内容结构的要求

    这里有一个关于这个主题的翁布拉科电视插曲:

    总之:

    • 您需要创建根语言节点的副本
    • 然后为它设置文化
    • 使用字典项翻译每种语言的静态内容
    • 创建简单语言选择器,选择相关站点或仅重定向到所选语言根目录
    关于你的问题:

    广告1.我没有:)

    Ad.2.它正在选择在节点上设置的区域性,因此可能会强制执行。除此之外,它使用标准的.NET区域性检测,所以是的,它使用“accept language”头

    Ad.3.有一个键“umbrachidetoplevelnodefrompath”,可用于在url路径中包含顶级根。阅读更多:


    尽管如此,如果您更喜欢使用选项1,还有一篇关于它的很棒的文章,其中还有示例代码:。我现在也要玩它了!:)

    好吧,选项2最简单的方法是制作一个树状结构,如下所示:

    • 语言a
    • 语言B
    如果需要domain.ext/language/URL,请在根节点上设置domain.ext,并在每个语言节点上设置语言。您还可以在每个语言节点上设置域和语言,以获取(例如)一个节点的domainname.com,另一个节点的domainname.net


    这种方法最近不应该改变。

    好吧,选项2最简单的方法是创建如下树结构:

    • 语言a
    • 语言B
    如果需要domain.ext/language/URL,请在根节点上设置domain.ext,并在每个语言节点上设置语言。您还可以在每个语言节点上设置域和语言,以获取(例如)一个节点的domainname.com,另一个节点的domainname.net


    这种方法最近不应该改变。

    关于你的第一点,还有另一种方法,但不是暂时的。Umbraco 8(将于2017年第1季度发布)将支持页面变体的概念,这意味着您可以拥有一棵树,然后为每种不同的语言创建一个变体,从而消除了对Vorto之类内容的需求


    不过现在还为时尚早,所以我们将不得不等待,看看该功能的工作情况如何

    关于你的第一点,还有另一条路要走,但不是暂时的。Umbraco 8(将于2017年第1季度发布)将支持页面变体的概念,这意味着您可以拥有一棵树,然后为每种不同的语言创建一个变体,从而消除了对Vorto之类内容的需求

    不过现在还为时尚早,所以我们将不得不等待,看看该功能的工作情况如何

    对于“简单语言选择器”,我选择了“语言工具”包,非常有用。对于“简单语言选择器”,我选择了“语言工具”包,非常有用。