В моем проекте rails есть два разных I18n.load_path и I18n.locale - PullRequest
0 голосов
/ 17 октября 2019

Итак, я перевожу свой проект на разные языки. Я уже перевел почти весь мой код из папки / app / views / и / lib / modules /. У меня не было проблем с этим.

Теперь я хочу перевести файл, который говорит мне, что «I18n.locale» отличается от того, который у меня есть, и load_path также неверен.

Итак, I18n хорошо работает с файлами, которые я упоминал ранее, уже переводит на испанский. но когда я попадаю в этот файл, он говорит мне, что локаль: en (по умолчанию) и load_path неверен, ищет локали только в некоторых драгоценных камнях, таких как paperclip (я думаю, это load_path по умолчанию).

Я очень смущен. Почему на этот файл не повлияли переменные, установленные из application.rb? Почему в моем проекте два разных I18n.locale? Как я могу решить эту проблему?

Я уже решил проблему load_path, снова загрузив путь в этом файле, как в application.rb, но с I18n.locale отличается, так как я должен взятьпользователь в базе данных назначил его, но, очевидно, я не могу этого сделать, так как User.all выдает ошибку, я не могу получить пользователей из своей базы данных, но могу выполнять другие запросы.

Чтоэто происходит? Заранее спасибо.

edit: btw это мой первый вопрос, поэтому будьте осторожны со мной:)

edit2: файл не является ни классом, ни модулем, он просто требует от другихмодуль и установка некоторых переменных. Файл находится в lib / file_with_problem.rb

1 Ответ

0 голосов
/ 07 ноября 2019

На всякий случай, если кто-нибудь сталкивается с этой проблемой, когда в определенных файлах у них нет правильного load_path из I18n, я решил, используя глобальную переменную для I18n в application.rb Итак, если у меня было это:

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

Решаю, добавляя те же строки, но без конфига и с первой буквой заглавными буквами.

I18n.load_path += Dir["#{config.root}/lib/modules/#{module_name}/config/locales/*.yml"]
I18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
...