【发布时间】:2013-01-01 07:25:51
【问题描述】:
我不断收到“翻译缺失:en.layouts.application.title” 对于标题或我尝试在 app/views/layouts/application.html.erb 文件中翻译的任何项目。
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)
如果我将行移出布局:应用程序:嵌套并进入 .yml 文件的根层次结构(当然从 t 方法中删除句点),那么一切都会翻译。 一旦我将它们移回布局下:应用程序:我再次缺少翻译。
可能出了什么问题? 我正在使用 Rails 3.2.7
编辑 1:刚刚尝试使用 但仍然说翻译丢失。
编辑 2:如果我将 application.html.erb 复制或重命名为不同的名称(并相应地更改 *.yml 文件),则找到解决方法。
如果我开始一个新项目,翻译在 application.html.erb 中工作得很好。
但是在当前项目中:只要我使用 application.html.erb(即使测试内容最少),我仍然会丢失翻译。
【问题讨论】:
-
您能否澄清一下,当您将翻译留在嵌套层次结构中时(不要将它们移动到根层次结构)并使用完整查找而不是惰性查找意见即
t('layouts.application.title')? -
感谢您的回复。它仍然让我缺少翻译。更新了原始帖子。
-
奇怪...你在用 Spork 吗?如果是这样,您是否重新启动它以确保它重新加载您在 locales 目录下所做的更改?
-
是的。每次更改后重新启动 webrick 以确认。
-
只要它使用 layouts: application: lookup 就会出现同样的错误。如果我将 application.html.erb 复制到另一个文件并在布局下使用新文件名,我找到了一种解决方法:en.yml 中的层次结构,那么它就可以工作。不知道为什么会发生这种情况,因为如果我从头开始一个新项目,我没有任何问题。
标签: ruby-on-rails ruby-on-rails-3 internationalization ruby-on-rails-3.2 rails-i18n