Ruby on rails 区域设置和…authlogic出错?

Ruby on rails 区域设置和…authlogic出错?,ruby-on-rails,ruby-on-rails-3,authlogic,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Authlogic,Ruby On Rails 3.2,我有一份法语申请表。当我运行我的应用程序并测试一个表单时,我有一条英文消息“Email:应该看起来像电子邮件地址”。当我保存我的“fr.yml”时,我有一条信息:“Email:ne semble pasêtre une adrese Email”,用法语,就像我想要的那样。它只出现在authlogic的字段中,上个月它使用相同的代码工作 这是application.rb提供的: require File.expand_path('../boot', __FILE__) # Pick t

我有一份法语申请表。当我运行我的应用程序并测试一个表单时,我有一条英文消息“Email:应该看起来像电子邮件地址”。当我保存我的“fr.yml”时,我有一条信息:“Email:ne semble pasêtre une adrese Email”,用法语,就像我想要的那样。它只出现在authlogic的字段中,上个月它使用相同的代码工作

这是application.rb提供的:

  require File.expand_path('../boot', __FILE__)

  # Pick the frameworks you want:
  require "active_record/railtie"
  require "action_controller/railtie"
  require "action_mailer/railtie"
  require "active_resource/railtie"
  require "sprockets/railtie"
  # require "rails/test_unit/railtie"

  if defined?(Bundler)
    # If you precompile assets before deploying to production, use this line
    Bundler.require(*Rails.groups(:assets => %w(development test)))
    # If you want your assets lazily compiled in production, use this line
    # Bundler.require(:default, :assets, Rails.env)
  end

  module Onopia
    class Application < Rails::Application
      # Settings in config/environments/* take precedence over those specified here.
      # Application configuration should go into files in config/initializers
      # -- all .rb files in that directory are automatically loaded.

      # Custom directories with classes and modules you want to be autoloadable.
      # config.autoload_paths += %W(#{config.root}/extras)

      # Only load the plugins named here, in the order given (default is alphabetical).
      # :all can be used as a placeholder for all plugins not explicitly named.
      # config.plugins = [ :exception_notification, :ssl_requirement, :all ]

      # Activate observers that should always be running.
      # config.active_record.observers = :cacher, :garbage_collector, :forum_observer

      # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
      # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
      # config.time_zone = 'Central Time (US & Canada)'

      # 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 = :fr

      # Configure the default encoding used in templates for Ruby 1.9.
      config.encoding = "utf-8"

      # Configure sensitive parameters which will be filtered from the log file.
      config.filter_parameters += [:password]

      # Enable the asset pipeline
      config.assets.enabled = true

      # Version of your assets, change this if you want to expire all your assets
      config.assets.version = '1.1'

      # Configure generators values. Many other options are available,
      # be sure to check the documentation.
      #config.generators do |g|
      #  g.test_framework :rspec, :fixture => false
      #end

      config.action_mailer.default_url_options = { :host => 'localhost:3000' }
      config.assets.initialize_on_precompile = false
    end

    if defined?(Bundler)
      Bundler.require(:default, :assets, Rails.env)
    end
  end
这是我的朋友yml:

    # French translations for Ruby on Rails
    # by Christian Lescuyer (christian@flyingcoders.com)
    # contributors:
    # - Sebastien Grosjean - ZenCocoon.com
    # - Bruno Michel - http://github.com/nono
    # - Tsutomu Kuroda - http://github.com/kuroda (t-kuroda@oiax.jp)

    fr:
      date:
        formats:
          default: "%d/%m/%Y"
          short: "%e %b"
          long: "%e %B %Y"
        day_names:
          - lundi
          - mardi
          - mercredi
          - jeudi
          - vendredi
          - samedi
          - dimanche
        abbr_day_names:
          - lun
          - mar
          - mer
          - jeu
          - ven
          - sam
          - dim
        month_names:
          - ~
          - janvier
          - février
          - mars
          - avril
          - mai
          - juin
          - juillet
          - août
          - septembre
          - octobre
          - novembre
          - décembre
        abbr_month_names:
          - ~
          - jan.
          - fév.
          - mar.
          - avr.
          - mai
          - juin
          - juil.
          - août
          - sept.
          - oct.
          - nov.
          - déc.
        order:
          - :day
          - :month
          - :year

      time:
        formats:
          default: "%d %B %Y %H:%M:%S"
          short: "%d %b %H:%M"
          long: "%A %d %B %Y %H:%M"
        am: 'am'
        pm: 'pm'

      datetime:
        distance_in_words:
          half_a_minute: "une demi-minute"
          less_than_x_seconds:
            zero: "moins d'une seconde"
            one: "moins d'une seconde"
            other: "moins de %{count} secondes"
          x_seconds:
            one: "1 seconde"
            other: "%{count} secondes"
          less_than_x_minutes:
            zero: "moins d'une minute"
            one: "moins d'une minute"
            other: "moins de %{count} minutes"
          x_minutes:
            one: "1 minute"
            other: "%{count} minutes"
          about_x_hours:
            one: "environ une heure"
            other: "environ %{count} heures"
          x_days:
            one: "1 jour"
            other: "%{count} jours"
          about_x_months:
            one: "environ un mois"
            other: "environ %{count} mois"
          x_months:
            one: "1 mois"
            other: "%{count} mois"
          about_x_years:
            one: "environ un an"
            other: "environ %{count} ans"
          over_x_years:
            one: "plus d'un an"
            other: "plus de %{count} ans"
          almost_x_years:
            one: "presqu'un an"
            other: "presque %{count} ans"
        prompts:
          year: "Année"
          month: "Mois"
          day: "Jour"
          hour: "Heure"
          minute: "Minute"
          second: "Seconde"

      number:
        format:
          separator: ","
          delimiter: " "
          precision: 3
          significant: false
          strip_insignificant_zeros: false
        currency:
          format:
            format: "%n %u"
            unit: "€"
            separator: ","
            delimiter: " "
            precision: 2
            significant: false
            strip_insignificant_zeros: false
        percentage:
          format:
            delimiter: ""
        precision:
          format:
            delimiter: ""
        human:
          format:
            delimiter: ""
            precision: 2
            significant: true
            strip_insignificant_zeros: true
          storage_units:
            format: "%n %u"
            units:
              byte:
                one: "octet"
                other: "octets"
              kb: "ko"
              mb: "Mo"
              gb: "Go"
              tb: "To"
          decimal_units:
            format: "%n %u"
            units:
              unit: ""
              thousand: "millier"
              million: "million"
              billion: "milliard"
              trillion: "billion"
              quadrillion: "million de milliards"

      support:
        array:
          words_connector: ", "
          two_words_connector: " et "
          last_word_connector: " et "
        select:
          prompt: "Veuillez sélectionner"

      helpers:
        select:
          prompt: "Veuillez sélectionner"
        submit:
          create: "Créer un %{model}"
          update: "Modifier ce %{model}"
          submit: "Enregistrer ce %{model}"

      attributes:
        created_at: "Créé le"
        updated_at: "Modifié le"

      errors:
        format: "%{attribute} : %{message}"
        messages: &errors_messages
          inclusion: "n'est pas inclus(e) dans la liste"
          exclusion: "n'est pas disponible"
          invalid: "n'est pas valide"
          confirmation: "ne concorde pas avec la confirmation"
          accepted: "doit être accepté(e)"
          empty: "doit être rempli(e)"
          blank: "doit être rempli(e)"
          too_long: "est trop long (pas plus de %{count} caractères)"
          too_short: "est trop court (au moins %{count} caractères)"
          wrong_length: "ne fait pas la bonne longueur (doit comporter %{count} caractères)"
          not_a_number: "n'est pas un nombre"
          not_an_integer: "doit être un nombre entier"
          greater_than: "doit être supérieur à %{count}"
          greater_than_or_equal_to: "doit être supérieur ou égal à %{count}"
          equal_to: "doit être égal à %{count}"
          less_than: "doit être inférieur à %{count}"
          less_than_or_equal_to: "doit être inférieur ou égal à %{count}"
          odd: "doit être impair"
          even: "doit être pair"
        template: &errors_template
          header:
            one: "Impossible d'enregistrer ce %{model} : 1 erreur"
            other: "Impossible d'enregistrer ce %{model} : %{count} erreurs"
          body: "Veuillez vérifier les champs suivants : "

      activerecord:
        errors:
          messages:
            taken: "n'est pas disponible"
            record_invalid: "La validation a échoué : %{errors}"
            <<: *errors_messages
          template:
            <<: *errors_template
          full_messages:
            format: "%{attribute} %{message}"

        attributes:
          models:
            user: Utilisateur
            account: "Compte"
            bank: "Banque"
          user:
            username: Pseudo
            email: Email
            password: Mot de passe
          account:
            login: "Identifiant"
            password: "Mot de passe"
            account_type_id: "Type"

      home:
        successfully_updated: "Votre mot de passe a été modifié"
        index:
          submit: "Valider"
          remember: 'Me rappeler mon not de passe'

      authlogic:
        error_messages:
          login_blank: "doit être rempli(e)"
          login_not_found: "n'est pas valide"
          login_invalid: "doit contenir uniquement des lettres, des nombres, des espaces, et .-_@ s'il vous plaît."
          consecutive_failed_logins_limit_exceeded: La limit de tentatives de connexion consectuives a été dépassée. Le compte à été désactivé.
          email_invalid: ne semble pas être une adresse email
          password_blank: "doit être rempli(e)"
          password_invalid: "n'est pas valide"
          not_active: "Votre compte n'est pas actif"
          not_confirmed: "Votre compte n'est pas confirmé"
          not_approved: "Votre compte n'est pas approuvé"
          no_authentication_details: "Vous n'avez pas fournis les details pour vous authentifier."
        models:
          user: "Utilisateur"
          user_session: "Session utilisateur"
        attributes:
          user_session:
            username: Pseudo
            login: Login
            email: Email
            password: "Mot de passe"
            remember_me: "se souvenir de moi"

      simple_captcha:
        label: "Veuillez saisir le code ci-dessous:"
        message:
          user: "le code de sécurité n'est pas valide"
当我测试I18n.t('error\u messages.email\u invalid')时,我收到以下消息:

    translation missing: en.authlogic.error_messages.email_invalid 
因此,authlogic接受默认消息。当我尝试这个:

    Onopia::Application.config.i18n.default_locale 
我有:

    :fr

我不明白。可能在我的区域设置之前加载了authlogic???

application.rb
中,还设置了当前区域设置:

i18n.config.default_locale = :fr
i18n.config.locale = :fr

不要问我为什么:)

application.rb
中,还要设置当前区域设置:

i18n.config.default_locale = :fr
i18n.config.locale = :fr

不要问我为什么:)

我刚刚遇到了一个类似的问题。My application.rb将i18n.config.default_区域设置为:nl,但在运行rake db:seed时,区域设置为:enI遇到了类似的问题。My application.rb将i18n.config.default_locale设置为:nl,但在运行rake db:seed时,该区域设置为:enThis确实是正确的,是解决问题的好办法(此处也引用了:)。这确实是正确的,也是解决问题的好办法(此处也引用了:)。
i18n.config.default_locale = :fr
i18n.config.locale = :fr