From 55e1e12b7d673aece3cf015360af9fb4252dd7e5 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sun, 23 Apr 2017 13:09:52 -0400 Subject: [PATCH] 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 --- app/helpers/settings_helper.rb | 11 ++++++----- config/application.rb | 1 - spec/helpers/settings_helper_spec.rb | 22 ++++++++++++++++++++++ 3 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 spec/helpers/settings_helper_spec.rb diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index bc9ae9ee7..128e1e98c 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -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) diff --git a/config/application.rb b/config/application.rb index 03e98557d..50dc2a10b 100644 --- a/config/application.rb +++ b/config/application.rb @@ -35,7 +35,6 @@ module Mastodon :fi, :fr, :hr, - :id, :hu, :id, :io, diff --git a/spec/helpers/settings_helper_spec.rb b/spec/helpers/settings_helper_spec.rb new file mode 100644 index 000000000..5a51e0ef1 --- /dev/null +++ b/spec/helpers/settings_helper_spec.rb @@ -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