tôi sử dụng before_filter trong ApplicationController để thiết lập miền địa phương cho ứng dụng của tôi:Ruby on Rails + Devise + I18n: cách đặt ngôn ngữ?
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :set_locale
def set_locale
I18n.locale = request.compatible_language_from ["uk", "ru", "de", "en"]
end
end
Nó hoạt động cho bộ điều khiển được viết bởi tôi. Nhưng tất cả các tin nhắn của nhà phát triển vẫn là tiếng Anh.
Thiết config.i18n.default_locale = "uk"
(hoặc khác) trong config/application.rb
công trình, vì vậy tôi đoán rằng những rắc rối là điều khiển của devise mà không sử dụng before_filter của tôi (có thể, nó không kế thừa ApplicationController
ở tất cả (?)).
Cách khắc phục sự cố này? Làm thế nào để tạo ra sử dụng ngôn ngữ của tôi?
sử dụng ứng dụng ApplicationController của bạn. điều này có thể cấu hình thông qua cài đặt parent_controller. – phoet
@Hauleth Vâng, tôi đã làm. Và chúng hoạt động nếu tôi đặt ngôn ngữ không phải tiếng Anh làm mặc định với config.i18n.default_locale trong application.rb – frp