2012-12-28 25 views
3

我有這個應用程序,我在其中使用了一堆語言環境(調整爲更適合應用程序的領域,前:而不是使用ES-MX,我只是用MX爲Locale)Rails 3:生產環境改變語言環境,但不會翻譯文本[自定義回退]

而且我在application.rb中

config.i18n.default_locale = :en 
config.i18n.fallbacks = { 
    # sites 
    'cl' => 'es', 
    'mx' => 'es', 
    'lat' => 'es', 
    'br' => 'en', 
    'us' => 'en', 

    # lang 
    'es' => 'en', 
    'pt' => 'br', 
} 

配置的回退,我設置的網址前的語言環境:本地主機:3001/CL (智利語言環境)

這是我的代碼在app_controller

before_filter :set_locale 

    private 

    def set_locale 
    if supported_locale?(params[:locale]) 
     I18n.locale = params[:locale] 
    end 
    end 

我的路線

# public urls for sites 
    scope '/:locale' do 

    # index 
    match '/' => 'main#index', via: :get, as: :site 
    end 

那麼,事情是,當我在生產我的本地主機:3001/CL 並調用_logo.cl.html.erb局部和區域印刷在控制檯它是cl。 但文字仍然是英文。在開發中一切正常。任何人都有這個想法嗎?

我會留下幾個圖像

生產/我們 production/us 生產/ CL production/cl 發展/ CL development/cl

回答

3

的事情是,production.rb文件中定義

# Enable locale fallbacks for I18n (makes lookups for any locale fall back to  
# the I18n.default_locale when a translation can not be found) 
config.i18n.fallbacks = true 

覆蓋自定義fallb ack規則,我已經在application.rb中定義了,我只是刪除了這些行,並且問題解決了。