如何使用Middleman和i18n在一页内构建多种语言?

时间:2018-12-20 11:11:46

标签: ruby-on-rails erb middleman

我正在与中间人一起建立多语言登录页面。我尝试使用i18n。与其创建其他HTML文件(即Landing.en.html.erb,landing.cn.html.erb),我只希望使用一页然后链接到yml文件。

导航栏上将有一个按钮可以切换到其他语言。

我整天都在阅读中间人(https://middlemanapp.com/advanced/localization/)的文档,并尝试查找一些示例,但仍然无法正常工作。

这是我与i18n有关的代码:

config.rb

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

source / shared / _navbar.html.erb

<!-- change language -->
<ul class="">
  <% if (I18n.locale == :cn_t) %>
  <li><a href="<%= current_page.url.gsub("cn_t", "en") %>" class="navbar-wagon-item navbar-wagon-link">English</a></li>
  <% else %>
  <li><a href="<%= current_page.url.concat("cn_t") %>" class="navbar-wagon-item navbar-wagon-link">繁中</a></li>
  <% end %>
</ul>

source / layouts / layout.erb

<head>
<% if (I18n.locale == :cn_t) %>
<link rel="alternate" hreflang="en" href="<%= current_page.url.gsub("cn_t", "en") %>" />
<% else %>
<link rel="alternate" hreflang="cn_t" href="<%= current_page.url.gsub("en", "cn_t") %>" />
<% end %>
</head>

source / localizable / index.html.erb

<h1><%= t(:greeting) %></h1>

locales / cn_t.yml

---
en_t:
  greeting: "嗨"

locales / en.yml

---
en:
  greeting: 'Hello'

请帮助我进行检查。这是我第一次在这里提问。如果我错过任何事情,请随时给我任何建议。谢谢!

0 个答案:

没有答案