根据浏览器语言重定向Jekyll站点用户

根据浏览器语言重定向Jekyll站点用户,jekyll,Jekyll,我想将本地化添加到我的Jekyll站点。似乎有效。简而言之,它为所有语言创建子文件夹,您可以在诸如home/yourLang1;主页/yourLang2默认语言始终设置为插件的默认语言(一组中的第一种语言) 如何在浏览器首选语言中首次添加重定向?有没有一种机制可以通过Jekyll实现这一点?我找到了一些重定向插件,如或,但它似乎不是我需要的。如果您的Web服务器是apache服务器,您可以这样做。我假设您的web根目录中有一个文件。添加内容处理程序: # Serve alternate cont

我想将本地化添加到我的Jekyll站点。似乎有效。简而言之,它为所有语言创建子文件夹,您可以在诸如
home/yourLang1;主页/yourLang2默认语言始终设置为插件的默认语言(一组中的第一种语言)


如何在浏览器首选语言中首次添加重定向?有没有一种机制可以通过Jekyll实现这一点?我找到了一些重定向插件,如或,但它似乎不是我需要的。

如果您的Web服务器是apache服务器,您可以这样做。我假设您的web根目录中有一个文件。添加内容处理程序:

# Serve alternate contents (Apache 2.x)
AddHandler type-map .var
# For older versions of Apache use
# AddType application/x-type-map var
DirectoryIndex index.var
现在,在web根目录中放置一个
index.var
-文件:

URI: index; vary="type,language"

URI: english.html
Content-type: text/html; qs=1.0
Content-language: en

URI: french.html
Content-type: text/html; qs=0.8
Content-language: fr

URI: german.html
Content-type: text/html; qs=0.9
Content-language: de
现在,您的内容在
english.html
french.html
中。。。当您导航到您的网站url时,将根据浏览器语言提供服务

通过这种方式,我已经为我的站点完成了这项工作,并且它运行得非常好(我没有使用插件,而是使用包括、语言数据文件和一些液体的代码对所有内容进行编码,甚至考虑到seo友好)。
但是,我想,您也可以考虑使用一些javascript重定向到用户语言。
希望这有帮助

纠正对我不起作用的回答:

.htaccess
文件中的相同内容:

AddHandler type-map .var
DirectoryIndex index.var
index.var:

URI: index

URI: english.html
Content-type: text/html
Content-language: en

URI: french.html
Content-type: text/html
Content-language: fr

URI: german.html
Content-type: text/html
Content-language: de
我只是偶然发现了前面的答案,并让它与这些变化一起工作。以下是一些澄清:

qs
用于指定要选择的资源的质量。例如,如果浏览器请求照片和jpeg文件,则其质量通常高于相同内容的ascii艺术。因为选择一种语言来指定它是没有意义的,它实际上破坏了机制,所以我总是选择英语。请查看以获得更深入的解释

我不知道astark打算用它们做什么

关于该机制的更多解释是:
index.var
文件现在就像服务器上的一个动态链接,根据浏览器的首选项指向应该提供服务的文件。通过将
DirectoryIndex
指向该文件,与“/”一起提供的内容将与与与“/index.var”一起提供的内容相同

.var
文件中的行与浏览器发送的标题行格式相同。第一行仅按惯例存在,可以省略。转发基于
.var
文件的文件名


希望能为其他人节省一些时间,这是我不得不用来调查的。

我也有一个静态站点。。。我在我所有的网站上都使用了Jekyll。但在我看来,“静态”并不禁止使用javascript。