ロケールファイルをサービス毎に分割したい
実現したこと
defaultの設定にサービス毎に必要な箇所のメッセージを上書きする
構成
config/locales/
├── ja.yml
└── service1
└── ja.yml
└── service2
└── ja.yml
修正
---
ja:
application:
environment:
production: "本番環境"
staging: "ステージング環境"
test: "テスト環境"
development: "開発環境"
...
---
ja:
application:
environment:
test: "サービス1テスト環境"
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', ENV["SERVICE"], '**', '*.{rb,yml}').to_s]
確認
$ SERVICE=service1 bundle exec rails c
[1] pry(main)> I18n.t("application.environment.production")
=> "本番環境"
[2] pry(main)> I18n.t("application.environment.development")
=> "サービス1開発環境"
[Railsのロケールファイルを分割する カナのLinux](https://kana-linux.info/rails/rails%E3%81%AE%E3%83%AD%E3%82%B1%E3%83%BC%E3%83%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%88%86%E5%89%B2%E3%81%99%E3%82%8B)