DEV: Correctly pluralize strings (#26565)

This commit is contained in:
Gerhard Schlager 2024-04-08 21:24:54 +02:00 committed by GitHub
parent 4712e8b035
commit 74ac143c3c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 66 additions and 22 deletions

View File

@ -305,7 +305,9 @@ en:
weekly: "weekly" weekly: "weekly"
every_month: "every month" every_month: "every month"
every_six_months: "every six months" every_six_months: "every six months"
max_of_count: "max of %{count}" max_of_count:
one: "max of %{count}"
other: "max of %{count}"
character_count: character_count:
one: "%{count} character" one: "%{count} character"
other: "%{count} characters" other: "%{count} characters"
@ -1025,7 +1027,9 @@ en:
image: "Upload an image" image: "Upload an image"
default_notifications: default_notifications:
modal_title: "User default notifications" modal_title: "User default notifications"
modal_description: "Would you like to apply this change historically? This will change preferences for %{count} existing users." modal_description:
one: "Would you like to apply this change historically? This will change preferences for %{count} existing user."
other: "Would you like to apply this change historically? This will change preferences for %{count} existing users."
modal_yes: "Yes" modal_yes: "Yes"
modal_no: "No, only apply change going forward" modal_no: "No, only apply change going forward"
@ -1050,7 +1054,9 @@ en:
all_subcategories: "all subcategories" all_subcategories: "all subcategories"
no_subcategories: "no subcategories" no_subcategories: "no subcategories"
remove_filter: "remove filter" remove_filter: "remove filter"
plus_more_count: "+%{count} more" plus_more_count:
one: "+%{count} more"
other: "+%{count} more"
view_all: "view all" view_all: "view all"
category: "Category" category: "Category"
category_list: "Display category list" category_list: "Display category list"
@ -1083,7 +1089,9 @@ en:
topic_stat_sentence_month: topic_stat_sentence_month:
one: "%{count} new topic in the past month." one: "%{count} new topic in the past month."
other: "%{count} new topics in the past month." other: "%{count} new topics in the past month."
n_more: "Categories (%{count} more)…" n_more:
one: "Categories (%{count} more)…"
other: "Categories (%{count} more)…"
ip_lookup: ip_lookup:
title: IP Address Lookup title: IP Address Lookup
@ -1093,7 +1101,9 @@ en:
organisation: Organization organisation: Organization
phone: Phone phone: Phone
other_accounts: "Other accounts with this IP address:" other_accounts: "Other accounts with this IP address:"
delete_other_accounts: "Delete %{count}" delete_other_accounts:
one: "Delete %{count}"
other: "Delete %{count}"
username: "username" username: "username"
trust_level: "TL" trust_level: "TL"
read_time: "read time" read_time: "read time"
@ -1903,7 +1913,9 @@ en:
same_as_username: "Your password is the same as your username." same_as_username: "Your password is the same as your username."
same_as_email: "Your password is the same as your email." same_as_email: "Your password is the same as your email."
ok: "Your password looks good." ok: "Your password looks good."
instructions: "At least %{count} characters." instructions:
one: "At least %{count} character."
other: "At least %{count} characters."
required: "Please enter a password" required: "Please enter a password"
confirm: "Confirm" confirm: "Confirm"
incorrect_password: "The entered password is incorrect." incorrect_password: "The entered password is incorrect."
@ -2455,7 +2467,9 @@ en:
group_mentioned: group_mentioned:
one: "Mentioning %{group} will notify <a href='%{group_link}'>%{count} person</a>." one: "Mentioning %{group} will notify <a href='%{group_link}'>%{count} person</a>."
other: "Mentioning %{group} will notify <a href='%{group_link}'>%{count} people</a>." other: "Mentioning %{group} will notify <a href='%{group_link}'>%{count} people</a>."
larger_group_mentioned: "Mentioning %{group} will notify <a href='%{group_link}'>%{count} people</a>. Are you sure?" larger_group_mentioned:
one: "Mentioning %{group} will notify <a href='%{group_link}'>%{count} person</a>. Are you sure?"
other: "Mentioning %{group} will notify <a href='%{group_link}'>%{count} people</a>. Are you sure?"
cannot_see_mention: cannot_see_mention:
category: "You mentioned @%{username} but they won't be notified because they do not have access to this category. You will need to add them to a group that has access to this category." category: "You mentioned @%{username} but they won't be notified because they do not have access to this category. You will need to add them to a group that has access to this category."
private: "You mentioned @%{username} but they won't be notified because they are unable to see this personal message. You will need to invite them to this personal message." private: "You mentioned @%{username} but they won't be notified because they are unable to see this personal message. You will need to invite them to this personal message."
@ -2978,7 +2992,9 @@ en:
selected: selected:
one: "You have selected <b>%{count}</b> topic." one: "You have selected <b>%{count}</b> topic."
other: "You have selected <b>%{count}</b> topics." other: "You have selected <b>%{count}</b> topics."
selected_count: "%{count} selected" selected_count:
one: "%{count} selected"
other: "%{count} selected"
change_tags: "Replace Tags" change_tags: "Replace Tags"
append_tags: "Append Tags" append_tags: "Append Tags"
choose_new_tags: "Choose new tags for these topics:" choose_new_tags: "Choose new tags for these topics:"
@ -4631,23 +4647,31 @@ en:
label: "Icon" label: "Icon"
validation: validation:
blank: "Icon cannot be blank" blank: "Icon cannot be blank"
maximum: "Icon must be shorter than %{count} characters" maximum:
one: "Icon must be shorter than %{count} character"
other: "Icon must be shorter than %{count} characters"
name: name:
label: "Name" label: "Name"
validation: validation:
blank: "Name cannot be blank" blank: "Name cannot be blank"
maximum: "Name must be shorter than %{count} characters" maximum:
one: "Name must be shorter than %{count} character"
other: "Name must be shorter than %{count} characters"
value: value:
label: "Link" label: "Link"
validation: validation:
blank: "Link cannot be blank" blank: "Link cannot be blank"
maximum: "Link must be shorter than %{count} characters" maximum:
one: "Link must be shorter than %{count} character"
other: "Link must be shorter than %{count} characters"
invalid: "Format is invalid" invalid: "Format is invalid"
title: title:
label: "Section title" label: "Section title"
validation: validation:
blank: "Title cannot be blank" blank: "Title cannot be blank"
maximum: "Title must be shorter than %{count} characters" maximum:
one: "Title must be shorter than %{count} character"
other: "Title must be shorter than %{count} characters"
about: about:
header_link_text: "About" header_link_text: "About"
messages: messages:
@ -4710,7 +4734,9 @@ en:
review: review:
content: "Review" content: "Review"
title: "Flagged posts and other queued items" title: "Flagged posts and other queued items"
pending_count: "%{count} pending" pending_count:
one: "%{count} pending"
other: "%{count} pending"
global_section: "Global section, visible to everyone" global_section: "Global section, visible to everyone"
panels: panels:
forum: forum:
@ -5541,13 +5567,17 @@ en:
convert_theme_tooltip: "Convert this theme to component" convert_theme_tooltip: "Convert this theme to component"
inactive_themes: "Inactive themes:" inactive_themes: "Inactive themes:"
inactive_components: "Unused components:" inactive_components: "Unused components:"
selected: "%{count} selected" selected:
one: "%{count} selected"
other: "%{count} selected"
cancel: "Cancel" cancel: "Cancel"
broken_theme_tooltip: "This theme has errors in its CSS, HTML or YAML" broken_theme_tooltip: "This theme has errors in its CSS, HTML or YAML"
disabled_component_tooltip: "This component has been disabled" disabled_component_tooltip: "This component has been disabled"
default_theme_tooltip: "This theme is the site's default theme" default_theme_tooltip: "This theme is the site's default theme"
updates_available_tooltip: "Updates are available for this theme" updates_available_tooltip: "Updates are available for this theme"
and_x_more: "and %{count} more." and_x_more:
one: "and %{count} more."
other: "and %{count} more."
collapse: Collapse collapse: Collapse
uploads: "Uploads" uploads: "Uploads"
no_uploads: "You can upload assets associated with your theme such as fonts and images" no_uploads: "You can upload assets associated with your theme such as fonts and images"
@ -5687,7 +5717,9 @@ en:
one: "at least %{count} tag is required" one: "at least %{count} tag is required"
other: "at least %{count} tags are required" other: "at least %{count} tags are required"
string: string:
too_short: "must be at least %{count} characters" too_short:
one: "must be at least %{count} character"
other: "must be at least %{count} characters"
number: number:
too_small: "must be greater than or equal to %{count}" too_small: "must be greater than or equal to %{count}"
too_large: "must be less than or equal to %{count}" too_large: "must be less than or equal to %{count}"
@ -6610,7 +6642,9 @@ en:
secret_list: secret_list:
invalid_input: "Input fields cannot be empty or contain vertical bar character." invalid_input: "Input fields cannot be empty or contain vertical bar character."
default_categories: default_categories:
modal_description: "Would you like to apply this change historically? This will change preferences for %{count} existing users." modal_description:
one: "Would you like to apply this change historically? This will change preferences for %{count} existing user."
other: "Would you like to apply this change historically? This will change preferences for %{count} existing users."
modal_yes: "Yes" modal_yes: "Yes"
modal_no: "No, only apply change going forward" modal_no: "No, only apply change going forward"
simple_list: simple_list:
@ -6710,9 +6744,13 @@ en:
perform: "Award Badge to Users" perform: "Award Badge to Users"
upload_csv: Upload a CSV with either user emails or usernames upload_csv: Upload a CSV with either user emails or usernames
aborted: Please upload a CSV containing either user emails or usernames aborted: Please upload a CSV containing either user emails or usernames
success: Your CSV was received and %{count} users will receive their badge shortly. success:
one: "Your CSV was received and %{count} user will receive their badge shortly."
other: "Your CSV was received and %{count} users will receive their badge shortly."
csv_has_unmatched_users: "The following entries are in the CSV file but they couldn't be matched to existing users, and therefore won't receive the badge:" csv_has_unmatched_users: "The following entries are in the CSV file but they couldn't be matched to existing users, and therefore won't receive the badge:"
csv_has_unmatched_users_truncated_list: "There were %{count} entries in the CSV file that couldn't be matched to existing users, and therefore won't receive the badge. Due to the large number of unmatched entries, only the first 100 are shown:" csv_has_unmatched_users_truncated_list:
one: "There was %{count} entry in the CSV file that couldn't be matched to existing users, and therefore won't receive the badge. Due to the large number of unmatched entries, only the first 100 are shown:"
other: "There were %{count} entries in the CSV file that couldn't be matched to existing users, and therefore won't receive the badge. Due to the large number of unmatched entries, only the first 100 are shown:"
replace_owners: Remove the badge from previous owners replace_owners: Remove the badge from previous owners
grant_existing_holders: Grant additional badges to existing badge holders grant_existing_holders: Grant additional badges to existing badge holders

View File

@ -691,7 +691,9 @@ en:
dominating_topic: Youve posted a lot in this topic! Consider giving others an opportunity to reply here and discuss things with each other as well. dominating_topic: Youve posted a lot in this topic! Consider giving others an opportunity to reply here and discuss things with each other as well.
get_a_room: Youve replied to @%{reply_username} %{count} times, did you know you could send them a personal message instead? get_a_room:
one: Youve replied to @%{reply_username} once, did you know you could send them a personal message instead?
other: Youve replied to @%{reply_username} %{count} times, did you know you could send them a personal message instead?
dont_feed_the_trolls: This post has already been flagged for moderator attention. Are you sure you wish to reply to it? Replies to negative content tend to encourage more negative behavior. dont_feed_the_trolls: This post has already been flagged for moderator attention. Are you sure you wish to reply to it? Replies to negative content tend to encourage more negative behavior.
@ -2680,7 +2682,9 @@ en:
regex_invalid: "The regular expression is invalid: %{error}" regex_invalid: "The regular expression is invalid: %{error}"
leading_trailing_slash: "The regular expression must not start and end with a slash." leading_trailing_slash: "The regular expression must not start and end with a slash."
unicode_usernames_avatars: "The internal system avatars do not support Unicode usernames." unicode_usernames_avatars: "The internal system avatars do not support Unicode usernames."
list_value_count: "The list must contain exactly %{count} values." list_value_count:
one: "The list must contain exactly %{count} value."
other: "The list must contain exactly %{count} values."
markdown_linkify_tlds: "You cannot include a value of '*'." markdown_linkify_tlds: "You cannot include a value of '*'."
google_oauth2_hd_groups: "You must configure all 'google oauth2 hd' settings before enabling this setting." google_oauth2_hd_groups: "You must configure all 'google oauth2 hd' settings before enabling this setting."
search_tokenize_chinese_enabled: "You must disable 'search_tokenize_chinese' before enabling this setting." search_tokenize_chinese_enabled: "You must disable 'search_tokenize_chinese' before enabling this setting."
@ -4926,7 +4930,9 @@ en:
mass_award: mass_award:
errors: errors:
invalid_csv: We encountered an error on line %{line_number}. Please confirm the CSV has one email per line. invalid_csv: We encountered an error on line %{line_number}. Please confirm the CSV has one email per line.
too_many_csv_entries: Too many entries in the CSV file. Please provide a CSV file with no more than %{count} entries. too_many_csv_entries:
one: Too many entries in the CSV file. Please provide a CSV file with no more than %{count} entry.
other: Too many entries in the CSV file. Please provide a CSV file with no more than %{count} entries.
badge_disabled: Please enable the %{badge_name} badge first. badge_disabled: Please enable the %{badge_name} badge first.
cant_grant_multiple_times: Can't grant the %{badge_name} badge multiple times to a single user. cant_grant_multiple_times: Can't grant the %{badge_name} badge multiple times to a single user.
editor: editor: