如何正确地将Sinatra页面国际化?

时间:2016-02-05 05:22:32

标签: ruby internationalization sinatra

我有一个Sinatra route file,它会显示一些page

<h2>Free, open song contest</h2>
<h3>Sign up</h3>
<form action="/signup" method="post">
    E-mail: <input type="text" name="email" placeholder="Your e-mail"><br/>
    Password: <input type="password" name="password"><br/>
    Repeat password: <input type="password" name="password2"><br/>
    Account type: <input type="radio" checked="true" name="type" value="fan">Fan
    <input type="radio" name="type" value="musician">Musician
</form>
<h3>Log in</h3>
<form action="/login" method="post">
    E-mail: <input type="text" name="email" placeholder="Your e-mail"><br/>
    Password: <input type="password" name="password"><br/>
</form>

如果我想将此页面中的所有字符串国际化(免费,开放歌曲比赛注册电子邮件等) ,这样做的正确方法是什么?

我发现了这个i18n recipe,但它没有说明如何将国际化字符串插入模板(上例中的home.erb)。

1 个答案:

答案 0 :(得分:4)

在同一个documentation页面中,它后来说:

  

选择本地化的字符串/对象很简单,因为它只需要使用   来自I18n的标准方法

I18n.t(:token) 
I18n.l(Time.now)

所以,你需要这样做:

<h2>I18n.t(:contest_page_title')</h2>

而且,在locales/en.yml中,您将拥有:

en:
  contest_page_title: Free, open song contest

由于i18n gem也用在Rails中,国际化的基本方面也可以从Rails guide

推断出来