我想知道是否有办法以编程方式插入,更改和删除i18n语言环境键(我想我可以使用数据库,但我喜欢Rails i18n并希望尽可能保持接近它。)< / p>
基本上我想知道是否有办法(原生,宝石,插件,等等)做以下事情:
I18n.add_locale_key("en", "application.messages.submit_message", "Submit message!")
I18n.add_locale_key("es", "application.messages.submit_message", "Enviar mensaje!")
I18n.remove_locale_key("en", "application.messages.submit_message")
I18n.remove_locale_key("es", "application.messages.submit_message")
答案 0 :(得分:2)
打包时,Rails I18n API仅支持通过本地.yaml或.rb文件定义区域设置术语。如果没有在运行时动态编辑这些文件,最好的办法是使用像FastGetText这样的宝石宝石的数据库功能。
当然,您也可以推出自己的解决方案,但数据库方法可能适用于您的用例,并且可以缩短投资时间。
答案 1 :(得分:2)
这是一种方法:
>> I18n.backend.store_translations :en, :hello_world => "Hello, world."
=> {:hello_world=>"Hello, world."}
>> I18n.t :hello_world
=> "Hello, world."