我有一些包含翻译的表格。为了简化对所有翻译的访问并缓存它们,我在 Rails 初始化之后管理读取表并将它们的内容注入翻译存储中。
#store translations in the I18n store
I18n.available_locales.each do |lang|
storage_hash = {:text => {}, :permalink => {}}
Translation.where(:translatable_type => self.name, :language=> lang).each do |c|
storage_hash[:text][c.translatable_id.to_s] = c.text
storage_hash[:permalink][c.translatable_id.to_s] = c.permalink
end
I18n.backend.store_translations(lang, self.name.downcase => storage_hash)
end
它工作得很好,但在开发中,有时翻译存储会被重置,我会丢失之前添加的翻译。
它发生在生产中吗?我可以使用回调来重新填充我的翻译吗?还是有更好的方法来做我想做的事?