Jekyll网站有多种语言

时间:2015-03-05 23:18:42

标签: jekyll liquid multilingual

我有一个网站,我用西班牙语写作,但现在我想用英语写这个。 我使用Jekyll和主题“Skinny Bones”,我修改了一些代码,但我发现了一个问题,我希望你能帮助我。

我在_config.yml中设置了一个名为lang的新变量,首先设置为“es”(西班牙语)。

之后,我改变了下一个代码:

{% for post in site.categories.articles %}
 {% include post-grid.html %}
{% endfor %}

由此:

 <!-- español -->
 {% if site.lang == 'es' %}
  {% for post in site.categories.media %}
   {% if post.lang == 'es' %}
    {% include post-grid.html %}
   {% endif %}
  {% endfor %}
 {% endif %}

<!-- inglés -->
{% if site.lang == 'en' %}
 {% for post in site.categories.media %}
  {% if post.lang == 'en' %}
    {% include post-grid.html %}
  {% endif %}
 {% endfor %}
{% endif %}

如果在_config.yml中使用“en”设置变量并且媒体文件夹中的帖子是lang设置为“en”的帖子,则在此表单上显示。

这项工作正常,当我更改_config.yml并使用“en”或“es”设置变量并且我在本地主机中重建项目时,更改发生并且只显示成语正确的帖子。

但我的问题是:¿如何在服务器运行时更​​改_config.yml上的变量? 我的想法是在页面的某个位置创建一个更改此变量的按钮。

我看到了这个功能 {%assign site.lang ='es'%} 但是当我在代码中执行此操作时无法正常工作。

嗯,我知道这不是一个复杂的问题,但我找不到解决方案。

非常感谢你的帮助。

如果你想看到它,这是我的repo page

1 个答案:

答案 0 :(得分:0)

  

¿如何在服务器运行时更​​改_config.yml上的变量?

我很确定你做不到。你看过这个插件吗?

https://github.com/screeninteraction/jekyll-multiple-languages-plugin