2013-12-10 16 views
9

Bạn đặt một cái gì đó như thế này trong config/application.rbRails i18n cảnh báo xác nhận deprecation, sau khi cài đặt enforce_available_locales = true

I18n.enforce_available_locales = true           
config.i18n.load_path += Dir[Rails.root.join('config/locales/', '*.{rb,yml}').to_s] 
config.i18n.available_locales = ['es-LA', :en]        
config.i18n.default_locale = 'es-LA' 

Và cảnh báo vẫn xuất hiện:

[deprecated] I18n.enforce_available_locales will default to true in the future. 
+1

Đối với những người khác ngại khi này với tìm kiếm, kiểm tra ruby ​​trên đường ray hướng dẫn, cấu hình đường ray, i18n. Liên kết tài liệu cạnh này có mới nhất: http://edgeguides.rubyonrails.org/configuring.html#configuring-i18n Ứng dụng của tôi vẫn là Rails 3.1 (vâng, tôi biết, bận rộn ...) Việc ngừng sử dụng i18n mới này bị trượt với một trẻ vị thành niên cập nhật. –

Trả lời

12

Lý do là do một lỗi với miền địa phương có định dạng ngôn ngữ-quốc gia. Tin tốt là nó đã được sửa. Điều này đã được báo cáo trong Github với Issue 13164 và được sửa với pull request 229.

Nếu bạn muốn lấy mã mới nhất với những sửa chữa, cập nhật các đá quý như thế này:

Cập nhật Gemfile của bạn với:

gem 'i18n', github: 'svenfuchs/i18n' 

Và sau đó: bundle install

+0

Điều này bằng cách nào đó sẽ phá vỡ cơ chế gói bình thường? Tôi có phải thực hiện việc này hay không, lỗi sẽ tự động biến mất sau một thời gian khi tôi thực hiện 'cập nhật gói'? –

+1

Đá quý của bạn sẽ được cập nhật thành bất kỳ cam kết mới nhất nào trong kho lưu trữ chính, bạn sẽ luôn luôn nhận được mã mới nhất. Nếu bạn cảm thấy như một bản cập nhật trong tương lai có thể phá vỡ mọi thứ, bạn có thể làm điều đó chỉ một lần để sửa lỗi liên quan, và sau đó xóa phần github trong Gemfile. – givanse

+1

Có thể lỗi sẽ biến mất sau khi cập nhật gói ', miễn là bạn không có khóa phiên bản hoặc số lượt thích. Tôi không biết khi nào điều này có thể xảy ra, rất có thể cho đến khi một phiên bản mới của viên ngọc xuất hiện. – givanse

Các vấn đề liên quan