Skip to content

Defining translations for nested forms in namespaced resources #693

@cestbalez

Description

@cestbalez

What I tried to do

I have the below setup

class BudgetLine < ApplicationRecord
  has_many :budget_line_items
  accepts_nested_attributes_for :budget_line_items
end

class BudgetLine::Accommodation < BudgetLine
end

class BudgetLineItem < ApplicationRecord
  belongs_to :budget_line
end

Now I'm trying to specify labels for the nested form of BudgetLineItem inside a BudgetLine::Accommodation form.

What I expected to happen

According to the i18n documentation, you can normally do something like this:

en:
  activerecord:
    attributes:
      user/role:
        admin: "Admin"
        contributor: "Contributor"

What actually happened

This works if the model in question is not namespaced, as with User above. However, when you want to specify a namespaced model it has the same syntax with '/', so it becomes:

en:
  activerecord:
    attributes:
      budget_line/accommodation/budget_line_items:
        unit: Room

which does not work.

I've tried different variations of this, e.g.

en:
  activerecord:
    attributes:
      budget_line:
        accommodation/budget_line_items:
          unit: Room

which also does not work, because this way of specifying namespaces in locales seems to be deprecated..?

As far as I understand, if the label is to be translated correctly in my case, the following should return the correct translation: BudgetLine::Accommodation.human_attribute_name("budget_line_items.unit"), but so far I've been unsuccessful in my attempts to target this.

I'm not sure if this is a limitation with the library, of if there's something I'm missing here..?

Versions of i18n, rails, and anything else you think is necessary

i18n (1.14.4)
rails (7.1.3.2)
´´´

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions