尝试同时使用jekyll-paginate-v2和jekyll-multiple-language-plugin

时间:2019-02-26 03:03:53

标签: ruby pagination internationalization jekyll

嗯,我实际上是在尝试与Jekyll创建一个多语言网站。最近,我发现了这个名为jekyll-multiple-languages-plugin的jekyll插件,而且我的分页变得很奇怪...所以我更愿意将其更新为这个维护的版本jekyll-paginate-v2

已经有人和我有相同的问题,我如何才能使分页者使用多种语言,所以他/她在Github上创建了此问题:

  

     

在旧问题中找不到任何东西,所以我的问题是:是否可以在jekyll的配置中设置类似这样的内容?

     

permalink : "/:lang/page/:num/"-:lang 是我需要为同一文件创建不同版本的变量。

     

我想获得这些帖子,我需要这样的东西:

     

{% for post in paginator.lang.posts %}   代替   {% for post in paginator.posts %}

     

太好了!!!我希望我的问题是可以理解的..或者你们有不同的方法?

     

欢呼声,   bg

发件人:https://github.com/sverrirs/jekyll-paginate-v2/issues/17#issue-213207745

好心的是,@ sverrirs用this nice answer回复了他/她。我正在认真地关注。但我认为我发现了一堵墙...

简而言之,我认为这两个插件都不兼容:

  

好吧,我将需要重新打开它。因为实际上,我正在将您的插件与"Jekyll Multiple Languages Plugin"一起使用...并且在尝试遵循@sverrirs在this comment上所说的内容时遇到了一些麻烦...

     

我的帖子结构如下:

     

...

     

我已经在根目录中创建了两个index.html(一个用于“ en” lang,另一个用于“ es”)...然后我创建了另外两个布局...

     

但是当我调试分页器时(例如,在myurl.com/en/上),会出现以下内容:

     

{"per_page"=>5, "posts"=>[], "total_posts"=>0, "total_pages"=>1, "page"=>1, "page_path"=>"/index.html", "previous_page"=>nil, "previous_page_path"=>nil, "next_page"=>nil, "next_page_path"=>nil, "first_page"=>1, "first_page_path"=>"/index.html", "last_page"=>1, "last_page_path"=>"/en/1/index.html", "page_trail"=>nil}

     

该插件与该语言不兼容吗?因为,正如您所看到的,我的_i18n文件夹中有一些帖子,但是就像语言环境无法读取它们一样(因为posts属性为空)...

     

我该怎么办?

发件人:https://github.com/sverrirs/jekyll-paginate-v2/issues/17#issuecomment-467270740

我在那句话上说了一切。但是,浏览该插件的代码时,我找不到任何引用(分配)posts变量……或者至少,从分配位置看……

https://github.com/sverrirs/jekyll-paginate-v2/blob/c657c5f8e02580a5e13f336d5c34fd4c81e212f7/lib/jekyll-paginate-v2/generator/paginationModel.rb

https://github.com/sverrirs/jekyll-paginate-v2/blob/7a15647777b12795515ffacbf3b9c09bc9b7f452/lib/jekyll-paginate-v2/generator/paginationIndexer.rb

仅有的all_posts = self.get_docs_in_collections(template_config['collection'])def self.index_posts_by(all_posts, index_key)

但是我几乎无法理解这里发生的事情,因为我是Jekyll和Ruby的新手。

1 个答案:

答案 0 :(得分:0)

我基于以下方法建立了一个多语言的Jekyll网站:

Making Jekyll multilingual – Sylvain Durand

这里是:

要进行分页,我使用了jekyll-paginate-v2插件并使用语言环境过滤了页面。

有关如何设置该插件的说明,请参见:

https://github.com/sverrirs/jekyll-paginate-v2/blob/master/README-GENERATOR.md

在此特定提交中,您可以看到我如何设置分页:

https://github.com/kamarada/kamarada-website/commit/40fd718996e6c6756b915ffcac0b1be32df28e5d

将来,我将用kykyll-paginate-v2的lang代替Sylvain Durand的locale,所以我不会使用两个具有相同目的的前物变量。

请注意,我的网站与GitHub Pages不兼容,这就是为什么我为Jekyll源和编译(并提供)HTML提供单独的存储库。

GitHub页面不支持jekyll-paginate-v2插件:https://pages.github.com/versions/