1

我有一些包含翻译的表格。为了简化对所有翻译的访问并缓存它们,我在 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

它工作得很好,但在开发中,有时翻译存储会被重置,我会丢失之前添加的翻译。

它发生在生产中吗?我可以使用回调来重新填充我的翻译吗?还是有更好的方法来做我想做的事?

4

2 回答 2

1

有更好的方法来做到这一点。它被称为 I18n 后端,您可以在指南中了解它们:http: //guides.rubyonrails.org/i18n.html#using-different-backends

也可以链接后端,以便您可以为翻译建立后备。I18n 是一个非常强大的库,仔细查看文档https://github.com/svenfuchs/rails-i18n

于 2012-02-14T19:40:26.690 回答
0

在 seed.rb 脚本或仅在 config/locale 文件中添加您的翻译。

于 2012-02-14T16:07:11.063 回答