Skip to content
Snippets Groups Projects
Unverified Commit 3aebe711 authored by Eugen Rochko's avatar Eugen Rochko Committed by GitHub
Browse files

Change languages to be listed under standard instead of native name in admin UI (#17485)

parent fd3a45e3
No related branches found
No related tags found
No related merge requests found
......@@ -209,8 +209,8 @@ module LanguagesHelper
'zh-TW': '繁體中文(臺灣)',
}.freeze
def human_locale(locale)
if locale == 'und'
def native_locale_name(locale)
if locale.blank? || locale == 'und'
I18n.t('generic.none')
elsif (supported_locale = SUPPORTED_LOCALES[locale.to_sym])
supported_locale[1]
......@@ -221,6 +221,16 @@ module LanguagesHelper
end
end
def standard_locale_name(locale)
if locale.blank?
I18n.t('generic.none')
elsif (supported_locale = SUPPORTED_LOCALES[locale.to_sym])
supported_locale[0]
else
locale
end
end
def valid_locale_or_nil(str)
return if str.blank?
......
......@@ -20,6 +20,6 @@ class Admin::Metrics::Dimension::LanguagesDimension < Admin::Metrics::Dimension:
rows = ActiveRecord::Base.connection.select_all(sql, nil, [[nil, @start_at], [nil, @end_at], [nil, @limit]])
rows.map { |row| { key: row['locale'], human_key: human_locale(row['locale']), value: row['value'].to_s } }
rows.map { |row| { key: row['locale'], human_key: standard_locale_name(row['locale']), value: row['value'].to_s } }
end
end
......@@ -25,7 +25,7 @@ class Admin::Metrics::Dimension::TagLanguagesDimension < Admin::Metrics::Dimensi
rows = ActiveRecord::Base.connection.select_all(sql, nil, [[nil, params[:id]], [nil, Mastodon::Snowflake.id_at(@start_at, with_random: false)], [nil, Mastodon::Snowflake.id_at(@end_at, with_random: false)], [nil, @limit]])
rows.map { |row| { key: row['language'], human_key: human_locale(row['language']), value: row['value'].to_s } }
rows.map { |row| { key: row['language'], human_key: standard_locale_name(row['language']), value: row['value'].to_s } }
end
private
......
......@@ -147,7 +147,7 @@
%tr
%th= t('simple_form.labels.defaults.locale')
%td= @account.user_locale
%td= standard_locale_name(@account.user_locale)
%td
%tr
......
......@@ -13,7 +13,7 @@
.filter-subset.filter-subset--with-select
%strong= t('admin.follow_recommendations.language')
.input.select.optional
= select_tag :language, options_for_select(I18n.available_locales.map { |key| key.to_s.split(/[_-]/).first.to_sym }.uniq.map { |key| [human_locale(key), key]}, @language)
= select_tag :language, options_for_select(I18n.available_locales.map { |key| key.to_s.split(/[_-]/).first.to_sym }.uniq.map { |key| [standard_locale_name(key), key]}, @language)
.filter-subset
%strong= t('admin.follow_recommendations.status')
......
......@@ -13,7 +13,7 @@
- if preview_card.language.present?
= human_locale(preview_card.language)
= standard_locale_name(preview_card.language)
= t('admin.trends.links.shared_by_over_week', count: preview_card.history.reduce(0) { |sum, day| sum + day.accounts })
......
......@@ -7,7 +7,7 @@
= simple_form_for current_user, url: settings_preferences_appearance_path, html: { method: :put, id: 'edit_user' } do |f|
.fields-row
.fields-group.fields-row__column.fields-row__column-6
= f.input :locale, collection: I18n.available_locales, wrapper: :with_label, include_blank: false, label_method: lambda { |locale| human_locale(locale) }, selected: I18n.locale, hint: false
= f.input :locale, collection: I18n.available_locales, wrapper: :with_label, include_blank: false, label_method: lambda { |locale| native_locale_name(locale) }, selected: I18n.locale, hint: false
.fields-group.fields-row__column.fields-row__column-6
= f.input :setting_theme, collection: Themes.instance.names, label_method: lambda { |theme| I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false, hint: false
......
......@@ -23,7 +23,7 @@
= f.input :setting_default_privacy, collection: Status.selectable_visibilities, wrapper: :with_label, include_blank: false, label_method: lambda { |visibility| safe_join([I18n.t("statuses.visibilities.#{visibility}"), I18n.t("statuses.visibilities.#{visibility}_long")], ' - ') }, required: false, hint: false
.fields-group.fields-row__column.fields-row__column-6
= f.input :setting_default_language, collection: [nil] + filterable_languages, wrapper: :with_label, label_method: lambda { |locale| locale.nil? ? I18n.t('statuses.default_language') : human_locale(locale) }, required: false, include_blank: false, hint: false
= f.input :setting_default_language, collection: [nil] + filterable_languages, wrapper: :with_label, label_method: lambda { |locale| locale.nil? ? I18n.t('statuses.default_language') : native_locale_name(locale) }, required: false, include_blank: false, hint: false
.fields-group
= f.input :setting_default_sensitive, as: :boolean, wrapper: :with_label
......@@ -34,7 +34,7 @@
%h4= t 'preferences.public_timelines'
.fields-group
= f.input :chosen_languages, collection: filterable_languages, wrapper: :with_block_label, include_blank: false, label_method: lambda { |locale| human_locale(locale) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
= f.input :chosen_languages, collection: filterable_languages, wrapper: :with_block_label, include_blank: false, label_method: lambda { |locale| native_locale_name(locale) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
.actions
= f.button :button, t('generic.save_changes'), type: :submit
......@@ -9,9 +9,15 @@ describe LanguagesHelper do
end
end
describe 'human_locale' do
it 'finds the human readable local description from a key' do
expect(helper.human_locale(:en)).to eq('English')
describe 'native_locale_name' do
it 'finds the human readable native name from a key' do
expect(helper.native_locale_name(:en)).to eq('English')
end
end
describe 'standard_locale_name' do
it 'finds the human readable standard name from a key' do
expect(helper.standard_locale_name(:de)).to eq('German')
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment