rails i18n懒惰查找模块控制器

时间:2017-03-27 03:47:18

标签: ruby-on-rails internationalization

如果我有一个像这样的模块Api::V1的控制器

class Api::V1::UsersController < Api::ApiController
  def index
    print I18n.t('.messages')
    ...
  end
end

如何编写本地化文件en.yml,以便我可以在控制器文件中使用延迟查找功能?

我试过了

en:
  api/v1/users:
    index:
      messages: test message

但它没有用。任何建议将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:0)

我对此不太确定。但你可以尝试

en:
  api:
    v1:
      users:
        index:
          messages: test message

答案 1 :(得分:0)

首次使用

en:
  api:
    users:

等。正如@sajin所建议的那样。

然后在没有print t('.messages')的情况下使用print I18n.t('.messages')而不是I18n来使用translate的控制器实现,而不是I18n中的常规实现。

答案 2 :(得分:0)

修复了这个重复使用的Yaml翻译块:

pt-BR:
  lazy: &lazy
    destroy:
      success: 'Competição removida com sucesso!'
    create:
      success: 'Competição foi criada com sucesso!'
    update:
      success: 'Competição foi alterada com sucesso!'
  swimming_competitions: 
    <<: *lazy
  admin:
    swimming_competitions:
      <<: *lazy