rails 里面使用多语言,只有 zh 与 en 的时候,都很正常的,但是 zh 换成 zh-CN 和 zh-TW 后,就只认 zh-TW 了,而忽略了 zh-CN,这是为什么?
application.rb
config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] config.i18n.default_locale = :en
application_controller.rb
def set_locale logger.debug "* Accept-Language: #{request.env['HTTP_ACCEPT_LANGUAGE']}" I18n.locale = extract_locale_from_accept_language_header logger.debug "* Locale set to '#{I18n.locale}'" end private def extract_locale_from_accept_language_header request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/).first end