RAILS - Как исправить I18n NoTranslationAvailable при использовании ISO3166 :: Страна - PullRequest
0 голосов
/ 03 апреля 2019

Я использую https://rubygems.org/gems/countries в проекте и пытаюсь получить названия всех стран, используя для перевода строку локали.

Язык 'DE', 'NO' или другие исходят из API Google OCR. У гема также есть метод: 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 Ответ

1 голос
/ 03 апреля 2019

Норвежские i18n локали: :nn ( Нюнорск ) и :nb ( Bokmål ), а не :no.

i18n использует countries-NN.txt и countries-NB.txt

Поэтому необходимо использовать ISO3166::Country.all_translated('NN') и ISO3166::Country.all_translated('NB')

...