我想为我的 Jekyll 网站添加本地化。这个插件似乎有效。简而言之 - 它为所有语言创建子文件夹,您可以在默认语言始终设置为插件默认语言(集合中的第一种语言)之后访问home/yourLang1; home/yourLang2;
。
如何首次将重定向添加到浏览器的首选语言?有没有通过杰基尔做到这一点的机制?我找到了一些像这样或这样重定向的插件,但这似乎不是我需要的。
如果你的网络服务器是一个apache服务器,你可以这样完成。我假设您的 Web 根目录中有一个 .htaccess 文件。添加内容处理程序:
# 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友好的hreflang标签)。
但是,我想,你也可以想到一些JavaScript来重定向到用户语言。 希望这有帮助!
纠正对我不起作用的 astark 答案:
在.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艺术质量更高。对于选择指定这一点的语言是没有意义的,它实际上破坏了机制,因此总是为我选择英语。查看 apache 文档以获得更深入的解释。
我不知道阿斯塔克打算用它们做什么。
关于该机制的更多解释:index.var
文件现在就像服务器上的动态链接,根据浏览器的首选项,指向应该提供的文件。通过将DirectoryIndex
指向该文件,与"/"一起提供的内容与与"/index.var"一起提供的内容相同。
.var
文件中的行与浏览器发送的标题行的格式相同。第一行仅按照惯例存在,可以省略。转发基于.var
文件的文件名。
希望能为其他人节省一些时间,我不得不用它来调查。