如何以编程方式管理Rails 2.3.x i18n语言环境?

时间:2011-01-21 17:19:14

标签: ruby-on-rails internationalization

我想知道是否有办法以编程方式插入,更改和删除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")

2 个答案:

答案 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."