2011-01-25 88 views
4

我遇到了Rails 2.3.8應用程序的問題。我使用rails i18n以不同語言製作網站。除了一個地方,任何地方都可以完美運作。Rails i18n:翻譯缺失問題,區域設置未定義

成功註冊後,我做的:

flash[:notice] = t 'path.to.locale.key' 

正如我在其他地方。

但呈現如下:

translation missing: 'locale.path.to.locale.key' not found 

看來它不加載當前區域設置(否則它會說「恩」,或「上課」,或什麼的,而不是「現場」)。

任何可能導致這種情況的想法?

感謝

回答

7

也許你的地方覆蓋下來是陽明文件。也許你做了太多的嵌套。也許這個鍵有子鍵。

從該locale.yml中刪除所有內容,並僅放置該消息並查看它是否有效。

你遇到的問題偶爾會發生在我身上,而這總是我在yml文件中搞砸了的東西。

1

嘗試在你的ApplicationController用的before_filter設置默認的語言環境,例如:

I18n.locale = params[:locale] || 'en' 
0

好吧,在我升級到Rails 4.1後,這發生在郵件類中。它在Rails 3上正常工作,並且yml文件沒有變化。不知何故,i18n沒有看到默認的語言環境。 所以我在郵件類中添加了這一行來修復。

I18n.locale = I18n.default_locale 

class ProviderMailer < ActionMailer::Base 
    include Resque::Mailer 
    default from: APP_CONFIG.mailer.from 

    def registration_email(provider) 
    @provider = provider 
    I18n.locale = I18n.default_locale 
    @provider_url = "#{APP_CONFIG.base_url}/hizmetsgl/#{provider['_id']}" 
    @howto_url = "#{APP_CONFIG.base_url}/hizmetverenler" 
    mail(to: provider["business_email"], subject: t('provider_mailer.registration_email.subject')) 
    end 

end