2012-03-14 27 views
6

私は、Railsガイドのアドバイスをもとに、フォルダツリーとファイルを作成して翻訳しています。 マイフォルダツリーは、次のようになります。I18n in Rails 3 with adminネームスペース

|-defaults 
|---es.rb 
|---en.rb 
|-models 
|---book 
|-----es.rb 
|-----en.rb 
|-views 
|---defaults 
|-----es.rb 
|-----en.rb 
|---books 
|-----es.rb 
|-----en.rb 
|---users 
|-----es.rb 
|-----en.rb 
|---navigation 
|-----es.rb 
|-----en.rb 

のconfig /ロケール/ビュー/書籍/ en.ymlの内容は次のようになります。

es: 
books: 
    index: 
    title: "Título" 

A内のアプリ/ビュー/冊にこのような/index.html.erbテンプレート(ドットに注意):

<%= t '.title' %> 

私は、ビューの私の翻訳がうまく動作しますが、私は私のバックエンドで使用する名前空間「管理者」と、それは動作しません何の名前空間を持っていない場合。誰でも問題が分かっていますか?

答えて

-1

あなただけ使用する必要がある必要があります。ここに

http://guides.rubyonrails.org/i18n.html#looking-up-translationsを文書化して、私はあなたがドットで<%= t '.title' %>を使用している理由はわからない(スコープ演算子を - あなたは、フィールド名を表す文字列を使用する必要がありますどちらか(<%= t 'title' %>)または記号(<%= t :title %>)。)

2

私は「レイジー」参照http://guides.rubyonrails.org/i18n.html#lazy-lookupを使用していますので、私は<%= t '.title' %>を使用しています。

Railsは、ビュー内でロケールを検索する便利な方法を実装しています。

<%= t '.title' %> 

es: 
    books: 
    index: 
     title: "Título" 

あなたは、このようなアプリ/ビュー/本が/ index.html.erbテンプレート内のbooks.index.title値(ドットに注意)を調べることができます:あなたは、以下の辞書を持っている場合

0

あなたは同様にあなたのYAMLで名前空間を含める必要があります。

es: 
    admin: 
    books: 
     index: 
     title: "Título" 

次に、あなたがあなたのビューで<%= t '.title' %>で文字列にアクセスします。 これをRails 4.0.xでテストしました