Github-Pages 上的多语言

And*_*eOn 5 github jekyll github-pages

很长一段时间我没有访问我的页面http://andeon.github.io/askey/apps/gimp/所以,昨天我检查了翻译对键盘页面不起作用,github-pages 上有更新吗?

存储库结构:github.com/andeon/askey/tree/gh-pages

- |-- _includes/      # Html rendered 
- |-- _layouts/       # Templates of the website
-   |--  dic/         # keyboards translation
- |-- index.html      # Default html file (EN)
- |-- pt              # Portuguese Language files
- |-- (...)
- |-- _config.yml     # Jekyll configuration file
Run Code Online (Sandbox Code Playgroud)

文件“_includes/gimp_keyboard.html”使用变量page.t[page.lang].($variable)来链接“dic/gimp_en.md”或“dic/gimp_pt.md”等中的翻译,这就是翻译键和弹出窗口的工具提示。

Gimp_en.yml 的结构:

layout: main_gimp
t:
 en:
  tooltip_esc: "Close Dialogs"
  tooltip_f1: "Help"
Run Code Online (Sandbox Code Playgroud)

例如:gimp_keyboard.html Esc 键工具提示:

<a href="#popup_esc" class="key c27 fn" data-tooltip="{{ page.t[page.lang].tooltip_esc }}"><span>esc</span>

和弹出键 w

<div id="popup_w" class="overlay"> <div class="popup"> <h2>{{ site.t.l_popupt[page.lang] }}</h2> <a class="close" href="#" onclick="history.back(); return false;">×</a> <div class="content"> <table class="tftable" border="1"> {{ site.t.l_thc[page.lang] }} {{ page.t[page.lang].key_w }}

* _config.yml 中绑定的变量“site.t.(...)[page.lang]”的全局翻译正在工作。

我不知道如何解决它。也许用“字典文件”的技巧来制作多语言并不是一种聪明的方法(但这里的原因https://github.com/andeon/askey/wiki我需要变量来创建一种更简单的翻译方法) .

有没有人有任何想法修复或其他建议?

我使用这个网站作为参考来创建页面:benoitpatra.com/2014/08/24/organize-a-multilanguage-jekyll-site/

Dav*_*uel 3

是的,这是 Jekyll 2.x和 Jekyll 3.x之间的变化,现在 github 上正在使用。

您的语言字符串位于布局中。例如:gimp.htmldic/gimp_en作为布局,它本身在其前面的键下有语言字符串t

在 jekyll 2.x中,布局变量通过页面变量中的模板级联传递。您通过以下方式访问了它page.t

现在,在 jekyll 3.x中,模板变量被传递到布局变量中。您可以通过以下方式访问它layout.t

如果你用 替换所有page.t发生的事情layout.t,魔法就会再次发生。

旁注:您可以将所有语言字符串集中在数据文件中。_data/lang/en/gimp.yml中的英文字符串和_data/lang/pt/gimp.yml中的葡萄牙语字符串并使用site.lang[page.lang].

然后您可以删除中间的dic/gimp_xx 布局

这将更有利于未来。