在我的Rails应用程序中,我想同时使用2个后端,第一个是在DB中存储翻译,第二个是默认的基于YML的后端。我觉得这个第二个后端用作后备后端,即如果在第一个后端找不到翻译,Rails会在第二个后端查找翻译。
有可能实现吗?
修改:
我的动机是我不想在第一个后端存储默认的Rails翻译。我使用的第一个后端带有一个管理Web界面,显示后端包含的所有翻译,我不想让这个界面与这些默认翻译混乱。我希望不必在第一个后端导入它们,也不必在实现时更新它们。
答案 0 :(得分:3)
i18n gem就是这样做的,并且与rails兼容。实际上建议使用它。
来自I18n :: Backend :: Chain:
的rdoc后端链接多个其他后端并检查每个后端 何时需要查找翻译。这在你想要的时候非常有用 使用标准翻译与简单后端但存储自定义 应用程序翻译在数据库或其他后端。
使用Chain后端实例化它并将其设置为I18n模块。 您可以通过初始化程序或后端添加链接后端 存取器:
# preserves the existing Simple backend set to I18n.backend I18n.backend = I18n::Backend::Chain.new(I18n::Backend::ActiveRecord.new, I18n.backend)
该实现假定所有后端都添加到Chain 使用与Simple backend相同的API实现查找方法。