2010-10-28 97 views
4

在我的Rails應用程序中,我想同時使用2個後端,第一個將轉換存儲在數據庫中,第二個後端是基於默認YML的後端。我希望這第二個後端可以作爲後備後端,也就是說,如果在第一個後端找不到翻譯,Rails會在第二個後端查找翻譯。是否可以同時使用2個I18n後端,並將第二個後端僅用作後備?

是否有可能實現這一目標?

編輯

我的動機是我想不會有到默認Rails的翻譯存儲在第一後端。我使用的第一個後端帶有一個管理Web界面,顯示後端中包含的所有翻譯,我不想用這些默認翻譯混淆這個界面。我不想在第一個後端導入它們,也不必在實現時更新它們。

+1

你爲什麼要這麼做?將翻譯存儲在一個後端是否更容易一勞永逸? – 2010-10-28 16:16:22

回答

3

國際珠寶這樣做,並與鐵路兼容。其實它建議使用它。

從的I18n ::後端::鏈的RDoc的:

後端,當翻譯需要多個連鎖其它後端,並檢查他們每個人 來進行查找。當您希望 使用帶有簡單後端的標準翻譯,但將自定義 應用程序翻譯存儲在數據庫或其他後端中時,此功能非常有用。

要使用Chain後端實例化它並將其設置爲I18n模塊。 你可以通過初始化或後端添加鏈接的後端 訪問:

# preserves the existing Simple backend set to I18n.backend 
I18n.backend = I18n::Backend::Chain.new(I18n::Backend::ActiveRecord.new, I18n.backend) 

的實現假定加入連鎖 所有的後端實現具有相同的API作爲簡單的後端進行查找方法。

+0

謝謝balu!這正是我需要的。 – Florent2 2010-11-02 02:05:37

相關問題