rails 2.3.5 + I18n: テンプレート選択時の問題

app/users/ ディレクトリに以下のテンプレートファイルがあるとする:

  • index.html.erb
  • index.en.html.erb
  • index.zh-CN.html.erb

I18n.default_locale に :ja をセットして users#index をレンダリングするとどうなるか。

普通に考えれば index.html.erb が選ばれるはずだが、何と index.zh-CN.html.erb が選ばれてしまう。

index.ja.html.erb が存在すればそちらが選ばれるが、日本語をデフォルトにできないのだ。これはもちろん Rails のバグである。

この問題は、index.zh-CN.html.erb がなければ生じない。また、Rails 3.0 でも生じない。