2013-06-25 3 views

ответ

5

Один из способов я отдаю себе отчет, использует символы (указывающие на пункты перевода) в пределах ваших данных:

/data/product.yml

title: :product_title 

/config.rb

set :lang, :de 
activate :i18n, :langs => [:de, :en] 

Эти символы могут быть переведены как (посредническая) обычный ...

/locales/de.yml

--- 
de: 
    product_title: "Mein deutscher Produktname" 

/locales/en.yml

--- 
en: 
    product_title: "My english product title" 

... и используется в шаблонах:

/source/localizable/i18n.html.erb

<h1><%= I18n.t(data.product.title) %></h1> 

http://0.0.0.0:4567/i18n.html

Майн Deutscher Produktname

http://0.0.0.0:4567/en/i18n.html

Моего титула английского продукта

+0

ааа это ключ, поэтому данные содержат даже файлы локали. спасибо - другие способы описали - - content_for: metaSubject do - I18n.t: metaSubjectHome –

2

Вы можете использовать .send метод.

В /data/en/production.yml

--- 
title: "My english product title" 

В /data/ja/production.yml

--- 
title: "私の日本語の商品名" 

Тогда в шаблоне ...

<h1><%= I18n.t(data.send(I18n.locale.to_sym).product.title) %></h1> 
+0

Вам не нужно обертывать его снова с помощью 'I18n # t' –