#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, отображаемые в виде хэша, которые доступны в контексте частичного. Дает ли это вам какое-либо представление?