ruby-on-rails – 动态加载从gem到磁盘引擎的I18n转换

栏目: Ruby · 发布时间: 6年前

内容简介:我创建了一个gem(TranslationsGem),我在多个项目(引擎和Rails应用程序)中使用它.这个gem设置了几个加载到I18n后端的哈希值.方法#store_dynamic_translations设置了几个加载到I18n后端的哈希值.它基本上是这样的:我的测试确认方法和翻译加载正常.但是我不能让它在主机引擎和Rails应用程序中工作.

我创建了一个gem(TranslationsGem),我在多个项目(引擎和Rails应用程序)中使用它.这个gem设置了几个加载到I18n后端的哈希值.

方法#store_dynamic_translations设置了几个加载到I18n后端的哈希值.它基本上是这样的:

I18n.backend.store_translations(:en, { test: { property: 'value' } })

我的测试确认方法和翻译加载正常.但是我不能让它在主机引擎和Rails应用程序中工作.

在我的测试环境中,我必须在test_helper中执行该方法,以确保正确加载转换.在测试环境之外,我似乎无法使其正常工作.我可以验证该方法是否已执行,但未加载转换.

我已经尝试了好几个小时,比如在 Engine initializer 中执行方法并使用ActiveSupport挂钩.在主机Rails应用程序中,我尝试在初始化程序中执行#store_dynamic_translations但无济于事.

奇怪的是,如果我在我的Rails应用程序控制器或视图中执行#store_dynamic_translations,它就可以运行.有没有办法在app启动时设置它?

编辑:我已经设置了 example repository which contains the current setup .

>一个Gem,它动态地将翻译存储到I18n后端.

>一个加载gem的Rails引擎,应该可以使用它的翻译

the test in question 中取消注释MyI18n :: Translations.store_dynamic_translations指令使测试通过.但我觉得应该可以在 engine initializer 内完成吗?


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Programming Amazon Web Services

Programming Amazon Web Services

James Murty / O'Reilly Media / 2008-3-25 / USD 49.99

Building on the success of its storefront and fulfillment services, Amazon now allows businesses to "rent" computing power, data storage and bandwidth on its vast network platform. This book demonstra......一起来看看 《Programming Amazon Web Services》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换