2013-02-12 63 views
0

I18n按照預期在本地運行,但不在heroku上運行。即使瀏覽器設置爲pt-BR,它也總是顯示英文。我們設定的區域設置在之前過濾:Rails I18n在Heroku上無法正常工作

class ApplicationController < ActionController::Base 
    before_filter :set_locale 

    private 

    def set_locale 
    I18n.set_preferred_locale(env.http_accept_language) 
    end 
end 

module I18n 
    class << self 
    def set_preferred_locale(http_accept_language) 
     locale = http_accept_language.preferred_language_from(I18n.available_locales) 

     if locale.present? 
     I18n.locale = locale 
     I18n.default_locale = locale #added based on some stackflow answer about heroku and I18n 
     end 
    end 
    end 
end 

我已經通過I18n.locale有意見,但翻譯的英語仍然傳來的正確值(PT-BR)的記錄證實。

我也嘗試作爲測試只需直接設置爲「PT-BR」,仍然可以得到相同的結果:

class ApplicationController < ActionController::Base 
    before_filter :set_locale 

    private 

    def set_locale 
     I18n.locale = 'pt-BR' 
    end 
end 
+1

我用國際化與在Heroku上的成功,但我不根據用戶瀏覽器設置設置區域設置,就像我得到你想要的感覺一樣。你能編輯你的問題來分享你用來設置語言環境的代碼嗎? – 2013-02-12 01:35:11

+0

您是否在初始化程序或其他地方設置了'I18n.available_locales = [:en,:'pt-BR「]? – 2013-02-12 22:38:02

回答

3

原來我設置它的罰款。問題是我的pt-BR.yml中有一個字節順序標記。顯然,heroku無法加載語言文件 - heroku not loading language file

我用vim中刪除與標記:

:set nobomb 
:w 
+0

不錯的一個。如果合適,您是否可以編輯您的問題或者回答錯誤或'heroku logs'的輸出,以便將它們歸因於BOM問題? – 2013-02-12 23:14:05

+0

怕沒有錯誤信息。這是如此難以取消的原因。我想通過試驗和錯誤沒有加載文件。 – DrewB 2013-02-13 02:29:06

+0

試驗和錯誤是一個艱難的瑣事:-)如果現在一切都很好,你能否把這標記爲每個人都能接受的答案。 – 2013-02-13 03:57:23

0

爲我工作,我已打開的文件,並與nobomb保存