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

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