【问题标题】:How to manage Rails 2.3.x i18n locales programatically?如何以编程方式管理 Rails 2.3.x i18n 语言环境?
【发布时间】:2011-01-21 17:19:14
【问题描述】:

我想知道是否有办法以编程方式插入、更改和删除 i18n 语言环境键(我想我可以使用 DB,但我喜欢 Rails i18n 并希望尽可能靠近它)。

基本上我想知道是否有办法(本机、gem、插件等)执行以下操作:

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")

【问题讨论】:

    标签: ruby-on-rails internationalization


    【解决方案1】:

    打包后,Rails I18n API 仅支持通过本地 .yaml 或 .rb 文件定义语言环境术语。如果没有在运行时动态编辑这些文件,最好的办法是使用像 FastGetText 这样的 gem gem 的 DB 功能。

    当然,您也可以推出自己的解决方案,但 DB 方法可能适用于您的用例,并且会减少时间投资。

    【讨论】:

      【解决方案2】:

      这是一种方法:

      >> I18n.backend.store_translations :en, :hello_world => "Hello, world."
      => {:hello_world=>"Hello, world."}
      >> I18n.t :hello_world
      => "Hello, world."
      

      【讨论】:

      • 此方法不会持久化新的翻译,导致 rails 重启时翻译丢失。
      猜你喜欢
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      • 2012-12-31
      相关资源
      最近更新 更多