Github 页上的多语言

multiple-language on Github-Pages

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

存储库结构: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

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

Gimp_en.yml 的结构:

layout: main_gimp
t:
 en:
  tooltip_esc: "Close Dialogs"
  tooltip_f1: "Help"

ex: gimp_keyboard.html Esc key tooltip:

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

And Pop-up key 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]" 的全局翻译正在工作。

我不知道如何修复它。也许用 "dictionary file" 的技巧来制作多语言并不是明智的方法(但这里是 https://github.com/andeon/askey/wiki 我需要变量来创建更简单的翻译方法的原因)。

有没有人有解决的想法或其他建议?

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

是的,它是 Jekyll 2.x 和现在在 3.x =65=].

您的语言字符串在布局中。例如:gimp.htmldic/gimp_en 作为布局,它本身在 [=10 下的前言中有语言字符串=]键。

使用 jekyll 2.x,布局变量通过 page 变量中的模板级联传递。您使用 page.t

访问了它

现在使用 jekyll 3.x,模板变量在 layout 变量中传递。您可以使用 layout.t

访问它

如果您用 layout.t 替换所有出现的 page.t,奇迹将再次发生。

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

然后就可以去掉中介dic/gimp_xx布局.

这将更有前途。