Middleman 是 Ruby 語言撰寫的框架,用於快速地產生靜態網頁,記錄使用 middleman 用到 data files 功能如何搭配 i18n 實現多國語言。

啟用 i18n 功能

Localization (i18n) 寫到 config.rb 內開啟 i18n 功能,個人的配置如下

activate :i18n, :path => "/:locale/",:mount_at_root => :en

意思就是主語言為 en 並將對應的語言放置於自己的資料夾內,輸出資料如圖:

build

啟用 Data Files

Data Files 照官方文件使用起來也沒有太大難度,資料夾放在專案根目錄,只要重新啟動 middleman 就可以讀取到資料。

如果想要啟用多國語言可以使用資料夾分開個語言的資料,如圖:

顯示於 View

接著只要將 data 顯示於 view 上就可以了,使用範例:

<% data.send(I18n.locale.to_sym).tab.specification.feature.each.with_index(1) do |f, index| %>
            <div class="tab__block__icon__item tab__block__icon__item--<%= index %>">

              <div class="tab__block__icon__item__img">
                <img class="img-fluid" src="<%= f.img %>" alt="">
              </div>

              <div class="tab__block__icon__item__text"><%= f.content %></div>
            </div>
            <% end %>

使用 data.send(I18n.locale.to_sym) 就可以讀取到多國語言內的 data 資料了。

付上完整資料夾結構:

參考資料

Middleman - Localizing data/yaml files

Facebook 功能:

Summary
Middleman How to Localization Data Files
Article Name
Middleman How to Localization Data Files
Description
教學如何使用 Middleman 框架使用 Data Files 並且搭配 i18n 功能,快速產生靜態 html 檔案。
Author
Publisher Name
bonze