Change number_to_human calls to always use 3-digits precision (#16469)
Fixes #16435
This commit is contained in:
parent
225c6582d1
commit
e2844b7e58
|
@ -80,17 +80,17 @@ module AccountsHelper
|
||||||
def account_description(account)
|
def account_description(account)
|
||||||
prepend_str = [
|
prepend_str = [
|
||||||
[
|
[
|
||||||
number_to_human(account.statuses_count, strip_insignificant_zeros: true),
|
number_to_human(account.statuses_count, precision: 3, strip_insignificant_zeros: true),
|
||||||
I18n.t('accounts.posts', count: account.statuses_count),
|
I18n.t('accounts.posts', count: account.statuses_count),
|
||||||
].join(' '),
|
].join(' '),
|
||||||
|
|
||||||
[
|
[
|
||||||
number_to_human(account.following_count, strip_insignificant_zeros: true),
|
number_to_human(account.following_count, precision: 3, strip_insignificant_zeros: true),
|
||||||
I18n.t('accounts.following', count: account.following_count),
|
I18n.t('accounts.following', count: account.following_count),
|
||||||
].join(' '),
|
].join(' '),
|
||||||
|
|
||||||
[
|
[
|
||||||
number_to_human(account.followers_count, strip_insignificant_zeros: true),
|
number_to_human(account.followers_count, precision: 3, strip_insignificant_zeros: true),
|
||||||
I18n.t('accounts.followers', count: account.followers_count),
|
I18n.t('accounts.followers', count: account.followers_count),
|
||||||
].join(' '),
|
].join(' '),
|
||||||
].join(', ')
|
].join(', ')
|
||||||
|
|
|
@ -14,6 +14,17 @@ module ApplicationHelper
|
||||||
ku
|
ku
|
||||||
).freeze
|
).freeze
|
||||||
|
|
||||||
|
def friendly_number_to_human(number, **options)
|
||||||
|
# By default, the number of precision digits used by number_to_human
|
||||||
|
# is looked up from the locales definition, and rails-i18n comes with
|
||||||
|
# values that don't seem to make much sense for many languages, so
|
||||||
|
# override these values with a default of 3 digits of precision.
|
||||||
|
options[:precision] = 3
|
||||||
|
options[:strip_insignificant_zeros] = true
|
||||||
|
|
||||||
|
number_to_human(number, **options)
|
||||||
|
end
|
||||||
|
|
||||||
def active_nav_class(*paths)
|
def active_nav_class(*paths)
|
||||||
paths.any? { |path| current_page?(path) } ? 'active' : ''
|
paths.any? { |path| current_page?(path) } ? 'active' : ''
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,11 +17,11 @@
|
||||||
.row__information-board
|
.row__information-board
|
||||||
.information-board__section
|
.information-board__section
|
||||||
%span= t 'about.user_count_before'
|
%span= t 'about.user_count_before'
|
||||||
%strong= number_to_human @instance_presenter.user_count, strip_insignificant_zeros: true
|
%strong= friendly_number_to_human @instance_presenter.user_count
|
||||||
%span= t 'about.user_count_after', count: @instance_presenter.user_count
|
%span= t 'about.user_count_after', count: @instance_presenter.user_count
|
||||||
.information-board__section
|
.information-board__section
|
||||||
%span= t 'about.status_count_before'
|
%span= t 'about.status_count_before'
|
||||||
%strong= number_to_human @instance_presenter.status_count, strip_insignificant_zeros: true
|
%strong= friendly_number_to_human @instance_presenter.status_count
|
||||||
%span= t 'about.status_count_after', count: @instance_presenter.status_count
|
%span= t 'about.status_count_after', count: @instance_presenter.status_count
|
||||||
.row__mascot
|
.row__mascot
|
||||||
.landing-page__mascot
|
.landing-page__mascot
|
||||||
|
|
|
@ -70,10 +70,10 @@
|
||||||
|
|
||||||
.hero-widget__counters__wrapper
|
.hero-widget__counters__wrapper
|
||||||
.hero-widget__counter
|
.hero-widget__counter
|
||||||
%strong= number_to_human @instance_presenter.user_count, strip_insignificant_zeros: true
|
%strong= friendly_number_to_human @instance_presenter.user_count
|
||||||
%span= t 'about.user_count_after', count: @instance_presenter.user_count
|
%span= t 'about.user_count_after', count: @instance_presenter.user_count
|
||||||
.hero-widget__counter
|
.hero-widget__counter
|
||||||
%strong= number_to_human @instance_presenter.active_user_count, strip_insignificant_zeros: true
|
%strong= friendly_number_to_human @instance_presenter.active_user_count
|
||||||
%span
|
%span
|
||||||
= t 'about.active_count_after'
|
= t 'about.active_count_after'
|
||||||
%abbr{ title: t('about.active_footnote') } *
|
%abbr{ title: t('about.active_footnote') } *
|
||||||
|
|
|
@ -15,17 +15,17 @@
|
||||||
.details-counters
|
.details-counters
|
||||||
.counter{ class: active_nav_class(short_account_url(account), short_account_with_replies_url(account), short_account_media_url(account)) }
|
.counter{ class: active_nav_class(short_account_url(account), short_account_with_replies_url(account), short_account_media_url(account)) }
|
||||||
= link_to short_account_url(account), class: 'u-url u-uid', title: number_with_delimiter(account.statuses_count) do
|
= link_to short_account_url(account), class: 'u-url u-uid', title: number_with_delimiter(account.statuses_count) do
|
||||||
%span.counter-number= number_to_human account.statuses_count, strip_insignificant_zeros: true
|
%span.counter-number= friendly_number_to_human account.statuses_count
|
||||||
%span.counter-label= t('accounts.posts', count: account.statuses_count)
|
%span.counter-label= t('accounts.posts', count: account.statuses_count)
|
||||||
|
|
||||||
.counter{ class: active_nav_class(account_following_index_url(account)) }
|
.counter{ class: active_nav_class(account_following_index_url(account)) }
|
||||||
= link_to account_following_index_url(account), title: number_with_delimiter(account.following_count) do
|
= link_to account_following_index_url(account), title: number_with_delimiter(account.following_count) do
|
||||||
%span.counter-number= number_to_human account.following_count, strip_insignificant_zeros: true
|
%span.counter-number= friendly_number_to_human account.following_count
|
||||||
%span.counter-label= t('accounts.following', count: account.following_count)
|
%span.counter-label= t('accounts.following', count: account.following_count)
|
||||||
|
|
||||||
.counter{ class: active_nav_class(account_followers_url(account)) }
|
.counter{ class: active_nav_class(account_followers_url(account)) }
|
||||||
= link_to account_followers_url(account), title: number_with_delimiter(account.followers_count) do
|
= link_to account_followers_url(account), title: number_with_delimiter(account.followers_count) do
|
||||||
%span.counter-number= number_to_human account.followers_count, strip_insignificant_zeros: true
|
%span.counter-number= friendly_number_to_human account.followers_count
|
||||||
%span.counter-label= t('accounts.followers', count: account.followers_count)
|
%span.counter-label= t('accounts.followers', count: account.followers_count)
|
||||||
.spacer
|
.spacer
|
||||||
.public-account-header__tabs__tabs__buttons
|
.public-account-header__tabs__tabs__buttons
|
||||||
|
@ -36,8 +36,8 @@
|
||||||
|
|
||||||
.public-account-header__extra__links
|
.public-account-header__extra__links
|
||||||
= link_to account_following_index_url(account) do
|
= link_to account_following_index_url(account) do
|
||||||
%strong= number_to_human account.following_count, strip_insignificant_zeros: true
|
%strong= friendly_number_to_human account.following_count
|
||||||
= t('accounts.following', count: account.following_count)
|
= t('accounts.following', count: account.following_count)
|
||||||
= link_to account_followers_url(account) do
|
= link_to account_followers_url(account) do
|
||||||
%strong= number_to_human account.followers_count, strip_insignificant_zeros: true
|
%strong= friendly_number_to_human account.followers_count
|
||||||
= t('accounts.followers', count: account.followers_count)
|
= t('accounts.followers', count: account.followers_count)
|
||||||
|
|
|
@ -81,6 +81,6 @@
|
||||||
= t('accounts.nothing_here')
|
= t('accounts.nothing_here')
|
||||||
- else
|
- else
|
||||||
%time.formatted{ datetime: featured_tag.last_status_at.iso8601, title: l(featured_tag.last_status_at) }= l featured_tag.last_status_at
|
%time.formatted{ datetime: featured_tag.last_status_at.iso8601, title: l(featured_tag.last_status_at) }= l featured_tag.last_status_at
|
||||||
.trends__item__current= number_to_human featured_tag.statuses_count, strip_insignificant_zeros: true
|
.trends__item__current= friendly_number_to_human featured_tag.statuses_count
|
||||||
|
|
||||||
= render 'application/sidebar'
|
= render 'application/sidebar'
|
||||||
|
|
|
@ -13,42 +13,42 @@
|
||||||
%div
|
%div
|
||||||
= link_to admin_accounts_url(local: 1, recent: 1) do
|
= link_to admin_accounts_url(local: 1, recent: 1) do
|
||||||
.dashboard__counters__num{ title: number_with_delimiter(@users_count, strip_insignificant_zeros: true) }
|
.dashboard__counters__num{ title: number_with_delimiter(@users_count, strip_insignificant_zeros: true) }
|
||||||
= number_to_human @users_count, strip_insignificant_zeros: true
|
= friendly_number_to_human @users_count
|
||||||
.dashboard__counters__label= t 'admin.dashboard.total_users'
|
.dashboard__counters__label= t 'admin.dashboard.total_users'
|
||||||
%div
|
%div
|
||||||
%div
|
%div
|
||||||
.dashboard__counters__num{ title: number_with_delimiter(@registrations_week, strip_insignificant_zeros: true) }
|
.dashboard__counters__num{ title: number_with_delimiter(@registrations_week, strip_insignificant_zeros: true) }
|
||||||
= number_to_human @registrations_week, strip_insignificant_zeros: true
|
= friendly_number_to_human @registrations_week
|
||||||
.dashboard__counters__label= t 'admin.dashboard.week_users_new'
|
.dashboard__counters__label= t 'admin.dashboard.week_users_new'
|
||||||
%div
|
%div
|
||||||
%div
|
%div
|
||||||
.dashboard__counters__num{ title: number_with_delimiter(@logins_week, strip_insignificant_zeros: true) }
|
.dashboard__counters__num{ title: number_with_delimiter(@logins_week, strip_insignificant_zeros: true) }
|
||||||
= number_to_human @logins_week, strip_insignificant_zeros: true
|
= friendly_number_to_human @logins_week
|
||||||
.dashboard__counters__label= t 'admin.dashboard.week_users_active'
|
.dashboard__counters__label= t 'admin.dashboard.week_users_active'
|
||||||
%div
|
%div
|
||||||
= link_to admin_pending_accounts_path do
|
= link_to admin_pending_accounts_path do
|
||||||
.dashboard__counters__num{ title: number_with_delimiter(@pending_users_count, strip_insignificant_zeros: true) }
|
.dashboard__counters__num{ title: number_with_delimiter(@pending_users_count, strip_insignificant_zeros: true) }
|
||||||
= number_to_human @pending_users_count, strip_insignificant_zeros: true
|
= friendly_number_to_human @pending_users_count
|
||||||
.dashboard__counters__label= t 'admin.dashboard.pending_users'
|
.dashboard__counters__label= t 'admin.dashboard.pending_users'
|
||||||
%div
|
%div
|
||||||
= link_to admin_reports_url do
|
= link_to admin_reports_url do
|
||||||
.dashboard__counters__num{ title: number_with_delimiter(@reports_count, strip_insignificant_zeros: true) }
|
.dashboard__counters__num{ title: number_with_delimiter(@reports_count, strip_insignificant_zeros: true) }
|
||||||
= number_to_human @reports_count, strip_insignificant_zeros: true
|
= friendly_number_to_human @reports_count
|
||||||
.dashboard__counters__label= t 'admin.dashboard.open_reports'
|
.dashboard__counters__label= t 'admin.dashboard.open_reports'
|
||||||
%div
|
%div
|
||||||
= link_to admin_tags_path(pending_review: '1') do
|
= link_to admin_tags_path(pending_review: '1') do
|
||||||
.dashboard__counters__num{ title: number_with_delimiter(@pending_tags_count, strip_insignificant_zeros: true) }
|
.dashboard__counters__num{ title: number_with_delimiter(@pending_tags_count, strip_insignificant_zeros: true) }
|
||||||
= number_to_human @pending_tags_count, strip_insignificant_zeros: true
|
= friendly_number_to_human @pending_tags_count
|
||||||
.dashboard__counters__label= t 'admin.dashboard.pending_tags'
|
.dashboard__counters__label= t 'admin.dashboard.pending_tags'
|
||||||
%div
|
%div
|
||||||
%div
|
%div
|
||||||
.dashboard__counters__num{ title: number_with_delimiter(@interactions_week, strip_insignificant_zeros: true) }
|
.dashboard__counters__num{ title: number_with_delimiter(@interactions_week, strip_insignificant_zeros: true) }
|
||||||
= number_to_human @interactions_week, strip_insignificant_zeros: true
|
= friendly_number_to_human @interactions_week
|
||||||
.dashboard__counters__label= t 'admin.dashboard.week_interactions'
|
.dashboard__counters__label= t 'admin.dashboard.week_interactions'
|
||||||
%div
|
%div
|
||||||
= link_to sidekiq_url do
|
= link_to sidekiq_url do
|
||||||
.dashboard__counters__num{ title: number_with_delimiter(@queue_backlog, strip_insignificant_zeros: true) }
|
.dashboard__counters__num{ title: number_with_delimiter(@queue_backlog, strip_insignificant_zeros: true) }
|
||||||
= number_to_human @queue_backlog, strip_insignificant_zeros: true
|
= friendly_number_to_human @queue_backlog
|
||||||
.dashboard__counters__label= t 'admin.dashboard.backlog'
|
.dashboard__counters__label= t 'admin.dashboard.backlog'
|
||||||
|
|
||||||
.dashboard__widgets
|
.dashboard__widgets
|
||||||
|
|
|
@ -7,10 +7,10 @@
|
||||||
%tr
|
%tr
|
||||||
%td= account_link_to account
|
%td= account_link_to account
|
||||||
%td.accounts-table__count.optional
|
%td.accounts-table__count.optional
|
||||||
= number_to_human account.statuses_count, strip_insignificant_zeros: true
|
= friendly_number_to_human account.statuses_count
|
||||||
%small= t('accounts.posts', count: account.statuses_count).downcase
|
%small= t('accounts.posts', count: account.statuses_count).downcase
|
||||||
%td.accounts-table__count.optional
|
%td.accounts-table__count.optional
|
||||||
= number_to_human account.followers_count, strip_insignificant_zeros: true
|
= friendly_number_to_human account.followers_count
|
||||||
%small= t('accounts.followers', count: account.followers_count).downcase
|
%small= t('accounts.followers', count: account.followers_count).downcase
|
||||||
%td.accounts-table__count
|
%td.accounts-table__count
|
||||||
- if account.last_status_at.present?
|
- if account.last_status_at.present?
|
||||||
|
|
|
@ -30,4 +30,4 @@
|
||||||
= ' / '
|
= ' / '
|
||||||
%span.negative-hint
|
%span.negative-hint
|
||||||
= t('admin.instances.delivery.unavailable_message')
|
= t('admin.instances.delivery.unavailable_message')
|
||||||
.trends__item__current{ title: t('admin.instances.known_accounts', count: instance.accounts_count) }= number_to_human instance.accounts_count, strip_insignificant_zeros: true
|
.trends__item__current{ title: t('admin.instances.known_accounts', count: instance.accounts_count) }= friendly_number_to_human instance.accounts_count
|
||||||
|
|
|
@ -16,4 +16,4 @@
|
||||||
= fa_icon 'fire fw'
|
= fa_icon 'fire fw'
|
||||||
= t('admin.tags.trending_right_now')
|
= t('admin.tags.trending_right_now')
|
||||||
|
|
||||||
.trends__item__current= number_to_human tag.history.first[:uses], strip_insignificant_zeros: true
|
.trends__item__current= friendly_number_to_human tag.history.first[:uses]
|
||||||
|
|
|
@ -39,10 +39,10 @@
|
||||||
|
|
||||||
.directory__card__extra
|
.directory__card__extra
|
||||||
.accounts-table__count
|
.accounts-table__count
|
||||||
= number_to_human account.statuses_count, strip_insignificant_zeros: true
|
= friendly_number_to_human account.statuses_count
|
||||||
%small= t('accounts.posts', count: account.statuses_count).downcase
|
%small= t('accounts.posts', count: account.statuses_count).downcase
|
||||||
.accounts-table__count
|
.accounts-table__count
|
||||||
= number_to_human account.followers_count, strip_insignificant_zeros: true
|
= friendly_number_to_human account.followers_count
|
||||||
%small= t('accounts.followers', count: account.followers_count).downcase
|
%small= t('accounts.followers', count: account.followers_count).downcase
|
||||||
.accounts-table__count
|
.accounts-table__count
|
||||||
- if account.last_status_at.present?
|
- if account.last_status_at.present?
|
||||||
|
|
|
@ -9,10 +9,10 @@
|
||||||
= interrelationships_icon(@relationships, account.id)
|
= interrelationships_icon(@relationships, account.id)
|
||||||
%td= account_link_to account
|
%td= account_link_to account
|
||||||
%td.accounts-table__count.optional
|
%td.accounts-table__count.optional
|
||||||
= number_to_human account.statuses_count, strip_insignificant_zeros: true
|
= friendly_number_to_human account.statuses_count
|
||||||
%small= t('accounts.posts', count: account.statuses_count).downcase
|
%small= t('accounts.posts', count: account.statuses_count).downcase
|
||||||
%td.accounts-table__count.optional
|
%td.accounts-table__count.optional
|
||||||
= number_to_human account.followers_count, strip_insignificant_zeros: true
|
= friendly_number_to_human account.followers_count
|
||||||
%small= t('accounts.followers', count: account.followers_count).downcase
|
%small= t('accounts.followers', count: account.followers_count).downcase
|
||||||
%td.accounts-table__count
|
%td.accounts-table__count
|
||||||
- if account.last_status_at.present?
|
- if account.last_status_at.present?
|
||||||
|
|
|
@ -28,4 +28,4 @@
|
||||||
- else
|
- else
|
||||||
%time{ datetime: featured_tag.last_status_at.iso8601, title: l(featured_tag.last_status_at) }= l featured_tag.last_status_at
|
%time{ datetime: featured_tag.last_status_at.iso8601, title: l(featured_tag.last_status_at) }= l featured_tag.last_status_at
|
||||||
= table_link_to 'trash', t('filters.index.delete'), settings_featured_tag_path(featured_tag), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
|
= table_link_to 'trash', t('filters.index.delete'), settings_featured_tag_path(featured_tag), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
|
||||||
.trends__item__current= number_to_human featured_tag.statuses_count, strip_insignificant_zeros: true
|
.trends__item__current= friendly_number_to_human featured_tag.statuses_count
|
||||||
|
|
|
@ -55,18 +55,18 @@
|
||||||
= fa_icon('reply')
|
= fa_icon('reply')
|
||||||
- else
|
- else
|
||||||
= fa_icon('reply-all')
|
= fa_icon('reply-all')
|
||||||
%span.detailed-status__reblogs>= number_to_human status.replies_count, strip_insignificant_zeros: true
|
%span.detailed-status__reblogs>= friendly_number_to_human status.replies_count
|
||||||
= " "
|
= " "
|
||||||
·
|
·
|
||||||
- if status.public_visibility? || status.unlisted_visibility?
|
- if status.public_visibility? || status.unlisted_visibility?
|
||||||
= link_to remote_interaction_path(status, type: :reblog), class: 'modal-button detailed-status__link' do
|
= link_to remote_interaction_path(status, type: :reblog), class: 'modal-button detailed-status__link' do
|
||||||
= fa_icon('retweet')
|
= fa_icon('retweet')
|
||||||
%span.detailed-status__reblogs>= number_to_human status.reblogs_count, strip_insignificant_zeros: true
|
%span.detailed-status__reblogs>= friendly_number_to_human status.reblogs_count
|
||||||
= " "
|
= " "
|
||||||
·
|
·
|
||||||
= link_to remote_interaction_path(status, type: :favourite), class: 'modal-button detailed-status__link' do
|
= link_to remote_interaction_path(status, type: :favourite), class: 'modal-button detailed-status__link' do
|
||||||
= fa_icon('star')
|
= fa_icon('star')
|
||||||
%span.detailed-status__favorites>= number_to_human status.favourites_count, strip_insignificant_zeros: true
|
%span.detailed-status__favorites>= friendly_number_to_human status.favourites_count
|
||||||
= " "
|
= " "
|
||||||
|
|
||||||
- if user_signed_in?
|
- if user_signed_in?
|
||||||
|
|
Loading…
Reference in New Issue