Display language name or language key
There where two issues with the current implementation: - There was a possible duplication between looking up the language name in key "locale" and in key "i18n.language.name" - The "default" option was not being picked up, as the fallback always returned the default locale's translation, "English" With this implementation there is only a single place to put the language name: i18n.language.name. I think this place is easier to find and understand for Crowdin translators than a "locale" key hidden in general.yml If the translation is not found we display the language key, instead of English, which makes more sense to me too 😌 Solution based on recent comments[1] on a related I18n issue [1] https://github.com/svenfuchs/i18n/issues/365#issuecomment-419263847
This commit is contained in:
@@ -48,4 +48,30 @@ feature 'Localization' do
|
||||
expect(page).not_to have_content('Language')
|
||||
expect(page).not_to have_css('div.locale')
|
||||
end
|
||||
|
||||
context "Missing language names" do
|
||||
|
||||
let!(:default_enforce) { I18n.enforce_available_locales }
|
||||
let!(:default_locales) { I18n.available_locales }
|
||||
|
||||
before do
|
||||
I18n.enforce_available_locales = false
|
||||
I18n.available_locales << :wl
|
||||
I18n.locale = :wl
|
||||
end
|
||||
|
||||
after do
|
||||
I18n.enforce_available_locales = default_enforce
|
||||
I18n.available_locales = default_locales
|
||||
end
|
||||
|
||||
scenario 'Available locales without language translation display locale key' do
|
||||
visit '/'
|
||||
|
||||
within('.locale-form .js-location-changer') do
|
||||
expect(page).to have_content 'wl'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user