Как я могу избежать использования полного маршрута yaml для перевода локализаций?

#ruby-on-rails #yaml #internationalization #locale

Вопрос:

Я работаю над представлением, управляемым Admin::AccountPresetCustomFieldsController контроллером.

У меня есть папка partials views/admin/account_preset_custom_fields/partials , и я пытаюсь перевести файл, хранящийся в этой папке, но мне не удается сделать что-то подобное t(".field_to_be_translated") , но мне приходится прибегать к указанию всего маршрута следующим образом: t("admin.account_preset_custom_fields.partials.partial_file_name.field_to_be_translated) .

Моя controller.en.yml внешность выглядит так:

 en:
  admin:
    account_preset_custom_fields:
      partials:
        partial_file_name:
          field_to_be_translated: Translation
 

Я в замешательстве, потому что в других частях нашего приложения я могу просто сделать t(".field_to_be_translated") и, если отступ в тексте .yml правильный, он сразу же выберет перевод.

Любая помощь будет признательна.

Комментарии:

1. Я думаю, что частичные файлы не могут находиться во вложенной папке, Rails выглядит в admin/account_preset_custom_fields/partial_file_name/field_to_be_translated, поэтому переместите частичные файлы в один каталог и удалите частичные: в yaml

2. @LesNightingill На самом деле у меня есть та же схема для модального окна, которое находится внутри папки partials, поэтому я не думаю, что в этом проблема. Спасибо.

3. является ли модальное окно частичным? Если это так, то вы правы, структура каталогов, вероятно, не является проблемой. Однако у ActionView есть особое соглашение относительно частичных элементов. В любом случае, это быстро, чтобы попытаться понять, верно?

4. @LesNightingill ну, я переместил файлы за пределы папки partials, где находятся файлы индекса и другие файлы представления действий, и он все еще не принимает перевод. Я обновил схему yaml, удалив ключ partials, но он все равно не будет работать. Я в еще большем замешательстве, чем раньше. Дважды проверьте, совпадает ли ключ с именем контроллера.

5. если вы помещаете оператор отладчика в частичное и прерываете во время визуализации представления, то в консоли, которая появляется, когда код попадает в оператор отладчика, вы можете ввести translate («.»), и вы увидите все yaml, отображаемые в виде хэша, которые доступны в контексте частичного. Дает ли это вам какое-либо представление?