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
This commit is contained in:
		
							parent
							
								
									6e27e08cb4
								
							
						
					
					
						commit
						55e1e12b7d
					
				
					 3 changed files with 28 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,7 +35,6 @@ module Mastodon
 | 
			
		|||
      :fi,
 | 
			
		||||
      :fr,
 | 
			
		||||
      :hr,
 | 
			
		||||
      :id,
 | 
			
		||||
      :hu,
 | 
			
		||||
      :id,
 | 
			
		||||
      :io,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										22
									
								
								spec/helpers/settings_helper_spec.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								spec/helpers/settings_helper_spec.rb
									
										
									
									
									
										Normal 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
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue