Sitecore多语言网站,即使存在英文版本,也默认使用非英语语言

时间:2014-12-31 20:19:21

标签: sitecore sitecore7.1

我正在使用sitecore 7.1站点,该站点在Web.config中设置为瑞典语。

<site name="SiteName" language="sv-SE" ... />

如果我访问仅包含瑞典语版本的页面,它会按预期工作,但如果存在项目的英语和瑞典语版本,则它更喜欢英语版本。我怎样才能更改它,因此即使存在英文版本,它也会默认使用瑞典语版本。

我已经阅读过John West关于如何设置Sitecore语言的帖子here以及他提到语言的五种方式可以设置,我认为以下2可能与之相关我,但我不确定:

  1. 与上下文网站相关联的语言cookie:在我的请求中,我看到有一个cookie se #lang = sv-SE 。首先是网站上下文语言cookie ?如果是,那么语言将在管道的其他地方设置。
  2. 与上下文逻辑站点关联的默认语言。我不知道该怎么做。

2 个答案:

答案 0 :(得分:1)

网站语言设置应该足够,但为了以防万一,您还可以检查其他一些设置:

  1. ClientLanguage:默认设置为“en”。
  2. DefaultLanguage:默认情况下,设置为“en”。
  3. 不应将ClientLanguage用于访问您网站的用户。根据我的理解,这用于编辑界面。

    另外,根据我的反编译器,如果找不到网站语言,Sitecore 7.2管道应该只使用DefaultLanguage。

    我确实注意到用户的语言cookie在默认使用网站语言之前就会被读取。当您使用两种语言访问该页面并且尚未设置用户的默认会话语言时,您确定您有一个全新的会话吗?

    否则,正如其中一条评论中所述,您是否安装了可能有自己配置的回退模块?

答案 1 :(得分:0)

我认为这更像是一个功能,而不是一个bug。我缩小了原因并且看起来是由以下原因造成的。

  1. 我的浏览器发送一个预期英文内容的请求标头。
  2. 如果内容版本以所请求的语言存在,则sitecore会根据用户的首选语言对英语进行优先级排序,即使该网站配置为默认使用其他语言。