Middleman I18n在/ en / en / filename

时间:2016-08-09 19:25:55

标签: internationalization middleman

在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

0 个答案:

没有答案