복붙노트

[RUBY-ON-RAILS] 레일 국제화 검증 중단 경고

RUBY-ON-RAILS

레일 국제화 검증 중단 경고

난 그냥 레일 4.0.2로 업데이트 나는이 경고를 받고 있어요 :

false로 설정에서 보안 문제가 있습니까?

해결법

  1. ==============================

    1.중요 : 반드시 앱이 국제화 0.6.8를 사용하지 않는, 그것은 방지 구성이 올바르게 설정 될 수있는 버그가 있습니다.

    중요 : 반드시 앱이 국제화 0.6.8를 사용하지 않는, 그것은 방지 구성이 올바르게 설정 될 수있는 버그가 있습니다.

    application.rb 파일을 경고 편집 침묵 다음과 같은 레일 안쪽 라인 : 응용 프로그램 본체를 포함하기 위해,

    config.i18n.enforce_available_locales = true
    

    가능한 값은 다음과 같습니다

    노트 :

    require File.expand_path('../boot', __FILE__)
    
    # ...
    
    module YouApplication
      class Application < Rails::Application
    
        # ...
    
        config.i18n.enforce_available_locales = true
        # or if one of your gem compete for pre-loading, use
        I18n.config.enforce_available_locales = true
    
        # ...
    
      end
    end
    

    사용 중단 경고 해주기 레일 (4) (> = 4.0.2)와 레일 3.2 (> = 3.2.14)에 모두 표시된다. 그 이유는이 커밋에 설명되어 있습니다.

    (은 / 설정 / 로케일 폴더에 해당 로케일 파일이있는 경우 예) 지원되지 않는 지역을 통과하는 경우 로케일이 유효한 경우이 변경하기 전에, 레일은 자동으로 그것을 전환 것이다, 그렇지 않으면 로케일은 config.i18n 기본값 것 .default_locale 구성 (에있는 기본값 : 엔).

    국제화 (i18n) 보석의 새로운 버전, 힘 개발자는 로케일 관리에 조금 더 의식한다.

    앞으로 동작이 변경됩니다 및 로케일이 유효하지 않은 경우, 레일 응용 프로그램에서 오류가 발생합니다.

    (잠재적으로 오늘까지 침묵 기본값에 의존하고있었습니다 것을 여러 응용 프로그램을 중단 할 수있다)와 같은 변화의 준비에서 경고가 명시 적으로 현재 전환 기간 동안 수행 할 유효성 검사를 선언 강요한다.

    이전 동작을 복원하려면 false로 다음과 같은 구성을 설정

    config.i18n.enforce_available_locales = false
    

    그렇지 않으면, 새로운 레일 기본값과 일치하도록 true로 설정하거나 유효하지 않은 로케일의 경우 기본값으로 도메인 검증과 피할 전환에 더 엄격한되고 싶어합니다.

    config.i18n.enforce_available_locales = true
    
  2. ==============================

    2.그냥 완전성에 대해, 당신은 또한에서 설정 / application.rb 사실 (또는 false)에 I18n.enforce_available_locales를 설정하여 경고를 제거 할 수 있습니다 :

    그냥 완전성에 대해, 당신은 또한에서 설정 / application.rb 사실 (또는 false)에 I18n.enforce_available_locales를 설정하여 경고를 제거 할 수 있습니다 :

    require File.expand_path('../boot', __FILE__)
    .
    .
    .
    module SampleApp
      class Application < Rails::Application
        .
        .
        .
        I18n.enforce_available_locales = true
        .
        .
        .
      end
    end
    
  3. ==============================

    3.I18n.config.enforce_available_locales이 = 사실은 레일 3.2.16에서 나를 위해 일한 (I는 설정 / application.rb에 넣어)

    I18n.config.enforce_available_locales이 = 사실은 레일 3.2.16에서 나를 위해 일한 (I는 설정 / application.rb에 넣어)

  4. ==============================

    4.사용 가능한 구현되지 로케일 / 요청할 때 (참) 새 동작에서 오류가 발생합니다 - 방식 국제화 작업의 이전 동작 것 - 그렇게 보이지 않는다.

    사용 가능한 구현되지 로케일 / 요청할 때 (참) 새 동작에서 오류가 발생합니다 - 방식 국제화 작업의 이전 동작 것 - 그렇게 보이지 않는다.

    https://github.com/svenfuchs/i18n/commit/3b6e56e06fd70f6e4507996b017238505e66608c 다음은이 추가이 경고를 저지 참조

  5. ==============================

    5.당신이 로케일에 대해 신경하려면 application.rb 파일로 작성합니다.

    당신이 로케일에 대해 신경하려면 application.rb 파일로 작성합니다.

    config.i18n.enforce_available_locales = true
    

    당신은 로케일 검증 경우는 false를 작성할 수 있으며, 그것에 대해 걱정하지 않는다.

  6. from https://stackoverflow.com/questions/20361428/rails-i18n-validation-deprecation-warning by cc-by-sa and MIT license