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