7

国際化を機能させるために、active_adminをバージョン0.3.0に更新しました。しかし、私はそれに問題があります。

pl.ymlファイルをactiveadminセクションで更新しました。これは次のようになります。

pl:  
  active_admin:
    blank_slate:
      content: "Nie ma jeszcze rekordów."
      link: "Nowy"
    dashboard: "Dashboard2"
    view: "Podgląd"

これは機能しなかったので、このコードをapplication.rbに追加してみました。

    config.before_configuration do
      I18n.locale = :pl
      I18n.load_path += Dir[Rails.root.join('config', 'locales', '*', '.{rb,yml}')]
      I18n.reload!
    end

現在、国際化は開発環境で機能しているようですが、他の環境ではまだ問題があります。ダッシュボードに問題があります:キー。通常、要するに、I18nがキーを見つけられない場合、キーを配置します。大文字の場合、この例では「ダッシュボード」になります。しかし、私の場合、私はこのようなものを持っています:

開発:
発達

製造:
製造

同じ問題を抱えている人はいますか?私は何か間違ったことをしていますか、それともこれはactiveadminのバグですか?解決策はありますか?

4

4 に答える 4

8

私も同じ問題を抱えていました。本番環境と開発環境の両方で機能させるには、これを行う必要がありました。

config.before_configuration do
  I18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
  I18n.locale = :nl
  I18n.default_locale = :nl
  config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
  config.i18n.locale = :nl
  # bypasses rails bug with i18n in production\
  I18n.reload!
  config.i18n.reload!
end

config.i18n.locale = :nl
config.i18n.default_locale = :nl

あまりきれいではありませんが、おそらくRailsのバグが原因です。

于 2011-11-02T21:45:55.730 に答える
4

application.rbで

config.i18n.default_locale = :fr
I18n.locale = config.i18n.locale = config.i18n.default_locale
I18n.reload!
于 2012-10-12T09:51:33.257 に答える
2

主な理由は次のとおりです。Railsがエンドユーザーのブラウザーからロケールを選択しましたが、構成ファイルは選択していません。たとえば、日本人が英語を使用してブラウザでWebサイトにアクセスしている場合、Railsアプリは「英語」のテキストを表示しますが、表示したい日本語は表示しません。

Rails i18nドキュメント:http://guides.rubyonrails.org/i18n.htmlによるとまず最初に次のことを行う必要があります。

  1. config / application.rbを編集して、default_localeを設定します

    config.i18n.default_locale = :cn
    
  2. app / controllers / application_controller.rbを編集して、before_filterを追加します

    before_filter :set_locale
    # for those user whose browser is not using our default_locale, e.g. a Chinese using English broser,
    # just like me. :)
    def set_locale
      I18n.locale = params[:local] || I18n.default_locale
    end
    
  3. この場合、デフォルトのロケールとして「cn」が必要です。

  4. これらのコード行を任意のページに追加して、ビューページを確認してください。例えば

    # in products/index.html.erb
    <h1>Products List</h1>
    default_locale is: <%= I18n.default_locale %> <br/>
    current_locale is: <%= I18n.locale %>
    
  5. 出力結果は次のようになります。

    Products List
    default_locale is: cn 
    current_locale is: cn          
    

    Railsアプリケーションは期待どおりに機能するはずです。

于 2012-03-27T03:18:34.443 に答える
2

うまくいくと思われる別の方法は、次のように初期化子を作成することです。

# config/initializers/i18n_reload.rb
Rails.configuration.after_initialize do
  I18n.reload!
end
于 2013-03-29T10:54:53.677 に答える