Internationalization Middleman I18n在/en/en/filename下生成翻译文件

Internationalization Middleman I18n在/en/en/filename下生成翻译文件,internationalization,middleman,Internationalization,Middleman,在Ruby 2.3.1p112上默认安装Middleman 4.1.10和i18n 0.7.0会生成嵌套的重复区域设置文件夹,其中包含非默认语言的断开链接 例如,如果瑞典语是默认语言,翻译的英语文件将在/en/en/下生成,在/en/sv/下生成副本,在/en/下生成瑞典语链接中断的文件。在/sv/下正确创建站点的主要语言文件。将默认语言更改为英语会显示相同的错误,但在/sv/sv/下会显示错误,而在/en/下会显示正确的文件和链接 当我通过转换现有的双语网站来评估中间商时,我偶然发现了这一点。

在Ruby 2.3.1p112上默认安装Middleman 4.1.10和i18n 0.7.0会生成嵌套的重复区域设置文件夹,其中包含非默认语言的断开链接

例如,如果瑞典语是默认语言,翻译的英语文件将在/en/en/下生成,在/en/sv/下生成副本,在/en/下生成瑞典语链接中断的文件。在/sv/下正确创建站点的主要语言文件。将默认语言更改为英语会显示相同的错误,但在/sv/sv/下会显示错误,而在/en/下会显示正确的文件和链接

当我通过转换现有的双语网站来评估中间商时,我偶然发现了这一点。同样的路径/文件名/链接模式也可以在默认安装的Middleman上以最小配置重现,如下所示

我真的不知道我是不是在什么地方出错了,或者这是Middleman的I18n模块中的一个bug。通过谷歌搜索、Stackoverflow、中间人的文档或bug报告,我甚至没有发现任何关于这一点的远程提示,这让我怀疑我遗漏了一些令人尴尬的显而易见的东西

这是我的设置:


是的,我想我已经测试了所有其他可能记录的:i18n的组合,没有任何结果。通过:langs=>[:en,:sv]手动设置语言之间的顺序只会在sv下呈现相同的错误目录结构








显然,我预料到了这一点:

├── 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
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