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

时间:2018-04-23 08:41:59

标签: jekyll

我想在我的Jekyll网站上添加本地化。 This plugin似乎有效。简而言之 - 它为所有语言创建子文件夹,您可以在 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // DountChart view = new DountChart(this); setContentView(R.layout.empty); final SeekBar sbHeight = findViewById(R.id.sbHeight); sbHeight.setLayerType(View.LAYER_TYPE_SOFTWARE, null); sbHeight.setOnTouchListener(new View.OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { return true; } }); final int[] progress = {0}; final Handler ha=new Handler(); ha.postDelayed(new Runnable() { @Override public void run() { //call function if (progress[0] != 100){ AppLogger.log("Prog",progress[0]+""); progress[0]= progress[0]+1; sbHeight.setProgress(progress[0]); ha.postDelayed(this, 100); } } }, 100); } and that`s All 之后访问它们,默认语言始终设置为插件的默认语言(集合中的第一种语言)。

如何首次向浏览器首选语言添加重定向?是否有通过杰基尔这样做的机制?我发现了一些用于重定向的插件,例如thisthis,但它似乎不是我需要的。

2 个答案:

答案 0 :(得分:0)

如果您的网络服务器是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

现在,将index.var - 文件放在您的Web根目录中:

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.htmlfrench.html,......中的内容将根据浏览器语言提供。

这种方式我已经为我的网站做了这个并且它工作得很好(我没有使用插件,但使用包含,语言数据文件和一些流体编码所有内容 - 甚至照顾seo友好hreflang tags )。
但是,我想,你也可以想到一些javascript重定向到用户语言。 希望这有帮助!

答案 1 :(得分:0)

更正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 documentation以获得更深入的解释。

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

有关该机制的更多说明:index.var文件现在就像服务器上的动态链接,根据浏览器的首选项,它指向应提供的文件。通过将DirectoryIndex指向该文件,带有'/'的内容将与带有'/index.var'的内容相同。

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

希望可以节省一些时间,我不得不进行调查。

相关问题