Post

ロケールファイルをサービス毎に分割したい

実現したこと

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)
This post is licensed under CC BY 4.0 by the author.