在Ruby 2.3.1p112上默认安装具有i18n 0.7.0的Middleman 4.1.10会生成嵌套的重复区域设置文件夹,其中包含非默认语言的断开链接。
例如,如果瑞典语是默认语言,则翻译的英语文件在/ en / en /下生成,在/ en / sv /下生成重复项,在/ en /下在瑞典语中包含断开链接的文件生成。在/ sv /下正确创建了站点的主要语言文件。将默认语言更改为英语会产生相同的错误,但在/ sv / sv /下会出现正确的文件和/ en /下的链接。
在通过转换现有的双语网站评估Middleman时,我偶然发现了这一点。相同的路径/文件名/链接模式在具有最小配置的Middleman的默认安装上也是可重现的,如此处所示。
我真的无法弄清楚我是否在某个地方出错,或者这是否是Middleman的I18n模块中的错误。通过谷歌搜索,Stackoverflow或Middleman的文档或错误报告,甚至没有发现任何消息,这让我怀疑我遗漏了一些令人尴尬的明显事物。
这是我的设置:
config.rb
page '/*.xml', layout: false
page '/*.json', layout: false
page '/*.txt', layout: false
set :relative_links, true
activate :i18n, :mount_at_root => :sv
是的,我想我已经测试了所有其他可能记录的组合:i18n没有任何结果。通过以下方式手动设置语言之间的顺序:langs => [:en,:sv]仅在sv。
下呈现相同的错误目录结构locales/en.yml
---
en:
index: Home
news: News
paths:
index: index
news: news
locales/sv.yml
---
sv:
index: Hem
news: Nyheter
paths:
index: index
news: nyheter
source/layouts/layout.erb
<!doctype html>
<html>
<head>
<title></title>
<!-- The only change from defaults: -->
<%= link_to t(:index), t("paths.index") + ".html" %>
<%= link_to t(:news), t("paths.news") + ".html" %>
<%= stylesheet_link_tag :site %>
<%= javascript_include_tag :all %>
</head>
<body class="<%= page_classes %>">
<%= yield %>
</body>
</html>
source/localizable/en/index.html.erb
---
title: English index
---
English index
source/localizable/en/news.html.erb
---
title: English news
---
English news
source/localizable/sv/index.html.erb
---
title: Swedish index
---
Swedish index
source/localizable/sv/news.html.erb
---
title: Swedish news
---
Swedish news
显然我期待这个:
├── en
│ ├── index.html
│ └── news.html
│
└── sv
├── index.html
└── nyheter.html
但得到了这个:
├── en
│ ├── en
│ │ ├── index.html # Both files with correct english translations and
│ │ └── news.html # links, but only linked in the /en/en/ directory
│ │
│ ├── index.html # Both files with swedish translations
│ ├── nyheter.html # and functioning links in swedish
│ │
│ └── sv
│ ├── index.html # Both files with swedish translations and
│ └── news.html # links within the /en/sv/ directory
│
└── sv
├── index.html # Both files with correct swedish
└── nyheter.html # translations and links