4

タイトルまたはapp/views / layouts /application.html.erbファイル内で翻訳しようとしているアイテムの「translationmissing:en.layouts.application.title」が表示され続けます。

config / locales / en.yml

en:

  layouts:
    application:
      title:  "My Catalog"
      home:  "Home"
      store:   "Store"
      faq:      "FAQ"
      contact:  "Contact"
      about:    "About"

app / views / layouts / application.html.erb

<div id="banner">
  <% t('.title') %>
</div>
<div id="nav_menu" class="sidebar_menu">
  <a href="/"><%= t('.home') %></a>
  <a href="/store"><%= t('.store') %></a>
  <a href="/faq"><%= t('.faq') %></a>
  <a href="/contact"><%= t('.contact') %></a>
  <a href="/about"><%= t('.about') %></a>
</div>

ビュー内のすべての翻訳は機能していますが、レイアウト内のすべてが欠落していると言っています。en.yml、fr.yml、es.ymlを使用していますが、それぞれ同じ問題です(それぞれ、fr.layouts.application.titleとes.layouts.application.title)

行をlayouts:application:nestから.ymlファイルのルート階層に移動すると(もちろんtメソッドからピリオドを削除)、すべてが変換されます。それらをlayouts:applicationの下に戻すとすぐに、翻訳が再び失われます。

何が間違っている可能性がありますか?Rails3.2.7を使用しています

編集1:<%t('layouts.application.title')%>を使用してみましたが、それでも翻訳がありませんと表示されます。

編集2:application.html.erbを別の名前にコピーまたは名前変更すると(それに応じて* .ymlファイルを変更すると)回避策が見つかりました。新しいプロジェクト
を開始すると、application.html.erb内で翻訳が正常に機能します。ただし、現在のプロジェクトでは、 application.html.erbを使用している限り(最小限のテストコンテンツでも)、翻訳が欠落しています。

4

2 に答える 2

4

更新:しばらくの間このプロジェクトから離れていましたが、問題を理解しました...。

解決済み:私が追加するかもしれないかなり愚かな。
ファイル内のテキストの間隔を空けるためにタブ('\ t')を使用しないようにしてください。
明らかに、タブ文字で正しくコンパイルすることはできません。

于 2013-07-07T20:31:41.927 に答える
0

私は今日、まったく同じ問題に遭遇し、デバッグセッションの後で、問題の根本を見つけました。これもあなたの問題だと思います。なぜなら、それはあなたの回避策や、まったく新しいプロジェクトでは起こらない問題にも意味があるからです。あなたはたまたま階層を持っていますか

en:
  layouts:
    application:

ファイルのどこかで定義されていymlますか?

私は定義していました

en:
  layouts:
    header:
      language: "Language"

en:
  layouts:
    header:
      my_profile: "My profile"

2つの異なる場所にあるので、翻訳者はキーの組み合わせの最初の(そして一意であると想定される)出現を探し、他の組み合わせを見つけることは決してないだろうと思います...

これがあなたの問題を解決することを願っています!

于 2013-03-05T00:17:58.077 に答える