Rails I18n,响应对象的占位符

时间:2018-12-14 01:56:53

标签: ruby-on-rails ruby internationalization

在Rails i18n上,如何组织响应对象的属性占位符?

我正在开发JSON API。 例如,/api/v1/books/:id返回这样的对象。

{
  id: integer,
  name: string,
  author_name: string
}

如果这本书的作者被删除或缺席,我想返回Unknown Author字符串作为author_name的值。 我想用I18n管理字符串Unknown Author。 放置占位符的位置最好是哪个命名空间?

我正在考虑将其放在view下。像这样

views:
  books:
    show:
      unknown_author: Unknown Author

1 个答案:

答案 0 :(得分:0)

可以根据rails约定组织区域设置文件。因此config / locales目录为:

|-defaults
|---es.rb
|---en.rb
|-models
|---book
|-----es.rb
|-----en.rb
|-views
|---defaults
|-----es.rb
|-----en.rb
|---books
|-----es.rb
|-----en.rb
|---users
|-----es.rb
|-----en.rb
|---navigation
|-----es.rb
|-----en.rb

要访问这些语言环境,我们需要明确告诉rails:

# config/application.rb
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]

因此,在books views语言环境文件中,我们可以编写:

    show:
      unknown_author: Unknown Author