18

現在、ルートアプリケーションのconfig/localesに次の4つのファイルがあります。

-en.yml
-de.yml
-simple_form.en.yml
-simple_form.de.yml

アプリケーションgemをテストするためのspec/dummyフォルダーにある私のapplication.rbには、期待どおりに翻訳を取得しているように見える次のコード行があります。

# 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

ここで、localesフォルダーのファイル構造に構造を導入したいと思いますが、フォルダーを追加してapplication.rbのロードパスを変更すると、 translationnotfoundエラーが発生します。これが私の試みです:

ルートアプリケーションの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}')]

次のRailsガイドによると:http: //guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-domain-name

4

5 に答える 5

14

ホストアプリケーションをテストするには、i18n.load_pathを、テスト目的のダミー仕様ではなく、メインアプリのconfigフォルダーに変更する必要があります。次のようにコーディングします。

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
config.i18n.default_locale = :en
于 2012-05-24T14:26:58.180 に答える
8

同様の問題がありました。この行をapplication.rb構成に追加して解決しました。

# load the subfolders in the locales
config.i18n.load_path += Dir["#{Rails.root.to_s}/config/locales/**/*.{rb,yml}"]
于 2012-09-12T08:51:13.707 に答える