3

對於標題或任何我試圖在app/views/layout中轉換的項目,我總是收到「翻譯缺失:en.layouts.application.title」 /application.html.erb文件。Rails國際化(i18n):除佈局之外的所有內容翻譯/ 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)相同的問題

如果我移動排除佈局:應用程序:嵌套到.yml文件的根層次結構中(從當然的t方法中刪除句點),然後轉換所有內容。 只要將它們移回佈局下:應用程序:我再次找到翻譯缺失。

什麼可能是錯的? 我正在使用Rails 3.2.7

編輯1:剛剛嘗試使用<%t('layouts.application.title')%>但仍然表示翻譯缺失。

編輯2:如果我將application.html.erb複製或重命名爲其他名稱(並相應地更改* .yml文件),則會發現解決方法。
如果我開始新項目翻譯在application.html.erb中工作得很好。 但是在當前項目:只要我使用application.html.erb(即使是最小的測試內容),我仍然得到翻譯缺失。

+0

您能澄清一下,當您將轉換置於嵌套層次結構中時(不要將它們移動到根層次結構),並且在視圖中使用完整查找而不是懶惰查找,仍會得到缺失的轉換錯誤,即「t ( 'layouts.application.title')'? –

+0

感謝您的回覆。它仍然給我翻譯失蹤。更新原始帖子。 – preOtep

+0

奇怪......你使用Spork嗎?如果是這樣,你重新啓動它,以確保它重新加載在** locales **目錄下所做的更改嗎? –

回答

3

UPDATE:從這個項目有一段時間離開,但想通了這個問題....

解決:漂亮的笨我想補充。
請確保您沒有選項卡('\ t')來放置文件中的文本。
很明顯,它無法使用製表符正確編譯。

+0

有趣的提示:來自硅谷的節目中的標籤與間距辯論在這裏很好地發揮! – preOtep

0

我今天運行到完全相同的問題,經過調試會話後,我發現問題的根源。我敢打賭,這也是你的問題,因爲你的解決方法也是有意義的,而且這個問題不會發生在一個全新的項目上。你碰巧有層次

en: 
    layouts: 
    application: 

定義別的地方在你yml文件?

我定義

en: 
    layouts: 
    header: 
     language: "Language" 

en: 
    layouts: 
    header: 
     my_profile: "My profile" 
在兩個不同的地方

,所以我想翻譯將尋找第一個(假設唯一)的按鍵組合的出現,絕不會找到另一個...

希望這將解決您的問題!

+0

檢查。不,我沒有在其他地方定義它,但thx。 – preOtep

+0

Sure !很高興你把它整理出來 – deivid