Tôi nhận được một ngoại lệ I18n::InvalidLocale: "zh-CN" is not a valid locale
mà tôi muốn tránh.Làm cách nào để tránh I18n :: InvalidLocale?
Để giải quyết nó, tôi đã nghe nói về hai hacks:
# meh
config.i18n.enforce_available_locales = false
# Ever heard of convention over configuration?
config.i18n.available_locales = [:fr, :en, "zh-CN", "zh-TW"]
Không ai trong số họ có vẻ sạch sẽ với tôi, bởi vì nếu không chạm vào các biến cấu hình, tôi đã có một loạt các miền địa phương có sẵn mà được automagically điền sẵn:
available_locales hiện tại của tôi là:
> I18n.available_locales
=> [:en, :fr] (misses zh-CN and zh-TW)
Trong thư mục config/locales
tôi, tôi có:
en.yml
fr.yml
zh-CH.yml (newly added, and unavailable)
zh-TW.yml (newly added, and unavailable)
Trong tôi config/application.rb
, tôi có:
config.i18n.default_locale = :fr
Tôi không hiểu thế nào fr
đã Automagically vào I18n.available_locales
, khi zh-CN
và zh-TW
có không .
Tuy nhiên, có fr
nhập nó mà không tôi thiết config.i18n.available_locales
nói với tôi rằng chạm vào cấu hình này biến không phải là cách sạch sẽ để đi.
Bạn có gợi ý tránh trường hợp ngoại lệ I18n::InvalidLocale
ở mức đúng mức không?
khởi động lại máy chủ? –
Cảm ơn huan, nhưng nó không làm các trick. –
José, 'config.i18n.fallbacks = true' làm gì? –