我正在尋找插件/ gem解決方案來擴展本地導軌i18n以將我的翻譯存儲到我的數據庫中。也許我使用了錯誤的搜索條件,但是我發現的只是信息,改變後端的方式實際上是可行的,而這個blog entry描述瞭如何編寫我自己的後端。Rails:在數據庫中存儲翻譯
很難想象,那些所有那些rails應用程序都有他們的翻譯存儲在yml文件或每個開發人員寫下自己的後端!
你知道這個工作解決方案嗎?在yml中存儲多行文本真的讓我失望! ;)
感謝和問候,
喬
我正在尋找插件/ gem解決方案來擴展本地導軌i18n以將我的翻譯存儲到我的數據庫中。也許我使用了錯誤的搜索條件,但是我發現的只是信息,改變後端的方式實際上是可行的,而這個blog entry描述瞭如何編寫我自己的後端。Rails:在數據庫中存儲翻譯
很難想象,那些所有那些rails應用程序都有他們的翻譯存儲在yml文件或每個開發人員寫下自己的後端!
你知道這個工作解決方案嗎?在yml中存儲多行文本真的讓我失望! ;)
感謝和問候,
喬
i18n內置了對使用數據庫作爲翻譯後端的支持。
創建遷移使用此代碼表:
create_table :translations do |t|
t.string :locale
t.string :key
t.text :value
t.text :interpolations
t.boolean :is_proc, :default => false
end
然後添加到config /初始化/ i18n.rb一個初始化與內容:
I18n.backend = I18n::Backend::ActiveRecord.new
而最後...把翻譯在桌子裏。例如:
locale key value
en Cool Cool
es Cool Frio
en nav.Home home
es nav.Home casa
...
截至i18n 0.5。0我相信他們將這些代碼移植到了它自己的寶石中......我忘記了那個寶石被稱爲什麼。
我終於找到了我與斯文福克斯的幫助下尋找:
Dylan Stamat的這個非常棒的插件完全可以實現名稱所指示的功能,並且可以處理緩存!
斯文也提到的,國際化/ active_record的當前分支提供了一個ActiveRecord後端還有:
http://github.com/svenfuchs/i18n/blob/active_record/lib/i18n/backend/active_record.rb
關於這個話題的一些討論的GOOLGE i18n的用戶組中的事:
http://groups.google.com/group/rails-i18n/browse_thread/thread/6b7ba3c401890a7e
問題解決了,謝謝I18n Sven Fuchs! ;)
好!很高興聽到你有一個很好的解決方案。感謝分享。 – 2009-08-30 21:39:37
我們與fast_gettext
它有一個帶有一個控制器在網上做翻譯一個DB支持後端一個很好的經驗。 緩存是內置的,儘管我們必須在引導時對代碼中的所有翻譯進行預加載代碼(速度要快得多,然後逐個緩存)。
Rails指南在這個主題上有一些內容(http://guides.rubyonrails.org/i18n.html#using-different-backends)。感謝您填補@Jason的空白! – captainpete 2013-03-08 05:40:41