diff --git a/app/assets/javascripts/discourse/app/components/composer-editor.js b/app/assets/javascripts/discourse/app/components/composer-editor.js index b58eeed6042..c25dab11373 100644 --- a/app/assets/javascripts/discourse/app/components/composer-editor.js +++ b/app/assets/javascripts/discourse/app/components/composer-editor.js @@ -651,7 +651,9 @@ export default Component.extend({ // Limit the number of simultaneous uploads if (max > 0 && data.files.length > max) { bootbox.alert( - I18n.t("post.errors.too_many_dragged_and_dropped_files", { max }) + I18n.t("post.errors.too_many_dragged_and_dropped_files", { + count: max, + }) ); return false; } diff --git a/app/assets/javascripts/discourse/app/components/global-notice.js b/app/assets/javascripts/discourse/app/components/global-notice.js index 9eb7abdc765..00fdb98350d 100644 --- a/app/assets/javascripts/discourse/app/components/global-notice.js +++ b/app/assets/javascripts/discourse/app/components/global-notice.js @@ -120,7 +120,7 @@ export default Component.extend({ notices.push( Notice.create({ text: I18n.t("bootstrap_mode_enabled", { - min_users: this.siteSettings.bootstrap_mode_min_users, + count: this.siteSettings.bootstrap_mode_min_users, }), id: "alert-bootstrap-mode", }) diff --git a/app/assets/javascripts/discourse/app/controllers/composer.js b/app/assets/javascripts/discourse/app/controllers/composer.js index 5e6ecde3495..20df538a971 100644 --- a/app/assets/javascripts/discourse/app/controllers/composer.js +++ b/app/assets/javascripts/discourse/app/controllers/composer.js @@ -584,7 +584,7 @@ export default Controller.extend({ if (group.max_mentions < group.user_count) { body = I18n.t("composer.group_mentioned_limit", { group: `@${group.name}`, - max: group.max_mentions, + count: group.max_mentions, group_link: groupLink, }); } else if (group.user_count > 0) { diff --git a/app/assets/javascripts/discourse/app/controllers/feature-topic.js b/app/assets/javascripts/discourse/app/controllers/feature-topic.js index 8bf3bb9638e..4b5325e2213 100644 --- a/app/assets/javascripts/discourse/app/controllers/feature-topic.js +++ b/app/assets/javascripts/discourse/app/controllers/feature-topic.js @@ -133,17 +133,20 @@ export default Controller.extend(ModalFunctionality, { this.send("closeModal"); }, - _confirmBeforePinning(count, name, action) { + _confirmBeforePinningGlobally() { + const count = this.pinnedGloballyCount; if (count < 4) { - this._forwardAction(action); + this._forwardAction("pinGlobally"); } else { this.send("hideModal"); bootbox.confirm( - I18n.t("topic.feature_topic.confirm_" + name, { count }), + I18n.t("topic.feature_topic.confirm_pin_globally", { count }), I18n.t("no_value"), I18n.t("yes_value"), (confirmed) => - confirmed ? this._forwardAction(action) : this.send("reopenModal") + confirmed + ? this._forwardAction("pinGlobally") + : this.send("reopenModal") ); } }, @@ -161,11 +164,7 @@ export default Controller.extend(ModalFunctionality, { if (this.pinGloballyDisabled) { this.set("pinGloballyTipShownAt", Date.now()); } else { - this._confirmBeforePinning( - this.pinnedGloballyCount, - "pin_globally", - "pinGlobally" - ); + this._confirmBeforePinningGlobally(); } }, diff --git a/app/assets/javascripts/discourse/app/mixins/upload.js b/app/assets/javascripts/discourse/app/mixins/upload.js index 9bf75972afd..1298f498e45 100644 --- a/app/assets/javascripts/discourse/app/mixins/upload.js +++ b/app/assets/javascripts/discourse/app/mixins/upload.js @@ -73,7 +73,7 @@ export default Mixin.create({ if (maxFiles > 0 && data.files.length > maxFiles) { bootbox.alert( I18n.t("post.errors.too_many_dragged_and_dropped_files", { - max: maxFiles, + count: maxFiles, }) ); return false; diff --git a/app/assets/javascripts/discourse/app/templates/preferences/account.hbs b/app/assets/javascripts/discourse/app/templates/preferences/account.hbs index ed380319ff6..182a11d7b16 100644 --- a/app/assets/javascripts/discourse/app/templates/preferences/account.hbs +++ b/app/assets/javascripts/discourse/app/templates/preferences/account.hbs @@ -221,14 +221,13 @@ showToken=(action "showToken")}} {{/unless}}
Your invite to %{site_name} has already been redeemed.
-If you remember your password you can Login.
+If you remember your password you can Log In.
Otherwise please Reset Password.
error_message: "There was an error accepting invite. Please contact the site's administrator." @@ -230,7 +230,7 @@ en: error: "There was an error uploading that file. Please try again later." invite_link: - email_taken: "This email is already in use. If you already have an account please login or reset password." + email_taken: "This email is already in use. If you already have an account please log in or reset password." max_redemptions_limit: "should be between 2 and %{max_limit}." topic_invite: @@ -888,43 +888,36 @@ en: title: "Off-Topic" description: "This post is not relevant to the current discussion as defined by the title and first post, and should probably be moved elsewhere." short_description: "Not relevant to the discussion" - long_form: "flagged this as off-topic" spam: title: "Spam" description: "This post is an advertisement, or vandalism. It is not useful or relevant to the current topic." short_description: "This is an advertisement or vandalism" - long_form: "flagged this as spam" email_title: '"%{title}" was flagged as spam' email_body: "%{link}\n\n%{message}" inappropriate: title: "Inappropriate" description: 'This post contains content that a reasonable person would consider offensive, abusive, or a violation of our community guidelines.' short_description: 'A violation of our community guidelines' - long_form: "flagged this as inappropriate" notify_user: title: "Send @%{username} a message" description: "I want to talk to this person directly and personally about their post." short_description: "I want to talk to this person directly and personally about their post." - long_form: "messaged user" email_title: 'Your post in "%{title}"' email_body: "%{link}\n\n%{message}" notify_moderators: title: "Something Else" description: "This post requires staff attention for another reason not listed above." short_description: "Requires staff attention for another reason" - long_form: "flagged this for staff attention" email_title: 'A post in "%{title}" requires staff attention' email_body: "%{link}\n\n%{message}" bookmark: title: "Bookmark" description: "Bookmark this post" short_description: "Bookmark this post" - long_form: "bookmarked this post" like: title: "Like" description: "Like this post" short_description: "Like this post" - long_form: "liked this" draft: sequence_conflict_error: @@ -1391,10 +1384,10 @@ en: sidekiq_warning: 'Sidekiq is not running. Many tasks, like sending emails, are executed asynchronously by sidekiq. Please ensure at least one sidekiq process is running. Learn about Sidekiq here.' queue_size_warning: "The number of queued jobs is %{queue_size}, which is high. This could indicate a problem with the Sidekiq process(es), or you may need to add more Sidekiq workers." memory_warning: "Your server is running with less than 1 GB of total memory. At least 1 GB of memory is recommended." - google_oauth2_config_warning: 'The server is configured to allow signup and log in with Google OAuth2 (enable_google_oauth2_logins), but the client id and client secret values are not set. Go to the Site Settings and update the settings. See this guide to learn more.' - facebook_config_warning: 'The server is configured to allow signup and log in with Facebook (enable_facebook_logins), but the app id and app secret values are not set. Go to the Site Settings and update the settings. See this guide to learn more.' - twitter_config_warning: 'The server is configured to allow signup and log in with Twitter (enable_twitter_logins), but the key and secret values are not set. Go to the Site Settings and update the settings. See this guide to learn more.' - github_config_warning: 'The server is configured to allow signup and log in with GitHub (enable_github_logins), but the client id and secret values are not set. Go to the Site Settings and update the settings. See this guide to learn more.' + google_oauth2_config_warning: 'The server is configured to allow signup and login with Google OAuth2 (enable_google_oauth2_logins), but the client id and client secret values are not set. Go to the Site Settings and update the settings. See this guide to learn more.' + facebook_config_warning: 'The server is configured to allow signup and login with Facebook (enable_facebook_logins), but the app id and app secret values are not set. Go to the Site Settings and update the settings. See this guide to learn more.' + twitter_config_warning: 'The server is configured to allow signup and login with Twitter (enable_twitter_logins), but the key and secret values are not set. Go to the Site Settings and update the settings. See this guide to learn more.' + github_config_warning: 'The server is configured to allow signup and login with GitHub (enable_github_logins), but the client id and secret values are not set. Go to the Site Settings and update the settings. See this guide to learn more.' s3_config_warning: 'The server is configured to upload files to S3, but at least one the following setting is not set: s3_access_key_id, s3_secret_access_key, s3_use_iam_profile, or s3_upload_bucket. Go to the Site Settings and update the settings. See "How to set up image uploads to S3?" to learn more.' s3_backup_config_warning: 'The server is configured to upload backups to S3, but at least one the following setting is not set: s3_access_key_id, s3_secret_access_key, s3_use_iam_profile, or s3_backup_bucket. Go to the Site Settings and update the settings. See "How to set up image uploads to S3?" to learn more.' image_magick_warning: 'The server is configured to create thumbnails of large images, but ImageMagick is not installed. Install ImageMagick using your favorite package manager or download the latest release.' @@ -1503,7 +1496,7 @@ en: email_custom_headers: "A pipe-delimited list of custom email headers" email_subject: "Customizable subject format for standard emails. See https://meta.discourse.org/t/customize-subject-format-for-standard-emails/20801" detailed_404: "Provides more details to users about why they can’t access a particular topic. Note: This is less secure because users will know if a URL links to a valid topic." - enforce_second_factor: "Forces users to enable second factor authentication. Select 'all' to enforce it to all users. Select 'staff' to enforce it to staff users only." + enforce_second_factor: "Forces users to enable two-factor authentication. Select 'all' to enforce it to all users. Select 'staff' to enforce it to staff users only." force_https: "Force your site to use HTTPS only. WARNING: do NOT enable this until you verify HTTPS is fully set up and working absolutely everywhere! Did you check your CDN, all social logins, and any external logos / dependencies to make sure they are all HTTPS compatible, too?" same_site_cookies: "Use same site cookies, they eliminate all vectors Cross Site Request Forgery on supported browsers (Lax or Strict). Warning: Strict will only work on sites that force login and use SSO." summary_score_threshold: "The minimum score required for a post to be included in 'Summarize This Topic'" @@ -1672,14 +1665,14 @@ en: facebook_app_id: "App id for Facebook authentication and sharing, registered at https://developers.facebook.com/apps" facebook_app_secret: "App secret for Facebook authentication, registered at https://developers.facebook.com/apps" - enable_github_logins: "Enable Github authentication, requires github_client_id and github_client_secret. See Configuring GitHub login for Discourse." - github_client_id: "Client id for Github authentication, registered at https://github.com/settings/developers" - github_client_secret: "Client secret for Github authentication, registered at https://github.com/settings/developers" + enable_github_logins: "Enable GitHub authentication, requires github_client_id and github_client_secret. See Configuring GitHub login for Discourse." + github_client_id: "Client id for GitHub authentication, registered at https://github.com/settings/developers" + github_client_secret: "Client secret for GitHub authentication, registered at https://github.com/settings/developers" enable_discord_logins: "Allow users to authenticate using Discord?" discord_client_id: 'Discord Client ID (need one? visit the Discord developer portal)' discord_secret: "Discord Secret Key" - discord_trusted_guilds: 'Only allow members of these Discord guilds to login via Discord. Use the numeric ID for the guild. For more information, check the instructions here. Leave blank to allow any guild.' + discord_trusted_guilds: 'Only allow members of these Discord guilds to log in via Discord. Use the numeric ID for the guild. For more information, check the instructions here. Leave blank to allow any guild.' enable_backups: "Allow administrators to create backups of the forum" allow_restore: "Allow restore, which can replace ALL site data! Leave false unless you plan to restore a backup" @@ -2152,7 +2145,7 @@ en: new_user_notice_tl: "Minimum trust level required to see new user post notices." returning_user_notice_tl: "Minimum trust level required to see returning user post notices." returning_users_days: "How many days should pass before a user is considered to be returning." - review_media_unless_trust_level: "Staff will review posts of users with lower trust levels if it contains embedded media." + review_media_unless_trust_level: "Staff will review posts of users with lower trust levels if they contain embedded media." enable_page_publishing: "Allow staff members to publish topics to new URLs with their own styling." show_published_pages_login_required: "Anonymous users can see published pages, even when login is required." @@ -2413,8 +2406,8 @@ en: auto_deleted_by_timer: "Automatically deleted by timer." login: - invalid_second_factor_method: "The selected second factor method is invalid." - not_enabled_second_factor_method: "The selected second factor method is not enabled for your account." + invalid_second_factor_method: "The selected two-factor method is invalid." + not_enabled_second_factor_method: "The selected two-factor method is not enabled for your account." security_key_description: "When you have your physical security key prepared press the Authenticate with Security Key button below." security_key_alternative: "Try another way" security_key_authenticate: "Authenticate with Security Key" @@ -2442,7 +2435,7 @@ en: csrf_detected: "Authorization timed out, or you have switched browsers. Please try again." request_error: "An error occurred when starting authorization. Please try again." invalid_iat: "Unable to verify authorization token due to server clock differences. Please try again." - omniauth_error_unknown: "Something went wrong processing your log in, please try again." + omniauth_error_unknown: "Something went wrong processing your login, please try again." omniauth_confirm_title: "Log in using %{provider}" omniauth_confirm_button: "Continue" authenticator_error_no_valid_email: "No email addresses associated with %{account} are allowed. You may need to configure your account with a different email address." @@ -2455,10 +2448,10 @@ en: auth_complete: "Authentication is complete." click_to_continue: "Click here to continue." already_logged_in: "Oops, looks like you are attempting to accept an invitation for another user. If you are not %{current_user}, please log out and try again." - second_factor_title: "Two Factor Authentication" + second_factor_title: "Two-Factor Authentication" second_factor_description: "Please enter the required authentication code from your app:" second_factor_backup_description: "Please enter one of your backup codes:" - second_factor_backup_title: "Two Factor Backup Code" + second_factor_backup_title: "Two-Factor Backup Code" invalid_second_factor_code: "Invalid authentication code. Each code can only be used once." invalid_security_key: "Invalid security key." missing_second_factor_name: "Please provide a name." @@ -3603,12 +3596,12 @@ en: If you have any questions, [contact our friendly staff](%{base_url}/about). account_second_factor_disabled: - title: "Two Factor Authentication disabled" - subject_template: "[%{email_prefix}] Two Factor Authentication disabled" + title: "Two-Factor Authentication disabled" + subject_template: "[%{email_prefix}] Two-Factor Authentication disabled" text_body_template: | - Two factor authentication has been disabled on your account at %{site_name}. You can now log in with only your password; an additional authentication code is no longer required. + Two-factor authentication has been disabled on your account at %{site_name}. You can now log in with only your password; an additional authentication code is no longer required. - If you did not choose to disable two factor authentication, someone may have compromised your account. + If you did not choose to disable two-factor authentication, someone may have compromised your account. If you have any questions, [contact our friendly staff](%{base_url}/about). @@ -3691,11 +3684,11 @@ en: title: "Admin Login" subject_template: "[%{email_prefix}] Login" text_body_template: | - Somebody asked to login to your account on [%{site_name}](%{base_url}). + Somebody asked to log in to your account on [%{site_name}](%{base_url}). If you did not make this request, you can safely ignore this email. - Click the following link to login: + Click the following link to log in: %{base_url}/session/email-login/%{email_token} account_created: @@ -3715,7 +3708,7 @@ en: %{base_url}/u/confirm-new-email/%{email_token} - If you did not request this change, please contact %{site_name} admin. + If you did not request this change, please contact a [site admin](%{base_url}/about). confirm_new_email_via_admin: title: "Confirm New Email" @@ -3725,7 +3718,7 @@ en: %{base_url}/u/confirm-new-email/%{email_token} - This email change was requested by a site admin. If you did not request this change, please contact %{site_name} admin. + This email change was requested by a site admin. If you did not request this change, please contact a [site admin](%{base_url}/about). confirm_old_email: title: "Confirm Old Email" @@ -4842,7 +4835,7 @@ en: email_auth_res_enqueue: "This email failed a DMARC check, it most likely isn't from whom it seems to be from. Check the raw email headers for more information." email_spam: "This email was flagged as spam by the header defined in `email_in_spam_header`." suspect_user: "This new user entered profile information without reading any topics or posts, which strongly suggests they may be a spammer. See `approve_suspect_users`." - contains_media: "This posts includes embedded media. See `review_media_unless_trust_level`." + contains_media: "This post includes embedded media. See `review_media_unless_trust_level`." actions: agree: diff --git a/plugins/discourse-narrative-bot/config/locales/server.en.yml b/plugins/discourse-narrative-bot/config/locales/server.en.yml index 8371f666ba0..b55e50a6837 100644 --- a/plugins/discourse-narrative-bot/config/locales/server.en.yml +++ b/plugins/discourse-narrative-bot/config/locales/server.en.yml @@ -44,8 +44,9 @@ en: trigger: "roll" invalid: |- I’m sorry, it is mathematically impossible to roll that combination of dice. :confounded: - not_enough_dice: |- - I only have %{num_of_dice} dice. [Shameful](http://www.therobotsvoice.com/2009/04/the_10_most_shameful_rpg_dice.php), I know! + not_enough_dice: + one: "I only have %{count} die. [Shameful](https://www.toplessrobot.com/2009/04/the_10_most_shameful_rpg_dice.php), I know!" + other: "I only have %{count} dice. [Shameful](https://www.toplessrobot.com/2009/04/the_10_most_shameful_rpg_dice.php), I know!" out_of_range: |- Did you know that [the maximum number of sides](https://www.wired.com/2016/05/mathematical-challenge-of-designing-the-worlds-most-complex-120-sided-dice) for a mathematically fair die is 120? results: |- diff --git a/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/dice.rb b/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/dice.rb index 43af00eb707..cd391823137 100644 --- a/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/dice.rb +++ b/plugins/discourse-narrative-bot/lib/discourse_narrative_bot/dice.rb @@ -13,9 +13,7 @@ module DiscourseNarrativeBot output = +'' if num_of_dice > MAXIMUM_NUM_OF_DICE - output << I18n.t('discourse_narrative_bot.dice.not_enough_dice', - num_of_dice: MAXIMUM_NUM_OF_DICE - ) + output << I18n.t('discourse_narrative_bot.dice.not_enough_dice', count: MAXIMUM_NUM_OF_DICE) output << "\n\n" num_of_dice = MAXIMUM_NUM_OF_DICE end diff --git a/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/track_selector_spec.rb b/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/track_selector_spec.rb index d703ab7e126..cc788673dc3 100644 --- a/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/track_selector_spec.rb +++ b/plugins/discourse-narrative-bot/spec/discourse_narrative_bot/track_selector_spec.rb @@ -382,7 +382,7 @@ describe DiscourseNarrativeBot::TrackSelector do new_post = Post.last expected_raw = <<~RAW - #{I18n.t('discourse_narrative_bot.dice.not_enough_dice', num_of_dice: DiscourseNarrativeBot::Dice::MAXIMUM_NUM_OF_DICE)} + #{I18n.t('discourse_narrative_bot.dice.not_enough_dice', count: DiscourseNarrativeBot::Dice::MAXIMUM_NUM_OF_DICE)} #{I18n.t('discourse_narrative_bot.dice.results', results: '1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1')} RAW diff --git a/plugins/discourse-presence/assets/javascripts/discourse/templates/components/composer-presence-display.hbs b/plugins/discourse-presence/assets/javascripts/discourse/templates/components/composer-presence-display.hbs index 1f4b4ec7272..59ccc66367f 100644 --- a/plugins/discourse-presence/assets/javascripts/discourse/templates/components/composer-presence-display.hbs +++ b/plugins/discourse-presence/assets/javascripts/discourse/templates/components/composer-presence-display.hbs @@ -8,9 +8,9 @@ {{#if isReply ~}} - {{i18n "presence.replying"}} + {{i18n "presence.replying" count=presenceUsers.length}} {{~else~}} - {{i18n "presence.editing"}} + {{i18n "presence.editing" count=presenceUsers.length}} {{~/if}} {{!-- (using comment to stop whitespace) --}}{{!-- diff --git a/plugins/discourse-presence/config/locales/client.en.yml b/plugins/discourse-presence/config/locales/client.en.yml index b4dc7cdd869..dfcc58ad529 100644 --- a/plugins/discourse-presence/config/locales/client.en.yml +++ b/plugins/discourse-presence/config/locales/client.en.yml @@ -1,8 +1,12 @@ en: js: presence: - replying: "replying" - editing: "editing" + replying: + one: "replying" + other: "replying" + editing: + one: "editing" + other: "editing" replying_to_topic: one: "replying" other: "replying" diff --git a/public/503.html b/public/503.html index 937e5bcda64..69c45ae9340 100644 --- a/public/503.html +++ b/public/503.html @@ -1,7 +1,7 @@ -