Организация файлов локалей в приложении rails
В настоящее время у меня есть следующие 4 файла в моей конфигурации/локалях моего корневого приложения:
-en.yml
-de.yml
-simple_form.en.yml
-simple_form.de.yml
В моем приложении .rb, который находится в папке spec/dummy для тестирования жемчуга приложения. У меня есть следующая строка кода, которая, кажется, извлекает переводы как Ожидаемый результат:
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.i18n.default_locale = :de
Теперь я хочу представить структуру в файловую структуру папки моих локалей, но когда я добавляю дополнительные папки и меняю путь загрузки в application.rb, я получаю перевод, который не найден ошибками. Вот моя попытка:
Попытайтесь включить структуру в config/locales моего корневого приложения:
-views
-en.yml
-de.yml
-models
-en.yml
-de.yml
-forms
-simple_form.en.yml
-simple_form.de.yml
И мой путь загрузки в application.rb изменился на:
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
В соответствии со следующим руководством по направляющим:
http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-domain-name
Ответы
Ответ 1
Чтобы протестировать хост-приложение, вам нужно изменить путь i18n.load_ в папку конфигурации вашего основного приложения, а не фиктивную спецификацию для целей тестирования. Код выглядит следующим образом:
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
config.i18n.default_locale = :en
Ответ 2
У меня была аналогичная проблема, я решил ее, добавив эту строку в мою конфигурацию application.rb:
# load the subfolders in the locales
config.i18n.load_path += Dir["#{Rails.root.to_s}/config/locales/**/*.{rb,yml}"]
Ответ 3
Следующие параметры работали для меня
config.i18n.load_path += Dir["#{Rails.root.to_s}/config/locales/**/*.yml"]
config.i18n.load_path += Dir["#{Rails.root.to_s}/config/locales/**/*.{rb,yml}"]
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**' '*.{rb,yml}').to_s]
После перезапуска веб-сервера, конечно...
Ответ 4
В config/application.rb
:
module PointsProject
class Application < Rails::Application
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
end
end
Из руководства Rails по интернационализации: http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-domain-name