我一直在“翻译失踪:en.layouts.application.title” 对于我尝试在app / views / layouts / application.html.erb文件中翻译的标题或任何项目。
配置/区域设置/ en.yml
en:
layouts:
application:
title: "My Catalog"
home: "Home"
store: "Store"
faq: "FAQ"
contact: "Contact"
about: "About"
应用/视图/布局/ 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)
如果我将这些行移出布局:application:nest并进入.yml文件的根层次结构(当然从t方法中删除句点)然后一切都会翻译。 一旦我在布局下移回它们:应用程序:我再次找不到翻译。
可能有什么不对? 我正在使用Rails 3.2.7
编辑1:刚尝试使用&lt;%t('layouts.application.title')%&gt;但仍然说翻译失踪。
编辑2:如果我将application.html.erb复制或重命名为其他名称(并相应地更改* .yml文件),则会找到解决办法。
如果我在application.html.erb中启动新项目翻译工作正常。
但是在 当前项目 中:只要我使用的是application.html.erb(即使测试内容最少),我仍然会错过翻译。
答案 0 :(得分:3)
更新:离开这个项目已有一段时间了,但想出了问题......
解答:我可能会补充相当愚蠢
请确保没有标签('\ t')来区分文件中的文字。
显然,它无法使用制表符正确编译。
答案 1 :(得分:0)
我今天运行完全相同的问题,在调试会话后我找到了问题的根源。我敢打赌这也是你的问题,因为它对你的解决方法和一个全新的项目没有发生的问题也有意义。你碰巧有层次结构
en:
layouts:
application:
在yml
文件的其他位置定义了哪些内容?
我正在定义
en:
layouts:
header:
language: "Language"
和
en:
layouts:
header:
my_profile: "My profile"
在两个不同的地方,所以我想译者会寻找第一个(并且假设是唯一的)键组合的出现而永远找不到另一个......
希望这能解决您的问题!