Ensure i18n matches options (#2358)

* Add failing spec showing that human_locales does not match what i18n knows about

* Add missing `ar` key for arabic to human locales

* Remove duplicate `id` key from available locales

* Sort keys in human locales list

* Add spec for human_locale helper
shrike
Matt Jankowski 2017-04-23 13:09:52 -04:00 committed by Eugen
parent 6e27e08cb4
commit 55e1e12b7d
3 changed files with 28 additions and 6 deletions

View File

@ -3,29 +3,30 @@
module SettingsHelper
HUMAN_LOCALES = {
en: 'English',
ar: 'عربى',
bg: 'Български',
de: 'Deutsch',
es: 'Español',
eo: 'Esperanto',
es: 'Español',
fi: 'Suomi',
fr: 'Français',
hr: 'Hrvatski',
hu: 'Magyar',
id: 'Bahasa Indonesia',
io: 'Ido',
it: 'Italiano',
ja: '日本語',
nl: 'Nederlands',
no: 'Norsk',
oc: 'Occitan',
pl: 'Polszczyzna',
pt: 'Português',
'pt-BR': 'Português do Brasil',
fi: 'Suomi',
ru: 'Русский',
uk: 'Українська',
ja: '日本語',
'zh-CN': '简体中文',
'zh-HK': '繁體中文(香港)',
'zh-TW': '繁體中文(臺灣)',
bg: 'Български',
id: 'Bahasa Indonesia',
}.freeze
def human_locale(locale)

View File

@ -35,7 +35,6 @@ module Mastodon
:fi,
:fr,
:hr,
:id,
:hu,
:id,
:io,

View File

@ -0,0 +1,22 @@
# frozen_string_literal: true
require 'rails_helper'
describe SettingsHelper do
describe 'the HUMAN_LOCALES constant' do
it 'has the same number of keys as I18n locales exist' do
options = I18n.available_locales
expect(described_class::HUMAN_LOCALES.keys).to eq(options)
end
end
describe 'human_locale' do
it 'finds the human readable local description from a key' do
# Ensure the value is as we expect
expect(described_class::HUMAN_LOCALES[:en]).to eq('English')
expect(helper.human_locale(:en)).to eq('English')
end
end
end