铁路-使用ISO3166 :: Country时如何修复I18n NoTranslationAvailable

时间:2019-04-03 07:16:21

标签: ruby-on-rails internationalization rubygems rails-i18n countries

我在项目中使用https://rubygems.org/gems/countries,并尝试使用语言环境字符串获取所有国家/地区的名称。

语言环境'DE''NO'或其他语言环境来自Google OCR API。 gem还具有一种方法:ISO3166::Country.translations,它将返回所有区域设置字符串和匹配的国家/地区,例如:"AL"=>"Albania"

在此列表中,还提供翻译"NO"=>"Norway",但使用ISO3166::Country.all_translated('NO')时会引发错误:I18nData::NoTranslationAvailable: I18nData::NoTranslationAvailable -- countries-NO

是否有任何变通办法或修补程序可以使用所有语言并获得所有翻译?或至少挪威不在当地吗?我认为该宝石使用错误中提到的I18n,并且:no语言环境在I18n中无效:

I18n.locale = :no => I18n::InvalidLocale: :no is not a valid locale

I18n.locale = :de => :de

1 个答案:

答案 0 :(得分:1)

挪威语的i18n语言环境为:nnNynorsk)和:nbBokmål),而不是:no

i18n使用countries-NN.txtcountries-NB.txt

因此需要使用ISO3166::Country.all_translated('NN')ISO3166::Country.all_translated('NB')