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

时间:2016-10-10 11:32:12

标签: c# asp.net web umbraco

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

1-仅使用一个根路径

我认为作为此解决方案的补充的最佳软件包是" Vorto",我所要做的就是创建扩展vorto数据类型的新数据类型,我可以直接在文档类型上开始编辑文本

2-使用多根路径

想法是复制每种语言的主根路径。

- >我在网上关注了很多教程,但它们都与之前版本的Umbraco有关,我发现的解决方案似乎与当前版本无关... 一旦我复制了根路径并将语言与根文件夹相关联,那么下一步是什么?

我还有一些问题:

  1. 你有比2上更好的解决方案吗?
  2. Umbraco如何了解客户语言?它是否采用标题中的第一种语言" Accept-language"在HTTP请求中?
  3. 我如何扩展默认路由以将语言添加为第一部分,例如:http://domainName.ext/language/ ....
  4. 提前谢谢你!

3 个答案:

答案 0 :(得分:3)

两种情况都有其优点和缺点,两者都广泛用于Umbraco社区/解决方案。我更喜欢第二种解决方案,特别是在较大的网站上,它使您能够限制不同语言编辑器的访问权限,而不是每个网站都要求1-1内容结构化。

这里有一个关于这个主题的Umbraco电视剧集:https://umbraco.tv/videos/umbraco-v7/implementor/multi-lingual/creating-a-multi-lingual-site/introduction/

总结:

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

关于你的问题:

Ad.1。我没有:)

Ad.2。它选择了在节点上设置的文化,因此可能会强制它。除此之外,它使用标准的.NET文化检测,所以是 - 它使用" accept-language"头。

Ad.3。有一个键" umbracoHideTopLevelNodeFromPath"这使您可以在URL路径中包含顶级根。阅读更多:https://our.umbraco.org/documentation/reference/config/webconfig/

然而,如果你更喜欢选择1,那么有一篇很棒的文章也会提供示例代码:http://24days.in/umbraco/2015/multilingual-vorto-nested-content/。我现在也会玩它! :)

答案 1 :(得分:1)

嗯,选项2工作的最简单方法是制作这样的树结构:

  • LanguageA
  • LanguageB

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

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

答案 2 :(得分:0)

关于你的第一点,还有另一种方式,但不会有一段时间。 Umbraco 8(2017年第一季度)将支持页面变体的概念,这意味着你可以拥有一个树,然后是每种不同语言的变体,无需像Vorto这样的东西。

现在还处于早期阶段,所以我们必须等待,看看该功能的效果如何!