我开始在Rails中填充一个en-yaml文件,我已经知道它很快就会变得混乱和失控.是否有一个惯例来组织这个文件?

到目前为止,我有这样的 struct :

language:
  resource:
    pages: # index, show, new, edit
      page html elements: # h1, title
  activerecord:
    attributes:
      model:
        property:

现在,我有以下几点想要融入到这个 struct 中,但我不确定如何做到:

  1. 航行
  2. 按钮文本(保存更改、创建帐户等)
  3. 来自控制器闪存的错误消息
  4. 如何添加多单词键.我使用空格还是下划线?对于exmaple,t(".update button"))或t(".update_button")

对区域设置文件 struct 有约定吗?

推荐答案

我发现,最好的总体策略是在一定程度上复制文件 struct ,以便在给定任何翻译的情况下,我可以立即找到它的调用来源.这给了我一些进行翻译的背景.

大多数应用程序翻译都在视图中找到,所以我最大的顶级名称空间通常是views.

我为控制器名称和正在使用的操作名称或部分创建子名称空间,例如:

  • views.users.index.title
  • views.articles._sidebar.header

这两个例子都应该清楚地表明我们正在翻译我的应用程序的哪一部分,以及在哪个文件中查找它.

您提到导航和按钮,如果它们是通用的,那么它们和视图对应项一样属于views.application名称空间:

  • views.application._main_nav.links.about_us-我们应用程序主导航部分的链接
  • views.application.buttons.save
  • views.application.buttons.create-我有一堆这样的按钮,可以在需要时使用

Flash消息是从控制器生成的,所以它们的顶级名称空间是...controllers! :)

我们对视图应用相同的逻辑:

  • controllers.users.create.flash.success|alert|notice

同样,如果你想提供像"Operation successful"这样的通用flash消息,你可以这样写:

  • controllers.application.create.flash.notice

最后,键可以是任何有效的YAML,但请坚持使用句点.作为分隔符,并按照惯例在单词之间加下划线_.

现在唯一需要解决的问题是,将rails的翻译放到它自己的名称空间中,以清理我们的顶层:)

Ruby-on-rails相关问答推荐

form_with正在try 用错误的路径生成操作

有没有一种方法可以点击一个按钮来冒泡到父元素?

Trailblazor 操作 -> 集合 :attribute(has_many 通过关联) 与填充器 -> 如何填充 Reform::Form 形式的 slugs 数组?

Ruby on Rails 让外键工作

为什么有时会出现类型错误没有将 StringIO 隐式转换为 String?Ruby /导轨

插件和 Ruby gem 之间的区别?

Mongoid 3 + Heroku (MongoHQ) 导致 Moped::Errors::OperationFailure

设计 token_authenticable 已弃用,有什么替代方案?

如何启动 rails 控制台并专门使用测试数据库?

你如何发布到 Capybara 中的 URL?

如何在 to_json 中获取回形针图像的 url

Rails: WickedPDF: 分页符

Rails:使用 RSpec 测试命名范围

从控制器中删除 Cookie

Rails 3:验证组合值

使用 RSpec 2 关闭一个规范的事务性固定装置

如何在同一个 Rails 控制器操作中处理多个 HTTP 方法

'respond_to' 格式语句中的 `:location => ...` 和 `head :ok` 是什么意思?

Coffeescript ||= 模拟?

简单的 rails rake 任务拒绝运行并出现错误不知道如何构建任务,为什么?